🇮🇹 "Layer 1 e Layer 2: tutto quello che c'è da sapere"

:it: Traduzione italiana di “Layer 1 & Layer 2: all you need to know - IOHK Blog”

Traduzione italiana a cura di Lordwotton di RIOT Stake Pools. Se apprezzi queste traduzioni, per favore valuta di supportare il mio lavoro delegando i tuoi ada a RIOT :pray: entra nel nostro gruppo Telegram


Layer 1 e Layer 2: tutto quello che c’è da sapere

Quando si parla di architettura blockchain, vengono spesso citati i termini “layer 1” e “layer 2”. Si tratta di concetti importanti che hanno due scopi: spiegare come viene costruita una rete blockchain e fornire una rappresentazione visiva di facile comprensione dell’aspetto di una rete blockchain. Vediamo di scomporre questi concetti

img

Layer 1: definizione

Immaginate una torta nuziale, con diversi strati - se volete -, e la statuetta di una coppia in cima. Questa bellissima torta poggia su una solida base, la base. A tutti gli effetti, quella base robusta e solida è il primo strato (strato 1) che sostiene l’infrastruttura della torta. Probabilmente si capisce dove si vuole arrivare. In una blockchain, il livello 1 è la rete di base sulla quale poggiano le soluzioni di livello 2.

img

Strato 1: funzionalità

Tenendo presente questo schema visivo, Cardano è il livello 1 (la rete di base), che a sua volta comprende tre livelli indipendenti:

  • Livello di rete
  • Livello di consenso
  • Livello del Ledger

Livello di rete

Questo livello mantiene le connessioni tra tutti i nodi distribuiti della rete Cardano, ottiene nuovi blocchi dalla rete man mano che vengono prodotti dai nodi produttori di blocchi, costruisce le transazioni appena coniate in blocchi e trasmette i blocchi tra i nodi.

Livello di consenso

Questo livello svolge due funzioni fondamentali:

  • Esecuzione del protocollo di consenso Ouroboros. Questo livello prende decisioni come l’adozione di blocchi, la scelta tra catene concorrenti (se ce ne sono) e la decisione di produrre blocchi propri; e
  • Mantenere tutto lo stato necessario per prendere le decisioni prese nel livello di consenso.

Livello Ledger

Questo livello specifica:

  • Come si presenta lo stato del libro mastro; e
  • Come il libro mastro deve essere aggiornato per ogni nuovo blocco.

Il livello del libro mastro è costituito esclusivamente da funzioni pure che specificano le transizioni tra stati successivi del libro mastro, come derivato dalle regole formali del libro mastro, utilizzando il modello contabile Extended UTxO (EUTxO). Le transizioni di stato sono guidate dall’insieme delle transazioni contenute nei blocchi di Cardano e da eventi importanti come le transizioni di confine tra le epoche.

Il livello di consenso non ha bisogno di conoscere la natura esatta dello stato del libro mastro, né il contenuto dei blocchi, a parte alcuni campi di intestazione necessari per eseguire il protocollo di consenso.

Nel complesso, questi tre livelli formano la soluzione di livello 1 che è Cardano.

Layer 1: scalabilità

Guardate di nuovo la torta nuziale. È grande, vero, con tutti quei piani impilati l’uno sull’altro. Ma guardate la base, l’alzata della torta. Il primo strato ha determinate dimensioni e non può essere più grande. Allo stesso modo, deve essere abbastanza grande da sostenere i livelli che si trovano sopra di esso. Il materiale che vi poggia sopra può essere solo di una certa dimensione, e questo è esattamente il motivo per cui le torte nuziali hanno più livelli. Ogni strato aggiunge qualcosa alla base. Un nuovo ripieno, una nuova glassa, una nuova decorazione, ecc. In altre parole, ogni livello aumenta lo strato di base.

