Negli ultimi anni di sviluppo nelle reti di criptovalute, ci sono stati molti progetti alla ricerca di miglioramenti della scalabilità, ma nessuno è arrivato al livello delle soluzioni standard del settore. Esempi di queste soluzioni per la scalabilità includono lo sharding omogeneo di Ethereum 2.0, lo sharding eterogeneo costruito da Polkadot, le catene laterali di Plasma, zkSync, Optimistic Rollup, la struttura cross-chain di COSMOS (con espansione della capacità cross-chain) e soluzioni di livello 2 come StarkWare.
Questi progetti sono costantemente alla ricerca della migliore soluzione di scalabilità basata sulla struttura blockchain di Ethereum e Bitcoin. Di questi progetti, Ethereum 2.0 ha attirato la maggior attenzione per la creazione di app e servizi finanziari. La soluzione di scalabilità di Ethereum 2.0 si concentra sulla transizione da Proof of work (PoW) a Proof of stake (PoS), l’aggregazione delle transazioni (rollup) e la definizione della struttura di sharding (blockchain sharding). Questo metodo di miglioramento della scalabilità richiede molto tempo per l’implementazione. Tuttavia, non si può negare che questo sia un percorso essenziale a lungo termine per Ethereum in quanto cerca il Santo Graal del ridimensionamento della blockchain.
In parole povere, i vantaggi della struttura blockchain sono evidenti, ma anche il tetto imposto dai suoi limiti è estremamente evidente. Quindi è difficile per l’industria continuare l’innovazione senza rompere il tetto di prestazioni imposto dalla struttura blockchain. Di conseguenza, credo che l’innovazione nel settore blockchain debba fare riferimento a idee provenienti da altre industrie mature e sistemi tecnologici maturi.
Possiamo fare riferimento alla progettazione di piattaforme di cloud computing come un modo per sfondare il tetto delle prestazioni.
Il collo di bottiglia per Blockchain è ovvio
Il collo di bottiglia per blockchain deriva dal suo più grande vantaggio: il consenso.
Il consenso è un processo in cui più parti (nodi) mettono in coda ed eseguono le transazioni, quindi concordano i risultati dell’esecuzione. Prendiamo ad esempio il processo di consenso di Bitcoin: un nodo produce un blocco dopo aver convalidato tutte le transazioni al suo interno e lo trasmette a tutti i suoi peer per mantenerlo sulla rete decentralizzata, e tutti quei peer convalidano anche tutte quelle transazioni e il blocco.
Anche dopo che Ethereum 1.0 avrà effettuato la transizione a 2.0, dove il meccanismo di consenso sarà cambiato da PoW a PoS, l’unico miglioramento nel suo processo di consenso è la riduzione del tempo per il completamento di un singolo round di consenso, in modo da aumentare la capacità di calcolo all’interno di un unità di tempo. Di fronte alle enormi esigenze di elaborazione, il tetto (limiti di elaborazione) del consenso su PoS è ancora troppo ovvio. Stiamo rinunciando all’efficienza per il bene della resilienza.
Il modello nella figura sopra apparirà con elevate esigenze di calcolo. Se l’unico miglioramento per la scalabilità è ridurre il tempo necessario per il completamento di un singolo round di consenso in ogni blocco della catena, allora in presenza di elevate esigenze di elaborazione, le attività di elaborazione continueranno a sovraccaricare le risorse di elaborazione di un nodo di elaborazione. Pertanto, diverse attività rimarranno bloccate nel collo di bottiglia, creando un arretrato di transazioni in attesa. (In Bitcoin ed Ethereum, questo si presenta come un grande mempool.)
Se l’elaborazione molto rapida non è critica per alcune applicazioni (come le applicazioni non ad alta intensità di risorse come DeFi), è possibile accelerare l’intero processo di conferma migliorando la potenza di calcolo media dei nodi, passando a un algoritmo di consenso più veloce e pianificando l’ordine di esecuzione e la tempistica per le attività che devono anticipare l’uso urgente delle risorse.
Sfortunatamente, per molti scenari ad alta concorrenza ci sarà sicuramente ancora traffico in ritardo, rallentamenti, blocco completo o altri problemi causati dalla congestione (come problemi di sicurezza). Lo sviluppo della blockchain non può limitarsi ad essere applicabile solo alla DeFi e alle applicazioni che possono essere eseguite con una bassa concorrenza. Vogliamo essere in grado di supportare scenari ad alta concorrenza, come Web3 Analytics (simile a Google Analytics), in cui sono necessari throughput molto elevati per un gran numero di utenti globali per avere un’esperienza di alta qualità.
Per risolvere questo problema, dobbiamo aumentare il calcolo a velocità così elevate nella rete che non possono essere raggiunte semplicemente rendendo il processo più veloce; abbiamo bisogno di aumentare il livello di concorrenza nel calcolo per essere in grado di fare abbastanza calcoli in un dato momento.
Come possono essere realizzati lo scaling e il calcolo parallelo nella rete blockchain se prendiamo in prestito idee dal cloud computing?
Nel cloud computing tradizionale, le prestazioni della rete sono pari alla somma dei server connessi. L’aggiunta di più server aumenta le prestazioni della rete di cloud computing. Tuttavia, nel contesto della blockchain, ogni nodo ripete tutto il calcolo, il che fornisce ridondanza invece di un aumento delle prestazioni di calcolo (efficienza), quindi nella blockchain tradizionale, l’aggiunta di più nodi (analogo all’aggiunta di server) semplicemente non aumenterà le prestazioni di calcolo. Aumentiamo solo la ridondanza e la fiducia mentre le prestazioni rimangono invariate.
Tuttavia, l’aumento delle prestazioni è esattamente ciò di cui le blockchain hanno bisogno in questa fase di sviluppo: i massicci tipi di aumento necessari per eseguire attività con elevata concorrenza. Le reti blockchain tradizionali hanno sacrificato l’efficienza per motivi di ridondanza, ma possiamo ancora prendere in prestito idee dal cloud computing per aumentare l’efficienza mantenendo la ridondanza necessaria per la sicurezza.
Entriamo in alcune innovazioni sviluppate nel cloud computing. Nelle piattaforme di cloud computing esiste lo scaling-out (ridimensionamento orizzontale) e lo scaling-up (ridimensionamento verticale). Il ridimensionamento orizzontale è il calcolo parallelo, che elabora le attività suddividendole in corsie e partizioni che possono essere elaborate in modo indipendente. Al contrario, il ridimensionamento verticale aumenta la capacità di elaborazione di un singolo dispositivo, che è simile al tentativo di aumentare la dimensione del blocco per risolvere il problema della scalabilità.
Tuttavia, la struttura delle reti blockchain non può essere modificata facilmente, quindi l’idea di implementare il calcolo parallelo si è evoluta in due approcci generali.
In questo articolo, prenderemo sei progetti blockchain, Oasis, Phala, PlatON, Dfinity, IOTA e Filecoin, come esempi per illustrare due principali scuole di pensiero per l’implementazione parallela. Per prima cosa considereremo il parallelismo hardware sicuro, quindi prenderemo in considerazione i miglioramenti nel parallelismo degli algoritmi.
In futuro, reti blockchain come queste saranno potenzialmente in grado di risolvere molti problemi rimanenti su Internet una volta che avranno acquisito la capacità di eseguire l’elaborazione parallela.
Scomporre le due principali idee di calcolo parallelo
I progetti di cui sopra possono essere suddivisi in due scuole di pensiero per risolvere il problema della scalabilità utilizzando il calcolo parallelo.
Una scuola di pensiero è rappresentata da Oasis, Phala e PlatON. Questi 3 progetti cercano di risolvere il problema del ridimensionamento sfruttando la tecnologia di elaborazione affidabile basata su hardware per fornire risorse di elaborazione aggiuntive. Questo hardware di solito fornisce sicurezza senza compromettere le prestazioni, consentendoci di scalare la blockchain su calcolo e archiviazione. Inoltre, poiché questa sicurezza non si basa sull’algoritmo di consenso (che deve essere coordinato), questi dispositivi possono eseguire il calcolo in modo indipendente, in modo che il calcolo parallelo possa essere implementato in modo sicuro al di fuori del livello di consenso. Possiamo riassumere questo come calcolo affidabile parallelo.
La seconda scuola di pensiero è rappresentata da Dfinity, IOTA e Filecoin. Attraverso lo sviluppo di nuovi algoritmi per il livello di consenso, il processo di conferma delle transazioni a blocchi viene migliorato per ottenere l’esecuzione parallela, che può quindi migliorare la capacità di esecuzione delle transazioni sulla catena. Quindi, attraverso il più alto livello di concorrenza consentito dagli algoritmi di consenso avanzati, è possibile massimizzare le capacità di calcolo di ogni singolo dispositivo di elaborazione, che è effettivamente il ridimensionamento verticale per il cloud computing.
Seguono alcuni dettagli di questi 2 diversi approcci.
I. Progetti di rete basati su un approccio assistito da hardware per ottenere la concorrenza.
- Crea prima un livello di consenso di alta qualità.
Qualsiasi criptovaluta ha bisogno di un registro generale che esiste nel livello di consenso. Oasis, Phala e PlatON separano tutti il livello di consenso e il livello di elaborazione. Esiste un livello di consenso indipendente sopra i dispositivi di elaborazione, ovvero una rete blockchain di algoritmi di consenso ad alta velocità costruita sopra i nodi di elaborazione (o cloud).
Tuttavia, vale la pena notare che Oasis e PlatON hanno concetti di stratificazione chiari, il concetto di stratificazione di Phala non è ovvio. I suoi dettagli di progettazione si trovano in regole indipendenti per i dispositivi di elaborazione sotto la catena.
Al fine di garantire la stabilità del livello di consenso, Oasis ha scelto di creare nodi attraverso organizzazioni e imprese con elevata fiducia nel settore e i nodi comunicano tra loro attraverso l’algoritmo tendermint per formare rapidamente il libro mastro generale.
Anche i nodi di PlatON sono costruiti da una federazione e utilizza un algoritmo simile a BFT e un algoritmo simile a CBFT per ottimizzare l’efficienza rispetto all’algoritmo BFT ordinario.
In Phala, una rete di nodi di lavoro con Trusted Execution Environments (TEE) è connessa alla rete blockchain. Tra i lavoratori TEE, un gruppo di nodi speciali (chiamati Gatekeeper) è responsabile dell’organizzazione delle risorse di calcolo e della manutenzione del registro. Usano il metodo di consenso chiamato Nomination Proof of Stake (NPoS), gli stessi metodi usati da Polkadot, che può produrre rapidamente nuovi blocchi.
Al di sotto del livello di consenso, portano l’elaborazione e l’archiviazione fuori dalla catena (che alcuni potrebbero chiamare Livello 2) ed è qui che avviene il calcolo parallelo.
2. Realizzare il calcolo parallelo in un livello di calcolo separato.
Diamo un’occhiata a Oasis. Il suo livello di elaborazione è costituito da più livelli Paratime, ciascuno visto come una catena indipendente o un cluster di runtime, il cui consenso finale è fornito da un livello di consenso. Oasis prevede alcuni ParaTimes confidenziali abilitati dalla sicurezza TEE, ma in questa fase iniziale dell’implementazione della rete Oasis, Paratime è per lo più nodi completi regolari distribuiti nel cloud e non ha implementato molti dispositivi dotati di TEE. Con il tempo, forse un numero sufficiente di nodi di Paratime avrà capacità TEE per garantire la sicurezza di alcuni livelli ParaTime riservati.
Nel frattempo, in Phala, tutto il calcolo è completato nei nodi miner TEE. Il runtime di esecuzione di Phala, pRuntime, verrà distribuito in ogni TEE. La comunicazione tra ciascun pRuntime e il livello di consenso è indipendente, quindi le transazioni elaborate in pRuntime non subiscono contese. Questo calcolo parallelo è realizzato fin dall’inizio, perché ogni pRuntime funge da shard. Più sono questi nodi miner, migliori sono le prestazioni della rete.
Infine, PlatON — dove il calcolo viene completato in quello che chiamano Layer 2. Il Layer 2 di PlatON ha un gran numero di dispositivi di elaborazione, inclusi dispositivi di elaborazione attendibili personalizzati, come circuiti programmabili per il calcolo multiparte. Inoltre, il calcolo della privacy viene completato anche tramite crittografia, zero knowledge proof e altre tecnologie. PlatON può anche realizzare l’informatica sulla privacy, ma utilizza prove di conoscenza zero, crittografia omomorfa o elaborazione multipartitica, ecc.
Progettare il livello di elaborazione come una rete di hardware di elaborazione affidabile è un modo per utilizzare l’elaborazione parallela per espandere la capacità e raggiungere la scalabilità. Alcuni potrebbero obiettare che spostare i calcoli fuori dal livello di consenso non è una vera realizzazione del blockchain computing parallelo, perché cambia l’assunzione di sicurezza del modello di minaccia blockchain. Tuttavia, in questo modello, i dispositivi sono considerati integrati con i livelli di consenso perché apportano ulteriori garanzie di sicurezza attraverso la tecnologia di elaborazione attendibile.
In teoria, per proteggere l’informatica, abbiamo bisogno di un concetto di contabilità generale o di altri modi per controllare la sicurezza dell’informatica off-chain. Ma con l’aiuto di hardware di elaborazione affidabile, non abbiamo bisogno di questo libro mastro generale per fornire la sicurezza off-chain.
Possiamo contrastarlo con Ethereum 2.0. In esso, la beacon chain è il libro mastro totale. Se il sistema di sharding è stato distribuito, ogni shard può elaborare le attività indipendentemente dalle altre. In Oasis, Phala e PlatON il calcolo eseguito dallo shard viene sostituito da hardware affidabile: ogni unità di hardware testato è effettivamente un altro shard.
Ora che abbiamo analizzato esempi di parallelismo tramite livelli di calcolo, diamo un’occhiata a come il parallelismo può essere realizzato modificando gli algoritmi.
II. Progetti di rete basati sull’utilizzo di algoritmi per ottenere un’elaborazione parallela
1. Sviluppare un nuovo algoritmo.
Dfinity, IOTA e Filecoin sono buoni rappresentanti di questo approccio. Dopo che è stato sviluppato un algoritmo che lo consente, le transazioni possono essere eseguite in parallelo senza influenzare il processo di conferma del blocco, il che si traduce in un aumento del throughput complessivo.
È importante ricordare che se viene implementato il parallelismo a livello di algoritmo, vengono modificate le regole dell’algoritmo di consenso, il che cambia anche il funzionamento fondamentale della blockchain. Ad esempio, se l’algoritmo PoW viene modificato, cambierà anche la logica per la generazione di numeri casuali, la creazione di blocchi e la trasmissione nella blockchain.
L’ottimizzazione in Dfinity risiede nell’algoritmo di consenso. Dfinity cambia l’aspetto del meccanismo di consenso tradizionale in cui tutti i nodi che partecipano devono eseguire tutti i calcoli di consenso, in un meccanismo in cui vengono generati numeri casuali per selezionare quale nodo eseguirà il calcolo del consenso, il che accelera la verifica della transazione. Ciò che è fondamentale qui è che il nodo di consenso selezionato conferma la transazione attraverso un algoritmo BSL non interattivo (il nodo conferma che il feedback della firma dei dati è indipendente, non combinato), il che significa che non sperimenterà un processo di interazione ripetuto tra i nodi con consenso BFT, ottenendo così l’effetto di un’accelerazione “parallela”.
L’approccio adottato da IOTA è completamente diverso. A differenza di altre blockchain, IOTA utilizza una struttura dati Tangle (una sorta di DAG) per formare un registro generale. Tangle richiede che ogni transazione sia supportata da due transazioni precedenti. In termini informatici, poiché c’è solo un ordinamento parziale delle transazioni, non un ordinamento completo, deve eliminare completamente la dipendenza dal timestamp che si trova in altre architetture blockchain. Il Tangle alla fine forma una struttura di conferma della correlazione infinita della transazione, che può raggiungere il parallelismo.
Filecoin applica il parallelismo alle attività di archiviazione. A causa dell’aspetto di archiviazione di Filecoin, Filecoin eseguirà una verifica e una digestione complete sui dati archiviati, che è un processo computazionalmente intensivo (relativamente parlando). Ciò significa che il parallelismo e gli aumenti di velocità sono molto importanti per le prestazioni complessive. Attualmente, utilizza l’algoritmo NSE aggiornato.
Possiamo vedere dalla scomposizione dell’algoritmo NSE che durante l’elaborazione dei dati, i dati saranno divisi in finestre (intese come unità) e livelli. Dopo aver elaborato alcuni blocchi di dati, viene eseguita l’archiviazione dei dati e la successiva generazione post-prova. Con NSE, non ci sono troppe dipendenze tra i livelli, quindi molto può essere elaborato in parallelo, che può essere riassunto come accelerazione parallela.
2. Riconfigurare altre parti come richiesto dall’algoritmo.
Alcune funzioni ausiliarie sono necessarie dopo che la parallelizzazione è stata ottenuta algoritmicamente.
Abbiamo notato che il Tangle of IOTA non ha timestamp o ordine come le normali blockchain. Quindi, per raggiungere un consenso, abbiamo bisogno dell’aiuto di un verificatore di transazioni per confermare quali transazioni fanno parte del consenso.
Gli algoritmi utilizzati da Dfinity sono associati a sottoreti, data center e contenitori. Una sottorete in Dfinity è simile a un “shard” in una blockchain sharded. Le sottoreti sono ospitate dalle macchine fisiche situate nei Data Center. Ciò significa che la potenza di elaborazione intrinseca della rete è sostanziale. Su una sottorete, il contenitore è un’unità di distribuzione indipendente, che può essere paragonata allo smart contract della blockchain. Le interazioni combinate del contenitore possono supportare applicazioni complesse.
In Filecoin, dopo l’elaborazione parallela dei dati da parte dell’algoritmo NSE, Filecoin esegue la replica dello storage e il confezionamento di Proof-of-Spacetime. Queste parti necessarie garantiscono la coerenza della contabilità generale di Filecoin. Altre parti dello sviluppo si basano sugli strumenti forniti dal team ufficiale e dall’ecosistema di Filecoin.
Quali sono le prospettive dopo il calcolo parallelo con le tecnologie cloud?
I sei progetti blockchain di cui sopra hanno teoricamente superato i limiti di prestazioni inerenti alla blockchain tradizionale utilizzando il calcolo parallelo. Quindi, qual è il prossimo passo nel loro sviluppo?
Secondo me, il prossimo passo è capire come rendere queste funzionalità disponibili agli sviluppatori attraverso gli strumenti di sviluppo. Dopotutto, l’obiettivo più importante della rete blockchain è sviluppare DAPP e servizi decentralizzati generalizzati.
L’infrastruttura è inutile se non ci sono sviluppatori per realizzare applicazioni su di essa, anche se le prestazioni dell’infrastruttura sono sufficientemente elevate. Gli sviluppatori determinano il numero di applicazioni sulla catena. Il numero delle applicazioni sulla catena determina il valore creato e detenuto da quella catena.
Gli sviluppatori di Internet tradizionali che entrano nell’era del cloud computing hanno dovuto affrontare alcune difficoltà nello sviluppo nativo, ma alla fine le piattaforme di cloud computing hanno fornito ai nuovi sviluppatori strumenti di altissima qualità. Come risultato del loro duro lavoro, gli sviluppatori successivi sono liberi dalle preoccupazioni sulla scalabilità che affliggevano gli sviluppatori precedenti.
Le reti blockchain di oggi possono prendere ”l’architettura orientata ai servizi” delle piattaforme di cloud computing come obiettivo verso cui innovare? Con la concorrenza, vediamo che le blockchain possono sfondare il tetto delle prestazioni. Quanto in alto possono andare?