SolMask хранит каждый депозит как лист в append-only дереве Меркла на Poseidon-е, глубиной 24, что позволяет уместить до 16 777 216 депозитов, прежде чем пул придётся ротировать. Корень дерева — это одно 32-байтное значение, которое криптографически фиксирует всю историю депозитов: измени любой лист — корень тоже изменится.
Когда вы выводите средства, ваш zero-knowledge-proof подтверждает, что ваш commitment лежит на какой-то позиции в дереве — не раскрывая, на какой именно. Proof несёт Merkle-путь (соседний хеш на каждом из 24 уровней), и схема снова хеширует вверх, проверяя, что корень совпадает.
В on-chain-состоянии хранится PDA root_history, в которой лежат последние 64 корня; она обновляется при каждом новом депозите. Вывод считается валидным относительно любого из этих недавних корней, поэтому короткое обновление корня не делает невалидным proof, сгенерированный за несколько секунд до этого. Инструкция депозита по факту меняет только frontier (самый правый путь дерева), благодаря чему стоимость каждого депозита остаётся постоянной по глубине дерева.