Byzantine Fault Tolerance uitgelegd

06.12.2018

uploads/7niziWGDGGq0ehUvElf5.png

Sinds Bitcoin in 2008 als peer-to-peer elektronisch betaalmiddel werd geïntroduceerd, zijn er veel andere cryptovaluta bijgekomen met allemaal een eigen protocol. Wat ze   echter bijna allemaal met elkaar gemeen hebben, is dat de kern van hun functionaliteit op blockchain-technologie is gebaseerd.

Op een paar uitzonderingen na zijn blockchains ontworpen om decentralisatie te kunnen faciliteren; een blockchain is in feite een digitaal grootboek (‘ledger’) van transacties dat door een gedistribueerd netwerk van computers wordt bijgehouden. Hierdoor konden zogenaamde ‘trustless’ economische systemen worden gecreëerd, waarin financiële transacties transparant en veilig konden worden uitgevoerd zonder dat daarvoor een ‘vertrouwelijke’ tussenpersoon noodzakelijk was. Cryptovaluta worden tegenwoordig dan ook steeds vaker als levensvatbaar alternatief voor traditionele bank- en betaalsystemen, waarin vertrouwen een sleutelrol speelt, gezien.

Net zoals in de meeste andere gedistribueerde computersystemen, dienen de deelnemers in een cryptovaluta-netwerk het regelmatig met elkaar eens te worden over de staat van de blockchain. Dit wordt ook wel het bereiken van consensus genoemd. Het bereiken van consensus in een gedistribueerd netwerk, op een veilige, transparante en betrouwbare manier, is echter niet gemakkelijk.

Hoe kan een gedistribueerd netwerk van nodes een beslissing maken, als niet alle nodes aan die beslissing willen deelnemen of juist vals willen spelen? Dit is de fundamentele vraag in het zogenaamde ‘Byzantine Generals’ Problem’ (het probleem van de Byzantijnse Generaals), dat aan de oorsprong ligt van het het concept van ‘Byzantine Fault Tolerance’ of Byzantijnse tolerantie.


Wat is het Byzantine Generals’ Problem?

Kortgezegd werd het Byzantine Generals’ Problem bedacht in 1982 als een logisch dilemma waarin een groep Byzantijnse generaals een strategische beslissing moet maken zonder dat zij goed met elkaar kunnen communiceren.

Het dilemma gaat ervan uit dat iedere generaal een eigen leger heeft en dat zij verschillende posities hebben ingenomen rondom de stad waarmee zij in oorlog zijn. De generaals dienen het vervolgens met elkaar eens te worden of zij de stad aanvallen of juist terug willen trekken. De uitkomst van de beslissing maakt verder niet uit, zolang alle generaals het maar met elkaar eens zijn of consensus bereiken.


Samengevat betekent komt dit neer op drie punten:

  • Iedere generaal beslist of hij wil aanvallen of zich terug wil trekken (ja of nee);

  • Na het maken van de beslissing kan deze niet worden veranderd;

  • Alle generaals dienen het met elkaar eens te worden over de beslissing en deze tegelijkertijd uit te voeren.


De generaals kunnen zoals gezegd niet goed met elkaar communiceren. Zij kunnen alleen per koerier berichten aan elkaar sturen. De grote uitdaging in het Byzantine Generals’ Problem is dan ook dat deze berichten kwijt of vertraagd kunnen raken, bijvoorbeeld als de koerier wordt onderschept.

Zelfs als een bericht succesvol wordt bezorgd, kunnen generaals om welke reden dan ook besluiten om de plannen te saboteren door bijvoorbeeld een vals bericht terug te sturen. Als ook maar één generaal die beslissing maakt, faalt de gehele strategie. 

In de context van blockchain betekent dit dat iedere general een netwerk-node representeert en dat zij consensus dienen te bereiken over de staat van het netwerk. Met andere woorden, de deelnemers in een gedistribueerd netwerk dienen het met elkaar eens te zijn over welke stappen er door iedereen moeten worden gevolgd om te voorkomen dat het netwerk implodeert.

De enige manier waarop er in deze gedistribueerde systemen consensus kan worden bereikt, is door minimaal ongeveer een tweederde meerderheid van betrouwbare en eerlijke netwerk-nodes te hebben. Alleen wanneer een meerderheid van de netwerkdeelnemers besluit om de regels te breken, wordt het netwerk vatbaar voor  kwetsbaarheden en aanvallen.


Byzantine Fault Tolerance (BFT)

Onder de noemer Byzantijnse tolerantie of Byzantine Fault Tolerance (BFT) vallen de eigenschappen van een systeem die ervoor zorgen dat het bestand is tegen de problemen van het Byzantine Generals’ Problem. Werken niet alle nodes mee of spelen zij vals, dan heeft dit geen effect op het functioneren van het BFT-systeem.

Er bestaan meerdere oplossingen voor het Byzantine Generals’ Problem en meerdere manieren waarop BFT-systemen kunnen worden ontworpen. Dit betekent dat blockchain-systemen ook op meerdere manieren Byzantine Fault Tolerance kunnen implementeren in hun consensusalgoritmes.


Consensusalgoritmes in blockchain-netwerken

Een consensusalgoritme kan worden gedefinieerd als het mechanisme waarmee er consensus wordt gecreëerd in een blockchain-netwerk. De meest populaire implementaties van dergelijke algoritmes zijn Proof of Work (PoW) en Proof of Stake (PoS). Neem Bitcoin als voorbeeld.

Hoewel het Bitcoin-protocol de regels van het systeem definieert, bepaalt het PoW-consensusalgoritme hoe deze regels moeten worden gevolgd om consensus te bereiken (bijvoorbeeld voor het verifiëren en valideren van transacties).

Het idee achter Proof of Work bestaat al veel langer dan cryptovaluta. Satoshi Nakamoto was de eerste die het, althans in aangepaste vorm, toepaste als een manier om Byzantine Fault Tolerance te garanderen in de Bitcoin-blockchain.

Het PoW-algoritme is echter niet 100% bestand tegen dit probleem, maar door het kosten-intensieve proces van minen en de onderliggende cryptografische technieken is PoW een van de meest veilige en betrouwbare blockchain-implementaties van BFT geworden. Het Proof of Work-consensusalgoritme van Satoshi Nakamoto wordt door velen dan ook gezien als een van de meest ingenieuze oplossingen om de betrouwbaarheid van Bitcoin te garanderen.


Conclusie

Het Byzantine Generals’ Problem is een intrigerend dilemma dat heeft geleid tot de opkomst van BFT-systemen in een verscheidenheid aan toepassingen. Naast blockchain wordt BFT bijvoorbeeld ook ingezet in de lucht- en ruimtevaartindustrie en voor het beveiligen van nucleaire energiecentrales.

In de crypto-wereld is het essentieel om een blockchain-systeem zo efficiënt mogelijk te laten functioneren door middel van een goed consensusmechanisme. Er wordt veel geïnvesteerd in het beveiligen van deze systemen, al zijn er nog enkele horden die moeten worden genomen, zoals schaalbaarheid. Desalniettemin zijn PoW en PoS interessante oplossingen voor het Byzantine Generals’ Problem die ook buiten de crypto-wereld tot veel innovatie kunnen leiden.

Loading