Algoritmo Leased Proof of Stake Consensus e protocollo Waves-NG
Autore: Guy Brandon, collaboratore di Waves.
La rete Waves opera su un algoritmo di consenso leased proof-of-stake (LPoS) combinato con il protocollo Waves-NG, consentendo un elevato grado di scalabilità e throughput delle transazioni.
introduzione
La rete Waves è stata lanciata nel 2016 dopo un'ICO che ha raccolto 30.000 BTC, all'epoca circa 16 milioni di dollari. Il progetto sta sviluppando un ecosistema blockchain completo da utilizzare nei processi aziendali, con un ampio kit di strumenti che copre diverse esigenze, inclusa la facile creazione di token di criptovaluta personalizzati; contratti intelligenti semplici; trading peer-to-peer su un exchange decentralizzato integrato (DEX); e un mezzo sicuro e conveniente per interagire con dApp e servizi web tramite il plug-in del browser Waves Keeper.
Scalabilità
Fin dall’inizio, Waves ha riconosciuto che la scalabilità sarebbe stata necessaria per l’adozione di massa della blockchain e ha dato priorità allo sviluppo della tecnologia per affrontare i limiti delle blockchain esistenti. Ad esempio, Bitcoin è altamente sicuro ma relativamente lento e può supportare solo circa 7 transazioni al secondo (TPS). Pertanto, Bitcoin non è abbastanza efficiente per essere utilizzato come valuta quotidiana in tutto il mondo. Affinché Bitcoin possa servire a questo scopo sono necessarie soluzioni di secondo livello come Lightning Network. Waves ha adottato un approccio diverso, concentrandosi inizialmente sull’elevata scalabilità on-chain prima di considerare le applicazioni di secondo livello.
Leasing a saldo
L’algoritmo di consenso originale di Waves era una semplice implementazione della Proof of Stake. Tutti i 100 milioni di token WAVES sono stati distribuiti dopo l'ICO e l'offerta è fissa: non c'è inflazione, come avviene con le monete estratte da PoW. Pertanto, i validatori di blocchi Waves (falsari, sebbene siano generalmente conosciuti semplicemente come “minatori” all’interno dell’ecosistema Waves) ricevono commissioni di transazione dai blocchi che elaborano, ma nessun premio per il blocco.
Il sistema Leased Proof of Stake (LPoS) è stato lanciato completamente nel maggio 2017, consentendo agli utenti del client Waves lite - coloro che non eseguivano un nodo completo - di affittare i propri token WAVES ai nodi di mining. Le WAVES noleggiate sono bloccate nell'account dell'utente e non possono essere trasferite o scambiate. Tuttavia, i token rimangono sotto il pieno controllo del titolare del conto e i contratti di locazione possono essere annullati in qualsiasi momento. Considerati i costi tecnici associati all'esecuzione di un nodo di mining e la necessità di essere online 24 ore su 24, 7 giorni su 7, solo una percentuale relativamente piccola della comunità Waves gestisce i nodi (un elenco di generatori di blocchi può essere trovato su https://dev.pywaves.org /generatori/).
I token WAVES affittati a un nodo minerario vengono utilizzati per aumentare lo stakeweight del minatore, che a sua volta aumenta le possibilità che quel minatore trovi il blocco successivo. Il sistema Leased Proof of Stake migliora la sicurezza della rete in almeno due modi. Innanzitutto, più WAVES vengono utilizzate per proteggere la rete, meglio è, perché diventa più difficile per un utente malintenzionato accumulare i token necessari per effettuare un attacco del 51%. In secondo luogo, WAVES può essere affittato a un nodo dall’indirizzo di conservazione a freddo di un utente, ma il nodo stesso – che rimane online – potrebbe avere solo un saldo minimo. Ciò riduce significativamente il rischio che i token WAVES vengano hackerati da computer online, poiché i fondi affittati non vengono trasferiti al miner.
Un nuovo approccio al consenso: Waves-NG
Un ulteriore upgrade della rete è avvenuto nel dicembre 2017, con il lancio di Waves-NG. Si trattava di un nuovo protocollo basato sulla proposta Bitcoin-NG del professore IT della Cornell Emin Gün Sirer.
Il protocollo Bitcoin originale sceglie retrospettivamente ciascun minatore. Dopo che un blocco è stato aggiunto alla blockchain, i miner competono per trovare un hash valido per il blocco successivo, in base allo stato attuale della blockchain. Nel frattempo, le transazioni appena generate entrano nel pool di memoria (mempool), dove rimarranno in sospeso finché un minatore non le raccoglie e le convalida.
Sebbene sia il protocollo Bitcoin che quello Bitcoin-NG siano considerati sistemi Byzantine Fault Tolerant (BFT), quest’ultimo è stato proposto nel 2015 come alternativa scalabile basata su un diverso meccanismo di funzionamento. Su un sistema Bitcoin-NG, il minatore successivo viene scelto in anticipo e questo minatore crea un "blocco chiave" vuoto, che è il blocco che verrà infine aggiunto alla blockchain. Piccoli blocchi chiamati “microblocchi” (costituiti da poche transazioni ciascuno) vengono aggiunti quasi in tempo reale a questo blocco chiave. Per usare un’analogia quotidiana, è come aggiungere diversi sacchetti della spesa (microblocchi) a un carrello (blocco di chiavi), prima che il carrello pieno venga infine portato alla cassa (aggiunto alla blockchain). Ciò significa che le transazioni possono essere aggiunte alla blockchain in pochi secondi, con l’unico vero ritardo dovuto alla latenza della rete. Waves ha aggiornato questa idea per una rete proof-of-stake, creando il protocollo Waves-NG: la prima implementazione di Bitcoin-NG per una blockchain pubblica e aperta.
Un'ulteriore aggiunta all'ecosistema è stata MassTransfers. Questi consentono di raggruppare fino a 100 trasferimenti in un'unica transazione, con commissioni ridotte. Il limite di 100 tx per MassTransfer è stato scelto come compromesso tra l'aggiunta di capacità e comodità significative, da un lato, e la limitazione della capacità di inviare batch molto grandi di transazioni a basso costo tutte in una volta, dall'altro. Se è necessario effettuare più trasferimenti, è possibile inviare più MassTransfer in sequenza.
In altre parole, gli utenti possono semplicemente scegliere un MassTransfer come un diverso tipo di “transazione di invio”, consentendo loro di includere fino a 100 destinatari in un’unica transazione. Inoltre, gli indirizzi dei destinatari possono essere forniti tramite JSON o caricati da un file CSV, rendendo semplice ed efficiente condurre lanci di grandi dimensioni o eseguire pagamenti settimanali a coloro che affittano i propri WAVES ai nodi minerari. In combinazione con Waves-NG, la funzionalità MassTransfer ha consentito un tasso di throughput molto elevato sulla rete.
Sono stati condotti numerosi stress test sulla rete Waves per valutare il potenziale di throughput del nuovo protocollo. Nell’ottobre 2018 è stato condotto un importante stress test su MainNet. Ciò ha dimostrato che il protocollo blockchain pubblico e aperto (non semplicemente un TestNet limitato e controllato) potrebbe supportare oltre 6,1 milioni di transazioni in un periodo di 24 ore – una media di 4.200 tx al minuto o 71 tx al secondo, con un throughput di picco che raggiunge centinaia di transazioni al secondo.
Pensieri conclusivi
Il sistema Leased Proof-of-Stake ha consentito agli utenti di tutti i giorni senza competenze tecniche di contribuire a proteggere la rete Waves, affittando i propri WAVES a nodi completi senza perdere il controllo dei propri token. Nel frattempo, Waves-NG ha consentito un throughput fino a 100 TPS, che è un ordine di grandezza superiore a quello di molte blockchain. Le tariffe sono basse perché non è necessario pagare i minatori con ricompense in blocchi per compensarli degli elevati costi dell’elettricità e dell’hardware costoso.
La scalabilità on-chain è stata una priorità per Waves, ma ci sono limiti alla misura in cui qualsiasi blockchain può scalare in questo modo a causa dello spazio di archiviazione e della larghezza di banda richiesti. Gli sviluppatori di Waves ritengono che l'approccio attuale possa essere ottimizzato per supportare fino a 1.000 TPS prima che siano necessarie ulteriori soluzioni di scalabilità. Waves sta attualmente esplorando le opzioni per una soluzione di ridimensionamento di secondo livello che coinvolga le sidechain, consentendo l'elaborazione di un gran numero di transazioni su una catena parallela ma alla fine protette sulla blockchain principale di Waves.