Le reti pubbliche decentralizzate devono affrontare un problema simile. Proprio come un’alzata di torta può contenere solo una quantità finita di fette, la base (il livello 1) può elaborare solo una certa quantità di transazioni. Se si cerca di aggiungere più fette di quante ne possa contenere la torta, queste inizieranno a cadere dai bordi e il disordine rovinerà il grande giorno di qualcuno. Allo stesso modo, i nodi di una rete di livello 1 possono elaborare solo un numero limitato di transazioni prima che si verifichi una congestione. Con l’aumento della base di utenti, cresce anche la necessità di avere più nodi per elaborare le transazioni. Per risolvere questo problema, la rete deve scalare, altrimenti le transazioni inizieranno a cadere dai bordi, per così dire.

Ci sono modi per far scalare una rete di livello 1. Ad esempio, aumentando la dimensione dei blocchi, in modo che questi ultimi trasportino più dati sulle transazioni. La dimensione dei blocchi è stata recentemente aumentata di 8KB a 72KB (un aumento del 12,5%). Questo è uno dei modi in cui Cardano scalerà nel 2022.

Tornando alla nostra immagine della torta nuziale, l’aggiunta di livelli non solo rende la torta più grande, ma introduce anche una caratteristica molto utile: la possibilità di rendere ogni livello diverso dalla base. Possiamo aggiungere gusti, farciture, disegni e così via, indipendentemente dal primo strato. Per soddisfare diversi “ospiti” e diverse preferenze. Nella blockchain, l’aggiunta di un nuovo livello (livello 2) non solo permette al livello 1 di scalare, ma consente anche alle transazioni e ai processi di avvenire indipendentemente dalla catena principale (livello 1).

Soluzioni di scalabilità di livello 1 in Cardano

Cardano è ora nella fase di sviluppo Basho, che riguarda la scalabilità e l’ottimizzazione. Mentre la rete sta gestendo la domanda in modo molto efficace, l’ecosistema delle applicazioni decentralizzate (DApp) sta crescendo rapidamente e continuerà a porre una pressione crescente sul sistema. Per far fronte a questo problema, sono in corso di implementazione diversi metodi di scalabilità (tra cui soluzioni di livello 1 e 2) per permettere a Cardano di accogliere prima centinaia di migliaia e poi milioni di nuovi utenti.

Aumento delle dimensioni dei blocchi

Più grande è il blocco, più transazioni può contenere. Il primo blocco coniato su Cardano aveva una dimensione di 665 byte (0,665KB). Oggi i blocchi hanno una dimensione di 72KB. Si tratta di un aumento di oltre il 10.000%! Ulteriori aumenti saranno applicati nel tempo in base al monitoraggio continuo del sistema e alla salute generale della rete.

Pipelining

Migliora i tempi di propagazione dei blocchi unificando la convalida e la propagazione. L’obiettivo è che i blocchi vengano propagati ad almeno il 95% dei peer entro cinque secondi, riducendo il “tempo morto” tra i blocchi (l’overhead di propagazione dei blocchi). In questo modo si ottiene la possibilità di apportare modifiche scalari più aggressive, come l’aumento delle dimensioni dei blocchi o l’aumento dei limiti dei parametri di Plutus.

Endorser di input

Più avanti, gli endorser di input miglioreranno i tempi di propagazione dei blocchi e il throughput, consentendo alle transazioni di essere separate in blocchi precostituiti. Ciò migliora la coerenza dei tempi di propagazione dei blocchi e consente tassi di transazione più elevati.

Parametri memoria/CPU per Plutus

L’utilizzo della memoria è più efficiente in tutta la catena. In particolare, sono stati apportati miglioramenti alla gestione dell’Unspent Transaction Output (UTXO), alla distribuzione delle puntate, alla distribuzione dello stake e ai pool e alla rappresentazione degli hash.

Miglioramenti agli script di Plutus

