Wat is Byzantine Fault Tolerance (BFT)?

Wat is Byzantine Fault Tolerance (BFT)?

Byzantine Fault Tolerance (BFT) is kort gezegd het vermogen van een computernetwerk om correct te blijven functioneren wanneer een deel van de deelnemers uitvalt, fouten maakt of bewust verkeerde informatie verspreidt.

Dit is vooral belangrijk voor blockchains. Een blockchain heeft geen centrale beheerder die bepaalt welke transacties en blokken geldig zijn. In plaats daarvan moeten verspreide computers, ook wel nodes of validators genoemd, samen overeenstemming bereiken over één versie van de blockchain.

Een validator kan op verschillende manieren een fout krijgen, namelijk een gewone fout of een Byzantine Fault. Bij een gewone fout is het voor het netwerk duidelijk dat de validator niet goed werkt. De validator valt bijvoorbeeld uit, verliest de internetverbinding of verstuurt een bericht niet op tijd. Hij levert dan geen bruikbare informatie aan. De blockchain kan hier meestal eenvoudig mee omgaan. De andere validators wachten niet onbeperkt, maar gaan na een bepaalde tijd verder zonder de uitgevallen validator. Zolang er nog genoeg andere validators actief zijn, blijft het netwerk nieuwe blokken verwerken.

Bij een Byzantine fault gedraagt een validator zich niet alleen defect, maar onvoorspelbaar. Hij kan nog steeds berichten versturen, maar daarbij verkeerde of tegenstrijdige informatie geven. Zo kan hij tegen de ene validator zeggen dat blok A geldig is en tegen een andere validator dat blok B geldig is.

Het verschil is dus:

  • Bij een gewone fout ontbreekt de informatie van een validator.
  • Bij een Byzantine fault is er wel informatie, maar is niet duidelijk of deze klopt.

Een Byzantine fault is daarom moeilijker op te lossen. Het netwerk moet niet alleen verder kunnen zonder een uitgevallen validator, maar ook voorkomen dat verkeerde of tegenstrijdige berichten tot een onjuist besluit leiden.

Byzantine Fault Tolerance beschrijft hoe een netwerk ondanks dit soort problemen toch één gezamenlijke beslissing kan nemen. Het protocol gebruikt daarvoor onder meer controles, digitale handtekeningen, verschillende stemrondes en een hoge stemdrempel.

Veel BFT-protocollen eisen dat meer dan twee derde van het totale stemgewicht hetzelfde voorstel ondersteunt voordat een blok definitief wordt. Hierdoor kan een kleine groep defecte of kwaadwillende validators niet zelfstandig bepalen welke versie van de blockchain geldig is.

BFT is geen afzonderlijk consensusmechanisme. Het is een eigenschap van een netwerk of consensusprotocol. Protocollen zoals PBFT, Tendermint en HotStuff gebruiken ieder hun eigen regels om Byzantine faults te verdragen.


Korte samenvatting

  • Byzantine Fault Tolerance helpt een blockchain omgaan met defecte of onbetrouwbare validators.
  • Een Byzantine fault kan ontstaan door een technische storing, softwarefout of bewuste aanval.
  • Validators controleren voorstellen en stemmen over nieuwe blokken.
  • Veel BFT-protocollen eisen steun van meer dan twee derde van het totale stemgewicht.
  • BFT helpt voorkomen dat verschillende versies van de blockchain tegelijk definitief worden.
  • PBFT, Tendermint en HotStuff zijn voorbeelden van BFT-protocollen.

Wat lost Byzantine Fault Tolerance op?

Byzantine Fault Tolerance voorkomt dat een kleine groep defecte of kwaadwillende validators zelfstandig kan bepalen welke versie van de blockchain geldig is. Het helpt het netwerk om één gezamenlijke transactiegeschiedenis te behouden, ook wanneer sommige deelnemers uitvallen, niet reageren of verkeerde informatie verspreiden.

Een onbetrouwbare validator kan bijvoorbeeld verschillende blokken naar verschillende deelnemers sturen, voor twee conflicterende blokken stemmen of proberen een ongeldig blok goedgekeurd te krijgen. Ook kan een validator weigeren mee te werken en daarmee het bereiken van consensus vertragen.

