Hjem
Artikler
Hvad er Proof of Work (PoW)?

Hvad er Proof of Work (PoW)?

Let øvet
Offentliggjort Dec 6, 2018Opdateret Apr 18, 2024
10m

Vigtigste budskaber

  • Proof-of-Work (PoW) er en konsensusmekanisme, der er skabt for at forhindre dobbeltforbrug i digitale betalingssystemer.

  • PoW er en vigtig del af miningprocessen, som involverer at føje nye blokke af transaktioner til blockchainen og skabe nye enheder af kryptovaluta.

  • Bitcoin og mange andre kryptovalutaer bruger PoW som en metode til at sikre deres blockchain-netværk og data.

Introduktion

Kort sagt er Proof of Work (PoW) en mekanisme, der er skabt for at forhindre dobbeltforbrug i digitale betalingssystemer. Bitcoin og mange andre kryptovalutaer bruger PoW som en metode til at sikre deres blockchain-netværk og data. Sådanne mekanismer kaldes ofte konsensusalgoritmer eller konsensusmekanismer, fordi de indebærer, at flere parter opnår konsensus uden at skulle stole på hinanden.

Proof of Work var den første konsensusalgoritme, der dukkede op, og den er stadig én af de vigtigste sammen med Proof of Stake (PoS). Den blev introduceret af Satoshi Nakamoto i Bitcoin-whitepaper fra 2008, men selve teknologien blev udtænkt længe før det.

Adam Backs HashCash er et tidligt eksempel på en Proof of Work-algoritme i tiden før kryptovaluta. Ved at kræve, at afsendere udfører en lille mængde databehandling, før de sender en e-mail, kan modtagere afbøde spam. Denne beregning ville næsten ikke koste noget for en legitim afsender, men hurtigt løbe op i et større beløb for nogen, der sender e-mails i massevis.

Hvad er et dobbeltforbrug?

Et dobbeltforbrug opstår, når de samme midler bruges mere end én gang. Udtrykket bruges næsten udelukkende i forbindelse med digital valuta – når alt kommer til alt, ville du have svært ved at bruge de samme fysiske kontanter to gange. 

Når du betaler for en kop kaffe i dag, afleverer du kontanter til en medarbejder ved kassen, der sandsynligvis låser dem i et kasseapparat. Du kan ikke gå til kaffebaren på tværs af vejen og betale for en anden kaffe med den samme regning. Men i digitale kontantsystemer er der mulighed for, at du kan. 

Du har helt sikkert duplikeret en computerfil, før du bruger copy-and-paste-kommandoerne. Det er også nemt for dig at e-maile den samme fil til snesevis af mennesker. Eftersom digital valuta kun er data, skal du forhindre folk i at kopiere og bruge de samme enheder forskellige steder. Et digitalt betalingssystem, der ikke forhindrer dobbeltforbrug, vil kollapse på ingen tid.

For et mere dybtgående kig på dobbeltudgifter kan du læse Forklaring af dobbeltudgifter.

Hvorfor er Proof of Work nødvendigt?

Hvis du har læst vores artikel om blockchain-teknologi, vil du vide, at brugere af kryptovaluta konstant sender transaktioner til netværket. Disse transaktioner betragtes dog ikke umiddelbart som gyldige. Det sker kun, når de bliver bekræftet og føjet til blockchainen.

Bitcoin-blockchainen fungerer f.eks. som en offentlig transaktionsdatabase (ledger), som enhver bruger kan se. Forestil dig det sådan: du og tre venner har en notesblok til at spore dine bitcoin-transaktioner. Hver gang én af jer ønsker at foretage en overførsel af værdi, skriver du det ned:

Alice betaler Bob 5 BTC, Bob betaler Carol 2 BTC osv.

Men hver gang du foretager en transaktion, henviser du til transaktionen, hvorfra midlerne kom. Så hvis Bob betalte Carol med 2 BTC, ville posten faktisk se ud som følgende: 

Bob betaler Carol 2 BTC, der stammer fra denne tidligere transaktion med Alice.

Nu har vi en måde at spore enhederne på. Hvis Bob forsøger at foretage en anden transaktion ved hjælp af de samme enheder, som han lige har sendt til Carol, vil alle vide det med det samme. Gruppen tillader ikke, at transaktionen føjes til notesblokken, fordi disse 2 BTC allerede er brugt.

Nu fungerer dette måske godt i en lille gruppe. Alle kender hinanden, så de vil sandsynligvis blive enige om, hvilken af vennerne der skal føje transaktioner til notesblokken. Hvad nu, hvis vi ønsker en gruppe på 10.000 deltagere? Notesblokideen skalerer ikke godt, fordi ingen ønsker at stole på en fremmed til at styre den.

