De la nașterea Bitcoin ca sistem electronic de numerar peer-to-peer în 2008, multe alte monede digitale au apărut treptat, iar fiecare monedă digitală are propriul său mecanism specific. Dar aproape toate monedele digitale au un lucru în comun, care este arhitectura de bază a blockchain-ului.
În cele mai multe cazuri, blockchain-urile sunt concepute pentru a fi descentralizate, registre electronice întreținute de o rețea distribuită de noduri. Prin urmare, sistemele blockchain permit ca tranzacțiile financiare să fie executate complet transparent și fiabil, fără intermediari. Monedele digitale înlocuiesc treptat sistemele tradiționale de plată bancare care necesită o încredere ridicată.
Ca și în cazul majorității sistemelor de calcul distribuite, participanții la o rețea de monedă digitală trebuie să discute și să convină în mod regulat asupra stării actuale a blockchain-ului. Acesta este ceea ce numim consens. Cu toate acestea, obținerea unui consens într-o manieră sigură și eficientă într-o rețea distribuită nu este o sarcină ușoară.
Deci, cum poate o rețea distribuită de noduri de calculatoare să convină asupra deciziilor în situațiile în care unele noduri pot funcționa defectuos sau se pot comporta necinstit? Aceasta este rădăcina așa-numitei probleme a generalilor bizantini, care a dat naștere conceptului de toleranță la greșeală bizantină.
Care este problema generalilor bizantini?
Mai simplu spus, în 1982, problema generalilor bizantini a fost considerată o dilemă logică care ilustra problemele de comunicare pe care le-ar putea avea un grup de generali bizantini atunci când încercau să convină asupra unei opinii unificate cu privire la următoarea lor mișcare.
Dilema presupune că fiecare general are propria sa armată, fiecare situată într-o locație diferită în jurul orașului pe care intenționează să-l atace. Acești generali trebuie să cadă de acord dacă să atace sau să se retragă. Nu contează dacă este un atac sau o retragere, atâta timp cât toți generalii ajung la un consens, adică se coordonează și decid să-l execute împreună.
Prin urmare, putem lua în considerare următoarele condiții:
Fiecare general trebuie să ia o decizie: atac sau retragere (da sau nu);
Odată luată o decizie, aceasta nu poate fi schimbată;
Toți generalii trebuie să cadă de acord asupra unei decizii unificate și să o execute simultan.
Problema de comunicare de mai sus implică faptul că un general poate comunica cu un alt general doar prin mesaje transmise de agenții de informații. Prin urmare, principala provocare a problemei generalilor bizantini este că informațiile pot fi întârziate, corupte sau pierdute cumva.
Mai mult, chiar dacă mesajul este livrat cu succes, unul sau mai mulți generali pot alege să acționeze rău intenționat (din orice motiv) și să trimită mesaje frauduloase pentru a-i deruta pe ceilalți generali, provocând eșecul operațiunii.
Dacă mapăm această dilemă la blockchain, fiecare general reprezintă un nod de rețea, iar nodurile trebuie să ajungă la un consens asupra stării curente a sistemului. Cu alte cuvinte, majoritatea participanților la o rețea distribuită trebuie să fie de acord și să efectueze aceleași acțiuni pentru a evita eșecul.
Prin urmare, singura modalitate de a obține un consens în aceste tipuri de sisteme distribuite este de a avea cel puțin două treimi din nodurile de rețea care să fie fiabile și oneste. Aceasta înseamnă că sistemul este vulnerabil la eșecuri și atacuri (cum ar fi 51% atacuri) dacă majoritatea nodurilor din rețea decid să acționeze rău intenționat.
Toleranța bizantine la erori (BFT)
Mai simplu spus, Byzantine Fault Tolerance (BFT) este o proprietate a sistemului care poate rezista unei serii de defecțiuni cauzate de Problema Generalilor Bizantini. Aceasta înseamnă că un sistem bizantin tolerant la erori poate continua să funcționeze chiar dacă unele noduri eșuează sau se comportă rău intenționat.
Există multe soluții posibile la problema generalilor bizantini și, prin urmare, există multe modalități de a construi un sistem bizantin tolerant la greșeli. De asemenea, blockchain-urile au diferite moduri de a atinge toleranța bizantină la erori, ceea ce numim algoritmi de consens.
Algoritm de consens blockchain
Putem defini un algoritm de consens ca fiind mecanismul prin care o rețea blockchain ajunge la consens. Cele mai comune exemple sunt Proof of Work (PoW) și Proof of Stake (PoS). Aici luăm Bitcoin ca exemplu.
Protocolul Bitcoin stabilește principalele reguli ale sistemului, iar algoritmul de consens de dovadă a muncii explică modul în care aceste reguli sunt urmate pentru a ajunge la consens (de exemplu, în timpul verificării și verificării tranzacțiilor).
Deși conceptul de dovadă a muncii este anterior monedei digitale, Satoshi Nakamoto a modificat versiunea originală și a dezvoltat un algoritm îmbunătățit de dovadă a muncii care poate genera Bitcoin ca sistem bizantin tolerant la erori.
Vă rugăm să rețineți că acest algoritm de dovadă a lucrului nu este pe deplin rezistent la defecțiunile bizantine, dar datorită procesului de extragere cu costuri ridicate și tehnologiei de criptare care stau la baza, dovada muncii s-a dovedit a fi una dintre cele mai sigure și fiabile metode din rețele blockchain. În acest sens, algoritmul de consens proof-of-work conceput de Satoshi Nakamoto este considerat de mulți ca fiind una dintre cele mai sofisticate soluții la Byzantine Fault Tolerance.
în concluzie
Problema generalilor bizantini este o dilemă interesantă care a dat naștere în cele din urmă la sistemele bizantine tolerante la erori, care sunt utilizate pe scară largă într-o varietate de scenarii. Pe lângă industria blockchain, unele cazuri de utilizare pentru sistemele bizantine de toleranță la erori includ și industria aviației, aerospațială și nucleară.
În domeniul monedei digitale, a avea o comunicare eficientă în rețea și un mecanism bun de consens sunt cruciale pentru orice ecosistem blockchain. Securizarea acestor sisteme necesită eforturi continue și există limitări (cum ar fi scalabilitatea) pe care algoritmii de consens existenți nu au reușit să le depășească. Cu toate acestea, proof-of-work și proof-of-stake sunt metode eficiente pentru sistemele bizantine tolerante la erori, iar potențialele lor aplicații vor inspira mai multă inovație.

