Дерево Меркла — что это простыми словами | IceAI

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

Дерево Меркла (Merkle Tree) — как тысячи транзакций сворачиваются в один корневой хэш. Простое объяснение схемы и Merkle proof.

Обновлено: 2026-10-09

Вы отправляете перевод и в обозревателе видите, что в блок попали 3 200 транзакций. Как кошелёк за долю секунды убеждается, что ваша сделка внутри, и при этом не качает весь блок целиком? Ответ прячется в дереве Меркла. Я разбиралась с ним, когда сама проверяла свой лист в отчёте биржи, — и поняла, почему это одна из самых изящных идей в блокчейне.

Дерево Меркла Merkle Root Хэш(1+2) Хэш(3+4) 1 2 3 4 хэши четырёх транзакций Четыре хэша транзакций сворачиваются в один корень

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

Дерево Меркла (Merkle Tree, хэш-дерево) — способ свернуть много данных в один короткий отпечаток. Строят его снизу вверх из хэшей. Внизу лежат листья: хэш каждой отдельной транзакции. Дальше соседние хэши попарно склеивают и хэшируют заново — получаются родители. Так слой за слоем, пока наверху не останется одна строка — корень Меркла (Merkle Root). У блока Bitcoin в дереве тысячи листьев, а корень всё равно один.

Как строится дерево

Возьмём четыре транзакции. Считаем хэши h1, h2, h3, h4 — это листья. Пары склеиваем: из h1 и h2 получаем h12, из h3 и h4 выходит h34. Затем соединяем h12 и h34 — готов корень. Если транзакций нечётное число, последний хэш дублируют, чтобы пара нашлась.

Любая правка внизу мгновенно меняет корень: сдвинулся один символ — поехали все родители наверх. Дерево высотой 20 уровней покрывает больше миллиона листьев, а корень по-прежнему короткий.

Зачем это нужно

Корень кладут в заголовок блока. Одна короткая строка подтверждает сразу весь список транзакций: изменить что-то внутри незаметно нельзя. Полные узлы сети хранят блок целиком, а лёгкие кошельки и мосты обходятся одним корнем. Проверка не требует доверия к посреднику — только к математике. Без дерева Меркла лёгкий клиент тянул бы тысячи транзакций вместо нескольких хэшей.

Merkle-доказательство

Это самое практичное. Чтобы доказать, что ваша транзакция вошла в блок, весь блок показывать не нужно. Достаточно отдать несколько хэшей-соседей по пути от листа к корню — их называют Merkle proof. Кошелёк пересчитывает корень из этих кусочков и сверяет с тем, что стоит в заголовке. Совпало — транзакция на месте. Так же работает Proof of Reserves: вы проверяете свой баланс в дереве биржи, не раскрывая чужих. И так же устроены доказательства с нулевым разглашением в ZK-роллапах.

Коротко

  • Дерево Меркла — хэши, свёрнутые снизу вверх в один корень
  • Листья — хэши транзакций, корень — общий отпечаток блока
  • Изменился один лист — изменился весь корень
  • Merkle proof доказывает, что транзакция в блоке, без загрузки всего блока
  • Схема работает в лёгких кошельках, Proof of Reserves и ZK-роллапах

Остались вопросы? Спросите ИИ-ассистента — объяснит другими словами.

Спросить