Vad Àr bevis pÄ arbete (PoW)?
Hem
Artiklar
Vad Àr bevis pÄ arbete (PoW)?

Vad Àr bevis pÄ arbete (PoW)?

Avancerad
Publicerad Dec 6, 2018Uppdaterad Dec 12, 2022
8m

Introduktion

Bevis pÄ arbete (vanligtvis förkortat till PoW) Àr en mekanism för att förhindra dubbla utgifter. De flesta större kryptovalutorna anvÀnder detta som sin konsensusalgoritm. Det Àr helt enkelt vad vi kallar en metod för att sÀkra kryptovalutans orderbok.

Bevis pÄ arbete var den första konsensusalgoritmen som togs fram och hittills Àr det den som fortfarande dominerar. Den introducerades av Satoshi Nakamoto i Bitcoin White Paper 2008, men sjÀlva tekniken var uttÀnkt lÄngt innan dess. 

Adam Backs HashCash Àr ett tidigt exempel pÄ en bevis pÄ arbete-algoritm under dagarna före kryptovaluta. Genom att krÀva att avsÀndaren utför en liten mÀngd berÀkningar innan hen skickar ett e-postmeddelande kan mottagaren fÄ mindre spam. Den hÀr berÀkningen skulle praktiskt taget inte kosta nÄgot för en legitim avsÀndare, men det skulle snabbt bli stora summor för nÄgon som skickar massor av e-post.


Vad Àr en dubbelutgift?

En dubbelutgift uppstĂ„r nĂ€r samma tillgĂ„ngar spenderas mer Ă€n en gĂ„ng. Termen anvĂ€nds nĂ€stan uteslutande i samband med digitala pengar – trots allt skulle det vara svĂ„rt att spendera samma fysiska pengar tvĂ„ gĂ„nger. NĂ€r du betalar för en kaffe idag lĂ€mnar du över kontanter till en kassörska som förmodligen lĂ„ser in dem i kassan. Du kan inte gĂ„ till kafĂ©et tvĂ€rs över gatan och betala för en till kaffe med samma rĂ€kning.

I digitala kontantsystem finns möjligheten att du kan göra detta. Du har sĂ€kert kopierat en datorfil förut – du bara kopierar och klistrar in den. Du kan e-posta samma fil till tio, tjugo eller femtio personer. 

Eftersom digitala pengar bara Àr data, mÄste du förhindra att mÀnniskor kopierar och spenderar samma enheter pÄ olika platser. Annars kommer din valuta att kollapsa pÄ nolltid. 

För en mer djupgÄende inblick i dubbla utgifter kan du kolla in Vi förklarar dubbla uppgifter.


Varför krÀvs bevis pÄ arbete?

Om du har lÀst vÄr guide till blockkedjeteknologi vet du att anvÀndare sÀnder transaktioner till nÀtverket. Dessa transaktioner anses dock inte vara giltiga direkt. Det sker bara nÀr de lÀggs till blockkedjan. 
Blockkedjan Ă€r en stor databas som alla anvĂ€ndare kan se, sĂ„ att de kan kontrollera om tillgĂ„ngarna har spenderats tidigare. FörestĂ€ll dig att du och tre vĂ€nner har ett anteckningsblock. Varje gĂ„ng nĂ„gon av er vill göra en överföring av de enheter ni anvĂ€nder skriver ni ned detta – Alice betalar Bob fem enheter, Bob betalar Carol tvĂ„ enheter osv.
Det finns ett annat krĂ„ngel hĂ€r – varje gĂ„ng du gör en transaktion hĂ€nvisar du till transaktionen dĂ€r pengarna kom ifrĂ„n. SĂ„ om Bob betalade Carol med tvĂ„ enheter, skulle posten faktiskt se ut sĂ„ hĂ€r: Bob betalar Carol tvĂ„ enheter frĂ„n denna tidigare transaktion med Alice.

Nu har vi ett sÀtt att spÄra enheterna. Om Bob försöker göra en annan transaktion med samma enheter som han just skickade till Carol, kommer alla att veta om det direkt. Gruppen tillÄter inte att denna transaktion lÀggs till i anteckningsblocket.

Det hÀr fungerar bra i en liten grupp. Alla kÀnner varandra, sÄ de kommer förmodligen överens om vem av vÀnnerna som ska lÀgga till transaktionerna i anteckningsblocket. Vad hÀnder om vi vill ha en grupp pÄ 10 000 personer? Anteckningsblocksidén kan inte skalas sÄ bra, eftersom ingen vill lita pÄ att en frÀmling hanterar den.

