Hvad er en blockchain-konsensusalgoritme?
Hjem
Artikler
Hvad er en blockchain-konsensusalgoritme?

Hvad er en blockchain-konsensusalgoritme?

Begynder
Offentliggjort Dec 13, 2018Opdateret Aug 17, 2023
7m

Introduktion

En konsensusalgoritme er en mekanisme, der giver brugere eller maskiner mulighed for at koordinere i en distribueret indstilling. Den skal sikre, at alle agenter i systemet kan blive enige om en enkelt kilde til sandhed, selvom nogle agenter fejler. Systemet skal med andre ord være fejltolerant (se også: Forklaring af byzantinsk fejltolerance).

I en centraliseret ops√¶tning har en enkelt enhed magt over systemet. I de fleste tilf√¶lde kan de foretage √¶ndringer, som de vil ‚Äď der er ikke noget komplekst styringssystem til at n√• til enighed blandt mange administratorer.¬†

Men i en decentraliseret ops√¶tning er det en helt anden historie. Lad os sige, at vi arbejder med en distribueret database¬†‚Ästhvordan n√•r vi til enighed om, hvilke poster der skal tilf√łjes?

At overvinde denne udfordring i et milj√ł, hvor fremmede ikke stoler p√• hinanden, var m√•ske den mest afg√łrende udvikling, der banede vejen for blockchains. I denne artikel tager vi et kig p√•, hvordan konsensusalgoritmer er afg√łrende for funktionen af kryptovalutaer og distribuerede hovedb√łger.


Konsensusalgoritmer og kryptovaluta

I kryptovalutaer registreres brugernes saldi i en database, altså en blockchain. Det er vigtigt, at alle (eller mere præcist hver node) vedligeholder en identisk kopi af databasen. Ellers ville du snart ende med modstridende oplysninger, der underminerer hele formålet med kryptovalutanetværket.

Offentlig n√łgle-kryptering sikrer, at brugere ikke kan bruge hinandens m√łnter. Men der skal stadig v√¶re en enkelt kilde til sandhed, som netv√¶rksdeltagerne stoler p√•, for at kunne afg√łre, om midlerne allerede er brugt.

Satoshi Nakamoto, skaberen af bitcoin, foreslog et Proof of Work-system til at koordinere deltagerne. Vi kommer ind p√•, hvordan PoW fungerer om lidt ‚Äď f√łrst vil vi lige identificere nogle af de f√¶lles tr√¶k ved de mange konsensusalgoritmer, der findes.

For det f√łrste kr√¶ver vi, at brugere, der √łnsker at tilf√łje blokke (vi kalder dem validatorer), giver en stake. Staken er en slags v√¶rdi, som en validator skal frems√¶tte, hvilket afskr√¶kker dem fra at handle u√¶rligt. Hvis de snyder, mister de deres stake. Eksempler inkluderer computerkraft, kryptovaluta eller endda omd√łmme.¬†

Hvorfor skulle de ulejlige sig med at s√¶tte deres egne ressourcer p√• spil? Fordi der ogs√• er en bel√łnning tilg√¶ngelig. Den best√•r normalt af protokollens egen kryptovaluta og best√•r af gebyrer betalt af andre brugere, nyligt genererede kryptovalutaenheder eller begge dele.

Til sidst har vi brug for gennemsigtighed. Vi skal kunne opdage, n√•r nogen snyder. Ideelt set b√łr det v√¶re dyrt for dem at producere blokke, men billigt for alle at validere dem. Dette sikrer, at validatorer holdes i skak af almindelige brugere.


Typer af konsensusalgoritmer

Proof of Work (PoW)

Proof of Work (PoW) er gudfar til blockchain-konsensusalgoritmer. Den blev f√łrst implementeret i Bitcoin, men det faktiske koncept har eksisteret i nogen tid. I Proof of Work hasher validatorer (kaldet minere) de data, de vil tilf√łje, indtil de producerer en bestemt l√łsning.

En hash er en tilsyneladende tilf√¶ldig streng af bogstaver og tal, der oprettes, n√•r du k√łrer data gennem en hash-funktion. Men hvis du k√łrer de samme data gennem den igen, ender du altid med det samme output. Bare ved at √¶ndre en enkelt detalje, vil din hash v√¶re fuldst√¶ndig anderledes.

N√•r du ser p√• outputtet, kan du umuligt sige, hvilke oplysninger der blev indl√¶st i funktionen. De er derfor nyttige til at bevise, at du kendte et stykke data f√łr et bestemt tidspunkt. Du kan give nogen deres hash, og n√•r du senere afsl√łrer dataene, kan den person k√łre den gennem funktionen for at sikre, at outputtet er det samme.

I Proof of Work opstiller protokollen betingelser for, hvad der g√łr en blok gyldig. Den kan f.eks. sige, at kun en blok, hvis hash begynder med 00, vil v√¶re gyldig. Den eneste m√•de for mineren at oprette en, der matcher denne kombination, er tvungne inputs. De kan justere en parameter i deres data for at producere et andet resultat for hvert g√¶t, indtil de f√•r den rigtige hash.¬†

