De la înființarea Bitcoin în 2008, ca sistem electronic de numerar peer-to-peer, au fost create multe alte criptomonede, fiecare având un mecanism anume. Dar un lucru pe care aproape toate criptomonedele îl au în comun este blockchain-ul, ca element de bază al arhitecturii lor.

Cu câteva excepții, blockchain-urile sunt proiectate în mod intenționat pentru a fi descentralizate, funcționând ca un registru digital care este întreținut de o rețea distribuită de noduri de computer. Din acest motiv, tehnologia blockchain a permis crearea unor sisteme economice fără încredere, în care tranzacțiile financiare transparente și de încredere puteau fi executate fără a fi nevoie de intermediari. Criptomonedele sunt adoptate ca o alternativă viabilă la sistemele bancare și de plată tradiționale, care depind în mare măsură de încredere.

La fel ca majoritatea sistemelor de calcul distribuite, participanții unei rețele de criptomonede trebuie să cadă în mod regulat de acord cu privire la starea actuală a blockchain-ului și asta este ceea ce numim realizarea consensului. Cu toate acestea, atingerea unui consens asupra rețelelor distribuite, într-un mod sigur și eficient, este departe de a fi o sarcină ușoară.

Deci, cum poate o rețea distribuită de noduri de computer să cadă de acord asupra unei decizii, dacă unele dintre noduri sunt susceptibile de a eșua sau de a acționa necinstit? Aceasta este întrebarea fundamentală a așa-numitei probleme a generalilor bizantini, care a dat naștere conceptului de toleranță la greșeală bizantină.


Care este problema generalilor bizantini?

În câteva cuvinte, problema generalilor bizantini a fost concepută în 1982 ca o dilemă logică care ilustrează modul în care un grup de generali bizantini poate avea probleme de comunicare atunci când încearcă să convină asupra următoarei mișcări.

Dilema presupune că fiecare general are propria sa armată și că fiecare grup este situat în diferite locații din jurul orașului pe care intenționează să îl atace. Generalii trebuie să cadă de acord fie asupra atacului, fie asupra retragerii. 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 executa în coordonare.

Prin urmare, putem lua în considerare următoarele cerințe:

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

  • După ce decizia este luată, aceasta nu poate fi schimbată;

  • Toți generalii trebuie să cadă de acord asupra aceleiași decizii și să o execute în mod sincronizat.

Problemele de comunicare menționate mai sus sunt legate de faptul că un general nu poate comunica cu altul decât prin mesaje, care sunt transmise de un curier. În consecință, provocarea centrală a problemei generalilor bizantini este că mesajele pot fi într-un fel întârziate, distruse sau pierdute.

În plus, chiar dacă un mesaj este livrat cu succes, unul sau mai mulți generali pot alege (din orice motiv) să acționeze rău intenționat și să trimită un mesaj fraudulos pentru a deruta ceilalți generali, ducând la un eșec total.

Dacă aplicăm dilema în contextul blockchain-urilor, fiecare general 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 dintr-o rețea distribuită trebuie să fie de acord și să execute aceeași acțiune pentru a evita eșecul complet.

Prin urmare, singura modalitate de a obține un consens în aceste tipuri de sisteme distribuite este de a avea cel puțin ⅔ sau mai multe noduri de rețea fiabile și oneste. Aceasta înseamnă că, dacă majoritatea rețelei decide să acționeze rău intenționat, sistemul este susceptibil la eșecuri și atacuri (cum ar fi atacul de 51%).


Toleranța bizantine la erori (BFT)

În câteva cuvinte, toleranța la erori bizantine (BFT) este proprietatea unui sistem care este capabil să reziste clasei de defecțiuni derivate din problema generalilor bizantini. Aceasta înseamnă că un sistem BFT este capabil să continue să funcționeze chiar dacă unele dintre noduri eșuează sau acționează rău intenționat. 

Există mai mult de o soluție posibilă pentru problema generalilor bizantini și, prin urmare, mai multe moduri de a construi un sistem BFT. De asemenea, există diferite abordări pentru un blockchain 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 implementări sunt Proof of Work (PoW) și Proof of Stake (PoS). Dar să luăm ca exemplu cazul Bitcoin.

În timp ce protocolul Bitcoin prescrie regulile primare ale sistemului, algoritmul de consens PoW este cel care definește modul în care aceste reguli vor fi urmate pentru a ajunge la un consens (de exemplu, în timpul verificării și validării tranzacțiilor).

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 PoW nu este 100% tolerant la defecțiunile bizantine, dar datorită procesului de extragere costisitoare și tehnicilor criptografice care stau la baza, PoW s-a dovedit a fi una dintre cele mai sigure și de încredere implementări pentru rețelele blockchain. În acest sens, algoritmul de consens Proof of Work, conceput de Satoshi Nakamoto, este considerat de mulți drept una dintre cele mai geniale soluții la defectele bizantine.


Gânduri finale

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

În contextul criptomonedei, a avea o comunicare eficientă în rețea împreună cu un mecanism de consens bun este vitală pentru orice ecosistem blockchain. Securizarea acestor sisteme este un efort continuu, iar algoritmii de consens existent încă nu au depășit câteva limitări (cum ar fi scalabilitatea). Cu toate acestea, PoW și PoS sunt abordări foarte interesante ca sisteme BFT, iar aplicațiile potențiale inspiră cu siguranță inovații pe scară largă.