Det Àr hÀr bevis pÄ arbete kommer in i bilden. Det sÀkerstÀller att anvÀndarna inte spenderar pengar som de inte har rÀtt att spendera. Genom att anvÀnda en kombination av spelteori och kryptografi gör PoW-algoritmen det möjligt för vem som helst att uppdatera blockkedjan enligt systemets regler.


Hur fungerar PoW?

VĂ„rt anteckningsblock ovan Ă€r blockkedja. Men vi lĂ€gger inte till transaktioner en efter en – istĂ€llet klumpar vi ihop dem i block. Vi tillkĂ€nnager transaktionerna till nĂ€tverket, sedan kommer anvĂ€ndaren som skapar ett block att inkludera det i ett kandidatblock. Transaktionerna kommer bara att anses giltiga nĂ€r dess kandidatblock blir ett bekrĂ€ftat block, vilket betyder att det har lagts till i blockkedjan.

Att lÀgga till ett block Àr dock inte billigt. Bevis pÄ arbete krÀver att en miner (anvÀndaren som skapar blocket) anvÀnder nÄgra av sina egna resurser för privilegiet. Den resursen Àr datorkraft, som anvÀnds för att hasha blockets data tills lösningen pÄ ett pussel hittas.
Hashing av blockets data innebĂ€r att du skickar den genom en hashfunktion för att generera en blockhash. Blockhashen fungerar som ett "fingeravtryck" – det Ă€r en identitet för din indata och Ă€r unik för varje block.

Det Àr praktiskt taget omöjligt att vÀnda en blockhash för att fÄ indata. NÀr du kÀnner till indata Àr det dock enkelt för dig att bekrÀfta att hashen Àr korrekt. Du behöver bara skicka in indata via funktionen och kontrollera om utgÄngen Àr densamma.

I bevis pÄ arbete mÄste du tillhandahÄlla data vars hash matchar vissa villkor. Men du vet inte hur du ska ta dig dit. Ditt enda alternativ Àr att skicka dina data genom en hashfunktion och kontrollera om de matchar villkoren. Om de inte gör detta mÄste du Àndra dina data nÄgot för att fÄ en annan hash. Att Àndra bara ett tecken i dina data kommer att resultera i ett helt annat resultat, sÄ det finns inget sÀtt att förutsÀga vad utdata kan vara.

Om du vill skapa ett block spelar du dÀrför ett gissningsspel. Du tar vanligtvis information om alla transaktioner som du vill lÀgga till och en del annan viktiga data och hashar sedan ihop allt. Men eftersom din datauppsÀttning inte Àndras, mÄste du lÀgga till en information som Àr variabel. Annars skulle du alltid fÄ samma hash som utdata. Denna variabla data Àr vad vi kallar en nonce. Det Àr ett nummer som du Àndrar för varje försök, sÄ du fÄr en annan hash varje gÄng. Och det hÀr Àr vad vi kallar utvinning.

Sammanfattningsvis Àr utvinningsprocessen att samla blockkedjedata och hasha dessa tillsammans med en nonce tills du hittar en viss hash. Om du hittar en hash som uppfyller villkoren i protokollet fÄr du rÀtt att sÀnda det nya blocket till nÀtverket. Vid denna tidpunkt uppdaterar de andra deltagarna i nÀtverket sina blockkedjor för att inkludera det nya blocket.

För stora kryptovalutor idag Àr villkoren otroligt utmanande att uppfylla. Ju högre hashfrekvens pÄ nÀtverket desto svÄrare Àr det att hitta en giltig hash. Detta görs för att sÀkerstÀlla att block inte hittas för snabbt.

Som du kanske kan tÀnka dig kan det bli dyrt att försöka gissa enorma mÀngder hash pÄ din dator. Du slösar bort berÀkningscykler och elektricitet. Protokollet kommer dock att belöna dig med kryptovaluta om du hittar en giltig hash.

LÄt oss sammanfatta vad vi lÀrt oss hittills:

  • Det Ă€r dyrt för dig att utvinna.
  • Du belönas om du skapar ett giltigt block.
  • Genom att kĂ€nna till indata kan en anvĂ€ndare enkelt kontrollera dess hash – anvĂ€ndare som inte arbetar med utvinning kan verifiera att ett block Ă€r giltigt utan att förbruka mycket berĂ€kningskraft.

Än sĂ„ lĂ€nge lĂ„ter allt bra. Men vad hĂ€nder om du försöker fuska? Vad hindrar dig frĂ„n att lĂ€gga till ett gĂ€ng falska transaktioner i blocket och producera en giltig hash?