Zonder goede regels zouden verschillende groepen validators daardoor ieder een andere versie van de blockchain kunnen volgen. Het netwerk zou dan niet meer met zekerheid kunnen bepalen welke transacties en blokken geldig zijn.

BFT voorkomt dit door een blok pas te bevestigen wanneer voldoende validators hetzelfde voorstel hebben gecontroleerd en ondersteund. Hierdoor kan een beperkte groep onbetrouwbare deelnemers het netwerk niet zelfstandig misleiden.

Deelnemers hoeven elkaar daarbij niet persoonlijk te vertrouwen. Zij vertrouwen op de vaste regels van het consensusprotocol, zoals digitale handtekeningen, stemrondes en een hoge stemdrempel.

BFT maakt het zo mogelijk om zonder centrale beheerder één gedeelde en consistente versie van de blockchain bij te houden.

Hoe werkt Byzantine Fault Tolerance?

Om Byzantine Fault Tolerance goed te begrijpen, is het belangrijk om eerst het verschil met een consensusmechanisme te kennen.

Een consensusmechanisme is het geheel aan regels waarmee deelnemers aan een blockchain overeenstemming bereiken over nieuwe blokken en de geldige geschiedenis van het netwerk. Het bepaalt bijvoorbeeld wie een blok mag voorstellen, hoe validators daarover stemmen en wanneer een blok wordt bevestigd of definitief wordt.

Byzantine Fault Tolerance is de eigenschap die ervoor zorgt dat dit proces ook blijft werken wanneer sommige validators uitvallen, fouten maken of verkeerde informatie versturen.

BFT is dus meestal geen los systeem naast het consensusmechanisme. Het bestaat uit de regels binnen het consensusproces die voorkomen dat onbetrouwbare validators de blockchain kunnen misleiden. Denk bijvoorbeeld aan een hoge stemdrempel, digitale handtekeningen, meerdere stemrondes en het vervangen van een validator die geen geldig blok voorstelt.

De precieze werking verschilt per blockchain, maar bij veel BFT-protocollen verloopt het proces ongeveer hetzelfde.

Eén validator wordt tijdelijk aangewezen om een nieuw blok voor te stellen. Deze validator wordt vaak de proposer of leader genoemd. In het blok staan nieuwe transacties en een verwijzing naar het vorige blok. De proposer ondertekent het voorstel digitaal, zodat andere validators kunnen controleren van wie het afkomstig is.

De andere validators controleren vervolgens of het blok geldig is. Zij kijken bijvoorbeeld of de transacties aan de regels voldoen, of gebruikers voldoende saldo hebben en of dezelfde tokens niet twee keer worden uitgegeven. Ook controleren zij of het blok aansluit op de juiste versie van de blockchain.

Wanneer een validator het blok geldig vindt, brengt hij een digitale stem uit. Door deze handtekening kan het netwerk zien wie heeft gestemd, voor welk blok de stem bedoeld was en of een validator ook voor een conflicterend blok heeft gestemd.

Hier komt de Byzantine Fault Tolerance in beeld. Het netwerk vertrouwt niet op de beslissing van één validator. Bij veel BFT-protocollen moet meer dan twee derde van het totale stemgewicht hetzelfde blok ondersteunen voordat het definitief kan worden.

Deze hoge stemdrempel zorgt ervoor dat een kleine groep defecte of kwaadwillende validators niet zelfstandig kan bepalen welk blok geldig is. Wanneer enkele validators verkeerde informatie versturen of niet reageren, kunnen de overige validators alsnog samen tot één besluit komen.

Voorbeeld: Ethereum gebruikt Proof of Stake en BFT-achtige regels om blokken definitief te maken. Validators zetten ETH vast en stemmen vervolgens op controlepunten in de blockchain. Minimaal twee derde van de totale gestakete ETH moet hetzelfde controlepunt ondersteunen voordat het definitief wordt. Wanneer een klein deel van de validators uitvalt of verkeerd stemt, kan Ethereum nog steeds finaliteit bereiken. Neemt ongeveer een derde van het totale stemgewicht niet correct deel, dan kan de finaliteit tijdelijk stoppen. Ethereum heeft hiervoor een inactivity leak: validators die langdurig niet deelnemen, verliezen geleidelijk een deel van hun stake. Hierdoor kunnen de actieve validators uiteindelijk weer genoeg stemgewicht vertegenwoordigen om finaliteit te bereiken.

