Дерево Меркла в графическом изображении действительно напоминает разветвленное дерево, правда, растущее корнем вверх.
В схеме исходными листьями являются базовые блоки, сразу же над ними — их хеши. Еще уровнем выше происходит срастание ветвей — суммирование хешей. Такое последовательное свертывание происходит до тех пор, пока в итоге не вычисляется единый хеш — корень дерева Меркла.
Такой принцип построения цепочки блоков был предложен задолго до появления первого блокчейна. Автор идеи — Ральф Меркл — американский ученый-криптограф, который запатентовал принцип хеш-дерева еще в 1979 году.
Дерево Меркла в условиях децентрализованной сети
Современным мультиблокчейнам с миллионами транзакций, нуждающимися в подтверждении, нужен эффективный и одновременно простой способ проверки и хранения информации. И здесь не обойтись без дерева Меркла, которое максимально упрощает проверку подлинности блоков.
По сути это структура данных, в которой огромные объемы информации поэтапно хешируются в один легкий корневой хеш. Этот хеш обладает всеми свойствами обычного: не раскрывает данные своих составляющих, но при предоставляет возможность проверить достоверность транзакции, записанной в блок дерева.
Валидация по принципу дерева Меркла проходит с помощью доказательства Меркла. Корректность блока подтверждается либо опровергается, когда от корневого хеша прогоняется проверка к нужному блоку. При этом необязательно знать все данные, достаточно лишь корня Меркла и проверяемых данных.
Хеш-дерево на простом примере
Если сравнивать дерево Меркла с генеалогическим древом, то предки — это исходные листья, а конечный потомок Гарри — корень. Пусть значение корня — это генетический код Гарри. А значение листьев — генетические коды его предков.
Гарри заявляет своему другу Джеку, что является наследником Чингиз Хана и показывает генетический код — свой и знаменитого предка. Это позволяет убедиться, является ли Чингиз Хан одним из предков Гарри, игнорируя все остальные поколения, которые были между ними. Так же и в дереве Меркла не нужно знать остальные значения и количество ветвей, чтобы проверить достоверность конкретного блока дерева.
Дерево Меркла позволяет значительно облегчить нагрузку на сеть, так как при доказательстве корректности блока нужно пройти только по ветке с нужным блоком. Нет необходимости перепроверять абсолютно все блоки из подмножества. Упрощенная проверка экономит энергозатраты и время. Это решающее преимущество хеш-деревьев перед остальными схемами построения хешей. Оно позволяет нарастить масштабирование, ускорив процессы валидации.
Для мультиблокчейнов подобных Free TON, деревья Меркла обеспечивают качественную масштабируемость и легкость работы даже нодам с небольшими мощностями. Узлы, опираясь на доказательство Меркла, пользуются лишь корнями Меркла, что кардинально упрощает требования к хранилищу и пропускной способности системы. Таким образом Дерево Меркла способствует масштабированию, увеличивает приватность и одновременно прозрачность процессов.