В блоке биткоина могут содержаться тысячи транзакций, но заголовок блока занимает всего 80 байт. Такой небольшой объём данных позволяет «зафиксировать» каждую транзакцию в блоке — благодаря дереву Меркла.
Упомянутая в статье монета: $BTC цена — 77 358,01 (изменение за 24 ч: -0,61%).
【Что это за дерево】
Дерево Меркла — это древовидная структура, в которой большие объёмы данных попарно хешируются и объединяются слой за слоем. В самом нижнем слое находятся хеши отдельных транзакций; два соседних хеша объединяются и снова хешируются, образуя следующий слой. Так продолжается, пока не останется один хеш — корень Меркла.
Эта структура названа в честь криптографа Ральфа Меркла (Ralph Merkle). Она была предложена ещё в конце 1970-х годов — задолго до появления блокчейна.
【Почему данные нельзя незаметно изменить】
В заголовке блока биткоина хранится корень Меркла. Если изменить любую транзакцию в блоке, изменится её хеш. Это изменение распространится вверх по дереву до корня Меркла, вслед за ним изменится и хеш блока, и все последующие блоки перестанут совпадать.
Поэтому, отслеживая всего один хеш в заголовке блока, можно контролировать все транзакции в этом блоке.
【Как лёгкий кошелёк проверяет транзакции】
Чтобы доказать, что транзакция находится в определённом блоке, не нужен весь блок — достаточно нескольких хешей на пути от этой транзакции к корню Меркла. При удвоении числа транзакций требуется всего на один хеш больше. Для блока с тысячами транзакций достаточно чуть больше десятка хешей.
Именно так работает упрощённая проверка платежей (SPV), описанная в разделе 8 технического документа биткоина: лёгкий клиент хранит только заголовки блоков, а затем запрашивает у узла путь Меркла, чтобы подтвердить включение транзакции в блок.
【Применение в доказательстве резервов】
Дерево Меркла используется и для доказательства резервов биржи: платформа объединяет балансы всех пользователей в дерево Меркла и публикует корневой хеш. Каждый пользователь получает свой путь и может самостоятельно проверить, учтён ли его баланс, при этом сведения о других пользователях не раскрываются.
【Краткий вывод】
Идея дерева Меркла проста: один короткий корневой хеш представляет огромный объём данных. Именно благодаря этому устройству становятся возможны такие решения, как мобильные кошельки и доказательство резервов. Рынок всегда полон неопределённости — заранее подумайте, что делать, если ваше решение окажется ошибочным.
Если статья была полезна, сохраните её — потом сможете вернуться и перечитать.