Snarks, la salvezza per la scalabilità di Ethereum
Ethereum

Snarks, la salvezza per la scalabilità di Ethereum

By Aneta Karbowiak - 9 Nov 2018

Chevron down

La scalabilità di Ethereum è il problema maggiore della blockchain, che si sta cercando di risolvere con delle soluzioni come Plasma, Raiden o Sharding, ma pare che la risposta alla scalabilità on-chain venga da un’altra parte grazie agli zk-snarks.

Read this article in the English version here.

Quando si guardano i numeri, è ovvio che Ethereum ha un grosso problema relativo alla scalabilità perché può processare a malapena 15 transazioni per secondo (TpS) mentre Visa 45mila.

Questo è di conseguenza anche un problema per le Dapp che vorrebbero raggiungere milioni di utenti. Considerando questi numeri, infatti, sarebbe pressoché impossibile vedere su Ethereum un social network come Facebook.

Il problema della scalabilità di Ethereum si può attribuire al fatto che ogni transazione che avviene sulla blockchain deve essere effettuata in parallelo da ogni singolo nodo della rete, il che vuol dire che la blockchain non può processare più transazioni che un singolo nodo.

Per migliorare tutto questo, i developer di Ethereum stanno lavorando su varie soluzioni sia on-chain che off-chain, ma la migliore al momento sembrerebbero gli snark.

Le soluzioni per la scalabilità

Sharding è una soluzione on-chain, il che vuol dire che si sta cercando di implementare una tecnologia in modo che non sia richiesto che ogni singolo nodo processi ogni singola operazione.

Il funzionamento del sharding è abbastanza semplice e consiste nel dividere lo stato della storia della blockchain nei pezzi più piccoli chiamati shards. Ogni shard contiene una propria storia dello stato e delle transazioni.

Gli shard possono avere dei sub-shard. La scalabilità deriva dal fatto che ogni nodo deve validare le transazioni del suo shard e non di tutto lo stato della blockchain. Questo tipo di soluzione, però, crea un problema per la comunicazione tra i vari shard.

Ethereum Raiden

State channel o Raiden è invece una soluzione off-chain o layer 2 che non richiede che tutte le transazioni vengano validate da tutti i nodi, ma possono avvenire tra le due parti della transazione.

Basta che le parti raggiungano un consenso e abbiano la prova del transfer degli asset per ricevere un consenso globale. Gli State channel rendono le transazioni più veloci, sono private e non richiedono il gas, ma esiste la possibilità di centralizzazione in quanto alcuni nodi possono aprire più canali degli altri.

Plasma

Plasma è una soluzione off-chain o layer 2 che cerca di prendere il massimo delle operazioni dalla capacità esistente di Ethereum.

Consiste nel creare le catene “figlie” attaccate alla blockchain principale di Ethereum, creando una rete intorno alla blockchain principale o meglio un albero gerarchico.

Grazie a questo metodo, intere applicazioni decentralizzate con migliaia di utenti possono essere ospitate su queste catene “child” senza però sovraccaricare Ethereum.

Nonostante questa soluzione sia attraente poiché ogni catena può avere un proprio meccanismo di consenso, i problemi non mancano: uno è la sicurezza della rete anche se, con il procedere del lavoro, appaiono sempre nuovi ostacoli che rallentano tutto creando diverse varianti del plasma che creano dei problemi di viabilità.

Durante il Devcon4 appena concluso, David Knott, ricercatore di Plasma per OmiseGo ha spiegto che ci sono

“Vincoli di tempo, è orribile per l’interfaccia utente ed è vulnerabile alla congestione della rete”.

Zk-Snarks alla riscossa di scalabilità di Ethereum

Il 22 settembre, Vitalik Buterin ha pubblicato un articolo sull’implementazione degli snark come soluzione valida per la scalabilità di Ethereum.

Nel suo documento scrive che grazie agli zk-snark utilizzati per validare le transazioni in massa sarebbe possibile ottenere circa 500 TPS on-chain ovvero sul layer 1.

Cosa sono zk-snark

Zk-snark è la tecnologia base di Zcash che implica che tra due parti di una transazione, ciascuna sia in grado di provare all’altra che ha un insieme specifico di informazioni, senza però rivelare quali siano tali informazioni.