Bij Proof-of-Stake-netwerken gaat het daarom meestal niet alleen om het aantal validators, maar vooral om hun stemgewicht. Dat stemgewicht hangt af van de hoeveelheid tokens die zij hebben gestaked.

Sommige consensusprotocollen gebruiken meerdere stemrondes. Een bekend voorbeeld is Tendermint, tegenwoordig verder ontwikkeld als CometBFT en gebruikt door veel blockchains binnen het Cosmos-ecosysteem, waaronder Cosmos Hub. Validators stemmen daarbij eerst over het voorgestelde blok en bevestigen daarna in een volgende ronde dat voldoende andere validators hetzelfde voorstel ondersteunen. Zo controleert het netwerk niet alleen of het blok geldig is, maar ook of er brede overeenstemming over bestaat.

Het kan ook gebeuren dat er niet genoeg steun ontstaat. De proposer kan bijvoorbeeld offline zijn, een ongeldig blok voorstellen of tegenstrijdige voorstellen verspreiden. Het consensusmechanisme start dan na een bepaalde wachttijd een nieuwe ronde met een andere proposer.

Ook dat is onderdeel van de fouttolerantie. Eén defecte of kwaadwillende validator kan het netwerk daardoor niet onbeperkt tegenhouden.

Het consensusmechanisme bepaalt dus hoe de blockchain gezamenlijk beslissingen neemt. Byzantine Fault Tolerance zorgt ervoor dat die besluitvorming betrouwbaar blijft wanneer niet iedere deelnemer correct handelt.

Kort samengevat: hoe werkt Byzantine Fault Tolerance?

  1. Het consensusmechanisme bepaalt welke validator een blok mag voorstellen en hoe andere validators daarover stemmen.
  2. De andere validators controleren of het voorgestelde blok geldig is.
  3. BFT zorgt ervoor dat het netwerk niet op één validator vertrouwt, maar pas een besluit neemt wanneer een grote meerderheid hetzelfde blok ondersteunt.
  4. Digitale handtekeningen maken zichtbaar wie waarvoor heeft gestemd en of een validator tegenstrijdige stemmen heeft uitgebracht.
  5. Bij veel BFT-protocollen is meer dan twee derde van het totale stemgewicht nodig om een blok definitief te maken.
  6. Wanneer een proposer uitvalt, liegt of geen geldige meerderheid krijgt, start het protocol een nieuwe stemronde met een andere proposer.
  7. De rol van BFT is dus om de consensus betrouwbaar te houden wanneer sommige validators uitvallen, fouten maken of bewust verkeerde informatie verspreiden.

Wat proberen safety en liveness te beschermen?

Byzantine Fault Tolerance moet ervoor zorgen dat een blockchain betrouwbaar blijft wanneer sommige validators uitvallen, fouten maken of verkeerde informatie verspreiden. Daarbij moet het netwerk twee problemen zien te voorkomen.

Ten eerste mogen validators niet tot twee verschillende definitieve versies van de blockchain komen. Ten tweede moet het netwerk, zolang dat mogelijk is, nieuwe blokken en transacties blijven verwerken.

Deze twee doelen worden binnen BFT safety en liveness genoemd.

Safety: geen twee verschillende versies

Safety betekent dat het netwerk niet twee conflicterende blokken als definitief accepteert.

Stel dat twee groepen validators ieder een ander blok ontvangen. Zonder duidelijke regels zouden beide groepen kunnen denken dat hun eigen versie geldig is. De blockchain zou dan twee verschillende transactiegeschiedenissen kunnen krijgen.

BFT-protocollen proberen dit te voorkomen met een hoge stemdrempel, meerdere stemrondes en digitaal ondertekende stemmen. Ook kunnen er regels gelden die voorkomen dat validators zomaar voor een ander blok stemmen nadat zij eerder al een voorstel hebben ondersteund.

