Il creatore di Ethereum Vitalik Buterin ha annunciato il prossimo passo della rete, che consisterà nel ridurre il peso extra. Lo chiama "L'epurazione".
Nel quinto post del blog della sua serie, Vitalik ha presentato un piano spietato per eliminare il gonfiore della blockchain, eliminare le funzionalità ridondanti e semplificare il protocollo. La rete di Ethereum è intasata di transazioni obsolete e complicate funzionalità legacy.
La soluzione? Vitalik vuole che la cronologia e i dati sullo stato vengano raccolti, che le funzionalità del protocollo siano semplificate e che i nodi siano più facili da eseguire. Questa decisione aggressiva è una risposta alla rapida crescita dei dati di Ethereum.
Al momento, un nodo Ethereum completo richiede oltre 1,1 terabyte di spazio di archiviazione solo per il client di esecuzione, con una quantità maggiore per i dati di consenso.
Man mano che le transazioni e i conti si accumulano, lo spazio di archiviazione deve crescere, creando colli di bottiglia. Senza modifiche, Ethereum rischia di diventare lento, con i nuovi clienti che devono affrontare tempi di sincronizzazione dolorosamente lunghi solo per aggiornarsi con la catena.
Scadenza della cronologia: riduzione del carico di memoria di Ethereum
Invece che ogni nodo contenga ogni transazione mai registrata, Vitalik suggerisce che i nodi conservino solo i dati recenti. I blocchi storici, le transazioni più vecchie e le ricevute vengono distribuiti tra i nodi in piccole porzioni.
Per Vitalik, i dati storici dovrebbero funzionare come una rete torrent: i nodi memorizzano bit di dati, garantendo la disponibilità dei dati senza che un nodo contenga tutto. "Stiamo parlando di centinaia di gigabyte di vecchi blocchi che si accumulano ogni anno", ha detto.
Il modello attuale, con i nodi che contengono tutti i dati, è già stato modificato. I blocchi di consenso, fondamentali per la prova di partecipazione, vengono archiviati per sei mesi, mentre i blob, ovvero blocchi di dati sulle transazioni più grandi, scompaiono dopo 18 giorni.
La nuova proposta di Vitalik, EIP-4444, spinge per un limite di stoccaggio di un anno su blocchi e ricevute storici. Il suo obiettivo finale? Una rete distribuita in cui ciascun nodo memorizza solo una frazione della storia, utilizzando prove Merkle e codici di cancellazione per garantire l'accuratezza.
Questa archiviazione della cronologia distribuita non ridurrà l'affidabilità dei dati di Ethereum. Vitalik sostiene che aumentando il numero dei nodi, le copie dei dati si moltiplicheranno attraverso la rete, rendendo ogni frammento di storia ben supportato.
La codifica di cancellazione aggiungerà resilienza, in modo simile alla tecnologia che aiuta i BLOB a rimanere disponibili per il campionamento dei dati. Vitalik indica anche la rete del portale e i metodi peer-to-peer come possibili soluzioni, consentendo a Ethereum di gestire la diffusione dei propri dati senza fare affidamento sull'archiviazione centralizzata.
Scadenza dello stato: limitazione della permanenza dei dati
Al di là della storia, l’epurazione di Vitalik include una bestia più complicata: la “scadenza dello stato”. A differenza della cronologia, i dati statali (cose come saldi dei conti, nonce e archiviazione di contratti intelligenti) sono più difficili da scadere. Una volta creato, un oggetto statale (come un conto con ETH o lo slot di archiviazione di un contratto) rimane accessibile a qualsiasi transazione.
E con ogni oggetto, i dati di Ethereum crescono. Per contenere questo, Vitalik propone la scadenza automatica, eliminando i dati che non sono stati toccati di recente. Il trucco sta nel bilanciare la scadenza dello stato con la permanenza di Ethereum.
Crede che gli utenti dovrebbero poter “scomparire per cinque anni, tornare e continuare ad accedere ai propri fondi”. Questo sistema ha bisogno di efficienza: senza calcoli aggiuntivi o modelli complessi per gli sviluppatori.
Ethereum ha provato varie idee come il “blockchain rent”, che chiedeva agli utenti di mantenere in vita i propri dati, e la “regenesis”, che tentava di reimpostare la blockchain per ridurre i dati. Nessuno dei due è decollato.
Due nuove proposte mirano al gonfiamento dello Stato. Innanzitutto, c’è la “scadenza statale parziale”. La rete dividerebbe i dati in blocchi, memorizzando solo quelli recenti e preservando gli “stub” (piccoli frammenti di dati inattivi) per dimostrarne l’esistenza.
Se un blocco viene eliminato, gli utenti possono ripristinarlo con la prova dei dati passati. La proposta progettuale di Vitalik, EIP-7736, utilizza alberi Verkle e un modello “stelo e foglia” per raggruppare i dati. Tutti i dati non modificati per sei mesi vengono rimossi, lasciando solo uno stub da ripristinare quando necessario.
La seconda idea è la scadenza basata sul periodo dell'indirizzo, che divide gli oggetti dello stato in base al tempo. Ogni account ha un "periodo di indirizzo" e vengono archiviati solo i dati dei due periodi più recenti.
Se qualcuno vuole vecchi dati, invierà una prova Merkle per ripristinarli. Questa configurazione basata sul periodo richiederà la modifica dei formati degli indirizzi, espandendo l'attuale formato a 20 byte per includere numeri di versione e periodi.
Vitalik suggerisce inoltre la contrazione dello spazio degli indirizzi per mantenere la compatibilità. La sfida diventerà quindi assicurarsi che gli utenti comprendano e si fidino di questo sistema periodico senza sacrificare la promessa fondamentale di disponibilità di Ethereum.
Pulizia delle funzionalità: riduzione della complessità del codice di Ethereum
La fase finale dell'eliminazione tocca la complessità del protocollo. Vitalik afferma: "Ogni nuova funzionalità rende Ethereum più difficile da usare, ma rimuovere qualsiasi cosa è un incubo". L'esempio più famigerato è SELFDESTRUCT, un codice operativo che consente agli utenti di eliminare l'archiviazione del contratto.
Originariamente consentiva la compensazione volontaria dello stato, ma è per lo più inutilizzato e rischia attacchi di negazione del servizio. L'hard fork Dencun di Ethereum ha indebolito il codice operativo e Vitalik prevede di rimuoverlo completamente presto.
Altre caratteristiche esagerate includono vecchi tipi di transazioni, formati di dati ridondanti e una configurazione di protocollo endianness misto. Queste stranezze rendono lo sviluppo confuso e Ethereum più difficile da aggiornare.
L'elenco di pulizia di Vitalik include anche la transizione dei formati di dati da RLP a SSZ, la semplificazione delle regole sul gas per gestire meglio le risorse dei blocchi e la rimozione di precompilazioni inutilizzate come RIPEMD160, MODEXP e BLAKE. Supporta inoltre il passaggio di Ethereum a un modello client stateless, che eliminerebbe gli oneri di archiviazione per la maggior parte dei nodi.
Alcune di queste modifiche richiederanno l'astrazione dell'account, consentendo agli utenti di gestire tipi di transazioni legacy tramite il "codice EVM dell'account predefinito". Questo, afferma Vitalik, semplificherà la Ethereum Virtual Machine (EVM) riducendo le dimensioni del codice. A lungo termine, l’EVM stesso potrebbe ottenere un aggiornamento.
Spiega che gli sviluppatori di Ethereum stanno prendendo in considerazione un nuovo modello di esecuzione come RISC-V o Cairo, o eventualmente utilizzando un EVM Object Format (EOF) per standardizzare le regole del codice.
EOF modifica le regole del gas e vieta alcune istruzioni per consentire aggiornamenti modulari, aumentando la scalabilità di Ethereum. Secondo quanto riferito, questo formato consentirà agli sviluppatori di apportare miglioramenti incrementali, aiutando in definitiva Ethereum a rimanere snello.
Ma Vitalik ha dato un'altra opzione. Dice : "Una strategia di semplificazione di Ethereum più radicale è quella di mantenere il protocollo così com'è, ma spostare gran parte di esso dall'essere caratteristiche del protocollo all'essere codice contrattuale."