Quando si parla di criptovalute e della tecnologia che sottostà a ogni progetto la prima questione che identifica in maniera più precisa la natura della stessa è l’algoritmo di consenso che viene utilizzato. Si tratta di concetti per crittografi che molti di noi non possono capire profondamente. Gli aspetti tecnici sono particolarmente complessi, tuttavia siamo costretti a costruirci un’infarinatura di base se abbiamo intenzione di affacciarci in questo settore.
In altre parole dobbiamo essere in grado di capire il senso e il perché di determinate questioni e tutto ciò che ruota attorno agli algoritmi di consenso è punto imprescindibile: è la base della quale non possiamo fare a meno. Oggi andiamo a vedere in maniera più dettagliata di cosa si tratta.
Il problema del consenso
Come abbiamo già detto parecchie volte le blockchain vogliono essere dei sistemi distribuiti perché fanno della decentralizzazione uno dei valori fondanti. Da questo deriva uno dei primi problemi che gli sviluppatori hanno dovuto risolvere.
In un sistema distribuito partecipano alla rete diversi nodi, diversi server, come fare per mantenere la coerenza fra di loro? Il sistema, per poter funzionare, deve offrire la medesima rappresentazione della realtà in ogni punto di accesso e deve vietare che possa accadere il contrario.
Se così non fosse, i singoli nodi potrebbero comportarsi in maniera fraudolenta eseguendo il protocollo in modo volutamente errato per trarre qualche vantaggio, ad esempio effettuando un double spending, che consiste nel darsi la possibilità di spendere due volte (o più) la stessa moneta.
Gli algoritmi di consenso (meccanismo attraverso il quale viene eseguito il protocollo, l’insieme di regole) hanno lo scopo di evitare questi problemi.
La Proof of Work
La PoW è stato il primo meccanismo funzionante trovato (rimando a un articolo sulla genesi delle criptovalute). La scansione temporale delle transazioni è scritta sui blocchi e ognuno di essi viene agganciato al precedente dai miners solo nel momento in cui uno di loro ha trovato “la parolina magica”, l’hash block. I miners lanciano una serie di tentativi randomici per trovare la stringa validante. Più potenza computazionale hanno a disposizione e più velocemente potranno eseguire i calcoli, più sono veloci più saranno i tentativi che potranno lanciare in una unità di tempo, aumentando quindi le loro probabilità di successo.
Una volta che il primo di essi ha trovato la soluzione lo indica al resto della rete che sarà tenuta a verificare. Quando gli altri miners confermeranno la validità dell’hash trovato si dà il via libera per l’aggancio e la creazione del nuovo blocco. Il miner ottiene il suo compenso (che è dato dalla somma delle nuove monete emesse più le fees pagate nelle transazioni che ha inserito nel blocco) e tutto il procedimento ricomincia da capo. Reti di questo tipo sono Bitcoin, Litecoin, Dash, eccetera.
La Proof of Stake
La PoW causa quindi un grosso dispendio energetico, anche per questa ragione nel 2011 viene teorizzato il sistema PoS. I validators sostituiscono i miners e si propongono di agganciare un nuovo blocco “scommettendo” una certa quantità di moneta che hanno vincolato alla piattaforma. Uno smart contract propone i candidati blocchi che continueranno la catena e il validator scommette su uno di questi. Quando un blocco raggiunge una certa quantità di scommesse viene selezionato e a questo punto si procede all’estrazione del validator che concretamente si occuperà di agganciarlo e concludere la procedura.
Questa estrazione viene effettuata tenendo conto di varie questioni sia casuali che non, come ad esempio la quantità di moneta scommessa.
Viene da sé che uno dei rischi di questo algoritmo è la possibile tendenza a centralizzare il network poiché più un nodo ha moneta da scommettere più le probabilità che lo stesso venga estratto aumentano. C’è comunque da dire che alcune reti hanno implementato nel protocollo sistemi per disincentivare il crearsi di queste condizioni.
Reti di questo tipo sono Tezos, Cardano, in futuro Ethereum, eccetera.
La Delegate Proof of Stake
Nate come evoluzione della PoS debuttano per la prima volta con Bitshares, la prima idea di Dan Larimer. Lo scopo principale è quello di aumentare efficienza e scalabilità rispetto ai sistemi precedenti. Il modo in cui viene fatto è abbastanza facile da capire: si restringe il numero dei nodi candidati alla validazione. Non dovendo più scegliere fra tutti i candidati le operazioni da fare sono molte meno e il risultato non può che essere di maggiore efficienza e velocità.
Gli account presenti nella rete esprimono dei voti ed eleggono i loro witnesses (per Steem), i loro block producer (su EOS) o i loro Super Representative (su Tron). Dove i voti, il numero totale, non è riferito al numero degli account votanti ma al numero dei token che gli stessi votanti hanno vincolato alla piattaforma (messo in staking) per usufruire dei servizi dei quali hanno bisogno.
In questi meccanismi di solito esistono dei sistemi con i quali i candidati validator si “ingraziano” i favori dell’elettore, in genere operando la redistribuzione fra di essi delle reward relative alla creazione dei blocchi, talvolta in maniera diretta altre volte in maniera indiretta.
Questi tre sono i meccanismi più noti nell’ambiente. Stabilire cosa sia meglio o peggio non è cosa fattibile, nel senso che siamo ancora in una fase di sperimentazione e di solito se si guadagna da un lato si perde dall’altro.
Se proprio ci si volesse sbilanciare però è facile andare a individuare l’algoritmo di consenso che garantisce la sicurezza maggiore (finora inviolata!), si tratta della Proof of Work che è alla base, anche e soprattutto, del nostro amato Bitcoin.