De la începutul Bitcoin în 2008 ca sistem financiar electronic peer-to-peer, au fost create multe monede digitale, fiecare dintre ele funcționând cu un mecanism special. Dar singurul lucru pe care toate monedele digitale îl au în comun este blockchain-ul ca element de bază în structura lor.

Toate blockchain-urile sunt proiectate în mod intenționat pentru a fi descentralizate și, cu puține excepții, ele acționează ca un registru digital întreținut de o rețea distribuită de noduri de computer. Din acest motiv, tehnologia blockchain a permis crearea unor sisteme economice de încredere în care tranzacțiile financiare pot fi efectuate într-o manieră transparentă și fiabilă, fără a fi nevoie de intermediari.

Utilizarea monedelor digitale este în prezent adoptată ca o alternativă viabilă la sistemele bancare tradiționale și la metodele de plată care se bazează în mare măsură pe încredere.

Așa cum este cazul în majoritatea sistemelor de calcul distribuite, participanții la o rețea de criptomonede trebuie să convină în mod regulat asupra stării actuale în care funcționează blockchain-ul. Aceasta este ceea ce numim o realizare de consens. Cu toate acestea, atingerea unui consens asupra rețelelor distribuite într-un mod sigur și securizat este o sarcină foarte dificilă.

Deci, cum poate o rețea distribuită de noduri de computer să cadă de acord cu privire la probabilitatea ca unele noduri să eșueze sau să acționeze ilegal? Aceasta este întrebarea fundamentală a așa-numitei probleme a generalilor bizantini din care a apărut conceptul de toleranță la greșeală bizantină.


Care este problema generalilor bizantini?

Pe scurt, problema generalilor bizantini din 1982 a fost concepută ca o dilemă logică care ilustrează modul în care un grup de generali bizantini ar putea avea probleme în comunicarea între ei atunci când încearcă să convină asupra următorului pas în planul lor.

Dilema presupune că fiecare general are propria sa armată, că fiecare grup este situat în diferite locații din jurul orașului pe care intenționează să-l atace și că fiecare general trebuie să fie de acord fie să atace, fie să se retragă. Nu contează dacă atacă sau se retrag atâta timp cât toți generalii ajung la un consens, adică cad de acord asupra unei decizii comune pentru a o implementa în coordonare.

Prin urmare, putem lua în considerare următoarele obiective:

  • Fiecare general trebuie să decidă: atac sau retragere (da sau nu).

  • Odată luată o decizie, aceasta nu poate fi schimbată.

  • Toți generalii trebuie să cadă de acord asupra aceleiași decizii și să o pună în aplicare într-o manieră sincronizată.

Problemele de comunicare de mai sus sunt legate de faptul că fiecare general este capabil să comunice doar cu un alt general prin mesaje care sunt trimise de transportator/curier. Astfel, principala provocare a problemei pentru generalii bizantini era că mesajele puteau fi întârziate, deteriorate sau pierdute.

În plus, chiar dacă mesajul este transmis cu succes, unul sau mai mulți generali pot alege (din orice motiv) să acționeze rău și să trimită un mesaj falsificat pentru a-i deruta pe ceilalți generali, ceea ce duce la eșecul complet al misiunii.

Dacă aplicăm această dilemă în contextul blockchain-ului, fiecare gen reprezintă un nod de rețea, iar nodurile trebuie să ajungă la un consens asupra stării curente a sistemului. Altfel spus, majoritatea participanților la o rețea distribuită trebuie să fie de acord și să efectueze aceeași acțiune pentru a evita un eșec complet.

Prin urmare, singura modalitate de a ajunge la un consens în aceste tipuri de sisteme distribuite este de a avea ⅔ (două treimi) sau mai multe noduri sincere. Aceasta înseamnă că, dacă majoritatea rețelei decide să acționeze rău intenționat, sistemul va fi vulnerabil la eșecuri și atacuri (de exemplu, 51% atac).


Byzantine Fault Tolerance - BFT

Pe scurt, toleranța la erori bizantine (BFT) este proprietatea unui sistem capabil să reziste tipului de defecțiune derivat din problema generalilor bizantini. Aceasta înseamnă că sistemul BFT este capabil să continue să funcționeze chiar dacă unele noduri eșuează sau se comportă rău intenționat.

Există mai mult de o soluție posibilă pentru problema generalilor bizantini și asta înseamnă că există mai multe moduri de a construi un sistem BFT. De asemenea, există mai multe abordări diferite pentru blockchains pentru a atinge toleranța bizantine la erori și acest lucru ne conduce la așa-numiții algoritmi de consens.


Algoritmi de consens blockchain

Putem defini un algoritm de consens ca fiind mecanismul prin care o rețea blockchain ajunge la consens. Cele mai comune aplicații sunt Proof of Work (PoW) și Proof of Stake (PoS). Dar să luăm ca exemplu cazul Bitcoin.

În timp ce protocolul Bitcoin stipulează regulile de bază ale sistemului, algoritmul de consens cunoscut sub numele de Proof of Work (PoW) este cel care definește modul în care aceste reguli sunt urmate pentru a ajunge la un consens (de exemplu, în timpul verificării tranzacției).

Deși conceptul de Proof of Work este mai vechi decât criptomonede, Satoshi Nakamoto a dezvoltat o versiune modificată a acestuia ca algoritm care a permis crearea Bitcoin ca sistem BFT.

Rețineți că algoritmul Proof of Work (PoW) nu este 100% tolerant la erori bizantin, dar datorită procesului de mining costisitor și tehnicilor criptografice, PoW s-a dovedit a fi una dintre cele mai sigure și de încredere implementări ale rețelelor blockchain.

Prin urmare, algoritmul Proof of Work conceput de Satoshi Nakamoto este folosit de mulți ca una dintre cele mai ingenioase soluții la erorile bizantine.


Concluzie

Problema generalilor bizantini este o dilemă interesantă care a dat naștere în cele din urmă la sistemele BFT  care sunt aplicate pe scară largă în diferite scenarii. Chiar și în afara industriei blockchain, câteva cazuri de utilizare ale BFT includ industria aviației, spațială și a energiei nucleare.

În contextul monedelor digitale, a avea o rețea de comunicare eficientă împreună cu un mecanism de consens este vitală pentru orice sistem blockchain. Securizarea acestor sisteme este un efort continuu, iar algoritmii de consens existent încă lucrează pentru a depăși unele limitări (cum ar fi scalabilitatea). Cu toate acestea, Proof of Work (PoW) și Proof of Stake (PoS) sunt două abordări foarte interesante ale sistemelor BFT și potențialele aplicații sunt cu siguranță o sursă de inspirație pe scară largă.