Клуб свободных инвесторов

12 Сен / 2022

Дерево Меркла. Как происходит процесс верификации данных в блокчейн сети?

Что такое дерево Меркла ?

Основная концепция древа Меркла была разработала еще в 1980 году. Идея принадлежит профессору в области криптографии Ральфу Мерклу, который презентовал ее на конференции в Стэнфордском университете. Он предложил хешировать данные с помощью цифровой подписи. То есть, преобразовывать огромный массив входных данных в выходную битовую строку установленной длины. Сегодня данная разработка широко применяется в сфере блокчейн-технологий. Так, с помощью дерева Меркла блокчейн имеет возможность хранить огромные массивы данных поддерживая тем самым целостность и сохранность сети. На представленной ниже схеме видно, как четыре транзакции проходят процесс хеширования постепенно объединяясь и продвигаясь вверх по древу.

дерево Меркла

Механизм работы дерева Меркла

Предположим, вам нужно скачать объемный файл. Чтобы убедиться в его оригинальности, вы используете программу с открытым исходным кодом, где сравниваете свой файл с кодом файла разработчика. Если оба файла имеют идентичную информацию, то вы скачали оригинальную версию. Если данные имеют различия, то это либо вредоносный файл, либо вы что-то сделали неправильно в процессе загрузки. В любом случае, такой процесс проверки отнимает много сил и времени. Благодаря механизму сжатия и хранения больший объемов информации, древо Меркла значительно упрощает эту работу.

Процесс формирования дерева Меркла происходит снизу вверх. Каждый уровень проходит процесс хеширования и объединения с вышестоящим файлом, тем самым продвигаясь вверх по древу. При его построении получается единый хеш, который имеет название корень Меркла. Он представляет все фрагменты данных. Следовательно, дерево Меркла является однонаправленной хеш-функцией.

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

Как блокчейн использует дерево Меркла

Когда мы говорим о централизованной системе управления, то здесь процесс предоставления исходных данных проходит через одного источника. Он же и является гарантом ее достоверности и корректности.

Так как блокчейн является распределенной базой данных, информация на нем хранится на множестве независимых узлов (ноды). В алгоритме работы нод заложена функция, которая не позволяет принять данные от участников без их проверки. То есть, узлу необходимо определить, содержит ли блок корректные транзакции.

Чтобы снизить вычислительные затраты на проверку используется древо Меркла. Он дает возможность значительно сократить объем загружаемых данных и оптимизировать время на их анализ с помощью функции хеширования.

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

Такой подход применяется в сетях Bitcoin, Ethereum, а также и в других криптовалютах. Это позволяет оперативно получать строку данных, которая верифицирует группу транзакций. Алгоритм также используется в файловых системах и базах данных. Благодаря древу Меркла информацию можно проверить на наличие ошибок и провести ее синхронизацию.

Стоит отметить, что способ представления данных в древе может выглядеть по-разному для каждого блокчейна. К примеру, в сети Ethereum используется префиксное дерево. То есть, хранение информации происходит в ассоциативном массиве. Где строки являются ключами, с помощью которых определяется положение его элементов. Для построения структуры ветви древа используются различные символы так, чтобы ключ элемента однозначно смог его идентифицировать.

Как майнеры используют корень Меркла

Блок с биткоинами состоит из двух элементов. Первый — заголовок блока, он имеет фиксированный размер и содержит данные для самого блока. Второй — список транзакций, размер которых, как правило, намного больше заголовка. Для выполнения заданных критерий при поиске валидного блока, майнерам необходимо постоянно хешировать объемные массивы данных.

На поиски уходит много времени, так как майнерам нужно менять случайное число в заголовке блока (nonce), чтобы получить новый результат, но большая часть блока останется прежней. В блоке могут быть тысячи транзакций, и каждый раз придется хешировать их все.

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

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

Подводя итоги

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

А чтобы еще больше узнать о различных криптопроектах и не только, рекомендуем вам создать личный кабинет и ознакомиться с возможностями клуба Golden Island прямо сейчас.

Поделиться:
Автор: creatpages

0 комментариев

BTC
ETH
ADA
BNB
XRP
Мы в соц. сетях