Il campo delle criptovalute si è ampliato enormemente negli ultimi due anni. L'ascesa di nuovi progetti presenta anche vari modi in cui gli sviluppatori stanno affrontando i problemi esistenti sul campo.
Un termine che viene sballottato abbastanza spesso è il "meccanismo di consenso della BFT". BFT sta per Byzantine Fault Tolerance e presenta un problema teorico nei sistemi informatici che esisteva molto prima di Bitcoin.
Tuttavia, molti protocolli basati su blockchain sono impegnati nella risoluzione dei problemi associati alla tolleranza agli errori bizantina e quanto segue esamina più da vicino la questione e tutto ciò che ne deriva.
Spiegazione del problema dei generali bizantini
Il problema dei generali bizantini è una delle situazioni teoriche più discusse ogni volta che viene sollevato il tema del consenso.
Il problema è stato riconosciuto per la prima volta in un documento del 1982 intitolato The Byzantine Generals Problem di Leslie Lamport, Robert Shostak e Marshall Pease. Il giornale recita:
Un sistema informatico affidabile deve essere in grado di far fronte al guasto di uno o più dei suoi componenti. Un componente guasto può mostrare un tipo di comportamento che viene spesso trascurato, ovvero l'invio di informazioni contrastanti a diverse parti del sistema. Il problema di far fronte a questo tipo di fallimento è espresso astrattamente come Problema dei generali bizantini.
Il nome deriva dall'analogia presentata nel documento. Più specificamente, gli autori descrivono una situazione teorica in cui diverse divisioni dell'esercito bizantino sono accampate fuori da una città nemica. Ogni divisione è comandata dal proprio generale, che siedono tutti in diversi accampamenti. I comandanti devono elaborare un piano d'azione comune (se attaccare o ritirarsi) e possono comunicare solo con i messaggi. Tuttavia, alcuni dei generali possono essere traditori e cercare di impedire ai generali fedeli di raggiungere un accordo (consenso).
Pertanto, i generali devono trovare un modo per garantire che:
- Tutti i generali leali decidono lo stesso piano d'azione.
- Un piccolo numero di traditori non può indurre i fedeli generali ad adottare un cattivo piano.
Si ritiene che un sistema in grado di risolvere quanto sopra abbia la tolleranza ai guasti bizantina (BFT). È da qui che deriva l'algoritmo di consenso BFT.
In sostanza, la tolleranza ai guasti bizantina è una condizione che impedisce al sistema di soffrire di partecipanti inaffidabili (non leali).
Risolvere il problema del generale bizantino
Per risolvere il problema dei generali bizantini e ottenere la tolleranza agli errori bizantini (BFT), ci deve essere un accordo di maggioranza tra i generali sulla loro strategia.
Ciò si ottiene in vari modi a seconda del sistema e delle sue necessità. Nel contesto della blockchain, sia il proof-of-work che il proof-of-stake sono in grado di raggiungere la tolleranza agli errori bizantina, ma l'approccio in entrambi è diverso.
La maggior parte delle blockchain proof-of-stake può tollerare che fino a un terzo dei loro nodi siano difettosi, lasciando spazio alla regola 3f+1 dove F è il numero di nodi non fedeli e la formula fornisce il numero di nodi fedeli di cui il sistema ha bisogno per avere.
Ad esempio, in un sistema con 4 nodi, solo uno di essi può essere difettoso per soddisfare i criteri (3f+1).
Nel febbraio 1999, Miguel Castro e Barbara Liskov del Laboratory for Computer Science del Massachusetts Institute of Technology (MIT), hanno pubblicato un articolo in cui presentavano una soluzione al problema attraverso la cosiddetta Practical Byzantine Fault Tolerance.
In che modo Blockchain risolve il problema dei generali bizantini?
La tecnologia basata su blockchain presenta molteplici soluzioni al problema dei generali bizantini. Le differenze derivano dall'algoritmo di consenso designato e dal loro approccio alla BFT, ma sia la Proof-of-Work che la Proof-of-Stake forniscono soluzioni praticabili.
In che modo Bitcoin risolve il problema dei generali bizantini?
È interessante notare che nel whitepaper originale Satoshi Nakamoto non menzionava il problema dei generali bizantini, ma con l'introduzione della rete Bitcoin, il creatore pseudonimo lo ha sostanzialmente risolto attraverso l'algoritmo di consenso Proof-of-Work (PoW).
Per risolvere il problema, Satoshi ha creato un modo per utilizzare la sicurezza crittografica e la crittografia a chiave pubblica in una rete digitale. Per prevenire qualsiasi manomissione dei dati, la sicurezza crittografica utilizza l'hashing, mentre l'identità di un utente della rete viene verificata tramite la sua chiave pubblica.
Le transazioni sono protette in blocchi, che sono collegati ad altri blocchi dal loro valore hash e protetti dalla crittografia. È importante notare che la blockchain utilizza un Merkle Tree per verificare gli hash che provengono dal blocco di genesi (iniziale). Ogni blocco che deriva dal blocco di genesi è valido. Questi blocchi sono convalidati da minatori che risolvono enigmi crittografici in una competizione per produrre blocchi come parte del metodo del consenso.
Bitcoin ha stabilito un regolamento chiaro e definitivamente obiettivo che la blockchain deve seguire per superare il problema dei generali bizantini. Un membro della rete deve pubblicare la prova di aver completato il lavoro per poter aggiungere informazioni alla blockchain (da qui, prova di lavoro). Ciò ha un costo elevato per il membro e rende disincentivante per loro condividere informazioni errate poiché verranno confutate dagli altri membri dello stato.
Tutte le regole sono chiare e obiettive, il che significa che non è possibile manomettere le informazioni.
In che modo la Proof-of-Stake risolve il problema dei generali bizantini?
Le reti governate dall'algoritmo di consenso proof-of-stake non si basano sul mining, ma sullo staking. Per diventare un validatore di rete, l'utente deve prima mettere in gioco i fondi nel sistema. Coloro che possiedono una quota maggiore possono anche convalidare più blocchi e guadagnare maggiori ricompense. Coloro che tentano di manomettere le informazioni rischiano di perdere l'importo puntato.
Il modo in cui questi sistemi risolvono il problema varia. Ad esempio, Ethereum 2.0 utilizza l'algoritmo Casper. È necessaria una maggioranza minima di due terzi di tutti i nodi per concordare un blocco specifico prima che possa essere creato e aggiunto alla rete.
Ci sono tentativi variabili di risolvere il problema in base alla necessità del sistema e all'approccio del team. Ad esempio, con la Delegated Proof of Stake (dPoS), il raggiungimento di un consenso è notevolmente più rapido. D'altra parte, alcuni sistemi implementano la pratica tolleranza ai guasti bizantina.
La tolleranza agli errori postbizantina in Blockchain: A Closer Look è apparsa per la prima volta su CryptoPotato .