【完全保存版】ZK CompressionのState Treeとは
こちらの記事は、こちらの公式の記事を翻訳・編集したものです。
1 State Treeとは
プロトコルは、複数の状態ツリー(State Tree)に圧縮された状態を保存します。
状態ツリーは、データをツリー構造に整理するバイナリのマークリツリーであり、各親ノードはその二つの子ノードのハッシュ値になります。
これにより、ツリー内のすべてのノード(リーフとも呼ばれる)の整合性を効率的に暗号的に検証できる、唯一のルートハッシュが生成されます。
2 圧縮アカウントのハッシュについて
各圧縮アカウントのハッシュは、そのような状態ツリーのリーフとして保存されます。
各圧縮アカウントハッシュには、状態ツリーの対応するオンチェーンアカウント(すなわち、状態ツリーハッシュ)の公開鍵と、そのツリー内での圧縮アカウントの位置(すなわち、leafIndex)が含まれていることに注意してください。
これにより、各アカウントハッシュがグローバルに一意であることが保証されます。
各状態ツリーには、ツリーの最終ルートハッシュとその他のメタデータのみを保存する対応するオンチェーンの状態ツリーアカウントがあります。
ツリーの最終ルートハッシュをオンチェーンに保存することで、プロトコルはツリー内の任意のリーフ(圧縮アカウント)の有効性を効率的に検証することができます。
このようにして、元の状態はSolanaの台帳スペースにおいて、より安価なcalldataとして保存される一方で、Solanaのセキュリティ保証を維持することができます。
いいなと思ったら応援しよう!
サポートをしていただけたらすごく嬉しいです😄
いただけたサポートを励みに、これからもコツコツ頑張っていきます😊