Дерево Меркла — это структура данных, которую используют в информатике и криптографии. На крипторынке деревом Меркла называют структуру данных, где хранится сводка транзакций, проведённых в блокчейне с помощью хеш-функции. Дерево Меркла помогает просто и эффективно проверять блоки транзакций в блокчейне. В этой статье вы найдёте ответ на вопрос, что такое дерево Меркла.
Дерево Меркла открыл Ральф Меркл. Он запатентовал эту концепцию в 1979 году и описал её в статье «Цифровая подпись на основе традиционной функции шифрования», опубликованной в 1987 году. Дерево Меркла — это структура данных в виде схемы, состоящая из хеш-значений. Хеш-коды отдельных данных выстраиваются в схеме снизу вверх, а значение хеша на верхнем уровне получается объединением хешей уровнем ниже.
Именно так и обеспечивается целостность данных в системе: хеш-значения упорядочены в схеме и последовательно складываются снизу вверх. Такую структуру применяют при передаче данных от человека к человеку, в одноранговых (peer-to-peer) сетях и при проверке переданных данных. С помощью дерева Меркла можно понять, не повреждены ли переданные данные или блоки данных и не подделаны ли они. Так же подтверждается и корректность этих блоков.
Как работает дерево Меркла?
Деревья Меркла состоят из хеш-значений, содержащихся в блоках. В самом низу дерева Меркла находятся данные транзакций. Хеш-значение (хеш-код) этих данных получают, прогоняя их через хеш-функцию. Затем значения в нижней части схемы объединяют попарно, а полученный результат записывают в строку выше. Повторяя эту операцию, выстраивают всё дерево Меркла. В конце процесса хеш-значение на вершине схемы называют корневым хешем, или корнем Меркла. Вычисленный корневой хеш показывает, есть ли ошибки в блоках. Если в значениях, из которых он складывается, обнаруживается несоответствие, алгоритм системы продолжает работать с хеш-функциями, пока не получит корень Меркла без ошибок.
Зачем дерево Меркла используется в биткоине?
Оно заметно упрощает работу майнерам, которым нужно проверять блоки в блокчейне биткоина. Майнеры в блокчейне биткоина подтверждают блоки, запуская хеш-функцию. В блокчейне биткоина данные упорядочиваются и размещаются в дереве Меркла, после чего хеш-функции алгоритма вычисляют корневой хеш. Полученный корневой хеш можно использовать и в дальнейших операциях майнинга. Благодаря этому майнеры продолжают работу, хешируя только корневой хеш, а не все блоки подряд. Дерево Меркла даёт решения и в блокчейнах других криптовалют, помимо биткоина.
