Passaggio al livello 2
Livello 2 Γ¨ un termine collettivo per indicare soluzioni progettate per aiutare un'applicazione a gestire transazioni al di fuori della catena Ethereum principale (livello 1). La velocitΓ delle transazioni ne risente quando la rete Γ¨ molto carica, e l'esperienza utente puΓ² risultare poco piacevole per alcuni tipi di dapp. Man mano che la rete diventa piΓΉ congestionata, il prezzo del carburante sale perchΓ© i mittenti delle transazioni mirano a superarsi a vicenda. Questo puΓ² rendere l'utilizzo di Ethereum parecchio dispendioso.
Prerequisiti
Dovresti avere una buona conoscenza di tutti gli argomenti fondamentali. L'implementazione di soluzioni di livello 2 Γ¨ in corso perchΓ© la tecnologia Γ¨ meno collaudata.
PerchΓ© serve il livello 2?
- Alcuni casi di utilizzo, come i giochi su blockchain, non hanno senso con gli attuali tempi di transazione
- PuΓ² essere inutilmente costoso utilizzare applicazioni blockchain
- Ogni aggiornamento per la scalabilitΓ non deve essere fatto a scapito della decentralizzazione della sicurezza. Il livello 2 si basa su Ethereum.
Tipi di soluzioni di livello 2
La maggior parte delle soluzioni di livello 2 Γ¨ incentrata su un server o su un cluster di server, ognuno dei quali puΓ² essere denominato nodo, validatore, operatore, sequenziatore, block producer o simile. A seconda dell'implementazione, questi nodi di livello 2 possono essere gestiti da aziende, dalle entitΓ che li usano, da operatori terzi o da un grande gruppo di individui (similmente alla rete principale). Parlando in generale, le transazioni sono inviate a questi nodi di livello 2 anzichΓ© essere sottoposte direttamente al livello 1 (rete principale); l'istanza di livello 2 raggruppa poi i blocchi prima di ancorarli al livello 1. In seguito vengono confermati al livello 1 e non possono essere alterati. I dettagli dell'esecuzione vera e propria variano notevolmente tra le varie tecnologie e implementazioni di livello 2.
Un'istanza specifica di livello 2 puΓ² essere aperta e condivisa da molte applicazioni o puΓ² essere distribuita da un'azienda e dedicata esclusivamente al supporto della sua applicazione.
Rollup
I rollup sono soluzioni che raggruppano (o "fanno roll up") transazioni sidechain in una singola transazione e generano una prova crittografica, detta SNARK (succinct non-interactive argument of knowledge). Soltanto questa prova viene salvata nella catena principale.
Le sidechain sono blockchain indipendenti e compatibili con Ethereum.
In altre parole, i rollup significano che lo stato e l'esecuzione sono gestiti nelle sidechain: verifica delle firme, esecuzione del contratto ecc. La catena principale di Ethereum (livello 1) memorizza solo i dati delle transazioni.
Le soluzioni di rollup richiedono relayer che abbiano fatto staking con una partecipazione nel contratto di rollup. Questo li incentiva a trasmettere i rollup con precisione.
Utile per:
- ridurre le commissioni per gli utenti
- partecipazione aperta
- maggiori volumi delle transazioni e maggiore rapiditΓ
Ci sono due tipi di rollup che diversi modelli di sicurezza:
- Zero knowledge: esegue il calcolo esternamente alla catena e invia una prova di validitΓ alla catena
- Optimistic: presume che le transazioni siano valide di default ed esegue il calcolo, attraverso una prova di frode, solo in caso di contestazione
Rollup di tipo zero knowledge
I rollup di tipo zero knowledge, detti anche ZK-Rollup, raggruppano centinaia di trasferimenti esternamente alla catena in una sola transazione tramite uno Smart Contract. Dai dati inviati, lo Smart Contract puΓ² verificare tutti i trasferimenti inclusi. Questa Γ¨ detta prova di validitΓ .
Con uno ZK rollup, convalidare un blocco Γ¨ piΓΉ veloce ed economico perchΓ© sono inclusi meno dati. Per convalidare una transazione, non servono tutti i dati relativi, ma solo la prova.
La sidechain dove si verificano gli ZK rollup può essere ottimizzata per ridurre ulteriormente le dimensioni delle transazioni. Ad esempio, un account è rappresentato da un indice anziché da un indirizzo, riducendo la transazione da 32 byte a soli 4 byte. Le transazioni inoltre sono scritte su Ethereum come dati di chiamata, riducendo così il carburante.
Pro e contro
Pro | Contro |
---|---|
Nessun ritardo perchΓ© le prove sono giΓ considerate valide quando vengono inviate alla catena principale. | Limitato a trasferimenti semplici, non compatibile con l'EVM. |
Meno vulnerabile ad attacchi economici rispetto agli Optimistic rollup. | Le prove di validitΓ sono ardue da calcolare, non ne vale la pena per applicazioni con poca attivitΓ sulla catena. |
Tempo di finalitΓ soggettivo piu' lento (10-30 min per generare una prova ZK) (ma piΓΉ veloce rispetto a finalitΓ piena, perchΓ© non ci sono ritardi di disputa come negli optimistic rollup). |
Utilizzano i rollup ZK
Optimistic rollups
Gli optimistic rollup usano una sidechain parallela alla catena principale di Ethereum. Possono apportare miglioramenti alla scalabilitΓ perchΓ© non eseguono calcoli di default. Al contrario, dopo una transazione, propongono il nuovo stato alla rete principale. Oppure "notarizzano" la transazione.
Con gli optimistic rollup, le transazioni sono scritte nella catena principale Ethereum come dati di chiamata, ottimizzando ulteriormente le transazioni in quanto costo del carburante risulta ridotto.
Siccome il calcolo Γ¨ la parte lenta e costosa di Ethereum, gli optimistic rollup possono offrire miglioramenti alla scalabilitΓ pari a 10-100x, a seconda della transazione. Il numero aumenterΓ ancora di piΓΉ con l'introduzione delle shard chain, con l'upgrade a Eth2. Ci saranno infatti ancora piΓΉ dati disponibili nel caso di contestazione di una transazione.
Disputa di transazioni
Gli optimistic rollup non calcolano veramente la transazione, quindi c'Γ¨ bisogno di un meccanismo che assicuri che le transazioni siano legittime e non fraudolente. E qui entrano in gioco le prove di frode. Se qualcuno nota una transazione fraudolenta, il rollup esegue una prova di frode e avvia il calcolo della transazione utilizzando i dati di stato disponibili. Questo significa che potrebbero verificarsi attese piΓΉ lunghe per la conferma della transazione rispetto a un rollup ZK, perchΓ© la transazione potrebbe essere contestata.
Il carburante che serve per eseguire il calcolo della prova di frode viene rimborsato. Ben Jones di Optimism descrive così il metodo in uso:
"chiunque sia in grado di eseguire un'azione che qualcuno dovrΓ provare come fraudolenta per proteggere i propri fondi richiede l'invio di un'obbligazione. In pratica, si bloccano alcuni ETH con la dichiarazione "Giuro di dire la veritΓ "... Se non dico la veritΓ e la frode viene confermata, il denaro sparisce (slashing). Non solo viene eseguito lo slashing di parte del denaro, ma un'altra parte pagherΓ il carburante necessario per effettuare la prova di frode"
Quindi si viene rimborsati per aver provato la frode.
Pro e contro
Pro | Contro |
---|---|
Tutto quello si puΓ² fare con il livello 1 di Ethereum, si puΓ² fare anche con gli optimistic rollup perchΓ© sono compatibili con EVM e Solidity. | Tempi di attesa lunghi per le transazioni sulla catena a causa di potenziali contestazioni di frode. |
Tutti i dati della transazione sono memorizzati sulla catena di livello 1, il che significa sicurezza e decentralizzazione. | Potenzialmente vulnerabile agli attacchi se il valore di un optimistic rollup supera la quantitΓ dell'obbligazione di un operatore. |
Utilizzano gli optimistic rollup
Canali
I canali consentono ai partecipanti di negoziare x
volte esternamente alla catena inviando poi solo due transazioni alla rete sulla catena. Questo consente volumi di transazioni estremamente elevati
Utile per:
- molti aggiornamenti di stato
- situazioni in cui il numero di partecipanti Γ¨ noto in anticipo
- situazioni in cui i partecipanti sono sempre disponibili
I partecipanti devono bloccare una parte dello stato di Ethereum, come ad esempio un deposito ETH, in un contratto multisig. Un contratto multisig Γ¨ un tipo di contratto che richiede le firme (e quindi l'accordo) di chiavi private multiple per poter essere eseguito.
Il blocco dello stato in questo modo Γ¨ la prima transazione e apre il canale. I partecipanti possono poi eseguire transazioni esternamente alla catena, rapidamente e liberamente. Quando l'interazione Γ¨ terminata, viene inviata sulla catena una transazione finale, sbloccando lo stato.
Canali di stato
Canale di stato Tris:
Viene creato uno Smart Contract multisig "Giudice" sulla catena principale Ethereum, che conosce le regole del Tris e puΓ² identificare Alice e Bob come due giocatori della partita. Questo contratto contiene un premio di 1 ETH.
In seguito, Alice e Bob iniziano a giocare, aprendo il canale di stato. Ogni mossa crea una transazione esternamente alla catena che contiene un "nonce". Significa semplicemente che potremo sempre vedere in seguito in quale ordine sono state eseguite le mosse.
Quando c'Γ¨ un vincitore, viene chiuso il canale inviando lo stato finale (ad esempio la lista delle transazioni) al contratto Giudice, pagando una sola commissione per la transazione. Il Giudice si assicura che lo stato finale sia firmato da entrambe le parti, e aspetta il tempo necessario per assicurarsi che nessuno possa legittimamente contestare il risultato, quindi paga il premio di 1 ETH ad Alice.
Al momento esistono due tipi di canale:
- Canali di stato: come descritto sopra
- Canali di pagamento: canali di stato semplificati che si occupano solo di pagamenti. Consentono trasferimenti esternamente alla catena tra due partecipanti, purchΓ© la somma netta dei trasferimenti non superi i token depositati.
Pro e contro
Pro | Contro |
---|---|
Prelievo/regolamento istantaneo sulla rete principale (se entrambe le parti di un canale cooperano) | Tempi e costi necessari per configurare un canale. Non adatto per transazioni occasionali esternamente alla catena tra utenti arbitrari. |
Volumi estremamente elevati | NecessitΓ di monitorare la rete periodicamente (requisito di liveness) o delegare la responsabilitΓ a qualcun altro per garantire la sicurezza dei fondi. |
Costi per transazione piΓΉ bassi in assoluto. Ottimo per flussi di micropagamenti | NecessitΓ di bloccare fondi nei canali di pagamento aperti |
Non supporta la partecipazione aperta |
Usano i canali di stato
Plasma
Una catena Plasma Γ¨ una blockchain separata, collegata alla catena principale Ethereum e usa le prove di frode (come gli optimistic rollup) per arbitrare le dispute.
Pro | Contro |
---|---|
Volumi elevati, basso costo per transazione. | Non supporta il calcolo generale. Solo trasferimenti di base di token, scambi e pochi altri tipi di transazione sono supportati tramite logica dei predicati. |
Ottima per transazioni tra utenti arbitrari (non c'Γ¨ sovraccarico per coppia di utenti se entrambi sono sulla catena plasma) | NecessitΓ di monitorare la rete periodicamente (requisito di liveness) o delegare la responsabilitΓ a qualcun altro per garantire la sicurezza dei fondi. |
Fa affidamento ad uno o piΓΉ operatori per archiviare i dati e servirli su richiesta. | |
I prelievi sono ritardati di diversi giorni per permettere contestazioni. Per risorse fungibili, questo puΓ² essere mitigato da provider di liquiditΓ , ma c'Γ¨ sempre associato un costo di capitale. |
Usano Plasma
Validium
Usa prove di validitΓ come ZK-rollup ma i dati non sono archiviati al livello 1 della catena di Ethereum. Questo puΓ² portare a 10.000 transazioni al secondo per catena validium, e piΓΉ catene possono essere eseguite in parallelo.
Pro | Contro |
---|---|
Nessun ritardo di prelievo (non c'Γ¨ latenza per transazioni sulla catena e tra catene); conseguente maggior efficienza del capitale. | Supporto limitato del calcolo generale/Smart Contract, necessari linguaggi specifici. |
Non vulnerabile a certi tipi di attacchi economici subiti da sistemi basati su prove di frode in applicazioni ad alto valore. | NecessitΓ di un'elevata potenza di calcolo per generare le prove ZK; non conveniente per applicazioni con bassi volumi. |
Tempo di finalitΓ piΓΉ limitato (10-30 minuti per generare una prova ZK) (ma piΓΉ veloce per finalitΓ completa perchΓ© non c'Γ¨ ritardo dovuto ai tempi di contestazione). |
Usano Validium
Sidechain
Una sidechain è una blockchain separata che viene eseguita parallelamente alla rete principale e opera indipendentemente. Ha un proprio algoritmo di consenso (Proof of Authority, Delegated proof-of-stake, Byzantine fault tolerance e così via). à collegata alla catena principale da un bridge bidirezionale.
Pro | Contro |
---|---|
Tecnologia consolidata. | Meno decentralizzata. |
Supporta il calcolo generale, compatibilitΓ con l'EVM. | Usa un meccanismo di consenso separato. Non protetta dal livello 1 (quindi tecnicamente non Γ¨ livello 2). |
Un quorum di validatori sidechain puΓ² commettere frodi. |
Usano sidechain
Soluzioni ibride
Combinano le parti migliori di diverse tecnologie di livello 2 e possono offrire compromessi configurabili.
Usano soluzioni Ibride
Letture consigliate
- Validium And The Layer 2 Two-By-Two β Issue No. 99
- [Evaluating Ethereum layer 2 Scaling Solutions: A Comparison Framework](https://medium.com/matter-labs/evaluating-ethereum-layer 2-scaling-solutions-a-comparison-framework-b6b2f410f955)
- Adding Hybrid PoS-Rollup Sidechain to Celerβs Coherent Layer-2 Platform on Ethereum
- Zero-Knowledge Blockchain Scalability
Canali di stato
- EthHub on state channels
- Making Sense of Ethereumβs Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit β Josh Stark, Feb 12 2018
- State Channels - an explanation Nov 6, 2015 - Jeff Coleman
- Basics of State Channels District0x
Canali di pagamento
ZK rollup
Optimistic rollup
Sidechain
- EthHub on sidechains
- Scaling Ethereum Dapps through Sidechains Feb 8, 2018 - Georgios Konstantopoulos
Aiutaci con questa pagina
Se conosci l'argomento e vuoi contribuire, modifica questa pagina e condividi un po' del tuo sapere.
Il tuo nome verrΓ aggiunto ai crediti e aiuterai la community di Ethereum!
Usa questo flessibile modello di documentazione
Domande? Chiedicelo nel canale #content sul nostro server Discord
Modifica pagina