В блокчейне хеши встречаются повсюду: ID транзакций — это хеши, блоки соединяются друг с другом с помощью хешей, а майнинг биткоина — это постоянное вычисление хешей. Что это такое и почему они так важны? В этой статье объясним всё как можно проще, почти без специальных терминов.

Майнинг $BTC на практике сводится к многократному вычислению хешей SHA-256 и поиску результата, который соответствует заданной сложности. Текущая цена — 68,404.25 (за 24 ч: -4.24%).

【Что такое хеш】

Хеш-функция преобразует данные произвольной длины в строку фиксированной длины. Эта строка называется хешем, или дайджестом. Например, результат SHA-256 всегда имеет длину 256 бит, а в шестнадцатеричной записи состоит из 64 символов.

Хеш можно представить как «отпечаток» данных: для одних и тех же данных отпечаток всегда будет одинаковым; стоит изменить хотя бы один символ — и он станет совершенно другим.

【Каким должен быть хороший хеш】

Во-первых, односторонним: практически невозможно восстановить исходные данные по хешу. Во-вторых, устойчивым к коллизиям: практически невозможно найти два разных набора данных с одинаковым хешем. В-третьих, непредсказуемым: пока не вычислишь хеш, узнать результат нельзя.

Важно понимать: хеширование — это не шифрование. Зашифрованные данные можно восстановить с помощью ключа, а хеширование одностороннее: по хешу нельзя восстановить исходное содержимое.

【Где в блокчейне используют хеширование】

Биткоин использует SHA-256 для вычисления хешей блоков и идентификаторов транзакций, причём хеширование выполняется дважды. При создании распространённых адресов P2PKH и P2WPKH к открытому ключу сначала применяют SHA-256, а затем RIPEMD-160 (для адресов Taproot используют непосредственно открытый ключ). В Ethereum применяется Keccak-256, а адрес состоит из последних 20 байт хеша Keccak-256 открытого ключа.

В заголовке каждого блока хранится хеш предыдущего блока. Если изменить любой блок в истории, его хеш изменится, и все последующие блоки перестанут соответствовать цепочке — это одна из причин, почему блокчейн так сложно подделать. При майнинге биткоина постоянно перебирают разные входные данные, пока не получится хеш, удовлетворяющий требованиям сложности.

【Чем это полезно обычным пользователям】

Чтобы проверить перевод, найдите его в обозревателе блокчейна по хешу транзакции — это гораздо надёжнее, чем смотреть на скриншот. Скачав приложение кошелька, сравните его SHA-256 с контрольной суммой, опубликованной на официальном сайте: так можно убедиться, что установочный файл не был изменён.

【В заключение】

Запомните одну фразу: хеш — это отпечаток данных. Его можно открыто показывать и сравнивать, но нельзя использовать для восстановления исходных данных. Хеш транзакции можно показывать кому угодно, а приватный ключ и мнемоническую фразу нельзя раскрывать никогда. Не смейтесь: я и сам понял это только после того, как однажды поплатился. Не покупайте что-то только потому, что это покупают все остальные.

А вы раньше тоже неправильно понимали этот момент?