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