SolMask legt jeden Deposit als Blatt in einem append-only Poseidon-Merkle-Baum der Tiefe 24 ab, was bis zu 16.777.216 Deposits Platz bietet, bevor der Pool rotiert werden muss. Die Wurzel des Baums ist ein einzelner 32-Byte-Wert, der sich kryptografisch auf die gesamte Deposit-Historie festlegt: Ändert sich auch nur ein Blatt, ändert sich die Wurzel.
Beim Withdraw bestätigt dein Zero-Knowledge-Beweis, dass dein Commitment an irgendeiner Position im Baum erscheint — ohne preiszugeben, an welcher. Der Proof führt einen Merkle-Pfad mit (einen Geschwister-Hash auf jeder der 24 Ebenen), und der Circuit hasht nach oben durch, um zu bestätigen, dass die Wurzel passt.
On-chain führen wir eine root_history-PDA, die die letzten 64 Wurzeln vorhält und bei jedem neuen Deposit aktualisiert wird. Ein Withdraw ist gegen jede dieser jüngsten Wurzeln gültig, sodass eine kurzfristige Root-Aktualisierung einen Proof, der wenige Sekunden zuvor erzeugt wurde, nicht ungültig macht. Was die Deposit-Instruktion tatsächlich mutiert, ist die Frontier (der rechte Pfad des Baums); das hält die Kosten pro Deposit konstant in der Baumtiefe.