Utilizzo ancora più efficace del potente modello EUTxO attraverso l’ottimizzazione degli smart contract, tra cui:

  • Input di riferimento (CIP-0031) - Gli script Plutus possono ispezionare gli input delle transazioni senza doverli spendere. Ciò significa che non è necessario creare UTXO semplicemente per ispezionare le informazioni contenute in un input.
  • Datum Plutus (CIP-0032) - I datum possono essere allegati direttamente agli output invece che agli hash dei datum. Questo semplifica l’uso dei datum, in quanto l’utente può vedere il datum effettivo invece di dover fornire il datum che corrisponde all’hash dato.
  • Condivisione degli script (CIP-0033) - I riferimenti agli script di Plutus possono essere associati agli output delle transazioni, il che significa che possono essere registrati sulla catena per un successivo riutilizzo. Non sarà necessario fornire una copia dello script con ogni transazione, riducendo enormemente l’attrito per gli sviluppatori. Il riutilizzo degli script in più transazioni riduce significativamente le dimensioni delle transazioni, migliorando il throughput e riducendo i costi di esecuzione degli script.

Miglioramenti al nodo

I miglioramenti apportati al nodo contribuiranno a distribuire in modo uniforme i calcoli dello stake e delle ricompense tra le varie epoche, offrendo così maggiore spazio per l’aumento delle dimensioni dei blocchi. Inoltre, l’utilizzo della memoria è ora più efficiente. La compattazione della memoria riduce l’ingombro di RSS e la condivisione della memoria significa che è necessario istanziare meno dati. La versione 1.34.1 del nodo, da marzo 2022, riduce i picchi di carico nei punti critici, compreso il limite dell’epoca.

Memorizzazione su disco

Memorizzando porzioni dello stato del protocollo su disco, i nodi dovranno tenere meno memoria, il che significa che i sistemi con problemi di RAM saranno in grado di far funzionare i nodi a condizione che abbiano una memoria sufficiente e che la memoria non rappresenterà un collo di bottiglia per la scalabilità. Ciò consentirà una crescita significativa dello stato della blockchain.

Intermezzo: il trilemma della blockchain

La scalabilità di un sistema distribuito - come una blockchain - è un dilemma complesso.

Esiste un consenso generale sul fatto che un sistema blockchain “adeguato” debba avere tre proprietà: scalabilità, sicurezza e decentralizzazione. Ma una convinzione altrettanto diffusa è il cosiddetto trilemma, secondo il quale i sistemi decentralizzati possono fornire solo due di queste proprietà, sacrificando la terza. Postulato per la prima volta dal creatore di Ethereum Vitalik Buterin, il trilemma suggerisce che gli sviluppatori devono sempre accettare un compromesso, o un trade-off, quando progettano reti blockchain. Questo compromesso significa che una proprietà deve “soffrire” perché le altre due siano possibili.

Ad esempio, più una rete ha nodi, più diventa decentralizzata, ma significa anche che più nodi devono essere affidabili per mantenere la sicurezza. Per mantenere la sicurezza, è necessario introdurre tariffe che rendano proibitivo il costo di un potenziale attacco. Tuttavia, una rete deve incentivare la partecipazione, quindi i costi per nodo devono essere relativamente bassi. Inoltre, la caratteristica stessa dell’immutabilità implica che i dati della blockchain saranno aggiunti finché la blockchain esisterà, ma non saranno mai cancellati, il che significa che la blockchain continuerà a crescere. Una rete più grande significa più risorse computazionali necessarie per mantenere le prestazioni. Prestazioni migliori richiedono hardware migliore, il che significa che le ricompense devono essere sufficienti a rendere conveniente l’investimento. E così via.

Scalabilità verticale e orizzontale

Risolvere questo trilemma richiede un approccio attento ed equilibrato, in modo che tutti e tre gli elementi rimangano in equilibrio.

In teoria, un sistema blockchain continuerà a crescere all’infinito. Man mano che un maggior numero di nodi entra a far parte del sistema, aumentano i dati e le attività e le transazioni da elaborare. Tutto questo richiede potenza di calcolo e di archiviazione. Nel tempo, la domanda continuerà a crescere, quindi il sistema sottostante dovrà scalare di conseguenza per evitare un drastico calo delle prestazioni.

Esistono due opzioni di scalabilità: verticale e orizzontale.

