Глоссарий · Сеть

Корень Меркла

Автор: команда CloudMineCryptoОбновлено

Определение

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

Часть глоссария по майнингу Bitcoin: 88 терминов простыми словами.

Построить корень Меркла

Корень Меркла в заголовке

17b1344a79d1

hash 0+1

de80192c

hash 2+3

b87d4f25

tx 0

94e5fe9e

tx 1

c752a4cd

tx 2

934d1415

tx 3

3f172c5d

Нажми «Изменить» у любой транзакции. Её хеш, хеш пары и корень изменятся.

Настоящий двойной SHA-256, вычисляемый в браузере. Для отображения результат сокращён. В настоящих блоках хешируют данные транзакций, а не предложения.

Как строится корень Меркла?

Начните с ID каждой транзакции в блоке. Это двойной хеш SHA-256. Расположите их по порядку, сначала coinbase-транзакцию. Объединяйте соседние хеши попарно и хешируйте каждую пару. Теперь хешей вдвое меньше. Повторяйте, пока не останется один: это и есть корень Меркла.

Если на уровне нечётное число хешей, последний объединяется сам с собой. Измените любую транзакцию, даже на один сатоши, и все хеши на пути от неё к вершине изменятся, включая корень. Попробуйте в демо выше.

Почему дерево, а не один большой хеш?

Доказательства. Чтобы показать, что транзакция входит в блок, нужны только хеши на её ветви, а не весь блок. Для блока примерно с 4 000 транзакциями достаточно всего 12 хешей, это несколько сотен байт. В whitepaper Сатоси описаны лёгкие кошельки, которые проверяют платежи таким способом, сохраняя только заголовки блоков.

Это важно и для майнинга. Когда майнер меняет дополнительный nonce в coinbase-транзакции, корень Меркла меняется, и для заголовка блока появляется новый набор nonce, которые можно проверять.

Источники

  1. Bitcoin: A Peer-to-Peer Electronic Cash System · Сатоши Накамото, 2008
  2. Справочник по блокчейну: заголовки, деревья Меркла, целевое значение · документация для разработчиков Bitcoin
  3. Дерево Меркла · Bitcoin Wiki

Актуальные данные на этой странице поступают из API CloudMineCrypto и общедоступных данных блокчейна, регулярно обновляются и отмечены в соответствующих местах. Только в образовательных целях, не финансовая рекомендация.

А теперь посмотри, как работает майнинг.

Забери бесплатный план майнинга на 8 часов в приложении CloudMineCrypto и смотри, как растёт баланс BTC на основе актуальных данных сети. Выводи средства на свой кошелёк, в том числе через Lightning. Вознаграждения являются оценочными.