Aiuta ad aggiornare questa pagina

🌏

C'Γ¨ una nuova versione di questa pagina, ma al momento Γ¨ solo in inglese. Aiutaci a tradurre l'ultima versione.

Questa pagina Γ¨ incompleta. Se conosci bene l'argomento, modificala e condividi un po' del tuo sapere.

Passaggio al livello 2

Ultima modifica: , Invalid DateTime
Modifica pagina

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

ProContro
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.

Diagramma che mostra cosa succede quando avviene una transazione fraudolenta in un optimistic rollup in Ethereum

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

ProContro
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:

  1. 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.

  2. 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.

  3. 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

ProContro
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 elevatiNecessitΓ  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 micropagamentiNecessitΓ  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.

ProContro
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.

ProContro
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.

ProContro
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

Canali di stato

Canali di pagamento

ZK rollup

Optimistic rollup

Sidechain

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–„β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–„β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–Œβ–’β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–„β–€β–’β–Œβ–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–Œβ–’β–’β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–„β–€β–’β–’β–’β–β–‘β–‘β–‘ ░░░░░░░▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐░░░ β–‘β–‘β–‘β–‘β–‘β–„β–„β–€β–’β–‘β–’β–’β–’β–’β–’β–’β–’β–’β–’β–ˆβ–’β–’β–„β–ˆβ–’β–β–‘β–‘β–‘ β–‘β–‘β–‘β–„β–€β–’β–’β–’β–‘β–‘β–‘β–’β–’β–’β–‘β–‘β–‘β–’β–’β–’β–€β–ˆβ–ˆβ–€β–’β–Œβ–‘β–‘β–‘ β–‘β–‘β–β–’β–’β–’β–„β–„β–’β–’β–’β–’β–‘β–‘β–‘β–’β–’β–’β–’β–’β–’β–’β–€β–„β–’β–’β–Œβ–‘β–‘ β–‘β–‘β–Œβ–‘β–‘β–Œβ–ˆβ–€β–’β–’β–’β–’β–’β–„β–€β–ˆβ–„β–’β–’β–’β–’β–’β–’β–’β–ˆβ–’β–β–‘β–‘ β–‘β–β–‘β–‘β–‘β–’β–’β–’β–’β–’β–’β–’β–’β–Œβ–ˆβ–ˆβ–€β–’β–’β–‘β–‘β–‘β–’β–’β–’β–€β–„β–Œβ–‘ β–‘β–Œβ–‘β–’β–„β–ˆβ–ˆβ–„β–’β–’β–’β–’β–’β–’β–’β–’β–’β–‘β–‘β–‘β–‘β–‘β–‘β–’β–’β–’β–’β–Œβ–‘ β–€β–’β–€β–β–„β–ˆβ–„β–ˆβ–Œβ–„β–‘β–€β–’β–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–’β–’β–’β–β–‘ β–β–’β–’β–β–€β–β–€β–’β–‘β–„β–„β–’β–„β–’β–’β–’β–’β–’β–’β–‘β–’β–‘β–’β–‘β–’β–’β–’β–’β–Œ ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▐░ β–‘β–Œβ–’β–’β–’β–’β–’β–’β–€β–€β–€β–’β–’β–’β–’β–’β–’β–‘β–’β–‘β–’β–‘β–’β–‘β–’β–’β–’β–Œβ–‘ ░▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▄▒▒▐░░ β–‘β–‘β–€β–„β–’β–’β–’β–’β–’β–’β–’β–’β–’β–’β–’β–‘β–’β–‘β–’β–‘β–’β–„β–’β–’β–’β–’β–Œβ–‘β–‘ β–‘β–‘β–‘β–‘β–€β–„β–’β–’β–’β–’β–’β–’β–’β–’β–’β–’β–„β–„β–„β–€β–’β–’β–’β–’β–„β–€β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–€β–„β–„β–„β–„β–„β–„β–€β–€β–€β–’β–’β–’β–’β–’β–„β–„β–€β–‘β–‘β–‘β–‘β–‘ β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–’β–’β–’β–’β–’β–’β–’β–’β–’β–’β–€β–€β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘

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