Det er her, Proof of Work kommer ind i billedet. Den sikrer, at brugerne ikke bruger penge, som de ikke har ret til at bruge. Ved at bruge en kombination af spilteori og kryptografi gør en PoW-algoritme det muligt for enhver at opdatere blockchainen i henhold til systemets regler.

Hvordan fungerer PoW?

Forestil dig, at vores notesblok fra eksemplet ovenfor er blockchainen. Men vi tilføjer ikke transaktioner én efter én – i stedet klumper vi dem i blokke. Vi annoncerer transaktionerne til netværket, så brugere, der opretter en blok, inkluderer dem i en kandidatblok. Transaktionerne betragtes kun som gyldige, når deres kandidatblok bliver en bekræftet blok, hvilket betyder, at den er blevet føjet til blockchainen.

Processen med at validere transaktioner og tilføje nye blokke kaldes mining. Det er dyrt og svært, men det kan også være givende. Block-belønningen består af transaktionsgebyrer fra brugere og helt nye bitcoins oprettet af protokollen. 

Proof of Work-mekanismen kræver, at en miner (den bruger, der opretter blokken) investerer ressourcer såsom elektricitet og computerkraft for at hashe sin kandidatbloks data, indtil der er fundet en løsning på et puslespil.

Hashing af blokkens data betyder, at du sender dem gennem en hashing-funktion for at generere en blok-hash. Blok-hashen fungerer som et "fingeraftryk" – det er en identitet for dine inputdata og er unik for hver blok.

Med andre ord skal en miner verificere og indsamle afventende transaktioner, organisere dem i en kandidatblok og videregive blokkens data gennem en hashing-funktion for at skabe en gyldig hash. Hvis det lykkes dem at finde en gyldig hash til deres kandidatblok, sender de den til netværket, føjer blokken til blockchainen og indsamler miningbelønningerne.

Når en miner udsender sin kandidatblok og hash til netværket, vil andre netværksdeltagere gentage hashing-processen for at verificere, at outputtet faktisk er gyldigt. 

Selvom det kræver utallige hashingforsøg at finde en gyldig hash, er det trivielt for enhver at bekræfte, at den genererede hash er korrekt. De skal bare indsende det samme input (blokdata) gennem hash-funktionen og kontrollere, om outputtet er det samme.

I Proof of Work skal du angive data, hvis hash matcher visse betingelser. Men du ved ikke, hvordan du kommer derhen. Din eneste mulighed er at videregive dine data gennem en hash-funktion og kontrollere, om de matcher betingelserne. Hvis de ikke gør det, bliver du nødt til at ændre dine data lidt for at få en anden hash. Ændring af bare et enkelt tegn i dine data vil resultere i et helt andet resultat, så der er ingen måde til at forudsige, hvad et output kan være.

Som et resultat spiller du et puslespil, hvis du vil oprette en blok. Du tager typisk oplysninger om alle de transaktioner, du vil tilføje, og nogle andre vigtige data og hasher derefter det hele sammen. Men eftersom dit datasæt ikke ændres, skal du tilføje et stykke information, der er variabelt. I modsat fald vil du altid få den samme hash som output. Disse variable data er det, vi kalder en nonce. Det er et tal, som du ændrer for hvert forsøg, så du får en anden hash hver gang.

For at sammenfatte er mining processen med at indsamle blockchain-data og hashe dem sammen med en nonce, indtil du finder en bestemt hash. Hvis du finder en hash, der opfylder betingelserne i protokollen, får du ret til at udsende den nye blok til netværket. På dette tidspunkt opdaterer de andre deltagere i netværket deres blockchains, så de omfatter den nye blok.

For store kryptovalutaer i dag er betingelserne utroligt udfordrende at opfylde. Jo højere hash-hastigheden på netværket er, desto vanskeligere er det at finde en gyldig hash. Dette gøres for at sikre, at blokke ikke findes for hurtigt.

Som du kan forestille dig, kan det være dyrt at prøve at gætte enorme mængder hashes på din computer. Du spilder beregningscyklusser og elektricitet. Men protokollen vil belønne dig med kryptovaluta, hvis du finder en gyldig hash.

Lad os opsummere, hvad vi ved indtil videre:

  • Mining er svært og dyrt, men giver sikkerhed til netværket.

  • Minere, der formår at producere en gyldig blok, belønnes med nyudstedte kryptovalutaer og transaktionsgebyrer.

  • Det tager tid at generere en gyldig hash, men andre brugere kan nemt kontrollere dens gyldighed ved at gentage hashing-processen.

Så langt så godt. Men hvad nu, hvis du prøver at snyde? Hvad skal forhindre dig i at lægge en masse falske transaktioner i blokken og producere en gyldig hash?