Safety zorgt er dus voor dat eerlijke deelnemers dezelfde definitieve versie van de blockchain blijven volgen, ook wanneer sommige validators tegenstrijdige informatie verspreiden.

Liveness: het netwerk blijft doorgaan

Liveness betekent dat het netwerk nieuwe beslissingen kan blijven nemen.

Dat houdt in dat nieuwe blokken worden geproduceerd, transacties worden verwerkt en een defecte of kwaadwillende proposer kan worden vervangen wanneer deze het proces tegenhoudt.

BFT-protocollen gebruiken hiervoor bijvoorbeeld wachttijden en nieuwe stemrondes. Wanneer een proposer geen geldig blok voorstelt of niet reageert, krijgt na verloop van tijd een andere validator de beurt.

Safety en liveness kunnen soms met elkaar botsen. Wanneer te veel validators offline zijn of verschillende informatie verspreiden, kan het netwerk mogelijk niet genoeg betrouwbare stemmen verzamelen.

Het protocol kan er dan voor kiezen om tijdelijk geen blokken definitief te maken. De blockchain boekt daardoor even geen vooruitgang, maar voorkomt wel dat twee verschillende versies worden goedgekeurd.

BFT-protocollen geven bij ernstige onzekerheid daarom meestal voorrang aan safety. Het netwerk staat liever tijdelijk stil dan dat het een mogelijk verkeerde of conflicterende versie van de blockchain definitief maakt.

Wat is het verschil tussen Byzantine Fault Tolerance en het Byzantine Generals Problem?

Het Byzantine Generals Problem en Byzantine Fault Tolerance horen bij elkaar, maar betekenen niet hetzelfde.

Het Byzantine Generals Problem is een gedachte-experiment dat laat zien waarom overeenstemming moeilijk is in een netwerk zonder centrale beslisser. In het verhaal moeten verschillende generaals samen bepalen of zij aanvallen of zich terugtrekken. Ze communiceren alleen via berichten, terwijl sommige generaals mogelijk liegen of tegenstrijdige informatie verspreiden.

Bij een blockchain speelt eigenlijk hetzelfde probleem. Validators moeten samen bepalen welke transacties en blokken geldig zijn, terwijl zij niet zeker weten of iedere deelnemer eerlijk en betrouwbaar is.

Byzantine Fault Tolerance beschrijft vervolgens hoe een netwerk met dat probleem omgaat. Het zorgt ervoor dat validators toch tot één gezamenlijke beslissing kunnen komen, ook wanneer een deel van de deelnemers uitvalt, fouten maakt of verkeerde informatie verstuurt.

Het Byzantine Generals Problem beschrijft dus het probleem. Byzantine Fault Tolerance is het vermogen van een netwerk om dat probleem op te lossen. De concrete regels waarmee dat gebeurt, zoals stemrondes, digitale handtekeningen en een hoge stemdrempel, vormen samen het BFT-protocol.

Hoe passen blockchains Byzantine Fault Tolerance toe?

Blockchains kunnen Byzantine Fault Tolerance op verschillende manieren toepassen. Niet ieder netwerk gebruikt hetzelfde protocol, maar het doel is steeds vergelijkbaar: validators moeten samen één geldige versie van de blockchain kiezen, ook wanneer een deel van hen uitvalt of verkeerde informatie verspreidt.

De verschillen zitten vooral in de manier waarop een validator wordt gekozen om een blok voor te stellen, hoeveel stemrondes nodig zijn en wanneer een blok definitief wordt. Ook verschilt per protocol wat er gebeurt wanneer validators niet reageren of tegenstrijdige stemmen uitbrengen.

Practical Byzantine Fault Tolerance

Practical Byzantine Fault Tolerance, meestal afgekort tot PBFT, is een van de bekendste BFT-protocollen. Het werd ontwikkeld door Miguel Castro en Barbara Liskov om Byzantine Fault Tolerance bruikbaar te maken in echte computersystemen.

PBFT werkt met één tijdelijke leider die een voorstel naar de andere deelnemers stuurt. Zij controleren het voorstel en delen daarna met elkaar of zij het geldig vinden. Vervolgens bevestigen zij dat voldoende deelnemers hetzelfde voorstel ondersteunen.

