Построение биткоин адреса по известному публичному ключу
Этой публикацией я хочу начать цикл статей объясняющих устройство блокчейна, если конечно это вызовет интерес.
Для построения нам нужно уметь вычислять 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
Автор!
Пиши ещё!