Det er her kryptering med offentlig nøgle kommer ind i billedet. Vi vil ikke gå i dybden i denne artikel, men du kan læse Hvad er kryptering med offentlig nøgle? for et omfattende kig på det. Kort sagt bruger vi nogle smarte kryptografiske tricks, der giver enhver bruger mulighed for at verificere, om nogen har ret til at flytte de midler, de forsøger at bruge.

Når du opretter en transaktion, underskriver du den. Alle på netværket kan sammenligne din signatur med din offentlige nøgle og kontrollere, om de stemmer overens. De vil også kontrollere, om du rent faktisk kan bruge dine midler, og at summen af dine input er højere end summen af dine output (dvs. at du ikke bruger mere, end du har).

Enhver blok, der indeholder en ugyldig transaktion, afvises automatisk af netværket. Det er dyrt for dig selv at forsøge at snyde. Du spilder dine egne ressourcer uden nogen belønning.

Deri ligger skønheden i Proof of Work: den gør det dyrt at snyde, men rentabelt at handle ærligt. Enhver rationel miner vil søge et afkast af sin investering, så vedkommende kan forventes at opføre sig på en måde, der er mere tilbøjelig til at bringe indtægter.

Proof of Work (PoW) vs. Proof of Stake (PoS)

Der er mange konsensusalgoritmer udover PoW, men én af de mest populære er Proof of Stake (PoS). Konceptet går tilbage til 2011 og er blevet implementeret i Ethereum og flere andre protokoller.

I Proof of Stake-systemer erstattes minere med validatorer. Der er ingen mining involveret og intet kapløb om at gætte hash. I stedet vælges brugerne tilfældigt. Hvis de vælges, skal de foreslå (eller "smede") en blok. Hvis blokken er gyldig, modtager de en belønning bestående af gebyrerne fra blokens transaktioner.

Det er ikke bare en hvilken som helst bruger, der kan vælges – protokollen vælger dem ud fra en række faktorer. For at være berettiget skal deltagerne låse en stake, som er et forudbestemt beløb af blockchainens tilhørende valuta. Staken fungerer som kaution: Ligesom tiltalte skal lægge en stor sum penge for at afskrække dem fra at blive væk fra retssagen, låser validatorer en stake for at afskrække snyd. Hvis de handler uærligt, vil deres stake (eller en del af den) blive taget.

Proof of Stake har nogle fordele i forhold til Proof of Work. Den mest bemærkelsesværdige er det mindre kulstofaftryk – eftersom der ikke er behov for kraftige miningfarme i PoS, er den brugte elektricitet kun en brøkdel af den, der forbruges i PoW. 

Når det er sagt, har PoS ikke samme resultater som PoW. Selvom det kan opfattes som spildt, er mining den eneste konsensusalgoritme, der er blevet kamptestet i over et årti. Siden lanceringen har Bitcoins PoW sikret billioner af dollar i transaktioner. For at kunne fastslå om PoS kan konkurrere med sin sikkerhed, skal staking testes på behørig vis af offentligheden.

Sammenfatning

Proof of Work var den oprindelige løsning på problemet med dobbeltforbrug og har vist sig at være pålidelig og sikker. Bitcoin beviste, at vi ikke har brug for centraliserede enheder for at forhindre, at de samme midler bruges to gange. Med smart brug af kryptografi, hash-funktioner og spilteori kan deltagere i et decentraliseret miljø blive enige om tilstanden af en finansiel database.

Yderligere læsning

Ansvarsfraskrivelse: Dette indhold præsenteres for dig, "som det er", udelukkende til generel information og uddannelsesmæssige formål, uden nogen form for erklæring eller garanti. Det skal ikke opfattes som finansiel, juridisk eller anden professionel rådgivning, og det er heller ikke hensigten at anbefale køb af et bestemt produkt eller en bestemt tjeneste. Du bør søge din egen rådgivning hos relevante professionelle rådgivere. Hvis artiklen er skrevet af en tredjepart, skal du være opmærksom på, at de synspunkter, der kommer til udtryk, tilhører den pågældende tredjepart og ikke nødvendigvis afspejler Binance Academy. Læs vores fulde ansvarsfraskrivelse her for yderligere oplysninger. Priserne på digitale aktiver kan være ustabile. Værdien af din investering kan falde eller stige, og det er ikke sikkert, at du får det investerede beløb tilbage. Du er eneansvarlig for dine investeringsbeslutninger, og Binance Academy er ikke ansvarlig for eventuelle tab, du måtte lide. Dette materiale skal ikke opfattes som finansiel, juridisk eller anden professionel rådgivning. For yderligere oplysninger kan du læse vores vilkår for anvendelse og risikoadvarsel.