Technology In Depth

Modularità: vantaggi rispetto alla blockchain monolitica



Indirizzo copiato

Le blockchain modulari introducono diversi vantaggi rispetto alle soluzioni monolitiche tradizionali: vediamo insieme le innovazioni rese possibili da questo nuovo paradigma.

Pubblicato il 19 giu 2024

Pablo Cerini

Giornalista



blockchain

Una delle sfide più impegnative per gli sviluppatori su blockchain è quella della scalabilità. Il numero di wallet attivi sulle blockchain è in continua crescita, e con l’aumentare del numero degli utenti crescono le problematiche collegate alle prestazioni, ai colli di bottiglia e all’aumento delle commissioni di esecuzione.

Inizialmente, alcuni ingegneri avevano approcciato il problema della scalabilità proponendo soluzioni basate sullo sharding (ossia considerare la blockchain come una sorta di database su cui applicare un partizionamento orizzontale) idea poi abbandonata dalla maggior parte degli sviluppatori in favore delle implementazioni Layer 2. Le soluzioni Layer 2, infatti, presentavano il vantaggio di ottimizzare i processi della blockchain separandoli su più livelli di esecuzione, offrendo un approccio strutturato e aperto a maggiori evoluzioni.
La separazione dei processi su diversi livelli di esecuzione ha mostrato che le funzionalità della blockchain non dovevano per forza essere eseguite in un unico contesto, ma potevano essere separate in più processi: questo approccio ha aperto la strada all’adozione del concetto di modularità. La modularità è un pattern di design che organizza un processo complesso separandolo in tanti sottoprocessi più semplici da gestire. Questi sottoprocessi possono essere anche sostituiti tra di loro o rimpiazzati da un altro sotto processo senza che l’intero sistema perda di coerenza.

Il design pattern modulare

L’attuale design di una blockchain modulare separa su più contesti di esecuzione le principali funzionalità gestite da una blockchain classica:

  • Esecuzione: gestione dell’istanza della transazione
  • Finalizzazione: risoluzione della transazione
  • Consenso: gestione dei nodi della rete
  • Disponibilità dei dati: assicurare che il dato sia sempre accessibile

La separazione dei contesti di esecuzione offre diversi vantaggi:

  • Riduzione dei requisiti hardware dei server, in quanto la separazione dei contesti ottimizza il numero di operazioni necessarie per completare una richiesta (ad esempio utilizzando meccanismi di roll up) alleggerendo così il carico di CPU e RAM necessario per eseguire un nodo.
  • Semplificazione della gestione del consenso della rete (ad esempio, per la gestione dell’allineamento dello stato di tutti i nodi partecipanti).
  • Maggiori potenzialità per gli sviluppatori, che non sono vincolati a design di sviluppo o ambienti predefiniti, ma godono di maggiore flessibilità nello strutturare le loro DAPP (App Decentralizzate).
  • Diminuzione delle commissioni sulle transazioni.

Maggiore scalabilità del design modulare

Le innovazioni introdotte dal design modulare sono particolarmente rilevanti in relazione al problema del trilemma della blockchain. La progettazione di una blockchain mira a disegnare un’architettura basata su decentralizzazione, sicurezza e scalabilità, ma il noto trilemma della blockchain afferma che, in realtà, è possibile ottenere al massimo due di queste tre qualità possibili, ma mai tutte e tre contemporaneamente.

L’ottimizzazione di determinate qualità (scalabilità) porta a compromessi in altre aree (sicurezza e decentralizzazione) e questo è uno dei motivi per cui scalare le blockchain è così impegnativo. Tuttavia, il principale collo di bottiglia relativo alla scalabilità si verifica soprattutto quando una blockchain tenta di gestire tutte le attività (esecuzione, finalizzazione, consenso, disponibilità dei dati) in un unico contesto. La separazione di queste attività tra diversi livelli garantisce una migliore scalabilità senza alterare il trust del consenso tra i nodi.

Specializzando le operazioni su differenti layer, si beneficia di una asincronicità dei processi che impedisce a rallentamenti su uno specifico layer di agire come colli di bottiglia per l’intera blockchain. L’esistenza di diversi layer permette poi di focalizzarsi sulla scrittura di codice ottimizzato per uno specifico layer, ottenendo così miglioramenti delle prestazioni difficili da replicare con un unico controller responsabile di tutte le funzionalità contemporaneamente.

Gestione dei layer in una blockchain modulare

Come descritto in precedenza, una blockchain modulare separa le funzionalità di una blockchain classica su più livelli (layer). L’architettura di una blockchain modulare può differire a seconda del numero di layer che decide di impiegare: un livello per funzionalità oppure, se in fase di design lo si ritiene più opportuno, più funzionalità accorpate su un unico livello.
Ad esempio, una blockchain potrebbe unificare su un unico livello le funzionalità di finalizzazione e consenso, oppure strutturare la propria architettura su due livelli: uno dedicato all’esecuzione e alla finalizzazione (magari con soluzioni di roll up) e un secondo livello in cui accorpare consenso e disponibilità del dato.
Questo design rende gli upgrade delle blockchain modulari più semplici rispetto alle blockchain monolitiche perché è possibile organizzare gli aggiornamenti in modo granulare mitigando la sospensione dei servizi.

Blockchain modulare e sicurezza

Rispetto alla soluzione monolitica, la blockchain modulare presenta anche degli svantaggi o, meglio, delle maggiori sfide in certi campi. Una di queste challenge è quella relativa alla sicurezza. Una blockchain modulare, infatti, presentando la separazione in più protocolli e funzionalità, offre una maggiore superficie di attacco rispetto alla soluzione tradizionale, e anche la compromissione di un protocollo su un singolo livello potrebbe compromettere la stabilità dell’intera blockchain.

L’architettura modulare è, al momento, meno testata di quelle tradizionali, per cui i team di sviluppo sono in costante attività di test e di audit, in modo da riuscire a individuare eventuali vulnerabilità prima di potenziali hacker.

Articoli correlati

Articolo 1 di 5