# Storage ###### tags: `Engeneering` ## State Tree ユーザやオンチェーン上にあるステートを Verkle Tree で保存する。 次のような階層構造で分けて保存する。 - [ ] AssetStorageEOA - [ ] UserState - [ ] AssetStorageContract - [ ] CommonlySharedStorage 参考図: ```graphviz digraph hierarchy { nodesep=1.0 // increases the separation between nodes node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour edge [color=Blue, style=solid] //All the lines look like this Root->{AssetStorage_EOA AssetStorage_Contract CommonlySharedStorage} [label = "key_storage"]; AssetStorage_EOA -> {user1_root, user2_root, user3_root} [label = "key_user"] user1_root -> {value0, value1} [label = "key_hashed"] user2_root -> {value2, value3} [label = "key_hashed"] user3_root -> {value4} [label = "key_hashed"] AssetStorage_Contract -> {value5, value6} [label = "key_hashed_with_owner"] CommonlySharedStorage -> {value7, value8} [label = "key_hashed"] } ``` ### User State - [ ] StateTree - [ ] StateDiffTree ## Gloabl State Diff Tree 全ての StateDiff を保存する SMT. その StateDiff の実態と消費したか否かが入る。 ## Ontime Address SMT 使用した onetime address を保存する SMT. ## Cotract Address Mapping L2の資産をL1に引き出すときに、L2のコントラクトのアドレスからL1のコントラクトアドレスやL1ネイティブな資産家どうかを引けるようなMapping