В блоке биткоина могут содержаться тысячи транзакций, но заголовок блока занимает всего 80 байт. Такой небольшой объём данных позволяет «зафиксировать» каждую транзакцию в блоке — благодаря дереву Меркла.

Упомянутая в статье монета: $BTC цена — 77 358,01 (изменение за 24 ч: -0,61%).

【Что это за дерево】

Дерево Меркла — это древовидная структура, в которой большие объёмы данных попарно хешируются и объединяются слой за слоем. В самом нижнем слое находятся хеши отдельных транзакций; два соседних хеша объединяются и снова хешируются, образуя следующий слой. Так продолжается, пока не останется один хеш — корень Меркла.

Эта структура названа в честь криптографа Ральфа Меркла (Ralph Merkle). Она была предложена ещё в конце 1970-х годов — задолго до появления блокчейна.

【Почему данные нельзя незаметно изменить】

В заголовке блока биткоина хранится корень Меркла. Если изменить любую транзакцию в блоке, изменится её хеш. Это изменение распространится вверх по дереву до корня Меркла, вслед за ним изменится и хеш блока, и все последующие блоки перестанут совпадать.

Поэтому, отслеживая всего один хеш в заголовке блока, можно контролировать все транзакции в этом блоке.

【Как лёгкий кошелёк проверяет транзакции】

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

Именно так работает упрощённая проверка платежей (SPV), описанная в разделе 8 технического документа биткоина: лёгкий клиент хранит только заголовки блоков, а затем запрашивает у узла путь Меркла, чтобы подтвердить включение транзакции в блок.

【Применение в доказательстве резервов】

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

【Краткий вывод】

Идея дерева Меркла проста: один короткий корневой хеш представляет огромный объём данных. Именно благодаря этому устройству становятся возможны такие решения, как мобильные кошельки и доказательство резервов. Рынок всегда полон неопределённости — заранее подумайте, что делать, если ваше решение окажется ошибочным.

Если статья была полезна, сохраните её — потом сможете вернуться и перечитать.