Questa è la seconda parte di una serie in tre parti in cui Andrew Levine delinea i problemi che devono affrontare le blockchain legacy e propone soluzioni a questi problemi. Leggi la Parte 1 su crisi di aggiornabilità qui e la parte 3 sulla crisi della governance in corso il 25 settembre.

L’avvento di Internet ha rivelato che abbiamo un sé digitale in grado di amplificare il nostro potere nel mondo reale grazie alla capacità di interagire con le persone ovunque sulla Terra e coordinare azioni che i nostri sé fisici non avrebbero mai potuto.

Ma il nostro sé digitale è incatenato: imprigionato su computer privati ​​appartenenti a Facebook, Google, Amazon, Netflix, Twitter e l’elenco potrebbe continuare. Questi monopoli privati ​​in realtà non producono tecnologia; piuttosto, il loro prodotto siamo noi – il nostro sé digitale – e il loro intero scopo è quello di estrarre da noi quanto più valore possibile.

Molte persone riconoscono il potenziale della tecnologia blockchain per interrompere questi monopoli e oligopoli privati, ma sfortunatamente nessuna blockchain specifica è stata in grado di andare oltre le mura della comunità blockchain e criptovaluta esistente.

E se lo facesse, non sarebbe tecnicamente in grado di supportare il tipo di crescita e adozione necessaria per consentire a ogni persona sulla Terra di assumere il controllo del proprio sé digitale. Perché? È solo questione di scegliere le caratteristiche giuste? Passare al proof-of-stake? Sharding?

Sfortunatamente, il problema è molto più grande di una o due caratteristiche mancanti e non sarà risolto dalle modifiche pianificate ai protocolli esistenti perché i problemi stanno alla base del modo in cui sono costruiti. La stessa architettura limita il potenziale di scalabilità verticale di queste piattaforme.

Cos’è il ridimensionamento verticale?

Il ridimensionamento verticale è il modo in cui gestisci la crescita di un singolo nodo (computer) in una rete. Le blockchain sono database che non scaricano mai le informazioni. Le informazioni vengono solo aggiunte al database, mai rimosse. Questo rende la crescita un problema ancora più grande. Non solo, ma la maggior parte delle blockchain non sono progettate per fare un uso efficiente delle varie parti di un computer. Ciò si aggiunge a un grande database, che consuma molte risorse di calcolo su una data macchina in modo inefficiente.

Per compensare queste carenze, gli operatori dei nodi si affidano a costosi hardware di livello aziendale, in particolare, la memoria ad accesso casuale, o RAM, e la memoria non volatile express, o NVMe, che è ciò che spinge la partecipazione alla rete (operazione del nodo) oltre il comprensione della gente comune. E in qualche modo, dovremmo credere che non sia male per il decentramento!

Ma sharding!

Ironia della sorte, uno degli argomenti più forti per l’esistenza di una crisi di ridimensionamento verticale è il livello di domanda di soluzioni di ridimensionamento orizzontale.

Al momento della stesura di questo documento, un nodo completo Ethereum ancora non superare i 500 GB. Non è niente! Eppure, è anche assolutamente vero che un meccanismo complicato e rischioso deve essere aggiunto a Ethereum in modo che la sua blockchain possa essere suddivisa in pezzi e che le preziose risorse computazionali devono essere spese semplicemente per consentire a questi “frammenti” di comunicare tra loro, per non parlare di eseguire calcoli significativi.

Il problema è che il ridimensionamento orizzontale (sharding) non è un sostituto del ridimensionamento verticale. Immagina di avere una fabbrica che produce 1.000 auto all’anno, ma c’è una domanda sufficiente per 2.000 auto. Cosa fai prima: costruisci una nuova fabbrica o prova a fare più auto dalla fabbrica che hai già? Il ridimensionamento verticale sta ottimizzando la fabbrica per produrre più auto prima di costruire semplicemente una nuova fabbrica. I nodi blockchain sono la “fabbrica” ​​e ciò che determina il loro output è l’efficienza con cui utilizzano i componenti di un computer.

Parlando per esperienza diretta, le blockchain sono orribilmente non ottimizzate rispetto alla gestione delle risorse dei nodi, il che le rende il candidato perfetto per soluzioni di scalabilità verticale.

Nella blockchain, ci sono essenzialmente due lignaggi: Ethereum e BitShares. Molte persone potrebbero non avere familiarità con BitShares, ma il suo design architettonico è alla base di alcune delle blockchain più performanti nello spazio, tra cui EOS, Hive e Steem. Mentre Ethereum, e le molte catene che ne sono modellate, rimane la blockchain generica più apprezzata con le applicazioni più decentralizzate e gli utenti unici, la linea BitShares assolutamente domina in termini di attività di transazione grezza, rendendolo il re delle prestazioni.

Il mio team, probabilmente, ha più esperienza nella linea BitShares di qualsiasi altro team sulla Terra, quindi ci concentreremo su quel design. Poiché le blockchain nella linea BitShares sono in grado di eseguire molte più transazioni al secondo, questo in realtà aumenta l’importanza del ridimensionamento verticale, perché il loro stato di blockchain sta crescendo molto più velocemente.

Ridimensionamento verticale, RAM e fork

Il ridimensionamento verticale, nel contesto informatico, consiste essenzialmente nell’utilizzare la forma di memoria più economica (disco) quando possibile e nella massima misura possibile. Nel caso delle blockchain, i due processi più rilevanti sono la risoluzione del fork e lo stato di archiviazione. Ci sono tutte queste diverse versioni del database là fuori (“fork”), ei nodi devono giungere a un consenso su quale sia quella “giusta”. Questa è la risoluzione del fork.

