Proposed Verkle tree scheme for Ethereum state

Cryptocurrency News and Public Mining Pools

Proposed Verkle tree scheme for Ethereum state

As Verkle tree development is progressing (see this doc on Verkle tries and this doc on state expiry and statelessness paths, one annoying but still necessary thing to agree on is exactly how the accounts, code and storage will be stored in the state. The current Ethereum protocol does not do a very good job of this: the state structure is a tree of headers where each header contains two values, a hash of a bytearray and the hash of another trie. This requires a lot of custom logic for dealing with downloading the state, verifying state branches, etc.

It would be ideal to just represent accounts, code, storage and any other needed data by mapping them to keys in a single trie (eg. a simple approach would be to store storage slot X of account Y at location hash(X+Y)). This would be a significant simplification of both the consensus layer protocol and protocols that live on top (eg. state syncing and light client witness generation). It would also make it easier to migrate to other tree structures in the future.

Here's a proposal for how to do this that's fairly elegant and satisfies many desirable properties:

submitted by /u/vbuterin
[link] [comments]