ЗНАНИЯ БЕЗ ЛИШНЕГО ШУМА

Как доказательство Меркла подтверждает включение транзакции Bitcoin

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

Дерево Меркла из медных ветвей и графитовых узлов

Доказательство Меркла даёт способ проверить включение TXID в блок по короткому набору соседних хешей. Итоговый корень сравнивают с корнем в заголовке блока.

Пример с четырьмя листьями

Пусть в блоке четыре условных хеша A, B, C и D. Сначала из пар A и B, C и D получают AB и CD, затем из AB и CD получают корень. Для проверки C достаточно его хеша, соседа D и уже рассчитанного хеша AB. Направление каждой пары имеет значение: C и D нельзя произвольно менять местами.

Буквы в примере обозначают данные, а не реальные хеши. В Bitcoin шаги строятся по правилам протокола, включая порядок байтов и двойное SHA-256. В ветви для корня заголовка используются идентификаторы транзакций TXID.

Условное дерево. A + B — получаем AB. C + D — получаем CD. AB + CD — корень
Условное дерево

Что именно доказано

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

Проверка листа C. Лист C — свой хеш. Соседи — D и AB. Сверка — с заголовком
Проверка листа C

Где искать причину ошибки

Сначала сверяйте сеть, хеш блока и порядок элементов ветви. Затем убедитесь, что инструмент использует нужный тип идентификатора. Если задача лишь в том, чтобы проверить получателя и сумму, начните с поиска по TXID. Если спорят о том, в какой ветви находится запись, сравните высоту и хеш блока.

Поиск по сайту