Ora hai un database irreversibile che deve essere archiviato. Idealmente, vuoi che sia memorizzato sul supporto più economico possibile (disco) anziché sul più costoso (RAM).

Poiché vuoi che i fork vengano risolti il ​​più velocemente possibile, vuoi che questi calcoli vengano eseguiti nella RAM (memoria veloce). Ma una volta che i fork sono stati risolti e le nuove transazioni sono state aggiunte allo stato irreversibile, si desidera archiviare questo database su disco. Il problema con le blockchain della linea BitShares è che raggiungono le loro prestazioni attraverso un design che non riflette mai effettivamente lo stato attuale della blockchain. Invece, quando viene applicato ogni blocco, lo stato della transazione in sospeso viene “annullato”, i vecchi valori vengono riscritti nel database e quindi il blocco viene applicato.

Un problema con questo approccio è che la maggior parte delle volte, ciò significa eseguire di nuovo gli stessi identici calcoli e riscrivere lo stesso stato nel database che era lì, il che è estremamente inefficiente.

Lettura e scrittura: l’aritmetica

Ancora più rilevante per il problema del ridimensionamento verticale è che questo design significa che lo stato irreversibile nel suo insieme non può essere memorizzato su disco senza dover “estrarre” i blocchi dal disco e nella RAM per risolvere i fork. Ciò non solo aumenta il carico di RAM su un dato nodo, ma ha anche conseguenze molto gravi rispetto all’utilizzo di RocksDB.

RocksDB è una tecnologia di database sviluppata da Facebook per alimentare il suo feed di notizie. In breve, ci consente di ottenere le prestazioni della RAM ma da disco. Molti progetti blockchain utilizzano RocksDB in vari modi, ma il problema con il design del database che abbiamo delineato è che la costante necessità di annullare le transazioni in sospeso e riscrivere nel database nega i vantaggi di RocksDB.

Il feed di notizie di Facebook riguarda le letture del database. Considera quanti post scorri prima di interagire con uno solo. Per questo motivo, RocksDB è progettato per funzionare al meglio quando ci sono molte più letture nel database che scritture. Il design del database delineato sopra porta a così tante scritture sul database che nega i vantaggi persino dell’utilizzo di RocksDB.

Per sfruttare appieno RocksDB, dobbiamo ricostruire la blockchain da zero per trasportare in modo efficiente i blocchi dalla RAM al disco, riducendo al minimo il numero di scritture in modo da beneficiare di RocksDB. Possiamo ottenere ciò eliminando la necessità di annullare / riscrivere e creare un unico database che tiene traccia dello stato irreversibile e non deve mai essere annullato.

Questo ci consentirebbe di ridurre al minimo l’uso della RAM nei nodi trasportando in modo efficiente blocchi irreversibili dalla RAM e nel disco senza doverli ripristinare. Stimiamo che ciò potrebbe ridurre il costo di esecuzione di un nodo fino al 75%! Questo non solo renderebbe il funzionamento dei nodi più accessibile, aumentando il numero di nodi in funzione, ma questi risparmi sui costi verrebbero infine trasferiti a utenti e sviluppatori.

Blockchain limitanti o blockchain illimitate?

Le blockchain esistenti stanno raggiungendo i limiti di prestazioni di ciò che possono ottenere da un singolo nodo come conseguenza di come risolvono i fork e come memorizzano il loro stato blockchain. In questo articolo, abbiamo spiegato come la progettazione del database può portare a un processo di risoluzione del fork che aumenta l’uso della RAM e scritture del database che annullano i vantaggi che potrebbero derivare dall’uso di RocksDB, portando alla fine a nodi blockchain meno efficienti.

La verità è che c’è molto di più nel ridimensionamento verticale di questo singolo problema. Gli ecosistemi blockchain sono complessi, con molti componenti che si feedback l’uno nell’altro. La riduzione del costo di gestione di un singolo nodo è fondamentale per aumentare il numero di nodi in funzione e ridurre i costi di utilizzo della rete, ma si possono ottenere anche enormi vantaggi riducendo al minimo la congestione della rete, incentivando il funzionamento efficiente del nodo e altro ancora.

Il nostro obiettivo non è spiegare in dettaglio come si possa risolvere il problema del ridimensionamento verticale, ma dare un’idea della natura di ciò che pensiamo sia un problema drammaticamente sottovalutato nello spazio blockchain. La scalabilità orizzontale è un’area di interesse assolutamente molto importante, ma se ignoriamo il problema della scalabilità verticale, tutto ciò che otterremo scalando orizzontalmente aumenterà notevolmente il numero di nodi orribilmente inefficienti.

Le opinioni, i pensieri e le opinioni qui espresse sono esclusivamente dell’autore e non riflettono né rappresentano necessariamente le opinioni e le opinioni di Cointelegraph.

Andrew Levine è il CEO di OpenOrchard, dove lui e l’ex team di sviluppo dietro la blockchain di Steem costruiscono soluzioni basate su blockchain che consentono alle persone di assumere la proprietà e il controllo del proprio sé digitale. Il loro prodotto fondamentale è Koinos, una blockchain ad alte prestazioni costruita su un framework completamente nuovo progettato per fornire agli sviluppatori le funzionalità di cui hanno bisogno per offrire le esperienze utente necessarie per diffondere l’adozione della blockchain alle masse.



Source link

LEAVE A REPLY

Please enter your comment!
Please enter your name here