Vad är arbetsbevis?
Hem
Artiklar
Vad är arbetsbevis?

Vad är arbetsbevis?

Avancerad
Publicerad Dec 6, 2018Uppdaterad Apr 18, 2024
10m

Huvudsakliga punkter

  • Bevis på arbetsinsats är en konsensusmekanism som skapats för att förhindra dubbla utgifter i digitala betalningssystem.

  • Bevis på arbetsinsats är en viktig del av utvinningsprocessen, som innebär att man lägger till nya transaktionsblock i blockkedjan och skapar nya enheter av kryptovaluta.

  • Bitcoin och många andra kryptovalutor använder bevis på arbetsinsats som en metod för att säkra sitt blockkedjenätverk och sina data.

Introduktion

Kort sagt är bevis på arbetsinsats en mekanism som skapats för att förhindra dubbla utgifter i digitala betalningssystem. Bitcoin och många andra kryptovalutor använder bevis på arbetsinsats som en metod för att säkra sina blockkedjenätverk och data. Sådana mekanismer kallas ofta för konsensusalgoritmer eller konsensusmekanismer, eftersom de innebär att flera parter uppnår konsensus utan att behöva lita på varandra.

Bevis på arbetsinsats var den första konsensusalgoritmen som dök upp, och den är fortfarande en av de viktigaste tillsammans med bevis på insats. 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å ett bevis på arbetsinsats-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. Men i digitala kontantsystem finns möjligheten att du kan göra detta. 

Du har säkert kopierat en datorfil innan du använder kopiera-och-klistra-kommandona. Det är också enkelt för dig att e-posta samma fil till dussintals personer. Eftersom digitala pengar bara är data, måste du förhindra att personer kopierar och spenderar samma enheter på olika platser. Ett digitalt betalningssystem som misslyckas med att förebygga dubbelt spenderande kollapsar på nolltid.

För en mer djupgående inblick i dubbel spendering kan du kolla in Vi förklarar dubbel spendering.

Varför krävs bevis på arbetsinsats?

Om du har läst vår artikel om blockkedjeteknikvet du att kryptovalutaanvändare ständigt skickar transaktioner till nätverket. Dessa transaktioner anses dock inte vara giltiga direkt. Det sker bara när de bekräftas och läggs till i blockkedjan.

Bitcoin-blockkedjan fungerar till exempel som en offentlig transaktionsdatabas (ledger) som alla användare kan se. Föreställ dig det så här: du och tre vänner har ett anteckningsblock för att spåra era bitcoin-transaktioner. Varje gång någon av er vill göra en värdeöverföring skriver ni ner det:

Alice betalar Bob 5 BTC; Bob betalar Carol 2 BTC, och så vidare.

Men varje gång du gör en transaktion hänvisar du till transaktionen varifrån pengarna kom. Så om Bob betalade Carol med 2 BTC skulle posten faktiskt se ut så här: 

Bob betalar Carol 2 BTC som kom 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 transaktionen läggs till i anteckningsblocket, eftersom dessa 2 BTC redan har använts.

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å arbetsinsats 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 algoritmen för bevis på arbetsinsats det möjligt för vem som helst att uppdatera blockkedjan enligt systemets regler.

Hur fungerar bevis på arbetsinsats?

Föreställ dig att vårt anteckningsblock från exemplet ovan är blockkedjan. 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.

Processen att validera transaktioner och lägga till nya block kallas utvinning. Det är dyrt och svårt, men det kan också vara givande. Blockbelöningen består av transaktionsavgifter från användare och helt nya bitcoin som skapats av protokollet. 

Bevis på arbetsinsats-mekanismen kräver att en miner (användaren som skapar blocket) investerar resurser som elektricitet och datorkraft för att hasha sitt kandidatblocks data tills en lösning på ett pussel hittas.

Hashning 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.

Med andra ord måste en miner verifiera och samla in väntande transaktioner, organisera dem i ett kandidatblock och skicka blockets data genom en hashfunktion för att skapa en giltig hash. Om de lyckas hitta en giltig hash till sitt kandidatblock sänder de det till nätverket, lägger till blocket i blockkedjan och samlar in utvinningsbelöningarna.

När en miner sänder sitt kandidatblock och sin hash till nätverket kommer andra nätverksdeltagare att upprepa hashprocessen för att verifiera att utdata verkligen är giltiga. 

Även om det tar otaliga hashförsök att hitta en giltig hash är det enkelt för vem som helst att bekräfta att den genererade hashen är korrekt. De behöver bara skicka samma indata (blockdata) via hashfunktionen 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.

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:

  • Utvinning är svårt och dyrt, men ger säkerhet till nätverket.

  • Miners som lyckas producera ett giltigt block belönas med nyutgivna kryptovalutor och transaktionsavgifter.

  • Att generera en giltig hash tar tid, men andra användare kan enkelt kontrollera dess giltighet genom att upprepa hashprocessen.

Ä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 omfattande överblick. 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å arbetsinsats: det gör det dyrt att fuska, men lönsamt att agera ärligt. Varje rationell miner kommer att söka avkastning på sin investering, så de kan förväntas bete sig på ett sätt som mer sannolikt ger intäkter.

Arbetsbevis (Proof of Work/PoW) kontra insatsbevis (Proof of Stake/PoS)

Det finns många konsensusalgoritmer förutom bevis på arbetsinsats, men en av de mest populära är bevis på insats. Konceptet går tillbaka till 2011 och har implementerats i Ethereum och flera andra protokoll.

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. 

Bevis på insats har dock inte samma meritlista som bevis på arbetsinsats. Även om det kan uppfattas som slösaktigt, är utvinningen den enda konsensusalgoritmen som har stridstestats i över ett decennium. Sedan lanseringen har bitcoins bevis på arbetsinsats säkrat transaktioner till ett värde av biljontals dollar. För att med säkerhet säga om bevis på insats 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.

Mer information

Ansvarsfriskrivning: Detta innehåll presenteras för dig ”i befintligt skick" och avser allmän information och information för utbildningsändamål, utan representation eller garantier av något slag. Det ska inte tolkas som ekonomisk, juridisk eller annan professionell rådgivning, och är inte heller avsett att rekommendera köp av någon specifik produkt eller tjänst. Du bör söka egna råd från lämpliga professionella rådgivare. Om det till artikeln har bidragits av en tredje parts bidragsgivare, ska det observeras att de åsikter som uttrycks tillhör tredjepartsbidragsgivaren och inte nödvändigtvis återspeglar Binance Academys åsikter. Läs vår fullständiga ansvarsfriskrivning här för mer information. Priserna på digitala tillgångar kan vara volatila. Värdet på din investering kan gå ner eller upp och du kanske inte får tillbaka det investerade beloppet. Du är ensam ansvarig för dina investeringsbeslut och Binance Academy ansvarar inte för eventuella förluster du kan drabbas av. Detta material ska inte tolkas som ekonomisk, juridisk eller annan professionell rådgivning. För mer information, se våra användarvillkor och vår riskvarning.