Merkle tree -> MMR -> PMMR
Merkle tree
MMR - Merkle Mountain Range
MMRs, or Merkle Mountain Ranges
MimbleWimble is designed for users to verify the state of the system given only pruned data. To achieve this goal, all transaction data is committed to the blockchain by means of Merkle trees which should support efficient updates and serialization even when pruned.
Also, almost all transaction data (inputs, outputs, excesses and excess proofs) have the ability to be summed in some way, so it makes sense to treat Merkle sum trees as the default option, and address the sums here.
There are four Merkle trees committed to by each block.
The following design is proposed for all trees: a sum-MMR where every node sums a count of its children as well as the data it is supposed to sum. The result is that every node commits to the count of all its children.
Merkle Mountain Ranges [1] are an alternative to Merkle trees [2].
In Grin, a lot of the data that gets hashed and stored in MMRs can eventually be removed.