Блокчейн очень безопасен и, что стоит отметить, полностью прозрачен. Блокчейн трудно удалить из мира, потому что если есть только один сервер, содержащий копию сети, он выживет.

Загрузка всей копии блокчейна может быть неэффективной из-за требуемого хранилища. Сеть Биткойн составляет около 350 ГБ на 2021 год.

Как управлять сетью и всеми транзакциями, не загружая такое количество байтов?

Решение — дерево Меркла.

Повестка дня:

  • Вступление,
  • Определение,
  • Как это работает.

Определение

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

Дерево Меркла считалось большим улучшением блокчейна. Он используется как бинарное хеш-дерево. Что это значит…

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

Как это работает

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

Давайте используем сеть биткойнов в качестве примера…

Биткойн-блок добавляется один раз примерно каждые 10 минут, это не означает, что к блоку привязана одна транзакция. Многие транзакции «сжаты» внутри блочных данных.

Это «сжатие» производится с помощью дерева Меркла. Например, предположим, что блок должен состоять из 8 транзакций.

Каждая транзакция хешируется, затем хэшируется также каждая пара транзакций и так продолжается до тех пор, пока не останется один хэш.

При нечетном количестве транзакций одна из них удваивается и объединяется сама с собой.

Ниже представлен график, на котором показан приведенный выше пример из 8 транзакций. В реальном использовании блок может состоять даже из 500 транзакций.

Предположим, что мы хотим проверить транзакцию номер 4 на этом графике. Имея корень H12345678, процесс выглядит как судоку.

Запрос сети о T4 приведет к возвращению H3, H12 и H5678. Дерево Меркла позволяет убедиться, что все учитывается с помощью трех хэшей: учитывая H12, H3, H5678 и корень H12345678, H4 (единственный отсутствующий хэш) должен присутствовать в данных.

Если вам нравится мой вызов web3, посетите репозиторий, в котором собраны все дни.