Hjem
Artikler
Forklaring af byzantinsk fejltolerance

Forklaring af byzantinsk fejltolerance

Avanceret
Offentliggjort Dec 6, 2018Opdateret Aug 17, 2023
5m

Siden opstarten af Bitcoin i 2008, som et elektronisk peer to peer-kontantsystem, blev der oprettet mange andre kryptovalutaer, hver med en bestemt mekanisme. Men én ting, som næsten alle kryptovalutaer har til fælles, er blockchainen som kerneelementet i deres arkitektur.

Med f√• undtagelser er blockchains bevidst designet til at blive decentraliseret og fungere som en digital ledger, der vedligeholdes af et distribueret netv√¶rk af computer-noder. Af denne grund tillod blockchain-teknologi oprettelsen af trustless √łkonomiske systemer, hvor gennemsigtige og p√•lidelige finansielle transaktioner kunne udf√łres uden behov for mellemm√¶nd. Kryptovalutaer bliver vedtaget som et levedygtigt alternativ til traditionelle bank- og betalingssystemer, som er st√¶rkt afh√¶ngige af tillid.

Ligesom de fleste distribuerede computersystemer skal deltagerne i et kryptovalutanetværk blive enige om blockchainens aktuelle tilstand, og det er det, vi kalder konsensusopnåelse. Det er dog langt fra en let opgave at nå til konsensus om distribuerede netværk på en sikker og effektiv måde.

S√• hvordan kan et distribueret netv√¶rk af computer-noder blive enige om en beslutning, hvis nogle af noderne sandsynligvis vil mislykkes eller handle u√¶rligt? Dette er det grundl√¶ggende sp√łrgsm√•l om de s√•kaldte byzantinske generalers problem, som aff√łdte begrebet byzantinsk fejltolerance.


Hvad er de byzantinske generalers problem?

Kort sagt blev de byzantinske generalers problem udt√¶nkt i 1982 som et logisk dilemma, der illustrerer, hvordan en gruppe byzantinske generaler kan have kommunikationsproblemer, n√•r de fors√łger at blive enige om deres n√¶ste tr√¶k.

Dilemmaet foruds√¶tter, at hver general har sin egen h√¶r, og at hver gruppe befinder sig forskellige steder i den by, de har til hensigt at angribe. Generalerne skal blive enige om enten at angribe eller tr√¶kke sig tilbage. Det er ligegyldigt, om de angriber eller tr√¶kker sig tilbage, s√• l√¶nge alle generaler n√•r til konsensus, dvs. er enige om en f√¶lles beslutning for at udf√łre den i koordination.

Derfor kan vi overveje f√łlgende krav:

  • Hver general skal beslutte: angreb eller tilbagetr√¶kning (ja eller nej);

  • N√•r beslutningen er truffet, kan den ikke √¶ndres;

  • Alle generaler skal v√¶re enige om den samme beslutning og udf√łre den p√• en synkroniseret m√•de.

De ovenn√¶vnte kommunikationsproblemer er relateret til det faktum, at en general kun er i stand til at kommunikere med en anden gennem meddelelser, som videresendes af en kurer. Derfor er den centrale udfordring ved de byzantinske generalers problem, at meddelelserne p√• √©n eller anden m√•de kan blive forsinket, √łdelagt eller tabt.

Hertil kommer, at selvom en meddelelse leveres med succes, kan √©n eller flere generaler v√¶lge (uanset √•rsag) at handle ondsindet og sende en svigagtig besked for at forvirre de andre generaler, hvilket f√łrer til en total fiasko.

Hvis vi anvender dilemmaet i forbindelse med blockchains, repr√¶senterer hver general en netv√¶rksnode, og noderne skal n√• til konsensus om systemets aktuelle tilstand. Sagt p√• en anden m√•de skal flertallet af deltagerne i et distribueret netv√¶rk v√¶re enige og udf√łre den samme handling for at undg√• fuldst√¶ndig fiasko.

Derfor er den eneste m√•de til at opn√• konsensus i disse typer distribuerede systemer ved at have mindst to tredjedele eller mere af p√•lidelige og √¶rlige netv√¶rksnoder. Dette betyder, at hvis st√łrstedelen af netv√¶rket beslutter at handle ondsindet, er systemet modtageligt for fejl og angreb (s√•som 51 %-angrebet).


Byzantinsk fejltolerance (BFT)

Kort sagt er byzantinsk fejltolerance (BFT) egenskaben ved et system, der er i stand til at modstå kategorier af fejl, der stammer fra de byzantinske generalers problem. Dette betyder, at et BFT-system er i stand til at fortsætte med at fungere, selvom nogle af noderne fejler eller handler ondsindet. 

Der er mere end √©n mulig l√łsning p√• de byzantinske generalers problem og derfor flere m√•der til at opbygge et BFT-system. Ligeledes er der forskellige tilgange til en blockchain for at opn√• byzantinsk fejltolerance, og dette f√łrer os til de s√•kaldte konsensusalgoritmer.


Blockchain-konsensusalgoritmer

Vi kan definere en konsensusalgoritme som den mekanisme, hvorigennem et blockchain-netværk opnår konsensus. De mest almindelige implementeringer er Proof of Work (PoW) og Proof of Stake (PoS). Men lad os tage Bitcoin som et eksempel.

Mens Bitcoin-protokollen foreskriver systemets primære regler, er PoW-konsensusalgoritmen det, der definerer, hvordan disse regler vil blive fulgt for at nå til enighed (f.eks. under verifikation og validering af transaktioner).

Selvom begrebet Proof of Work er ældre end kryptovalutaer, udviklede Satoshi Nakamoto en modificeret version af det som en algoritme, der muliggjorde oprettelsen af Bitcoin som et BFT-system.

Bem√¶rk, at PoW-algoritmen ikke er 100 % tolerant over for de byzantinske fejl, men p√• grund af den omkostningsintensive mining-proces og de underliggende kryptografiske teknikker har PoW vist sig at v√¶re √©n af de mest sikre og p√•lidelige implementeringer for blockchain-netv√¶rk. I den forstand betragtes Proof of Work-konsensusalgoritmen, designet af Satoshi Nakamoto, af mange som √©n af de mest geniale l√łsninger p√• de byzantinske fejl.


Sammenfatning

De byzantinske generalers problem er et sp√¶ndende dilemma, der f√łrte frem til BFT-systemerne, som i vid udstr√¶kning anvendes i forskellige scenarier. Ud over blockchain-industrien inkluderer et par use cases fra BFT-systemer luftfarts-, rum- og atomkraftsbranchen.

Inden for kryptovalutakonteksten er det afg√łrende for ethvert blockchain-√łkosystem at have en effektiv netv√¶rkskommunikation sammen med en god konsensusmekanisme. Sikring af disse systemer er en l√łbende indsats, og de eksisterende konsensusalgoritmer mangler endnu at overvinde nogle f√• begr√¶nsninger (s√•som skalerbarhed). Ikke desto mindre er PoW og PoS meget interessante tilgange som BFT-systemer, og de potentielle applikationer inspirerer bestemt til udbredt innovation.