Я зашел на https://www.bitaddress.org , и на последней вкладке есть место для ввода закрытого ключа, и он показывает различные форматы открытых и закрытых ключей.
Мне странно, что открытый ключ может быть либо 33 Base58, либо 130 Base16. Это кажется неправильным, тем более что закрытый ключ — 51 Base58 или 64 Base16, что имеет смысл.
Так что дает? Вот принтскрин:
Биткойн-адрес (33 или 34 символа, начинается с «1»): 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm.
Открытый ключ (130 символов [0-9A-F]): 0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F8179 8483ADA7726A3C4655DA4FBFC0E110FF8A8FD17B448A68554198C10D08
Шестнадцатеричный формат закрытого ключа (64 символа [0-9A-F]): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Закрытые ключи Биткойн имеют размер 32 байта, но часто хранятся в полной сериализованной форме OpenSSL размером 279 байтов. Они сериализованы как 51 символ base58 или 64 шестнадцатеричных символа.
Открытые ключи Биткойн (традиционно) составляют 65 байт (первый из которых 0x04). Обычно они кодируются как 130 шестнадцатеричных символов.
Сжатые открытые ключи Биткойн (по состоянию на 0.6.0) составляют 33 байта (первый из которых 0x02 или 0x03). Обычно они кодируются как 66 шестнадцатеричных символов.
Биткойн-адреса: RIPEMD160 (SHA256 (публичный ключ)), 20 байт. Обычно они кодируются как 34 символа base58.
Ваш открытый ключ состоит из 65 байтов данных : начальный байт 0x04, за которым следуют 32 байта для координаты X и 32 байта для координаты Y точки, которую он представляет. Для отображения полного ключа требуется 130 шестнадцатеричных символов по 4 бита на символ.
Ваш биткойн-адрес — это хэш вашего открытого ключа. Это немного сложнее , включая несколько хэшей и встроенную контрольную сумму , но в основном это правда.
Невозможно перейти с вашего биткойн-адреса на ваш открытый ключ. Существует множество открытых ключей с одним и тем же биткойн-адресом. Соответствующий приватный ключ может потратить средства на этот адрес, если средства были отправлены через официальный клиент. Невероятно сложно найти пару ключей с тем же биткойн-адресом, что и существующий адрес. Проверка возможности расходования средств, отправленных на биткойн-адрес, выглядит следующим образом:
Получатель вывода транзакции:
Ни в коем случае не проверяется, что у отправителя есть тот же открытый ключ, что и у предполагаемого получателя. Действительно, создатель транзакции не знает открытый ключ предполагаемого получателя, а знает только его биткойн-адрес.
Дэвид Шварц
Крис Мур