Tutti sanno che nel mondo crypto che esistono due protocolli di validazione: Proof-of-Work e Proof-of-Stake. In realtà ne esistono anche altri, ma questi due sono i più comuni e alla base delle blockchain più popolari.
In ogni caso i due sistemi hanno in comune lo stesso problema di base, ovvero la verifica delle transazioni nella blockchain, che tentano di risolvere in modo unico. Entrambi i sistemi offrono soluzioni diverse sul dibattito riguardante la scalabilità. La prima soluzione offre reali vantaggi rispetto all'altra, oppure sono soltanto filosofie completamente diverse?
Diamo un'occhiata a entrambe.
Proof-of-Work: cos’è?
Quasi tutti hanno già sentito parlare dei "miner" di Bitcoin (BTC), ma cosa fanno realmente questi individui? In sostanza, i miner sono in competizione per risolvere complessi problemi matematici al fine di rendere sicure le transazioni sulla rete. Uno dei maggiori rischi per la blockchain è chiamato “double-spend attack”: questo avviene quando qualcuno riesce a spendere lo stesso denaro due volte. Con le valute tradizionali ciò non è un problema, ma con quelle digitali è necessario un sistema per assicurare che nessuno possa inviare gli stessi Bitcoin simultaneamente a più soggetti.
Ecco che in questo caso entrano in gioco i miner. Utilizzando potenti processori, convalidano ogni blocco sulla blockchain tramite elaborate funzioni crittografiche, assicurandosi che vengano rimosse tutte le transazioni non valide. Infine, attraverso il consenso distribuito, tutti gli altri miner e i nodi della rete "concordano" sul fatto che queste transazioni siano valide. Questo processo è noto come Proof-of-Work, o PoW.
La principale minaccia di questo sistema è la possibilità che si verifichi un cosiddetto attacco 51%. Questo attacco si verifica quando un aggressore si impossessa di oltre metà della potenza di calcolo totale sulla rete (il 51% appunto), consentendogli di convalidare qualsiasi operazione egli desideri, double-spend compresi. Tali attacchi sono già accaduti in passato e rimane un grosso problema per molte blockchain minori.
Con la PoW, la sicurezza è garantita non solo grazie all'enorme complessità delle funzioni crittografiche elaborate ma anche al costo relativamente elevato che comporta in termini di energia, che rende eventuali attacchi alla rete parecchio dispendiosi. Il lato positivo è che occorrerebbe acquisire il 51% della potenza di calcolo della specifica chain, e questo non è fattibile per grandi network come quello di Bitcoin. Tuttavia, l'aspetto negativo di questo approccio è serve una quantità molto elevata di energia per proteggere la rete, rendendolo molto meno efficiente rispetto ad un sistema centralizzato. Questo problema diventa ancora più grande all’aumentare del numero di utenti che effettuano le transazioni sulla blockchain: poiché la competizione per risolvere l’algoritmo è maggiore, maggiore sarà anche la potenza di calcolo necessaria per vincere la competizione, con il conseguente aumento dell’energia utilizzata.
Da molti anni gli sviluppatori sono alla ricerca di diversi modi per rendere la tecnologia blockchain più veloce, efficiente e scalabile. Se Bitcoin, o qualsiasi altro progetto, vedrà mai un'adozione su scala globale, sarà necessario risolvere questi problemi. Le principali soluzioni proposte sono state la realizzazione blocchi di dimensioni maggiori per accorpare più transazioni al loro interno, la suddivisione in "frammenti" dei singoli blocchi tramite una tecnica chiamata “sharding”, oppure l'utilizzo di più strati attraverso le sidechain. Esamineremo tutte queste soluzioni più avanti, ma prima di tutto analizziamo la Proof-of-Stake che è una possibile risposta al problema della scalabilità.
La Proof-of-Stake è diversa
La Proof-of-Stake (PoS) elimina del tutto i miner e introduce il concetto dei "validatori". I validatori non usano la potenza di elaborazione per confermare i blocchi, ma "scommettono" i loro fondi sui blocchi ritenuti validi. Un validatore può essere chiunque sia disposto a dimostrare di possedere un certo ammontare di criptovaluta sulla rete, e un algoritmo determina quali validatori saranno scelti per ogni blocco. Mentre i miner vogliono aumentare le loro possibilità di risolvere il complesso problema matematico accrescendo la potenza di calcolo, i validatori cercano di incrementare le probabilità di essere selezionati per la convalida di un blocco scommettendo in esso più denaro. I miner sono incentivati con l’emissione di nuove monete, ma i validatori spesso ricevono soltanto una percentuale delle commissioni incluse nel blocco, proporzionale all'importo che avevano precedentemente investito.
Se un hacker cercasse di convalidare un blocco contraffatto, l'aggressore perderebbe la sua quota e gli verrebbero preclusi i previlegi per future convalide. Per quanto riguarda il problema dell’attacco 51% che abbiamo visto precedentemente, nel caso di un sistema PoS un utente intenzionato a dirottare la rete non avrebbe bisogno del 51% della potenza di calcolo bensì di oltre la metà di tutte le monete in circolazione. Ciò è ovviamente poco probabile, perché nessuno si fiderebbe di utilizzare una blockchain con un modello tanto centralizzato. Un altro problema che questo approccio risolve è il consumo energetico eccessivo presente con la PoW, dato che la PoS non richiede computer operativi 24 ore su 24 e 7 giorni su 7.
Una delle principali critiche mosse alla PoS è che permette comunque una forma di centralizzazione. Più crypto possedute significa avere più peso per la validazione: questo comporta una maggior ricompensa, il che fornisce ancora più peso e così via. D'altro canto un numero eccessivo di validatori potrebbe rallentare il network, perché il tempo necessario per raggiungere il consenso è direttamente proporzionale alla loro quantità. Fortunatamente, si stanno esplorando modi per affrontare tutti questi problemi.
Cos'è la Delegated Proof-of-Stake?
Una potenziale soluzione alle carenze del design originale della PoS è la cosiddetta Delegated Proof of-Stake, o DPoS. Il modello DPoS è differente: gli utenti non investono direttamente i propri fondi per la convalida del blocco successivo, ma al contrario effettuano una votazione per scegliere quali validatori dovrebbero essere utilizzati per tale processo. Mettere in gioco più risorse fornisce ovviamente più peso al voto, ma in realtà viene scelto solo un numero limitato di validatori che possono essere anche esclusi dalle votazioni successive.
Poiché tutti gli utenti sono in grado di scommettere e votare, la community dovrebbe mantenere il controllo se ritiene che un validatore non stia agendo nell'interesse del network. I validatori hanno ovviamente un incentivo a collaborare con la community, perché essere eletti consentirebbe loro di ricevere la ricompensa legata alla validazione dei blocchi. Infine, limitando il numero dei soggetti coinvolti, il consenso può essere raggiunto molto più rapidamente. Questa potenziale soluzione potrebbe pertanto incrementare la velocità della rete. Tra i più importanti progetti di implementazione di questo sistema vi sono EOS e Tron.
Naturalmente la centralizzazione è la principale preoccupazione in questo approccio, in quanto esiste ancora una possibilità di manipolare il voto per coloro che dispongono di risorse ingenti. Si tratta di una preoccupazione del tutto valida, ma più grande è la community e maggiore dovrebbe essere il potere di voto rispetto a quello che ogni singolo validatore. Oltre al fatto che un validatore eletto è uno tra tanti, limitando così il suo effettivo potere.
Altri modi per scalare la Proof-of-Work
Non tutti sono convinti che la PoS sia il futuro, quindi ci sono ancora alcune strade da esplorare per incrementare la scalabilità di PoW. Come già detto, uno dei sistemi proposti è semplicemente quello di far sì che i blocchi stessi contengano più transazioni. Nel breve termine questo approccio potrebbe sembrare del tutto ragionevole: i blocchi più grandi rappresentano una buona soluzione per aumentare la velocità di trasmissione della rete, ma anche questo approccio deve essere accompagnato dalle necessarie precauzioni. Innanzitutto, incrementare la capacità dei blocchi non risolve tutti i problemi: non possono essere infatti espansi all'infinito. Passare da blocchi da 1 MB a blocchi da 2 o 4 MB non è un grosso problema, ma qual è il limite massimo? 1 GB, oppure 10 GB? Almeno per le blockchain progettate come Bitcoin, blocchi di dimensioni maggiori inizierebbero a rendere l'archiviazione dell'intera catena estremamente gravosa. Naturalmente, se la velocità delle transazioni fosse un aspetto meno prioritario rispetto alla memorizzazione dei dati sulla blockchain, allora blocchi di grandi dimensioni sarebbero molto utili. In tal caso, la sincronizzazione tra i blocchi diventerebbe l’aspetto più importante.
Una filosofia diversa che alcuni progetti stanno esaminando è una tecnica chiamata "sharding". Lo sharding funziona dividendo i blocchi in "frammenti", e non tutti i miner devono elaborare ogni singolo frammento. Questo implica che ogni blocco venga minato solo parzialmente da ogni miner, il che comporta l'utilizzo di una quantità inferiore di energia e una maggiore velocità di convalida. La stessa logica può essere applicata anche ad un sistema PoS, solo che invece dei minatori si tratterebbe di validatori. In ogni caso il piano è quello di diminuire la latenza complessiva facendo in modo che ogni soggetto sulla rete non debba elaborare l’intero blocco.
Lo sharding presenta però alcuni inconvenienti che non sono ancora stati sufficientemente affrontati. Per prima cosa, dopo aver spezzato la blockchain in frammenti, questi frammenti non possono comunicare tra di loro. Questo potrebbe diventare problematico per le applicazioni che fanno affidamento su molteplici frammenti. Se da un lato si potrebbe sviluppare un sistema di comunicazione efficiente, dall'altro sarebbe estremamente complesso e rischierebbe di provocare una miriade di errori potenzialmente devastanti.
Lo sharding rappresenta anche un potenziale rischio per la sicurezza. In teoria, gli hacker potrebbero attaccare la rete concentrandosi su un solo frammento: questo richiederebbe molte meno risorse rispetto al tentativo di prendere il controllo di un intero blocco. Potrebbero quindi creare transazioni apparentemente valide nel frammento e inviarle poi alla catena principale. Un attacco come questo non ha senso se i blocchi vengono mantenuti interi, ma tale approccio rappresenta un rischio concreto in caso di sharding.
Un'altra importante area su cui i ricercatori stanno indagando è qualcosa conosciuto come "sidechain" o "soluzioni di secondo livello". In poche parole, si tratta di una rete separata e parallela alla blockchain principale, che gestisce transazioni "fuori catena". Gli utenti possono aprire "canali" tra di loro ed effettuare transazioni in qualsiasi modo ritengano opportuno. Solo quando questi canali vengono chiusi i dati vengono effettivamente raggruppati e scritti sulla blockchain principale in maniera immutabile. Più canali possono essere collegati tra loro in modo da formare una rete di pagamento globale, che è supportata dalla blockchain ma che può muoversi molto più velocemente in tempo reale. Questo è particolarmente ideale per transazioni frequenti e di piccole dimensioni, e potrebbe rappresentare una possibile soluzione all'utilizzo delle criptovalute come contante.
Tuttavia ci sono alcuni aspetti negativi in quanto nella forma attuale i canali devono essere generalmente "garantiti", ovvero il denaro deve essere immesso nel canale prima di poter essere utilizzato. Combinato al fatto che non tutti i bug sono ancora stati risolti, tale approccio potrebbe rappresentare un serio rischio per i capitali nel caso in cui qualcosa vada storto prima che la transazione venga registrata sulla blockchain. In generale, è necessario che venga compiuto un lavoro molto preciso su questi protocolli, per assicurarsi che sidechain e chain principale rimangano in perfetta sincronia. Comunque sia, ad oggi i risultati fanno ben sperare.
Le versioni più popolari di questa tecnologia includono Lightning Network per Bitcoin e Raiden Network per Ethereum. Questi progetti sono certamente ancora agli inizi, ed esistono infatti diverse versioni di Lightning Network in fase di sviluppo. Non è ancora chiaro quale versione diventerà lo standard, se mai ce ne sarà una. Un altro esempio di soluzione di secondo livello per Ethereum è Plasma, che vedrebbe contratti intelligenti utilizzati per costruire sidechain di dati di transazioni. Allo stesso modo Charles Hoskinson, il creatore di Cardano, ha discusso dell'imminente tecnologia Hydra, che mira a introdurre sia un second layer che lo sharding nella speranza di raggiungere "1 milione di transazioni al secondo".
Un altro progetto, che prende elementi da molte di queste diverse soluzioni, si chiama ILCoin. ILCoin utilizza un protocollo detto RIFT e affronta il concetto di blockchain in un modo leggermente diverso, così da creare un "Sistema Blockchain Ibrido Decentralizzato", o DHCB. Si tratta di un sistema multistrato basato sul medesimo algoritmo PoW SHA-256 di Bitcoin, ma dove la catena è composta da blocchi che sono pieni di "mini-blocchi". I mini-blocchi sono fissi a 25 MB, tuttavia la quantità di blocchi che possono essere inseriti all'interno di un blocco regolare non ha, teoricamente, alcun limite. Il team dichiara di aver creato con successo blocchi fino a 5 GB.
Nella documentazione del progetto è possibile leggere:
"Supponendo che ogni transazione occupi il numero minimo di byte possibile, ogni blocco può contenere fino ad un massimo di 21.551.724 transazioni. Con un tempo medio di estrazione dei blocchi di 3 - 5 minuti, equivale a 71.839 - 119.731 transazioni al secondo utilizzando un blocco di 5 GB."
Grazie al protocollo RIFT, ai blocchi da 5 GB e all'architettura dei mini-blocchi, ILCoin ha programmato il lancio della sua Decentralized Cloud Blockchain, o DCB, per quest'anno. Il team afferma che la DCB consentirà l'archiviazione su blockchain di un'ampia gamma di contenuti digitali, tra cui immagini, video e altro ancora. Fino ad ora, l'archiviazione di grandi quantità di dati su blockchain non era possibile a causa del sovraccarico della blockchain.
C'è ancora molto lavoro da fare
È possibile che non esiste una soluzione più corretta di altre al problema della scalabilità. Ogni progetto potrebbe aver bisogno di analizzare l’utilizzo che ne viene fatto e introdurre delle soluzioni tecniche specifiche. Per non parlare delle nuove strategie e tecnologie in continua evoluzione, che potrebbero ribaltare completamente i paradigmi attuali. Anche se tutte le soluzioni descritte mostrano delle possibilità concrete di scalabilità, ognuna di esse presenta sia pro che contro.
Probabilmente una combinazione fra queste idee, e molte altre ancora da scoprire, farà sì che le criptovalute raggiungano un pubblico realmente di massa. Il problema della scalabilità deve essere risolto quanto prima, altrimenti le catene centralizzate e permissioned rimarranno le uniche realmente utilizzabili da una popolazione globale.
Avviso. Cointelegraph non supporta alcun contenuto o prodotto presente su questa pagina. Ci impegniamo ad offrire ai nostri lettori quante più informazioni possibili sui progetti, ma gli utenti dovrebbero comunque compiere le proprie ricerche prima di intraprendere qualsiasi azione legata a questa azienda, e assumersi la totale responsabilità delle proprie decisioni. Questo articolo non può essere considerato un consiglio d'investimento.