Med store blockchains er standarden sat utroligt h√łjt. For at konkurrere med andre minere skal du have et lager fuld af s√¶rligt hashing-hardware (ASIC'er) for at have en chance for at producere en gyldig blok.

Din stake, n√•r du miner, er omkostningerne ved disse maskiner og den elektricitet, der kr√¶ves for at k√łre dem. ASIC'er er bygget til √©t form√•l, s√• de er ubrugelige i applikationer uden for mining af kryptovaluta. Din eneste m√•de til at genvinde din oprindelige investering er ved at mine, hvilket giver en betydelig bel√łnning, hvis det lykkes dig at f√łje en ny blok til blockchainen.

Det er trivielt for netv√¶rket at kontrollere, at du faktisk har oprettet den rigtige blok. Selvom du har pr√łvet billioner af kombinationer for at f√• den rigtige hash, skal de bare k√łre dine data gennem en funktion √©n gang. Hvis dine data producerer en gyldig hash, accepteres den, og du f√•r en bel√łnning. I modsat fald vil netv√¶rket afvise den, og du har spildt tid og elektricitet uden at f√• noget ud af det.


Proof of Stake (PoS)

Proof of Stake (PoS) blev foresl√•et i de tidlige dage af Bitcoin som et alternativ til Proof of Work. I et PoS-system findes der ikke noget koncept om minere, specialiseret hardware eller massivt energiforbrug. Alt hvad du beh√łver er en almindelig pc.

Det er m√•ske ikke helt rigtigt. Du skal stadig s√¶tte noget p√• h√łjkant. I PoS frems√¶tter du ikke en ekstern ressource (s√•som elektricitet eller hardware), men en intern ressource, nemlig kryptovaluta. Reglerne er forskellige fra protokol til protokol, men der er generelt et minimumsbel√łb, du skal have for at v√¶re berettiget til at stake.

Derfra låser du dine midler i en tegnebog (de kan ikke flyttes, mens du staker). Du vil typisk aftale med andre validatorer, hvilke transaktioner der går ind i den næste blok. På en måde satser du på den blok, der vælges, og protokollen vælger en.

Hvis din blok er valgt, modtager du en del af transaktionsgebyrerne afh√¶ngigt af din stake. Jo flere midler du har l√•st op, jo mere st√•r du til at vinde. Men hvis du fors√łger at snyde ved at foresl√• ugyldige transaktioner, mister du en del af (eller hele) din stake. Derfor har vi en lignende mekanisme som ved PoW ‚Äď at handle √¶rligt er mere rentabelt end at handle u√¶rligt.

Generelt er der ikke frisklavede m√łnter som en del af bel√łnningen for validatorer. Blockchainens oprindelige valuta skal s√•ledes udstedes p√• en anden m√•de. Dette kan g√łres enten via en indledende distribution (dvs. en ICO eller IEO) eller ved at f√• protokollen til at starte med PoW, f√łr den senere overg√•r til PoS.

Til dato er ren Proof of Stake kun blevet implementeret i mindre kryptovalutaer. Det er derfor uklart, om den kan tjene som et levedygtigt alternativ til PoW. Selv om det ser teoretisk fornuftigt ud, vil det være meget anderledes i praksis. 

N√•r PoS er udrullet p√• et netv√¶rk med en stor m√¶ngde v√¶rdi, bliver systemet et spillefelt for spilteori og √łkonomiske incitamenter. Enhver med knowhow til at "hacke" et PoS-system ville sandsynligvis kun g√łre det, hvis de kunne drage fordel af det ‚Äď derfor er den eneste m√•de til at finde ud af, om det er muligt, via et live-netv√¶rk.

Vi vil snart se PoS blive testet i stor skala. Casper vil blive implementeret som en del af en række opgraderinger til Ethereum-netværket (samlet kendt som Ethereum 2.0).


Andre konsensusalgoritmer

Proof of Work og Proof of Stake er de mest omtalte konsensusalgoritmer. Men der er en lang r√¶kke andre, alle med deres egne fordele og ulemper. Se f√łlgende artikler:


Sammenfatning

Mekanismer til opn√•else af konsensus er afg√łrende for, at distribuerede systemer fungerer. Mange mener, at den st√łrste innovation i Bitcoin var brugen af Proof of Work for at g√łre det muligt for brugerne at blive enige om et f√¶lles s√¶t fakta.

Konsensusalgoritmer underst√łtter i dag ikke kun digitale pengesystemer, men ogs√• blockchains, der giver udviklere mulighed for at k√łre kode p√• tv√¶rs af et distribueret netv√¶rk. De er nu en hj√łrnesten i blockchain-teknologi og er afg√łrende for den langsigtede levedygtighed af de forskellige eksisterende netv√¶rk.

Af alle konsensusalgoritmerne forbliver Proof of Work det dominerende tilbud. Der er endnu ikke blevet foresl√•et et alternativ, der er mere p√•lideligt og mere sikkert. N√•r det er sagt, findes der en enorm m√¶ngde forskning og udvikling vedr√łrende erstatninger af PoW, og vi vil sandsynligvis se flere dukke op i de kommende √•r.