Door deze verschillende communicatierondes kan het netwerk controleren of er echt brede overeenstemming bestaat. PBFT werkt vooral goed met een relatief kleine groep bekende deelnemers. Wanneer de groep groter wordt, moeten er steeds meer berichten worden uitgewisseld. Daardoor wordt het protocol minder efficiënt voor blockchains met heel veel validators.

Tendermint BFT

Tendermint BFT wordt gebruikt door veel blockchains binnen het Cosmos-ecosysteem. Bij Tendermint stelt eerst één validator een blok voor. Daarna volgen twee stemrondes waarin validators aangeven of zij het blok ondersteunen.

Een blok wordt pas definitief wanneer meer dan twee derde van het stemgewicht ermee instemt. Tendermint gebruikt daarnaast een lockingmechanisme. Wanneer een validator ziet dat een blok voldoende steun heeft, wordt deze als het ware op dat blok vastgezet.

De validator mag daarna niet zomaar voor een conflicterend blok stemmen. Dit helpt voorkomen dat in verschillende rondes twee tegenstrijdige blokken worden goedgekeurd.

HotStuff

HotStuff is een moderner BFT-protocol dat dezelfde basisgedachte op een efficiëntere manier probeert toe te passen. Ook hier stelt een tijdelijke leider blokken voor en moeten voldoende validators deze ondersteunen.

HotStuff kan de steun van validators samenvatten in een quorum certificate. Dit is een cryptografisch bewijs dat voldoende validators hetzelfde voorstel hebben ondersteund. Validators moeten hun stemmen nog steeds versturen, maar het quorum certificate maakt het mogelijk om het bewijs van die brede steun compact door te geven. HotStuff is daarnaast ontworpen om de communicatie en het wisselen van leider efficiënter te laten verlopen.

Daardoor hoeven niet steeds alle losse stemmen afzonderlijk te worden verwerkt. Het protocol is bovendien ontworpen om sneller van leider te wisselen wanneer de huidige leider niet goed functioneert.

Verschillende moderne blockchainprotocollen zijn geheel of gedeeltelijk geïnspireerd op HotStuff.

Ethereum

Ethereum gebruikt geen klassieke vorm van PBFT, Tendermint of HotStuff. Het netwerk gebruikt Proof of Stake, waarbij validators stemmen met de ETH die zij hebben gestaked. Toch zijn er duidelijk BFT-principes terug te zien in de manier waarop Ethereum finaliteit bereikt.

Validators stemmen over controlepunten in de blockchain. Een controlepunt wordt pas definitief wanneer minimaal twee derde van de totale gestakete ETH het ondersteunt.

Wanneer meer dan een derde van het stemgewicht niet meewerkt, kan de finaliteit tijdelijk stoppen. Het netwerk kiest er dan voor om te wachten op voldoende betrouwbare stemmen, in plaats van twee verschillende versies definitief te maken.

Validators die aantoonbaar voor tegenstrijdige versies stemmen, kunnen worden bestraft. Dit wordt slashing genoemd. De economische straf ondersteunt hier de BFT-regels: validators kunnen verkeerde informatie verspreiden, maar dat gedrag is zichtbaar en kan gevolgen hebben.

Bitcoin

Bitcoin pakt hetzelfde basisprobleem anders aan. Het netwerk moet ook overeenstemming bereiken terwijl deelnemers elkaar niet volledig vertrouwen, maar gebruikt daarvoor geen klassiek stemgebaseerd BFT-protocol.

Bitcoin gebruikt Proof of Work. Miners gebruiken rekenkracht om nieuwe blokken te produceren, waarna nodes controleren of deze blokken geldig zijn. Miners bouwen verder op de geldige chain waarin het meeste cumulatieve rekenwerk is geïnvesteerd.

Een blok is daarbij niet direct definitief. De kans dat het wordt teruggedraaid, wordt steeds kleiner naarmate er meer blokken bovenop worden gebouwd. Dit wordt probabilistische finaliteit genoemd.

