Merkle-proof
Криптографическое доказательство, что заданный элемент входит в дерево Меркла с известным корнем. На TON используется в Merkle-обновлениях ячеек, lite-client'ах и cross-chain мостах.
Синонимы: merkle proof, доказательство меркла, merkle inclusion proof
Merkle-proof (inclusion proof) — компактное криптографическое доказательство, что значение X действительно лежит в дереве Меркла, корень которого равен R. Размер пруфа — O(log n) от количества элементов в дереве, что делает его эффективным даже для деревьев с миллионами листьев.
Как работает
Проверяющий знает только корень дерева R. Получатель пруфа предъявляет:
- значение X;
- список хешей «братьев» по пути от листа X до корня (
O(log n)хешей).
Проверяющий рекомбинирует хеш-цепочку — если итог совпадает с R, значит X действительно в дереве. Подделать значение X нельзя, не пересчитав корень (свойство hiding/binding хеша SHA-256).
Применение в TON
- Merkle-обновления ячеек (
merkle_update-cell): один из четырёх служебных типов cell в TVM. Хранит «было/стало» хешей при изменении части хешируемого поддерева — без копирования всего поддерева. - Lite-client синхронизация: lite-клиент не хранит все блоки, но может проверить inclusion любой транзакции в блокчейне TON через merkle-proof от полной ноды.
- Cross-chain мосты: ротатор моста подписывает корни деревьев событий с другой сети; relay-клиенты предъявляют merkle-proof, что нужное событие реально входит в подписанный корень.
Архитектурная ловушка
Merkle-proof доказывает только inclusion в дерево с заданным корнем. Если корни подписываются off-chain без on-chain верификации подписей валидаторов — proof работает математически, но безопасность системы обнуляется: атакующий получает контроль над ротатором → может подписать любой корень → драенить мост. Именно это случилось с мостом TAC в мае 2026.
В отличие от Merkle-дерева (структура данных), Merkle-proof — это компактный сертификат для одного конкретного элемента.