Биткойн-адресная логика - PullRequest
       31

Биткойн-адресная логика

0 голосов
/ 31 октября 2018

Я пытаюсь разобраться с некоторыми очень простыми числами, и мне нужна проверка, чтобы убедиться, логически ли это правильно.

При взгляде на биткойны, есть 2 ^ 160 адресов. Биткойн использует кодировку Base58, поэтому в нем есть 24 строчные буквы, 24 заглавные буквы и десять цифр.

Итак, допустим, я использовал Vanitygen и хотел получить адрес, начинающийся с 1TEST, гипотетически мои шансы найти адрес, начинающийся с 1TEST, равны 1 из 58 ^ 5. Было бы правильно сказать, что количество биткойн-адресов, начинающихся с 1TEST, равно 2 ^ 160/58 ^ 5? Таким образом, есть 2,2 ^ 39 адресов с 1TEST?

1 Ответ

0 голосов
/ 01 ноября 2018

Meta: это не вопрос программирования и, вероятно, относится к bitcoin.SX, как сказано в описании тега. И это определенно не имеет ничего общего с шифрованием.

Почти. Во-первых, база Биткойн58 на самом деле состоит из 9 цифр, 24 строчных и 25 прописных букв. Что более важно, закодированный адрес начинается с байта 'version' (действительно тип) , но первые 00 байтов кодируются специально, поэтому первый символ 1 фактически соответствует байту типа 00, означающему обычный традиционный keyhash (не тестовый, не скриптовый, не приватный). Следующие 4 символа, если НЕ начинаются с более 1 (s), действительно представляют старшие цифры хеша, и, поскольку TEST не может не совпадать в несбалансированной части диапазона, который занимает 1 + 33 символа, он охватывает точную 1/58 ^ 4 долю пространства, то есть 2 ^ 160/58 ^ 4, что составляет около 2 ^ 136,6.

...