Merkle Patricia Trie

MerkleツリーとPatriciaトライを組み合わせたイーサリアムのハイブリッドデータ構造。

Merkle [Tree](/ja/terms/merkle-tree)(データ整合性の検証用)とPatricia Trie(効率的なキー値検索用)を組み合わせています。これにより、イーサリアムはグローバルな状態を改ざん防止かつ迅速にアクセスできる方法で保存できます。すべてのブロックヘッダーにルートハッシュが含まれます。

        graph LR
  Center["Merkle Patricia Trie"]:::main
  Rel_ethereum["ethereum"]:::related -.-> Center
  click Rel_ethereum "/terms/ethereum"
  Rel_merkle_tree["merkle-tree"]:::related -.-> Center
  click Rel_merkle_tree "/terms/merkle-tree"
  Rel_data_structure["data-structure"]:::related -.-> Center
  click Rel_data_structure "/terms/data-structure"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5歳でもわかるように説明

Generated ELI5 content

🤓 Expert Deep Dive

Generated expert content

❓ よくある質問

Why does Ethereum use this instead of a regular Merkle Tree?

Because Ethereum's state changes constantly, and a Patricia Trie is more efficient for updating and looking up specific keys.

Is this different from a Merkle Tree?

Yes, it's a hybrid. It adds the 'path' compression of Patricia Tries to standard Merkle Trees.

Where is it stored?

It is stored in Ethereum's LevelDB database, with the root hash included in every block header.

📚 出典