In web3, building fully onchain applications is the gold standard. Yet, many onchain projects rely on centralized components at one point or another. For permissioned applications, this often means access is managed through offchain systems. A common example is the use of Merkle trees, where the Merkle root is published onchain, while the rest of the tree and its leaves (proofs) resides offchain. While Merkle trees offer a clever solution that maintains a degree of trustlessness, there are ke...