Scalabilità verticale

Questa tecnica consiste nell’espandere le capacità di calcolo dei singoli nodi aggiungendo più memoria e componenti migliori. In altre parole, si aggiorna l’hardware della rete per ottenere migliori prestazioni complessive.

Una rete che include nodi ad alte prestazioni supporta, ad esempio, blocchi di dimensioni maggiori e una diffusione più rapida dei blocchi. Ma gli aspetti negativi sono che la decentralizzazione sarà limitata, dati gli alti costi operativi, che faranno sì che i nuovi operatori di nodi ci pensino due volte ad aderire, frenando così l’espansione della rete. Inoltre, una rete di questo tipo comporterà costi più elevati per i nodi validatori.

Scalatura orizzontale

A differenza dello scaling verticale, lo scaling orizzontale può essere ottenuto in due modi. Uno, semplicemente aggiungendo altri computer (nodi) alla rete esistente. La logica è che, aggiungendo altri nodi, la rete diventa in grado di elaborare più transazioni.

In secondo luogo, utilizzando le sidechain, che sottraggono parte del carico computazionale alla mainchain e, come ulteriore vantaggio, consentono la personalizzazione sotto forma di diversi protocolli di consenso o modelli di governance, ad esempio, per adattarsi a un particolare progetto o settore. Dal punto di vista della sicurezza, le sidechain possono creare un ecosistema più sicuro, isolando le potenziali minacce alla mainchain. Se una sidechain viene compromessa in qualche modo, il rischio è contenuto in quella sidechain, salvaguardando così il resto della rete.

Layer 2: affrontare il dilemma della scalabilità

In linea di massima, le soluzioni di livello 2 affrontano il problema della scalabilità insito nelle catene di livello 1. Costruiti sopra una blockchain esistente (proprio come l’aggiunta di un nuovo livello a una torta nuziale), i protocolli di livello 2 eseguono gran parte del lavoro di elaborazione che altrimenti avverrebbe sulla catena principale. Questo aumenta il throughput della catena principale. Un ulteriore vantaggio è che, mentre la soluzione di livello 2 svolge il lavoro duro, il livello 1 mantiene la sua sicurezza.

Layer 2: definizione

Un protocollo aggiuntivo, fuori dalla catena, che lavora in cima alla blockchain di livello 1. Le parti possono trasferire in modo sicuro i fondi dalla blockchain a un protocollo off-chain, regolare le transazioni in questo protocollo indipendentemente dalla catena sottostante e trasferire nuovamente i fondi in modo sicuro alla catena sottostante, se necessario. I protocolli di livello 2 migliorano il throughput complessivo e la scalabilità perché riducono la congestione della rete.

Soluzioni di scalabilità di livello 2 in Cardano

Le sidechain

Una sidechain, definita come un modo per consentire a più blockchain di comunicare tra loro e far sì che una reagisca agli eventi dell’altra, è una blockchain separata collegata a una blockchain principale (la catena “principale”, nota anche come catena madre), attraverso un meccanismo bidirezionale (il “ponte”) che consente ai token e ad altri beni digitali di una catena di essere utilizzati in un’altra e i risultati restituiti alla catena originale. Gli asset possono essere spostati da una catena all’altra secondo le necessità. Una singola catena madre può avere più catene laterali interoperabili collegate ad essa, che possono operare in modi completamente diversi. Le sidechain EVM su Cardano includono Milkomeda di dcSpark e il progetto EVM sidechain di IOG.

Hydra

Hydra è la soluzione di scalabilità di livello 2 per Cardano, che mira ad aumentare la velocità delle transazioni attraverso una bassa latenza e un elevato throughput e a minimizzare il costo delle transazioni.

