Byzantine Fault Tolerance Explained

Sinds de start van Bitcoin in 2008, als een peer-to-peer elektronisch geldsysteem, zijn er vele andere cryptocurrencies gecreëerd, elk met een eigen mechanisme. Maar één ding dat bijna alle cryptocurrencies gemeen hebben is de blockchain, als kernelement van hun architectuur.

Op enkele uitzonderingen na zijn blockchains met opzet decentraal ontworpen, werkend als een digitaal grootboek dat wordt onderhouden door een gedistribueerd netwerk van computerknooppunten. Om deze reden maakte blockchain-technologie de creatie van vertrouwensloze economische systemen mogelijk, waar transparante en betrouwbare financiële transacties konden worden uitgevoerd zonder de noodzaak van tussenpersonen. Cryptocurrencies worden geadopteerd als een levensvatbaar alternatief voor traditionele bank- en betalingssystemen, die sterk afhankelijk zijn van vertrouwen.

Net als de meeste gedistribueerde computersystemen, moeten de deelnemers aan een cryptocurrency-netwerk het regelmatig eens worden over de huidige staat van de blockchain, en dat noemen we het bereiken van consensus. Het bereiken van consensus op gedistribueerde netwerken, op een veilige en efficiënte manier, is echter verre van een gemakkelijke taak.

Dus, hoe kan een gedistribueerd netwerk van computerknooppunten het eens worden over een beslissing, als sommige van de knooppunten waarschijnlijk zullen falen of oneerlijk zullen handelen? Dit is de fundamentele vraag van het zogenaamde Byzantijnse Generaalsprobleem, waaruit het concept van Byzantijnse fouttolerantie is ontstaan.

Wat is het Byzantijnse Generaalsprobleem?

In een paar woorden: het Byzantijnse generaalsprobleem is in 1982 bedacht als een logisch dilemma dat illustreert hoe een groep Byzantijnse generaals communicatieproblemen kan hebben wanneer zij het eens proberen te worden over hun volgende zet.

In het dilemma wordt ervan uitgegaan dat elke generaal zijn eigen leger heeft en dat elke groep zich op verschillende plaatsen bevindt rond de stad die zij willen aanvallen. De generaals moeten het eens worden over ofwel aanvallen ofwel terugtrekken. Het maakt niet uit of ze aanvallen of zich terugtrekken, zolang alle generaals maar consensus bereiken, d.w.z, het eens zijn over een gemeenschappelijke beslissing om deze gecoördineerd uit te voeren.

Daarom kunnen we de volgende eisen overwegen:

  • Elke generaal moet beslissen: aanvallen of terugtrekken (ja of nee);
  • Nadat de beslissing is genomen, kan deze niet meer worden gewijzigd;
  • Alle generaals moeten het eens zijn over dezelfde beslissing en deze gesynchroniseerd uitvoeren.

De bovengenoemde communicatieproblemen hangen samen met het feit dat de ene generaal slechts met de andere kan communiceren door middel van berichten, die door een koerier worden doorgezonden. Bijgevolg is de centrale uitdaging van het Byzantijnse Generaalsprobleem dat de berichten op een of andere manier kunnen worden vertraagd, vernietigd of verloren gaan.

Bovendien, zelfs indien een bericht met succes wordt afgeleverd, kunnen een of meer generaals ervoor kiezen (om welke reden dan ook) kwaadwillig te handelen en een frauduleus bericht te verzenden om de andere generaals in verwarring te brengen, wat tot een totale mislukking leidt.

Als we het dilemma toepassen op de context van blockchains, vertegenwoordigt elke generaal een netwerkknooppunt, en de knooppunten moeten consensus bereiken over de huidige staat van het systeem. Anders gezegd, de meerderheid van de deelnemers binnen een gedistribueerd netwerk moet het eens zijn en dezelfde actie uitvoeren om een complete mislukking te voorkomen.

Daarom is de enige manier om consensus te bereiken in dit soort gedistribueerde systemen door ten minste ⅔ of meer betrouwbare en eerlijke netwerkknooppunten te hebben. Dit betekent dat als de meerderheid van het netwerk besluit kwaadwillig te handelen, het systeem gevoelig is voor storingen en aanvallen (zoals de 51%-aanval).

Byzantijnse fouttolerantie (BFT)

In een paar woorden, Byzantijnse fouttolerantie (BFT) is de eigenschap van een systeem dat in staat is weerstand te bieden aan de klasse van storingen die is afgeleid van het Byzantijnse Generalenprobleem. Dit betekent dat een BFT-systeem in staat is te blijven werken, zelfs als sommige knooppunten falen of kwaadwillig handelen.

Er is meer dan één mogelijke oplossing voor het Byzantijnse Generaalsprobleem en er zijn dus ook meerdere manieren om een BFT-systeem te bouwen. Evenzo zijn er verschillende benaderingen voor een blockchain om Byzantijnse fouttolerantie te bereiken en dit brengt ons bij de zogenaamde consensusalgoritmen.

Blockchain-consensusalgoritmen

We kunnen een consensusalgoritme definiëren als het mechanisme waarmee een blockchain-netwerk consensus bereikt. De meest voorkomende implementaties zijn Proof of Work (PoW) en Proof of Stake (PoS). Maar laten we het Bitcoin-geval als voorbeeld nemen.

Hoewel het Bitcoin-protocol de primaire regels van het systeem voorschrijft, is het PoW-consensusalgoritme wat definieert hoe deze regels zullen worden gevolgd om consensus te bereiken (bijvoorbeeld tijdens de verificatie en validatie van transacties).

Hoewel het concept van Proof of Work ouder is dan cryptocurrencies, ontwikkelde Satoshi Nakamoto een aangepaste versie ervan als algoritme dat de creatie van Bitcoin als een BFT-systeem mogelijk maakte.

Merk op dat het PoW-algoritme niet 100% tolerant is voor de Byzantijnse fouten, maar vanwege het kostenintensieve mijnbouwproces en de onderliggende cryptografische technieken, heeft PoW bewezen een van de veiligste en betrouwbaarste implementaties voor blockchain-netwerken te zijn. In die zin wordt het Proof of Work-consensusalgoritme, ontworpen door Satoshi Nakamoto, door velen beschouwd als een van de meest geniale oplossingen voor de Byzantijnse fouten.

Definitieve gedachten

Het Byzantijnse Generaalsprobleem is een intrigerend dilemma dat uiteindelijk aanleiding heeft gegeven tot de BFT-systemen, die op grote schaal worden toegepast in verschillende scenario’s. Buiten de blockchain-industrie zijn enkele gebruiksscenario’s van BFT-systemen de luchtvaart-, ruimtevaart- en kernenergie-industrie.

In de context van cryptocurrency is het hebben van een efficiënte netwerkcommunicatie samen met een goed consensusmechanisme van vitaal belang voor elk blockchain-ecosysteem. Het beveiligen van deze systemen is een voortdurende inspanning, en de bestaande consensusalgoritmen moeten nog een paar beperkingen overwinnen (zoals schaalbaarheid). Niettemin zijn PoW en PoS zeer interessante benaderingen als BFT-systemen, en de potentiële toepassingen zijn zeker inspirerend voor wijdverspreide innovatie.

Plaats een reactie