L’Algoritmo di Consenso Proof of Stake a Noleggio e il protocollo Waves-NG
Il network di Waves opera secondo un algoritmo di consenso proof-of-stake a noleggio (LPoS), combinato con il protocollo Waves-NG, consentendo un alto livello di scalabilità e di capacità.
Introduzione
Il network di
Waves è stato lanciato nel 2016 dopo una ICO che ha raccolto 30,000 BTC - equivalente al tempo a circa $16 milioni. Il progetto sta sviluppando un ecosistema blockchain comprensivo per l’utilizzo in processi commerciali, con un toolkit ad ampio raggio che copre svariate esigenze - tra cui la facilità di creazione di crypto-token personalizzati;
smart contract chiari; trading peer-to-peer su un exchange decentralizzato integrato (DEX); e un mezzo di interazione con
dApp e servizi web sicuro e conveniente attraverso il plug-in per browser Waves Keeper.
Scalabilità
Sin dalla sua origine, Waves ha compreso che la scalabilità sarebbe stata un elemento fondamentale per l’adozione di massa della
blockchain, e ha dato priorità allo sviluppo di una tecnologia per far fronte ai limiti delle blockchain esistenti. Per esempio,
Bitcoin è altamente sicuro ma relativamente lento, e può sostenere circa 7 transazioni al secondo (TPS). Di conseguenza, Bitcoin non è abbastanza efficiente da essere utilizzato come una moneta d’uso quotidiano in tutto il mondo. Soluzioni a secondo livello come
Lightning Network sono necessarie per fare in modo che Bitcoin sia utile a questo fine. Waves ha scelto un approccio differente, concentrandosi inizialmente su un’alta scalabilità on-chain prima di considerare applicazioni a secondo livello.
Noleggio di bilanci
L’
algoritmo di consenso originale di Waves era una semplice implementazione
Proof of Stake. Tutti i 100 milioni di token WAVES sono stati distribuiti dopo la ICO, e la fornitura è fissa: non è presente inflazione, a differenza delle monete con mining
PoW. Quindi, i validatori dei blocchi Waves (definiti forger, sebbene vengano chiamati spesso ‘miner’ all’interno dell’ecosistema Waves) ricevono le commissioni sulle transazioni dai blocchi su cui lavorano, ma nessun’altra ricompensa.
Il sistema Leased Proof of Stake (LPoS) è stato lanciato integralmente
a maggio 2017, consentendo agli utenti dello Waves lite client – chi non opera un full
node – di noleggiare i propri token WAVES ai nodi mining. Gli WAVES noleggiati sono bloccati nell’account dell’utente e non possono essere trasferiti o venduti. Il proprietario dell’account ha il pieno controllo sui token e i noleggi possono essere annullati in qualsiasi momento. Considerando i costi tecnici associati all’operazione di un nodo mining e la necessità di essere online 24/7, solo una percentuale relativamente piccola della comunità Waves gestisce nodi (una lista dei generatori di blocchi è consultabile su
https://dev.pywaves.org/generators/).
I token WAVES noleggiati a un nodo mining vengono usati per aumentare la posta in gioco del miner, migliorando di conseguenza le probabilità del miner di trovare il blocco successivo. Il sistema Proof of Stake a noleggio migliora la sicurezza del network in almeno due modi. Primo, più token WAVES vengono usati per proteggere il network più alto sarà il livello di sicurezza, in quanto diventa sempre più difficile per un attaccante accumulare i token necessari per un
51% attack. Secondo, i token WAVES possono essere noleggiati a un nodo dall’indirizzo cold storage di un utente, ma il nodo - che rimane online - può avere solo un bilancio minimo. Questo riduce notevolmente il rischio di attacchi ai danni di computer online, in quanto i fondi noleggiati non vengono trasferiti al miner.
Un nuovo approccio al consenso: Waves-NG
Un ulteriore aggiornamento del network è stato presentato a Dicembre 2017, con il lancio di Waves-NG. Si tratta di un nuovo protocollo basato sulla
proposta Bitcoin-NG del professore IT alla Cornell
Emin Gün Sirer.
Il protocollo Bitcoin originale sceglie ciascun miner retroattivamente. Dopo che un blocco viene aggiunto alla blockchain, i
miner competono per trovare una hash valida per il blocco successivo, basandosi sull’attuale stato della blockchain. Nel frattempo, le transazioni generate vanno nella memory pool (mempool), dove rimarranno in sospeso finché un miner le raccoglie e le convalida.
Sebbene entrambi i protocolli Bitcoin e Bitcoin-NG siano considerati sistemi
Byzantine fault tolerant (BFT), quest’ultimo è
stato proposto nel 2015 come un’alternativa scalabile basata su un meccanismo operativo differente. Nel sistema Bitcoin-NG, il miner successivo viene scelto in anticipo e crea un ‘key block’ vuoto - il blocco che verrà aggiunto alla blockchain. Piccoli blocchi chiamati ‘microblock’ (composti da poche transazioni ciascuno) vengono aggiunti quasi in tempo reale a questo key block. Per usare un’analogia, è come aggiungere diversi sacchetti della spesa (microblock) a un carrello (keyblock), prima che il carrello pieno venga spinto infine alla cassa (aggiunto alla blockchain). Questo vuol dire che le transazioni possono essere aggiunte alla blockchain in pochi secondi, con l’unico ritardo causato dalla latenza del network. Waves ha aggiornato questa idea per adattandola a un network proof-of-stake, creando il protocollo Waves-NG - la prima implementazione di Bitcoin-NG per una blockchain aperta e pubblica.
Un’ulteriore aggiunta all’ecosistema è arrivata con
MassTransfer. Questa nuova funzione consente di inserire fino a 100 trasferimenti all’interno di una singola transazione, con commissioni ridotte. Il limite di 100 txs per MassTransfer è stato scelto come compromesso tra il fornire una notevole capacità e convenienza e il limitare l'abilità di inviare grandi quantità di transazioni a basso costo tutte insieme. Nel caso in cui il numero di trasferimenti da compiere fosse maggiore, è possibile inviare diverse MassTransfer in successione.
In altre parole, gli utenti possono scegliere semplicemente una MassTransfer come un diverso tipo di ‘Send transaction’, consentendo loro di includere fino a 100 riceventi in una singola transazione. Inoltre, gli indirizzi riceventi possono essere forniti attraverso JSON o caricati da un file CSV, rendendo più semplice ed efficiente lo svolgimento di grandi airdrop o pagamenti settimanali a chi noleggia WAVES ai nodi mining. Combinato con Waves-NG, la funzione MassTransfer garantisce al network una portata molto elevata.
Diversi stress test sono stati effettuati sul network Waves per valutare il potenziale produttivo del nuovo protocollo. A ottobre 2018, un importante
stress test è stato condotto sulla MainNet. Questo ha dimostrato che il protocollo blockchain pubblico e aperto (non solo una TestNet limitata e controllata) è in grado di sostenere più di
6.1 milioni di transazioni in un periodo di 24 ore - una media di 4,200 txs al minuto o 71 txs al secondo, con un picco di centinaia di transazioni al secondo.
In chiusura
Il sistema Proof-of-Stake a noleggio consente a qualsiasi utente senza esperienza tecnica di aiutare a proteggere il network Waves, noleggiando i propri WAVES a full node senza perdere il controllo dei token. Allo stesso tempo, Waves-NG ha reso possibile una portata fino a 100 TPS, un ordine di grandezza in più di molte blockchain. Le commissioni sono basse in quanto non serve pagare i miner con ricompense per compensare le loro spese su elettricità e hardware costosi.
La scalabilità on-chain è stata una priorità per Waves, ma rimangono dei limiti in questo metodo per qualsiasi blockchain a causa dello spazio di archiviazione e della banda larga richiesti. Gli sviluppatori di Waves credono che l’approccio attuale possa essere ottimizzato per raggiungere fino a 1,000 TPS prima che siano necessarie ulteriori soluzioni per la scalabilità. Waves sta attualmente esplorando opzioni per una soluzione a secondo livello che coinvolge le sidechain, permettendo di elaborare un grande numero di transazioni su una catena parallela per poi archiviarle in sicurezza nella blockchain principale Waves.