Bitcoin probeert dus hetzelfde algemene probleem op te lossen als BFT-protocollen: hoe houdt een netwerk één betrouwbare geschiedenis bij wanneer niet iedere deelnemer te vertrouwen is? Het verschil is dat Bitcoin daarvoor rekenkracht en economische kosten gebruikt, terwijl klassieke BFT-protocollen vooral werken met expliciete stemrondes en een hoge stemdrempel.

Wat gebeurt er wanneer validators niet meewerken?

Wat er gebeurt wanneer validators uitvallen of verkeerd handelen, hangt af van hoeveel stemgewicht zij samen vertegenwoordigen.

Wanneer slechts een kleine groep validators niet meewerkt, kunnen de overige validators meestal nog voldoende steun verzamelen om nieuwe blokken te bevestigen. Het netwerk blijft dan gewoon functioneren, ook al is niet iedere validator actief of betrouwbaar.

De situatie verandert wanneer meer dan een derde van het totale stemgewicht niet deelneemt. Bij veel BFT-protocollen kan het netwerk dan niet meer de vereiste steun van meer dan twee derde verzamelen. Nieuwe blokken kunnen daardoor tijdelijk niet definitief worden gemaakt. Deze groep kan de voortgang dus blokkeren, maar meestal niet zelfstandig een conflicterende versie van de blockchain goedkeuren.

Wanneer een groep meer dan twee derde van het stemgewicht beheert en samenwerkt, kan zij zelfstandig voldoende steun vormen om blokken te bevestigen. Zo’n groep kan daardoor bepalen welke geldige blokken finaliteit bereiken en kan transacties censureren door deze niet op te nemen. Voor het definitief maken van twee conflicterende versies moeten validators wel aantoonbaar tegen de consensusregels ingaan, wat bij veel Proof-of-Stake-netwerken kan leiden tot slashing.

Daarom is niet alleen het aantal validators belangrijk, maar vooral de verdeling van het stemgewicht. Een blockchain kan duizenden validators hebben en toch relatief geconcentreerd zijn wanneer een klein aantal partijen een groot deel van de gestakete tokens beheert.

Hoe worden kwaadwillende validators bestraft?

Proof-of-Stake-blockchains kunnen validators bestraffen wanneer zij aantoonbaar tegen de consensusregels ingaan. Dit wordt slashing genoemd.

Een validator kan bijvoorbeeld worden gestraft wanneer hij voor twee conflicterende blokken stemt of probeert twee verschillende versies van de blockchain te ondersteunen. Omdat iedere stem digitaal wordt ondertekend, kan het netwerk controleren welke validator de overtreding heeft begaan.

De straf verschilt per blockchain. Een validator kan staking rewards verliezen, een deel van zijn gestakete tokens kwijtraken of tijdelijk uit de validatorset worden verwijderd. Bij ernstige overtredingen kan de uitsluiting langer duren of permanent zijn.

Slashing maakt vals spelen niet onmogelijk, maar verhoogt wel de financiële gevolgen. Een validator die de consensusregels overtreedt, loopt daardoor het risico een deel van zijn eigen ingelegde waarde te verliezen.

Wat zijn de voordelen van Byzantine Fault Tolerance?

Byzantine Fault Tolerance heeft verschillende voordelen:

  1. Het netwerk kan blijven functioneren bij fouten: Niet iedere validator hoeft altijd online of foutloos te zijn. Zolang genoeg validators correct blijven werken, kan het netwerk nieuwe blokken blijven verwerken.
  2. De blockchain houdt één gedeelde geschiedenis: BFT helpt voorkomen dat verschillende groepen validators conflicterende blokken definitief maken. Daardoor blijven eerlijke deelnemers dezelfde versie van de blockchain volgen.
  3. Blokken kunnen snel definitief worden: Veel BFT-protocollen maken een blok definitief zodra voldoende validators het ondersteunen. Gebruikers hoeven daardoor vaak niet op veel extra blokken te wachten.
  4. Validatorgedrag is controleerbaar: Stemmen worden digitaal ondertekend. Hierdoor kan het netwerk zien welke validator voor welk blok heeft gestemd en of iemand tegenstrijdige stemmen heeft uitgebracht.
  5. Er is geen centrale beslisser nodig: Validators kunnen samen bepalen welke blokken geldig zijn, zonder dat één centrale partij alle beslissingen neemt.

