Scalabilità della blockchain, casi, prospettive e soluzioni.

14.06.22

Come noto un aspetto critico della blockchain, tale da non permettergli ancora una significativa adozione planetaria,  riguarda la sua scalabilità. 

A tutt’oggi la scalabilità è considerata ancora il collo di bottiglia dell'infrastruttura blockchain e molteplici sono i tentativi di apportare miglioramenti, capaci di permetterle di competere con i più grandi circuiti di pagamento elettronico.

La tecnologia Blockchain nativa, è attualmente ancora limitata dalla capacità di gestire poche transazioni al secondo (TPS).

Per chiarire il problema, è sufficiente riportare le due blockchain più note come esempio: Bitcoin elabora 4,6 TPS ed Ethereum circa 14,3 TPS (valori leggermente variabili), mentre Visa uno dei maggiori circuiti di pagamento elettronico, puo’ elaborare circa 1.736 TPS (ma è stato in grado di raggiungere picchi di 47.000 TPS).

La tecnologia di fatto è guidata da un'idea di decentralizzazione il che rende difficile la scalabilità poiché le transazioni devono essere trasmesse a tutta la rete.

Quando si genera un nuovo blocco, un fattore cruciale da tenere in considerazione è il tempo di trasmissione necessario a trasmettere il nuovo blocco a tutti i nodi della rete ( Blockchain).

Qualsiasi miglioramento si voglia apportare alla scalabilità della blockchain ci si deve necessariamente scontrare con il principale effetto negativo, cioè la sicurezza, quindi è sempre necessario trovare il giusto compromesso per scalare.

Attualmente l’approccio più comune per ottenere una blockchain scalabile è il "Layer 2", ossia una struttura tecnologica capace di gestire le transazioni fuori catena, riducendo il carico sulla blockchain e di riflesso una maggiore velocità nel trasferimento.

 

TIPI DI LAYER 2

I canali L2 creano fondamentalmente canali di comunicazione diretti o indiretti tra i nodi fuori catena, le transazioni tra nodi "connessi" vengono gestite su Layer 2, riportando sulla catena principale solo due di esse (quella che "apre" il canale e quella che lo "chiude").

Per esempio, la rete Lightning per Bitcoin e Raiden Network per Ethereum si basano sul canale di stato L2.

Le sidechain L2 invece sono basate su blockchain "figlie" ancorate alla catena principale, che funzionano in parallelo ad essa.

In questo caso l'idea è simile a quella dei canali, ma la differenza sostanziale è che, nelle sidechain, le transazioni fuori dalla catena vengono eseguite su blockchain (mentre i canali di comunicazione non sono basati su una blockchain).

L2 ha il vantaggio che non è necessaria alcuna modifica alla catena principale e che la gestione off-chain delle transazioni è, in un certo senso, indipendente dalla catena principale “Layer 1”, sebbene la dipendenza è essenziale per registrare sulla catena un “ riassunto delle Tx”, ma a parte questo fatto, la blockchain non è a conoscenza di ciò che accade su "Layer 2".

Una menzione per quanto riguarda le soluzioni di scalabilità della blockchain va a sharding,
che suddivide la catena principale in sottoinsiemi di nodi, ciascuno dei quali è responsabile di una porzione dell'intera rete: ogni nodo elabora le informazioni appartenenti solo al proprio shard. 

Questa soluzione va sicuramente nella direzione di migliorare la scalabilità: "dividere" il carico della catena tra diverse partizioni porta a qualcosa di simile a blockchain separate, caratterizzate da una maggiore velocità di transazione perché più leggere.

Questa tecnica viene generalmente definita come "soluzione di livello 1", a significare il fatto che tutte le transazioni sono gestite sulla blockchain stessa.

 

ROLLUPS

Abbiamo recentemente avuto modo di scrivere ed approfondire sul futuro delle transazioni fuori catena, ed in particolare su Rollups, un framework per Ethereum proposto nel 2018, e considerato una soluzione "ibrida" tra lo scaling L1 e L2

A differenza di Lightning Network, Rollups implica che alcune informazioni su ogni singola transazione inviata sulla L2 vengano pubblicate sulla catena, causando una riduzione della congestione e delle commissioni su quella principale.

Tutte le informazioni sono sempre recuperabili dalla catena principale, che è considerata sicura e sempre disponibile.

Una caratteristica peculiare di Rollups è la possibilità di effettuare transazioni al di fuori del contratto Rollup stesso: questo serve a supportare le transazioni il cui input proviene dall'esterno o il cui output è destinato all'esterno.

Attualmente esistono due soluzioni Rollups: ZK Rollup e Optimistic Rollup.

La soluzione ZK Rollups in particolare, si basa sul concetto di prova di validità e di prova a conoscenza zero, utilizza la prova SNARK che consente agli osservatori di dimostrare immediatamente la validità del batch.

Lo SNARK confronta un'istantanea della blockchain prima dei trasferimenti con un'istantanea della blockchain dopo i trasferimenti (cioè i valori del portafoglio) e segnala solo le modifiche in un hash verificabile alla rete principale.

Sebbene si tratti di un sistema poco costoso da verificare, il calcolo invece è costoso. Pertanto, ZK Rollup è un sistema appropriato per la gestione delle transazioni, ma non è ancora completamente adatto all'esecuzione di contratti complessi.

 

HOTMOKA soluzione per la rete Takamaka PoS.

Sappiamo che Rollups è una soluzione scalabile e sicura, ma costosa in termini di calcolo e quindi poco interessante per smart Contract, mentre Hotmoka si presenta come una soluzione conveniente, a basse fees anche per il calcolo degli SC.

Takamaka è a tutti gli effetti una PoS nativa in cui la potenza di calcolo è dedicata alla corretta gestione del network, escludendo la PoW si sono minimizzati i costi di gestione. 

Oltre a questo, il sistema di archiviazione dati, calcolo e gestione delle operazioni sono estremamente ottimizzati. 

Il fatto di avere un L0 che aggrega l'esecuzione dei contratti e un L1 che permette di eseguirli, abbatte di fatto i costi liberando L1 dalle incombenze di archiviazione e dalle transazioni banali, quali pay, blob e la gestione della PoS.

Quindi l’algoritmo che determina i costi di transazione assegna un valore estremamente contenuto alle istruzioni sulla cpu per permettere logiche complesse e soprattutto rende i controlli di integrità dello smart contract non penalizzanti.

Così come in ROLLUPS, anche su Takamaka è possibile implementare un livello L2 con transazioni off chain. A seconda delle necessità è possibile collegare la parte off chain direttamente a L0, per archiviazione e finalità, o a L1 se fosse necessario interagire con uno smart contract di supporto.

L1 dovrebbe gestire un carico simile a L0 e cioè pari a 280 transazioni per secondo. Questa stima si riferisce ad una media visto che si tratta di un livello di elaborazione turing completo dove non è possibile garantire, per ogni scenario di utilizzo, il volume di transazioni.

Link approfondimento:

https://it.bitcoinethereumnews.com/technology/zk-rollups-will-take-years-of-refinement-vitalik-buterin/

https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/

https://it.cointelegraph.com/news/cose-il-raiden-network-uno-sguardo-al-progetto

https://www.bitconio.net/cryptoeconomy/partisia-creata-per-la-fiducia/

https://arxiv.org/pdf/2107.10881.pdf