Det Àr dÀr kryptografi med en offentlig nyckel kommer in. Vi gÄr inte in pÄ djupet om detta i den hÀr artikeln, men kolla in Vad Àr kryptografi med offentlig nyckel? för en komplett titt pÄ detta. Kort sagt anvÀnder vi nÄgra snygga kryptografiska knep som gör att alla anvÀndare kan verifiera om nÄgon har rÀtt att flytta tillgÄngarna de försöker spendera.
NÀr du skapar en transaktion signerar du den. Vem som helst i nÀtverket kan jÀmföra din signatur med din offentliga nyckel och kontrollera om de matchar. De kommer ocksÄ att kontrollera om du faktiskt kan spendera dina tillgÄngar och att summan av dina insatser Àr högre Àn summan av dina utgÄngar (det vill sÀga att du inte spenderar mer Àn du har).

Varje block som inkluderar en ogiltig transaktion avvisas automatiskt av nÀtverket. Det blir dyrt för dig att ens försöka fuska. Du kommer att slösa bort dina egna resurser utan nÄgon belöning.

DÀri ligger styrkan med bevis pÄ arbete: det gör det dyrt att fuska, men lönsamt att agera Àrligt. Alla rationella miners kommer att söka avkastning pÄ investeringen, sÄ de kan förvÀntas bete sig pÄ ett sÀtt som garanterar intÀkter.



Vill du komma igÄng med kryptovaluta? Köp bitcoin pÄ Binance!



Bevis pÄ arbete kontra bevis pÄ insats

Det finns mÄnga konsensusalgoritmer, men en av de mest efterlÀngtade Àr bevis pÄ insats (PoS). Konceptet gÄr tillbaka till 2011 och har implementerats i flera mindre protokoll. Men det har Ànnu inte introducerats i nÄgon av de stora blockkedjorna.
I bevis pĂ„ arbete-system ersĂ€tts miners med validerare. Det finns ingen utvinning inblandad och ingen kapplöpning för att gissa en hash. IstĂ€llet vĂ€ljs anvĂ€ndare slumpmĂ€ssigt – om de vĂ€ljs ut mĂ„ste de föreslĂ„ (eller "smida") ett block. Om blocket Ă€r giltigt fĂ„r de en belöning som bestĂ„r av avgifterna frĂ„n blockets transaktioner.
Men inte vilken anvĂ€ndare som helst kan vĂ€ljas – protokollet vĂ€ljer dem baserat pĂ„ ett antal faktorer. För att vara berĂ€ttigade mĂ„ste deltagarna lĂ„sa en insats, vilket Ă€r ett förutbestĂ€mt belopp av blockkedjans egen valuta. Insatsen fungerar som borgen: precis som att Ă„talade lĂ€gger upp en stor summa pengar för att hindra dem frĂ„n att hoppa över rĂ€ttegĂ„ngen, lĂ„ser validerare en insats för att motverka fusk. Om de agerar oĂ€rligt kommer deras insats (eller en del av den) att tas ifrĂ„n dem.
Bevis pĂ„ insats har vissa fördelar jĂ€mfört med bevis pĂ„ arbete. Det mest anmĂ€rkningsvĂ€rda Ă€r det mindre koldioxidavtrycket – eftersom det inte finns nĂ„got behov av kraftfulla utvinningsfarmar i PoS Ă€r den el som förbrukas bara en brĂ„kdel av den som förbrukas i PoW. 

Med detta sagt har det inte alls samma meritlista som PoW. Även om det kan uppfattas som slösaktigt, Ă€r utvinningen den enda konsensusalgoritmen som har visat sig fungera i stor skala. PĂ„ drygt ett decennium har det sĂ€krat transaktioner till ett vĂ€rde av biljontals dollar. För att med sĂ€kerhet sĂ€ga om PoS kan konkurrera med dess sĂ€kerhet mĂ„ste insatsen testas ordentligt i praktiken. 


Sammanfattningsvis

Bevis pÄ arbete var den ursprungliga lösningen pÄ problemet med dubbla utgifter och har visat sig vara pÄlitligt och sÀkert. Bitcoin visade att vi inte behöver centraliserade enheter för att förhindra att samma tillgÄngar spenderas tvÄ gÄnger. Med smart anvÀndning av kryptografi, hashfunktioner och spelteori kan deltagarna i en decentraliserad miljö komma överens om tillstÄndet för en finansiell databas.