Bysantinsk feiltoleranse forklart
Innholdsfortegnelse
Hva er de bysantiske generalenes problem?
Bysantinsk feiltoleranse (BFT)
Konsensusalgoritmer for blokkjede
Avsluttende tanker
Hjem
Artikler
Bysantinsk feiltoleranse forklart

Bysantinsk feiltoleranse forklart

Avansert
Publisert Dec 6, 2018Oppdatert Dec 12, 2022
5m

Etter at Bitcoin oppsto i 2008 som et elektronisk peer-to-peer-kontantsystem, ble mange andre kryptovalutaer opprettet, hver av dem med sin bestemte mekanisme. Men noe som nesten alle kryptovalutaer har til felles, er blokkjeden – kjerneelementet i arkitekturen.

Med få unntak er blokkjeder bevisst laget for å være desentraliserte og fungerer som en digital hovedbok som opprettholdes av et distribuert nettverk av data-noder. Derfor gjorde blokkjedeteknologien det mulig å opprette tillitsløse økonomiske systemer, der transparente og pålitelige finanstransaksjoner kunne utføres uten behov for mellomledd. Kryptovalutaer kan benyttes som et reelt alternativ til tradisjonelle bank- og betalingssystemer, som er helt avhengige av tillit.

I liket med de fleste distribuerte datasystemer må deltakerne i et kryptovalutanettverk regelmessig bli enige om den nåværende tilstanden til blokkjeden, og det er det vi kaller oppnåelse av konsensus. Det er på ingen måte enkelt å oppnå konsensus på en sikker og effektiv måte på distribuerte nettverk.

Så hvordan kan et distribuert nettverk av datanoder bli enige om en avgjørelse hvis noen av nodene sannsynligvis mislykkes eller er uærlige? Det er den grunnleggende problemstillingen for de såkalte bysantinske generalene, som er opphavet til konseptet bysantinsk feiltoleranse.


Hva er de bysantiske generalenes problem?

Kort fortalt oppsto problemet til de bysantinske generalene i 1982 som et logisk dilemma som illustrerer hvordan en gruppe av bysantinske generaler kan oppleve kommunikasjonsproblemer når de prøver å bli enige om neste trekk.

Dilemmaet tar utgangspunkt i at hver general har sin egen hær, og at hver gruppe befinner seg på forskjellige steder rundt byen som de har tenkt å angripe. Generalene må bli enige om enten å angripe eller å trekke seg tilbake. Det spiller ingen rolle om de angriper eller trekker seg tilbake, så lenge alle generalene oppnår konsensus, dvs. at de blir enige om en felles beslutning slik at de kan gjennomføre den på en koordinert måte.

Vi tenker oss følgende forutsetninger:

  • Hver av generalene må bestemme seg: angrep eller retrett (ja eller nei)

  • Etter at beslutningen er tatt, kan den ikke endres

  • Alle generalene må være enige om den samme beslutningen og utføre den på en synkronisert måte

De nevnte kommunikasjonsproblemene er knyttet til at generalene bare kan kommunisere med hverandre gjennom meldinger som overbringes av en budbærer. Derfor er den store utfordringen og problemet som de bysantinske generalene står overfor, at meldingene på en eller annen måte kan bli forsinket, ødelegges eller gå tapt.

I tillegg kan det være slik at selv om meldingen leveres som den skal, kan én eller flere av generalene velge (av en hvilken som helst grunn) å være uærlig og sende en falsk melding for å forvirre de andre generalene, noe som fører til total fiasko.

Hvis vi overfører dette dilemmaet til konteksten med blokkjeder, representerer hver general en nettverksnode, og nodene må oppnå konsensus om den nåværende tilstanden til systemet. Sagt på en annen måte må flertallet av deltakerne i et distribuert nettverk godta og utføre den samme handlingen for å unngå fullstendig svikt.

Den eneste måten å oppnå konsensus i slike typer distribuerte systemer er derfor å ha minst ⅔ pålitelige og ærlige nettverksnoder. Dette betyr at hvis flertallet på nettverket bestemmer seg for å være uærlige, kan systemet svikte og bli utsatt for angrep (deriblant 51 %-angrep).


Bysantinsk feiltoleranse (BFT)

Kort sagt er bysantinsk feiltoleranse (BFT) evnen et system har til å motstå den type feil som kommer fra de bysantinske generalenes problem. Dette betyr at et BFT-system kan fortsette å fungere selv om noen av nodene svikter eller er uærlige. 

Det finnes mer enn én mulig løsning på de bysantinske generalenes problem og derfor også flere måter å bygge et BFT-system på. På samme måte finnes det ulike tilnærminger for at en blokkjede skal kunne oppnå bysantinsk feiltoleranse, og dette tar oss over på de såkalte konsensusalgoritmene.


Konsensusalgoritmer for blokkjede

Vi kan definere en konsensusalgoritme som mekanismen et blokkjedenettverk bruker for å oppnå konsensus. De vanligste metodene er Proof of Work (PoW) og Proof of Stake (PoS). Men la oss bruke Bitcoin som eksempel.

Det er Bitcoin-protokollen som bestemmer hovedreglene for systemet, og det er PoW-konsensusalgoritmen som definerer hvordan disse reglene skal håndheves for å oppnå konsensus (for eksempel ved verifisering og validering av transaksjoner).

Konseptet med Proof of Work er riktignok eldre enn kryptovalutaer, men Satoshi Nakamoto utviklet en modifisert versjon av det som en algoritme som gjorde det mulig å etablere Bitcoin som et BFT-system.

Vær oppmerksom på at PoW-algoritmen ikke er 100 % tolerant for bysantinske feil, men på grunn av den kostnadsintensive prosessen med mining og de underliggende kryptografiske teknikkene har PoW vist seg å være en av de sikreste og mest pålitelige metodene for blokkjedenettverk. Derfor blir Proof of Work-konsensusalgoritmen som ble designet av Satoshi Nakamoto, av mange ansett som en av de mest geniale løsningene på bysantinske feil.


Avsluttende tanker

De bysantinske generalenes problem er et spennende dilemma som førte til at BFT-systemene oppsto, og det blir mye brukt i ulike scenarioer. Andre bruksområder for BFT-systemer enn blokkjedeindustrien inkluderer luftfart, romfart og kjernekraft.

I konteksten kryptovaluta er det avgjørende for alle blokkjedeøkosystemer å ha effektiv nettverkskommunikasjon og en god konsensusmekanisme. Det krever kontinuerlig innsats å sikre disse systemene, og det finnes fortsatt noen begrensninger som eksisterende konsensusalgoritmer ennå ikke har overvunnet (deriblant skalerbarhet). Uansett er PoW og PoS veldig interessante tilnærminger til BFT-systemer, og de potensielle bruksområdene inspirerer absolutt til bred innovasjon.