You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Use sparse merkle tree as state storage instead of patricia merkle trie used now.
SMT described here https://eprint.iacr.org/2016/683.pdf has several benefits with regard to proof size and usage:
use log(n)*hash_size bytes for proof
easy leaf absence proof
simple map based implementation
Implementation details:
SMT is binary tree which is full and has predefined slots for all possible leafs, it means that it has 2^n leafs and 2^n(2^n - 1) nodes.
Leafs are indexed sequentially with integers from 0 to 2^n - 1.
Not leaf nodes contain hashes of it's siblings keccak256(append(left.value, right.value))
Nodes are indexed with two integers which determine it's subtree: minor - leftmost leaf, major - leftmost leaf of its right sibling
empty not leaf node has []byte{0} as it's hash when needed for hash calculation
2. Implement true snapshot state management.
state tree repeats blockchain structure
for each block only needed accounts are stored
from newest to oldest block lookup for accounts is implemented
The text was updated successfully, but these errors were encountered:
1. Use sparse merkle tree as state storage instead of patricia merkle trie used now.
SMT described here https://eprint.iacr.org/2016/683.pdf has several benefits with regard to proof size and usage:
Implementation details:
keccak256(append(left.value, right.value))
[]byte{0}
as it's hash when needed for hash calculation2. Implement true snapshot state management.
The text was updated successfully, but these errors were encountered: