Построение биткоин адреса по известному публичному ключу

in blockchain •  3 years ago 

Этой публикацией я хочу начать цикл статей объясняющих устройство блокчейна, если конечно это вызовет интерес.

Для построения нам нужно уметь вычислять sha256 и ripemd160 хэш функции. Кроме того необходимо уметь представлять данные в base256 и base58 формате. Я расскажу, как это сделать, не обладая знанием программирования.

Сервисы:

1. Для того, что бы перевести base256 представление в двоичный код найдём подходящий сервис по фразе “hexadecimal to binary file” - подойдёт например http://tomeko.net/online_tools/hex_to_file.php

2. Для того что бы посчитать sha256 от двоичного представления данных находим сервис по фразе “file to sha256 online” - подойдёт например https://md5file.com/calculator

3. Для того что бы посчитать ripemd160 от двоичного представления данных находим сервис по фразе “file to ripemd160 online” - подойдёт например http://hash.online-convert.com/ripemd160-generator

4. Для того что бы перевести данные из base256 представления в base58 представление находим сервис по фразе “base256 to base58 online” - подойдёт например http://lenschulwitz.com/base58

Построение:

Рассмотрим построение биткоин адреса по публичному ключу на примере. Публичным ключом является последовательная запись двух решений эллиптического уравнения предваряемая байтом ‘04’. О решение эллиптического уравнения для построения по приватному ключу публичного я расскажу в одной из следующих статей.

Пусть решениями эллиптического уравнения в base256 представлении:

678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb6 49f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

Тогда публичный ключ:

04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f

Для того, что бы посчитать sha256 хэш мы должны сначала записать публичный ключ в файл, в двоичном представлении воспользовавшись сервисом 1, а затем посчитать sha256 от получившегося файла воспользовавшись сервисом 2.

1. sha256 => 261c1eb21fc4708c6acbe1cfc6d4565652e9e768b620782898936b93000a6c02

Аналогично действуем для вычисления ripemd160 хэш функции.

2. ripemd160 => 62e907b15cbf27d5425399ebf6f0fb50ebb88f18

3. 00+ => 0062e907b15cbf27d5425399ebf6f0fb50ebb88f18

4. sha256 => 9b90f16de7f0e580c07735dac15ffe23e2f8f8e103914e509aa91913ffdb9fb6

5. sha256 => c29b7d937e3049e279391e62fdf00c12def7444013ddf6215808d10e9f2d5996

6. Берем первые 4 байта => c29b7d93

7. Соединяем результаты (3) и (6) 0062e907b15cbf27d5425399ebf6f0fb50ebb88f18c29b7d93

Для перевода в base58 представление воспользуемся сервисом 4.

8. base256 в base58 => 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Готово. Этот самый первый биткоин адрес встречающийся в блокчейне.

Использованная схема нарисована пользователем etotheipi bitcointalk.org

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Автор!

Пиши ещё!