Tralasciando la parte della rete, potremmo dire che Ethereum è una macchina a stati dove le transazioni modificano gli stati sulla rete Ethereum. Uno stato può essere espresso come una coppia chiave-valore. Anche se ci sono diversi modi di rappresentare una coppia chiave-valore, la specifica di Ethereum definisce il Modified Merkle Patricia Trie (a.k.a MPT) come metodo per salvare gli stati.
Fondamentalmente, MPT è una combinazione di Patricia trie e Merkle tree, con alcune ottimizzazioni aggiuntive che si adattano alle caratteristiche di Ethereum. Quindi, una comprensione del Patricia trie e dell’albero di Merkle dovrebbe precedere la comprensione di MPT.
Patricia trie è una struttura di dati che è anche chiamata albero dei prefissi, albero radix o trie. Il trie usa una chiave come percorso in modo che i nodi che condividono lo stesso prefisso possano anche condividere lo stesso percorso. Questa struttura è più veloce nel trovare i prefissi comuni, è semplice da implementare e richiede poca memoria. Perciò, è comunemente usata per implementare le tabelle di routing, sistemi che sono usati in macchine con basse specifiche come il router.
Merkle Tree
Merkle tree è un albero di hash. I nodi foglia immagazzinano dati. I nodi padre contengono l’hash dei loro figli e il valore hash della somma degli hash dei loro figli. Poiché tutti i nodi tranne i nodi foglia contengono un hash, l’albero di Merkle è anche conosciuto come un albero hash.