ZK & Compressionmerkle-proof
Merkle Proof
A Merkle proof is the minimal set of sibling node hashes (the proof path) along the branch from a specific leaf to the tree root, allowing anyone to independently verify that a given leaf is part of a Merkle tree by recomputing the root from the leaf hash and the sibling hashes without needing any other tree data. In Solana's state compression, every compressed account or compressed NFT interaction requires the caller to supply a valid Merkle proof; the on-chain program hashes the proof against the current root stored in the Concurrent Merkle Tree account to confirm inclusion before executing the state change. Proof size scales linearly with tree depth (e.g., a depth-20 tree requires up to 20 sibling hashes, each 32 bytes), so the canopy is used to pre-store upper-level nodes on-chain to reduce the proof data that must be passed in transactions.
Related terms
2ZK & Compression
Concurrent Merkle Tree
A Concurrent Merkle Tree (CMT) is a specialized on-chain Solana data structure that allows multiple state updates to the...
ZK & Compression
Merkle Tree
A Merkle tree is a binary hash tree in which every leaf node contains a cryptographic hash of a data block, and every no...