A Better MMR Definition



Summary:

The discussion revolves around defining a prunable MMR with grammar that improves on the existing python-proofmarshal by implicitly committing to the number of items in the tree. The definition has four parts, including Maybe(T) to represent pruned and unpruned data, full nodes within 2^n sized trees, partial nodes, and the MMR as being either a full or partial node. With pruning, a rule can be defined to immediately fail any operation (other than checking commitment hashes) that attempts to access pruned data. It is impossible for any operation to determine if data is or isn't pruned. An implementation can keep track of accessed data and prune the rest, which means a proof is just the parts of the data structure accessed during one or more operations. The soundness of the proofs becomes trivial with deterministic validation as it's impossible to construct two different proofs that prove contradictory statements. Checking the hash of the data easily rejects a contradiction implying that the two proofs are different.


Updated on: 2023-06-11T21:38:07.598219+00:00