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

Соответствующая монета: $BTC котируется по 83,151.46 (+1.86% за 24 ч).

📌 Что такое хеш?

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

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

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

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

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

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

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

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

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

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

📌 Кратко

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

О чём поговорим в следующий раз? О кошельках или о чём-нибудь ещё?