Contents |
The Espresso GCL state is a partitioned heterogeneous Merkle tree. This means it is a Merkle tree containing several different partitions, each of which represents a different type of state. The root node of the Merkle tree is special, in that each of its children is the root of a different partition of the state. Lower layers of the tree are homogeneous, representing only a single kind of state.
The partitions of the state are:
A universal Merkle tree functioning as a key-value map from account addresses to balances
An append-only Merkle tree accumulating hashes of headers confirmed by the GCL
A universal Merkle tree functioning as a preimage map, mapping hashes of known chain configs to their preimages