Если открытые ключи имеют длину 34 символа, а закрытые ключи имеют длину 61 символ, то комбинаций из 34 символов недостаточно, чтобы каждая комбинация из 61 символа представляла собой уникальную пару.
Мои расчеты показывают 8,6 * 10 ^ 89 комбинаций для закрытого ключа.
И 9,0 * 10 ^ 59 комбинаций для открытого ключа.
Так как же у нас получается однозначное сопоставление?
(Пожалуйста, поправьте меня, если я ошибаюсь).
У нас нет взаимно однозначного отображения в том смысле, о котором вы говорите. Но для практических целей у нас есть однозначное отображение. Да, если бы кто-то попытался сопоставить каждый ключ через несколько миллионов столетий, у него возникли бы проблемы. Но нам не придется беспокоиться об этом до тех пор, пока звезды не погаснут.
Чтобы найти два ключа, хэш которых соответствует одному и тому же идентификатору, вам придется попробовать в среднем 2 ^ 80 ключей. Если бы у вас был миллион компьютеров, каждый из которых мог бы пробовать 1000 ключей в секунду, потребовалось бы 380 000 столетий, чтобы найти одно совпадение. И все, что вы могли сделать с этими двумя ключами, — это потребовать деньги, отправленные на один и тот же идентификатор с любым из них, что не причинило бы никакого вреда.
Теперь, если вы хотите найти ключ, который соответствует ключу, в котором уже есть биткойны, это гораздо более сложная задача. Скажем, есть 10 000 000 идентификаторов с монетами. Вероятность совпадения одного ключа с одним из этих 10 000 000 составляет 2 ^ 160/10 000 000 — даже если 1 000 000 компьютеров пытаются использовать 1 000 ключей в секунду, на это уйдут миллиарды миллиардов столетий.
Так что для практических целей это один к одному.
Серит
производитель вещей7