Wat zijn de nadelen van Byzantine Fault Tolerance?

Byzantine Fault Tolerance heeft ook verschillende nadelen:

  1. Het netwerk kan tijdelijk stilvallen: Wanneer te weinig validators deelnemen, kan het vereiste quorum niet worden gevormd. Het netwerk kan dan mogelijk nog wel blokken voorstellen, maar deze niet definitief maken. Transacties blijven daardoor langer onzeker en gebruikers moeten wachten tot voldoende validators weer deelnemen.
  2. Validators moeten veel informatie uitwisselen: Validators moeten tijdens het consensusproces voorstellen, stemmen en bevestigingen met elkaar delen. Naarmate het aantal validators groeit, neemt ook de hoeveelheid communicatie toe. Dit kan het netwerk vertragen en meer bandbreedte en rekenkracht vereisen.
  3. BFT-protocollen zijn technisch ingewikkeld: Deze protocollen werken met meerdere stemrondes, wachttijden, tijdelijke leiders en regels die bepalen wanneer een validator van stem mag veranderen. Een fout in deze regels of in de software kan ervoor zorgen dat validators vastlopen, verschillende informatie verwerken of tijdelijk geen consensus bereiken.
  4. Het stemgewicht kan geconcentreerd raken: Een blockchain kan veel validators hebben, terwijl enkele grote stakingproviders of organisaties samen een groot deel van het stemgewicht beheren. Wanneer deze partijen meer dan een derde van het stemgewicht controleren, kunnen zij de finaliteit mogelijk tegenhouden. Met meer dan twee derde kunnen zij veel invloed uitoefenen op welke blokken worden bevestigd.
  5. BFT beschermt alleen de consensuslaag: BFT helpt validators overeenstemming te bereiken over de geldige blockchain, maar beschermt niet alle onderdelen van het netwerk. Een transactie kan bijvoorbeeld correct worden bevestigd terwijl het gebruikte smart contract een fout bevat. Ook voorkomt BFT geen gehackte wallets, kwetsbare bridges, onjuiste prijsinformatie van oracles, problemen bij crypto-exchanges of verliezen door koersdalingen.

Conclusie

Byzantine Fault Tolerance zorgt ervoor dat een blockchain betrouwbaar kan blijven functioneren wanneer sommige validators uitvallen, fouten maken of bewust verkeerde informatie verspreiden. Het netwerk vertrouwt daarbij niet op één deelnemer, maar gebruikt onder meer digitale handtekeningen, stemrondes en een hoge stemdrempel om tot één gezamenlijk besluit te komen.

BFT is geen afzonderlijk consensusmechanisme, maar een eigenschap van het consensusproces. Het helpt voorkomen dat verschillende versies van de blockchain tegelijk definitief worden en zorgt ervoor dat het netwerk, zolang er genoeg validators deelnemen, nieuwe blokken kan blijven verwerken.

Blockchains passen deze principes op verschillende manieren toe. Tendermint gebruikt meerdere stemrondes en lockingregels, Ethereum gebruikt BFT-achtige regels voor finaliteit en Bitcoin lost een vergelijkbaar probleem op met Proof of Work en probabilistische finaliteit.

Byzantine Fault Tolerance maakt een blockchain niet volledig beschermd tegen alle fouten en aanvallen. Het vormt wel een belangrijke basis voor netwerken waarin deelnemers elkaar niet volledig hoeven te vertrouwen, maar toch samen één geldige transactiegeschiedenis kunnen bijhouden.

Over Finst

Finst is een toonaangevend cryptoplatform in Nederland en biedt extreem lage tradingkosten, beveiliging van institutioneel niveau en een compleet aanbod aan cryptodiensten zoals trading, custody, staking en fiat on off ramp. Finst is opgericht door het voormalige kernteam van DEGIRO, is onder MiCAR erkend als crypto-asset service provider door de Autoriteit Financiële Markten (AFM) en bedient zowel particuliere als institutionele klanten in 30 Europese landen.

Het cryptoplatform voor iedere investeerder

Of je nu actief handelt of voor de lange termijn belegt, met Finst bouw je met vertrouwen en een gerust gevoel aan je cryptovermogen.

Registreren