Wat is het Byzantine generals probleem?

Anycoin Direct

Door Anycoin Direct

Laten we vandaag een kort uitstapje maken naar de oudheid. Het Byzantijnse rijk was een onderdeel van het Romeinse rijk, nadat het in twee delen werd gesplitst. Byzantium (later Constantinopel en Istanboel) was de hoofdstad.

Korte samenvatting

✔️ Byzantijnse fouttolerantie wordt in blockchaintechnologie gebruikt om ervoor te zorgen dat alle knooppunten of miners tot dezelfde overeenstemming komen over welke blokken aan de keten worden toegevoegd.

✔️ 51% van de miners moet het eens zijn over een blok om het te kunnen toevoegen.

✔️ Het systeem vereist geen vertrouwen tussen miners en wordt daarom "trustless" genoemd

✔️ Bitcoin draait al meer dan 10 jaar met succes dankzij de Byzantijnse fouttolerantie.

Byzantine generals probleem?

Byzantine generals zijn dus generaals van het Byzantijnse rijk.

Wat was het klassieke probleem? Stel je belegert een grote stad. Er zijn een aantal legeronderdelen die onder leiding staan van een generaal. Op een gegeven moment moeten alle generaals dezelfde actie ondernemen, bijvoorbeeld aanvallen of terugtrekken. Als ze niet hetzelfde doen wacht hun een nederlaag.

Hoe moet men dit aanpakken? Laten we eerst de Byzantine fault aan het licht brengen. Er rijden boodschappers rond tussen de legers die de generaals mededelen wat de andere generaals hebben besloten. Als een meerderheid voor een bepaalde strategie kiest moeten alle generaals zich daar aan houden.

Een Byzantijnse fout is het als een verraderlijke generaal besluit om aan de ene groep generaals het ene besluit (aanvallen) mede te delen en aan de rest het andere (terugtrekken).

Byzantine fault tolerance werkt zo, dat niet loyale generaals “het systeem” niet plat kunnen leggen, tenzij zij de meerderheid hebben. Stel je hebt 9 generaals, waarvan 5 loyaal zijn en 4 niet loyaal, dan bepaalt de meerderheid de strategie. Aangezien de meeste generaals over het algemeen loyaal zijn zal dit systeem vrijwel altijd werken.

Byzantine fault tolerance in blockchain

Okay, maar wat heeft dat te maken met blockchain? Byzantine fault tolerance gaat om consensus oftewel overeenstemming op een blockchain.

Er worden de hele tijd transacties verricht en er worden nieuwe blocks toegevoegd aan een blockchain. Computers moeten deze blockchain bij houden. Dit zijn miners of validatoren. Hoe weten deze computers nou welke blocks de juiste zijn? Er kunnen immers ook validatoren zijn die een block toe willen voegen dat incorrect is of frauduleus.

Dat doen ze door overeenstemming of consensus te bereiken over welk block correct is. Bij de meeste proof of work consensus protocollen moet 51% van de miners het eens zijn dat een block correct is. Op het moment dat dat zo is wordt het block toegevoegd aan de blockchain en onveranderbaar vastgelegd.

Het kan dus heel goed dat er flink wat kwaadaardige of foutieve validatoren bij zitten en toch werkt het systeem nog goed. Byzantine fault tolerance werkt zó goed, dat Bitcoin er al meer dan tien jaar goed op draait. Ieder jaar wordt het ook moeilijker en duurder om het netwerk aan te vallen, omdat de blockchain groter is en de prijs duurder. Als je dan 51% van de rekenkracht bij elkaar wilt krijgen gaat het om zulke hoge bedragen dat het je meer kost dan oplevert. Daarom hoor je ook nooit meer wat over een aanval op de grote netwerken.

Het mooie aan dit systeem is dat de nodes of miners elkaar niet eens hoeven te vertrouwen, het is trustless met een mooi Engels woord. Het enige dat bepalend is, is dat een meerderheid het eens wordt en dat gaat allemaal automatisch zonder enige inbreng van wie dan ook, behalve van onpersoonlijke computers.

Deze fout tolerantie is enorm belangrijk om het systeem draaiende te houden zonder dat je de hele tijd van alles hoeft te veranderen als maker of programmeur. We kunnen dan ook wel vaststellen dat Satoshi Nakamoto, de bedenker van Bitcoin, dat heel slim gedaan heeft.

Test je kennis

Vraag: 1/5Welk gedeelte van de generaals moet loyaal zijn om Byzantine fault tolerance te laten werken?
AAlle
BSommige
CMeerderheid
DGeen enkele