Merkle Sum Tree
A Merkle Sum Tree (MST) is a variant of a Merkle tree which not only combines the pairwise hashes of its leaves and nodes but also the sum of an additional amount field in its leaves and nodes. Both, hashes and sums of the child nodes/leaves are used as input for the hashing function to create the parent node.
This data structure is helpful to commit to the value or amount of a piece of data. In Taproot Assets, a Merkle sum tree is used to prevent inflation of assets. That means, they hinder malicious actors to arbitrarily create more assets than planned, as the total amount of assets is stored in the root.
With this tool, you can figure out how a Merkle sum tree works.
Merkle Sum Tree Tool
This tool allows you to create a Merkle Sum Tree. Nodes are double hashed
and prefixed with the number of child nodes. You can add new nodes (hashes
and leaves) to the Merkle Sum Tree and delete them from the Merkle Sum Tree
by hovering over a node and selecting the preferred option. Note that
deleting a parent node will also delete all of its child nodes. The input
accepts hexadecimal values (with or without a 0x prefix). The output is an
array of data.
Below, you can create a Merkle Sum Tree from a given Array by inserting
the Array into the input and clicking the button. The Array should contain
the elements in the order in which they should be hashed, and should have
the format of {"output": "Value", "value": 0}.
MAST Treearray: