Vai al contenuto principale

Ultimo aggiornamento pagina: 24 luglio 2024

Danksharding

Il Danksharding è il metodo tramite cui Ethereum diventa una blockchain realmente scalabile ma, per arrivarci, sono necessari diversi aggiornamenti del protocollo. Il Proto-Danksharding è un passaggio intermedio, lungo tale percorso. Entrambi mirano a rendere le transazioni sul Livello 2 quanto più possibile economiche per gli utenti e dovrebbero ridimensionare Ethereum a >100.000 transazioni al secondo.

Cos'è il Proto-Danksharding?

Il proto-danksharding, anche noto come EIP-4844(opens in a new tab), è un modo per i rollup per aggiungere dati più economici ai blocchi. Il nome proviene dai due ricercatori che hanno proposto l'idea: Protolambda e Dankrad Feist. Storicamente, i rollup erano limitati nell'economicità che possono apportare alle transazioni dell'utente dal fatto che pubblicassero le proprie transazioni in CALLDATA.

Ciò è costoso perché elaborato da tutti i nodi di Ethereum e risiede per sempre sulla catena, anche se i rollup necessitano dei dati soltanto per un breve periodo di tempo. Il Proto-Danksharding introduce i blob di dati, inviabili e collegabili ai blocchi. I dati in questi blob non sono accessibili all'EVM e sono eliminati automaticamente dopo un periodo di tempo fisso (impostato a 4096 epoche al momento di scrittura, o circa 18 giorni). Ciò significa che i rollup possono inviare i propri dati in modo molto più economico, trasferendo i risparmi agli utenti finali sotto forma di transazioni più economiche.

Come sono verificati i dati dei blob?

I rollup pubblicano le transazioni che eseguono nei blob di dati. Inoltre, pubblicano un "impegno" ai dati. Lo fanno fissando una funzione polinomiale ai dati. Questa è valutabile su vari punti. Ad esempio, se definiamo una funzione estremamente semplice f(x) = 2x-1, possiamo valutarla per x = 1, x = 2, x = 3, che danno i risultati 1, 3, 5. Un dimostratore applica la stessa funzione ai dati, valutandoli sugli stessi punti. Se i dati originali vengono modificati, la funzione non sarà identica e quindi i valori non sono valutati in ciascun punto. In realtà, l'impegno e la prova sono più complicati poiché sono avvolti in funzioni crittografiche.

Cos'è KZG?

KZG sta per Kate-Zaverucha-Goldberg, i nomi dei tre autori originali(opens in a new tab) di uno schema che riduce un blob di dati a un piccolo "impegno" crittografico(opens in a new tab). Il blob di dati inviato da un rollup dev'essere verificato per assicurarsi che il rollup si stia comportando correttamente. Ciò richiede la ri-esecuzione delle transazioni nel blob da un dimostratore per verificare che l'impegno sia valido. Questo equivale, concettualmente, al metodo con cui i client d'esecuzione verificano la validità delle transazioni di Ethereum sul livello 1 utilizzando le prove di Merkle. KZG è una prova alternativa che adatta un'equazione polinomiale ai dati. L'impegno valuta la polinomiale a determinati punti di dati segreti. Un dimostratore si adatterebbe alla stessa polinomiale sui dati, valutandola agli stessi valori e verificando che i risultati corrispondano. Questo è un modo di verifica dei dati compatibile con le tecniche di conoscenza zero utilizzate da alcuni rollup ed, eventualmente, da altre parti del protocollo di Ethereum.

Cos'è la cerimonia KZG?

La cerimonia KZG era un metodo, per molte persone da tutta la community di Ethereum, di generare collettivamente una stringa casuale segreta di numeri, utilizzabile per verificare dei dati. È molto importante che tale stringa di numeri non sia nota e non possa essere ricreata da nessuno. Per assicurarlo, ogni partecipante alla cerimonia ha ricevuto una stringa dal partecipante precedente. Quindi, creava dei nuovi valori casuali (ad esempio, consentendo al proprio browser di misurare il movimento del proprio mouse) e li mischiava con il valore precedente. Poi, inviava il valore al partecipante successivo e lo eliminava dalla propria macchina locale. Finché una persona nella cerimonia lo faceva onestamente, il valore finale non poteva essere noto a un utente malevolo.

La cerimonia KZG dell'EIP-4844 era aperta al pubblico e decine di migliaia di persone hanno partecipato per aggiungere la propria entropia (casualità). In totale ci sono stati oltre 140.000 contributi, rendendola la più grande cerimonia al mondo nel suo genere. Affinché la cerimonia sia compromessa, il 100% di questi partecipanti avrebbe dovuto essere attivamente disonesto. Dalla prospettiva dei partecipanti, se sanno di essere onesti, non è necessario fidarsi di nessun altro, poiché sanno di aver protetto la cerimonia (soddisfacendo individualmente il requisito del partecipante onesto "1 di N").

Né il Danksharding né il Proto-Danksharding seguono il tradizionale modello di “frammentazione” (sharding) che mira a dividere la blockchain in più parti. Le catene di frammenti non fanno più parte della tabella di marcia. Invece, il Danksharding utilizza il campionamento dei dati distribuiti tra blob, per ridimensionare Ethereum. Ciò è molto più semplice da implementare. Questo modello, talvolta, è stato indicato come "frammentazione dei dati".

Cos'è il Danksharding?

Il Danksharding è la piena realizzazione del ridimensionamento del rollup, avviata con il Proto-Danksharding. Il Dankshaarding comporterà enormi quantità di spazio su Ethereum, dove i rollup potranno riversare i dati compressi delle loro transazioni. Ciò significa che Ethereum potrà supportare centinaia di rollup individuali con facilità, rendendo realtà milioni di transazioni al secondo.

Funziona espandendo i blob collegati ai blocchi da sei (6) nel proto-danksharding, a 64 nel Danksharding completo. Il resto delle modifiche necessarie sono tutti gli aggiornamenti al metodo di operazione dei client del consenso, per consentire loro di gestire i nuovi, grandi blob. Svariate di queste modifiche sono già sulla tabella di marcia per altri scopi, indipendenti dal Danksharding. Ad esempio, il Danksharding richiede la separazione del propositore e del costruttore, per essere implementata. Questo è un aggiornamento che separa le mansioni di costruzione e proposta dei blocchi, tra validatori differenti. Similmente, il campionamento della disponibilità dei dati è necessario per il Danksharding, ma è anche necessario per lo sviluppo di client molto leggeri, che non memorizzano molti dati storici ("client privi di stato").

Stato attuale

Il Danksharding completo dista svariati anni. Nel mentre, la cerimonia KZG si è conclusa con oltre 140.000 contributi e l'EIP(opens in a new tab) per il Proto-Danksharding è maturata. Questa proposta è stata implementata integralmente in tutte le reti di prova, ed è stata attivata sulla Rete Principale con l'aggiornamento di rete Cancun-Deneb ("Dencun"), a marzo 2024.

Letture consigliate

Questo articolo è stato utile?