К основному содержанию
T TON Adoption
← Словарь
NODE/03 · Term

Pruned Cell

Cell в TON, у которого вместо реальных дочерних cell-ов хранятся только их хеши. Используется в Merkle-доказательствах и lite-server proofs.

Синонимы: pruned branch, обрезанная cell, exotic cell

Pruned Cell — это особый («exotic») тип cell в TON, у которого вместо реальных дочерних cell-ов хранится только их хеш. Это компактный способ сослаться на дерево cell-ов, не передавая всё дерево целиком. Pruned-cell-ы — основа Merkle-доказательств в TON.

Зачем нужны

Lite-серверы и lite-клиенты не могут передавать полное дерево cell-ов состояния каждый раз — это огромный объём. Вместо этого они шлют частичное дерево: те cell-ы, которые реально нужны для ответа, и pruned-cell-ы для всех остальных веток. Клиент проверяет хеш корня и убеждается, что присланные данные действительно из настоящего стейта.

Это та же идея, что Merkle-proofs в Bitcoin/Ethereum, но на уровне cell-дерева.

Структура

Pruned-cell — это cell с особым «exotic»-типом и фиксированным телом:

  • Уровень pruning (несколько байтов).
  • Хеш дочернего cell, который был «обрезан» (32 байта).
  • Высота в исходном дереве.

При вычислении хеша дерева TVM подставляет хеш из pruned-cell вместо «настоящего» хеша поддерева — и итоговый корневой хеш совпадает с настоящим.

Где встречаются

  • Lite-server proofs. Когда лайт-клиент запрашивает баланс jetton-кошелька, сервер шлёт только нужный cell-путь плюс pruned-cell-ы для соседних веток.
  • Block proofs. Доказательства принадлежности транзакции конкретному блоку.
  • Cross-chain bridges. Pruned-cell-ы используются для компактного доказательства состояния одной цепи в другой.

Обычному dApp работать с pruned-cell-ами напрямую не приходится — это уровень инфраструктуры (лайт-клиенты, индексеры, бриджи). Но понимать механизм полезно: именно благодаря pruned-cell-ам клиент TON может верифицировать данные, не скачивая весь стейт.

См. также