Snarks scalabilità Ethereum

Con zk-SNARK è possibile quindi provare tramite una prova matematica il possesso di una password senza mai doverla rivelare.

Per quanto criptica possa risultare questa frase, il principio è abbastanza facile da capire ed Eric Gorski del progetto Gnosis che implementa gli snark nel suo progetto, spiega il funzionamento della tecnologia utilizzando la storia della vipera e del pappagallo.

Come funzionano gli snark: la storia della vipera e del pappagallo

La vipera e il pappagallo attraversano la giungla e arrivano sotto un albero di mango. La vipera, cha ha una vista debole, insiste che i mango siano tutti uguali, ma il pappagallo che vede i colori dice che i frutti sono diversi.

Il pappagallo propone un gioco per provare che ha ragione, ma senza rivelare come lo sa.

La vipera deve nascondere due mango a ogni turno e scegliere solo uno da rivelare. Il pappagallo deve quindi decidere se il frutto che vede è quello del round precedente oppure no. L’uccello passa l’esame alla grande perché vede la differenza nei colori mentre la vipera no. La vipera, invece, sa che è vero in quanto è stata lei a scegliere i mango.

Grazie a questa storia sappiamo che una certa affermazione è vera (che i due mango sono diversi) senza però rivelare perché (perché sono di colori diversi).

Se utilizziamo questa “zero-conoscenza” o l’anonimità delle informazioni negli transfer dei token potremo provare la proprietà di un token e inviarlo a qualcun altro senza rivelare il valore del token o l’identità del destinatario.

Come zk-snark migliora la scalabilità

I ricercatori di Ethereum si sono accorti che questa tecnologia, sviluppata soprattutto per le necessità della privacy, è adatta anche alla scalabilità e che potrebbe aiutare Ethereum molto prima che le altre tecnologie finora adottate.

Zk-snarks sono come degli hash crittografici che comprimono le prove computazionali in impronte di piccole dimensioni e facili da verificare anche se il calcolo è stato eseguito off-chain. Così come le firme, zk-snark attestano la validità di una data operazione.

Le prove zk-snark vengono generate off-chain e sono quelle che richiedono tanto potere computazionale e ha senso tenerle off-chain mentre la verifica delle prove avviene on-chain. Questo sistema permette di risparmiare la quantità delle risorse on-chain per ogni operazione il che permette per più operazioni aumentando la scalabilità.

Ci sono vari approcci per gestire la scalabilità con gli zk-snark e consistono nella sincronizzazione della blockchain, client ultra-leggeri, estrazione di codice e archiviazione e gli state channel universali.

Zk-snarks rimuovono la necessità di verificare esplicitamente le firme delle transazioni una alla volta. Una singola zk-snark può attestare tutte le firme di un blocco. Ciò significa che i requisiti di calcolo per la sincronizzazione della blockchain possono essere significativamente ridotti.

Grazie all’estrazione di codice e archiviazione gli zk-snark possono condensare lo stato di un contratto intelligente in un singolo hash, offuscando sia il codice sottostante che lo spazio di archiviazione.

Questa tecnica permette anche il dosaggio del cambiamento dello stato della blockchain il che crea uno state channel. I cambiamenti nello stato vengono registrati sulla blockchain soltanto con una sola verifica zk-snark e la blockchain stessa conserva soltanto un hash di uno smart contract..

Zk-snarks non solo permettono di rafforzare la privacy delle transazioni sulla blockchain, ma aprono il nuovo orizzonte per Ethereum dando la speranza di un nuovo inizio.

Anche Daniel Larimer, il creatore di EOS, ha ammesso che Plasma è un fallimento, ma vede una promessa negli snark:

Aneta Karbowiak
Aneta Karbowiak

Laureata in Biologia all'Università degli Studi di Genova, si è presto interessata allo sviluppo delle applicazioni mobili e dei chat bot. È entrata nel mondo dell'editoria come manager di un sito di sport inglese dove ha gestito un team di dieci persone. Appassionata della tecnologia blockchain e delle criptovalute, ha cominciato a scrivere per Qubithacker.

Utilizziamo i cookie per essere sicuri che tu possa avere la migliore esperienza sul nostro sito. Se continui ad utilizzare questo sito noi assumiamo che tu ne sia felice.