Hydra Head è il primo protocollo della famiglia Hydra e rappresenta la base per scenari di implementazione più avanzati che si basano su canali di stato isomorfi e multi-party. Fornendo mezzi più efficienti per l’elaborazione delle transazioni al di fuori della catena per un insieme di utenti, e utilizzando al tempo stesso il libro mastro della catena principale come livello di regolamento sicuro, Hydra Head mantiene le garanzie di sicurezza pur rimanendo poco vincolato alla catena principale. Non richiedendo il consenso globale, può adattarsi a un’ampia gamma di applicazioni. Inoltre, Hydra Head consente di configurare le tariffe Tx, i budget per l’esecuzione degli script e altri parametri del protocollo in modo che siano bassi o alti a seconda del caso d’uso. Ad esempio, questo è fondamentale per consentire le microtransazioni.

Inoltre, Hydra Head introduce il concetto di canali di stato isomorfi: vale a dire, riutilizzare la stessa rappresentazione del libro mastro per ottenere fratelli di ledger uniformi e fuori dalla catena, che chiamiamo Heads (da cui il nome Hydra). Nello specifico di Cardano, ciò significa che gli asset nativi, i token non fungibili (NFT) e lo scripting Plutus sono disponibili all’interno di ogni Hydra Head. L’isomorfismo consente un’estensione naturale del sistema, piuttosto che un’estensione forzata.

Le teste Hydra eccellono nel raggiungimento di una finalità quasi istantanea all’interno di una testa. Il processo di creazione e chiusura di una testa può richiedere alcuni blocchi, ma una volta stabilito, le transazioni possono fluire rapidamente tra i partecipanti alla collaborazione. Poiché le teste Hydra sono isomorfe e utilizzano anche il modello EUTXO, possono elaborare simultaneamente transazioni non conflittuali, il che, unito a un buon networking, consente un uso ottimale delle risorse disponibili.

Altre soluzioni di scalabilità

Elaborazione fuori catena

L’offloading di parte del calcolo, ad esempio con l’esecuzione asincrona dei contratti (ACE), può aumentare l’efficienza della rete centrale. Le transazioni avvengono al di fuori della blockchain stessa, ma possono offrire transazioni veloci ed economiche attraverso un modello di fiducia.

Mithril

Per ottenere una maggiore scalabilità, è necessario affrontare la complessità delle operazioni critiche che dipendono logaritmicamente dal numero di partecipanti. Mithril è un protocollo sviluppato dallo IOG che agisce come uno schema di firma a soglia basato su stake che consente di sfruttare gli stake in modo trasparente, sicuro e leggero. Mithril migliorerà la sincronizzazione della catena mantenendo la fiducia. Il risultato è un’aggregazione multi-firma rapida ed efficiente senza compromettere le caratteristiche di sicurezza.

Conclusione

Una rete blockchain funziona in modo misterioso e alcuni dei concetti che circondano un ecosistema di ledger decentralizzato possono essere difficili da comprendere.

Non così il livello 1 e il livello 2, se si utilizza la visualizzazione a torta a strati qui espressa.

  • Livello 1 (la base della torta) = la rete di base robusta e sicura su cui poggiano le soluzioni del livello 2.
  • Strato 2 (i livelli della torta) = soluzioni costruite sopra la base per risolvere i problemi di scalabilità intrinseci.

Questo è il modo più semplice per visualizzare e comprendere cosa sono il livello 1 e il livello 2.

Aspetti fondamentali

  • Cardano è il livello 1 (la rete di base)
  • Una soluzione di livello 2 è una struttura costruita sopra una catena di livello 1 per risolvere i problemi di scalabilità e velocità delle transazioni di quest’ultima. La Lightning Network di Bitcoin è un esempio di soluzione di livello 2, così come Hydra per Cardano.
  • Esistono due opzioni di scalabilità: verticale e orizzontale.
  • La scalabilità verticale consiste nell’espandere le capacità di calcolo dei singoli nodi aggiungendo più memoria e componenti migliori.
  • Lo scaling orizzontale può essere ottenuto in due modi. Uno, semplicemente aggiungendo altri computer (nodi) alla rete esistente, e due, utilizzando le sidechain, che toglieranno parte del carico computazionale dalla mainchain.
  • Cardano vedrà una serie di metodi di scalabilità implementati nel corso del 2022/2023.