Что такое Block Hash?
Block Hash: отпечаток блока в блокчейне. Это строка фиксированной длины, которая уникально представляет данные блока в определённый момент. Представьте идентификатор квитанции, который сразу же обнаружит, если кто изменит хоть один символ в квитанции.
Некоторые полагают, что Block Hash: просто случайный идентификатор. На самом деле он совсем не случайный. Он напрямую зависит от данных блока: измените один бит, и Block Hash станет совершенно другим.
Как работает Block Hash
Представьте создание нового блока и его отправку в сеть. Кратко о том, как появляется Block Hash.
- Шаг 1: Блок объединяет транзакции и метаданные в заголовке блока.
- Шаг 2: Этот заголовок прогоняют через криптографическую функцию хеширования, которая превращает его в короткую строку фиксированной длины.
- Шаг 3: Майнеры меняют nonce и повторно хешируют, пока результат не станет меньше целевого значения. Можно представить себе слот машину и урок математики одновременно.
- Шаг 4: Когда Block Hash достигает целевого значения, блок принимают, и его хеш становится ссылкой в следующем блоке, связывая цепь.
- Шаг 5: Узлы распространяют результат по сети, и этот Block Hash становится публичной меткой блока.
Это быстро, предсказуемо и строго к попыткам подделки.
Зачем нужен Block Hash
Почему на практике стоит обращать внимание на Block Hash:
- Преимущество: обеспечивает мгновенную проверку целостности. Взглянув, вы поймёте, подлинный ли блок.
- Перспектива: Сеть вознаграждает большие вычислительные ресурсы, необходимые для поиска допустимых хешей, и именно это поддерживает безопасность цепочек с доказательством работы.
- Актуальность: Вы увидите Block Hash в обозревателях блоков при отслеживании подтверждений, при отладке приложений или при чтении обновлений протокола.
При сравнении Block Hash из обозревателя блоков копируйте его как простой текст и проверяйте наличие лишних пробелов. Один лишний символ ломает точное совпадение.
Основные свойства Block Hash
Вот свойства, которые делают его надёжным:
- Детерминированный: одинаковый вход даёт тот же результат всегда.
- Фиксированный: длина вывода постоянна, независимо от размера блока.
- Чувствительный: измените один бит в блоке, и Block Hash будет полностью другим.
- Связанный: каждый блок указывает на предыдущий Block Hash, что фиксирует историю.
- Непрозрачный: по Block Hash нельзя восстановить содержимое блока.
Как вычисляется Block Hash?
В большинстве цепочек с доказательством работы Block Hash вычисляют из заголовка с помощью хеширования в два этапа. В Биткоине это двойной sha.
В упрощённом виде:
block_hash = sha256( sha256( block_header_bytes ) ) Заголовок включает поля, такие как версия, предыдущий хеш, корень Меркла, отметка времени, целевое значение сложности и nonce. Меняйте nonce, повторно хешируйте, повторяйте и радуйтесь, когда результат попадает ниже целевого значения.
Block Hash: это не хеш транзакции. Block Hash суммирует заголовок блока, тогда как хеш транзакции идентифицирует одну конкретную транзакцию внутри этого блока.
Пример
Вы открываете обозреватель блоков, находите недавний блок, копируете его Block Hash и вставляете в логи своего узла, чтобы убедиться, что вы синхронизированы с сетью.
Интересный факт
Хеш генезисного блока Биткоина начинается с длинной серии нулей, наглядно показывающей, насколько строгое было раннее целевое значение майнинга.
Итог
Block Hash в одной строке: это сигнал о подделке и публичная метка для каждого блока, легко делиться, трудно подделать и причина, по которой цепочка остаётся честной.
