Bevis på arbete
Proof of work ( PoW ) är en form av kryptografiskt bevis där en part ( bevisaren ) bevisar för andra ( kontrollanterna ) att en viss mängd av en specifik beräkningsansträngning har lagts ned. Verifikatorer kan därefter bekräfta dessa utgifter med minimal ansträngning från deras sida. Konceptet uppfanns av Moni Naor och Cynthia Dwork 1993 som ett sätt att avskräcka denial-of-service-attacker och andra missbruk av tjänster som spam på ett nätverk genom att kräva en del arbete från en tjänstebeställare, vilket vanligtvis betyder behandlingstid av en dator. Begreppet "bevis på arbete" myntades och formaliserades först i en tidning 1999 av Markus Jakobsson och Ari Juels.
Bevis på arbete populariserades senare av Bitcoin som en grund för konsensus i ett tillåtslöst decentraliserat nätverk, där gruvarbetare tävlar om att lägga till block och skapa ny valuta, där varje gruvarbetare upplever en framgångsannolikhet som är proportionell mot den beräkningsansträngning som lagts ner. PoW och PoS ( bevis på insats ) är fortfarande de två mest kända Sybil-avskräckningsmekanismerna . I samband med kryptovalutor är de de vanligaste mekanismerna.
En nyckelfunktion i scheman för arbetsbevis är deras asymmetri: arbetet – beräkningen – måste vara måttligt hårt (men ändå genomförbart) på provnings- eller begärandesidan men lätt att kontrollera för verifieraren eller tjänsteleverantören. Denna idé är också känd som en CPU-kostnadsfunktion, klientpussel , beräkningspussel eller CPU-prissättningsfunktion. Ett annat vanligt drag är inbyggda incitamentstrukturer som belönar allokering av beräkningskapacitet till nätverket med värde i form av pengar . [ citat behövs ]
Syftet med proof-of-work- algoritmer är inte att bevisa att visst arbete utfördes eller att ett beräkningspussel "löstes", utan att avskräcka manipulation av data genom att fastställa stora energi- och hårdvarukontrollkrav för att kunna göra det. [ citat behövs ] Bevis-of-work-system har kritiserats av miljöaktivister för sin energiförbrukning.
Bakgrund
Ett populärt system, som används i Hashcash , använder partiella hash-inversioner för att bevisa att beräkningen gjordes, som en goodwill-token för att skicka ett e-postmeddelande . Till exempel representerar följande rubrik ungefär 2 52 hashberäkningar för att skicka ett meddelande till [email protected]
den 19 januari 2038:
X-Hashcash: 1:52:380119:[email protected]:::9B760005E92F0DAE
Det verifieras med en enda beräkning genom att kontrollera att stämpelns SHA-1 -hash (utelämna rubriknamnet X-Hashcash:
inklusive kolon och eventuell mängd blanksteg efter det upp till siffran '1') börjar med 52 binära nollor , det vill säga 13 hexadecimala nollor:
0000000000000756af69e2ffbdb930261873cd71
Huruvida PoW-system faktiskt kan lösa ett visst denial-of-service-problem såsom spamproblemet är föremål för debatt; systemet måste göra sändning av spam-e-post påträngande improduktivt för spammaren, men bör inte heller hindra legitima användare från att skicka sina meddelanden. Med andra ord, en äkta användare bör inte stöta på några svårigheter när han skickar ett e-postmeddelande, men en e-postspammare skulle behöva använda en betydande mängd datorkraft för att skicka ut många e-postmeddelanden samtidigt. Proof-of-work-system används av andra, mer komplexa kryptografiska system som bitcoin , som använder ett system som liknar Hashcash.
Varianter
Det finns två klasser av arbetsbevisprotokoll.
- för utmaning-svar förutsätter en direkt interaktiv länk mellan begäranden (klienten) och leverantören (servern). Leverantören väljer en utmaning, säg ett objekt i en uppsättning med en egenskap, förfrågaren hittar det relevanta svaret i uppsättningen, som skickas tillbaka och kontrolleras av leverantören. Eftersom utmaningen väljs på plats av leverantören, kan dess svårighetsgrad anpassas till dess aktuella belastning. Arbetet på begärandesidan kan begränsas om utmaning-svar-protokollet har en känd lösning (vald av leverantören), eller är känd för att existera inom ett begränsat sökutrymme.
- Lösnings-verifieringsprotokoll förutsätter inte en sådan länk: som ett resultat måste problemet vara självpålagt innan en lösning eftersträvas av begäranden, och leverantören måste kontrollera både problemvalet och den hittade lösningen. De flesta sådana scheman är obegränsade probabilistiska iterativa procedurer som Hashcash .
Kända lösningsprotokoll tenderar att ha något lägre varians än obegränsade probabilistiska protokoll eftersom variansen för en rektangulär fördelning är lägre än variansen för en Poisson-fördelning (med samma medelvärde). [ ytterligare förklaring behövs ] En generisk teknik för att minska variansen är att använda flera oberoende underutmaningar, eftersom genomsnittet av flera prover kommer att ha en lägre varians.
Det finns även funktioner med fast kostnad som tidslåsningspusslet.
Dessutom kan de underliggande funktionerna som används av dessa scheman vara:
- CPU-bunden där beräkningen körs med processorns hastighet, vilket varierar mycket i tid , såväl som från avancerad server till low-end bärbara enheter.
- Minnesbunden där beräkningshastigheten är bunden av huvudminnesåtkomster (antingen latens eller bandbredd), vars prestanda förväntas vara mindre känslig för hårdvaruutveckling.
- Nätverksbunden om klienten måste utföra få beräkningar, men måste samla in några tokens från fjärrservrar innan den frågar den slutliga tjänsteleverantören. I denna mening utförs arbetet faktiskt inte av den som begär det, men det ådrar sig ändå förseningar på grund av latensen för att få de nödvändiga tokens.
Slutligen erbjuder vissa PoW-system genvägsberäkningar som tillåter deltagare som känner till en hemlighet, vanligtvis en privat nyckel, att generera billiga PoWs. Skälet är att innehavare av e-postlistor kan skapa frimärken för varje mottagare utan en hög kostnad. Huruvida en sådan funktion är önskvärd beror på användningsscenariot.
Lista över arbetsbevisfunktioner
Här är en lista över kända bevis-på-arbete-funktioner:
- Heltal kvadratrot modulo ett stort primtal [ tveksamt ]
- Försvaga Fiat–Shamirs signaturer
- Ong–Schnorr–Shamir signatur bruten av Pollard
- Partiell hash-inversion Det här dokumentet formaliserar idén om ett bevis på arbete och introducerar "den beroende idén med ett brödpuddingprotokoll", ett "återanvändbart proof-of-work"-system (RPoW).
- Hash-sekvenser
- Pussel
- Diffie-Hellman -baserat pussel
- Måttlig
- Mbound
- Hokkaido
- Gökcykel
- Merkle träd -baserad
- Guidad tur pussel protokoll
Återanvändbart arbetsbevis
Datavetaren Hal Finney byggde på idén om proof-of-work och gav ett system som utnyttjade återanvändbara bevis på arbete (RPoW). Idén att göra bevis på arbete återanvändbara för något praktiskt syfte hade redan etablerats 1999. Finneys syfte med RPoW var som symboliska pengar . Precis som ett guldmynts värde är kopplat till guldutvinningskostnad , garanteras värdet av en RPoW-token av värdet av de verkliga resurser som krävs för att "prägla" en PoW-token. I Finneys version av RPoW är PoW-token en bit av Hashcash .
En webbplats kan kräva en PoW-token i utbyte mot service. Att kräva en PoW-token från användare skulle förhindra oseriöst eller överdriven användning av tjänsten, vilket skulle bespara tjänstens underliggande resurser, såsom bandbredd till Internet, beräkningar , diskutrymme, elektricitet och administrativa omkostnader.
Finneys RPoW-system skilde sig från ett PoW-system genom att tillåta slumpmässigt utbyte av tokens utan att upprepa arbetet som krävdes för att generera dem. Efter att någon hade "spenderat" en PoW-token på en webbplats, kunde webbplatsens operatör byta ut den "förbrukade" PoW-tokenen mot en ny, oanvänd RPoW-token, som sedan kunde spenderas på någon tredjepartswebbplats som på liknande sätt är utrustad för att acceptera RPoW-token. Detta skulle spara de resurser som annars behövs för att "prägla" en PoW-token. RPoW-tokens anti-förfalskningsegenskap garanterades genom fjärrattest . RPoW-servern som byter ut en använd PoW- eller RPoW-token mot en ny av samma värde använder fjärrbekräftelse för att tillåta alla intresserade att verifiera vilken programvara som körs på RPoW-servern. Eftersom källkoden för Finneys RPoW-programvara publicerades (under en BSD -liknande licens), kunde vilken som helst tillräckligt kunnig programmerare, genom att inspektera koden, verifiera att programvaran (och i förlängningen RPoW-servern) aldrig utfärdade en ny token förutom i utbyte mot en förbrukad pollett av lika värde.
Fram till 2009 var Finneys system det enda RPoW-systemet som har implementerats; det har aldrig haft någon ekonomisk betydelse.
RPoW skyddas av privata nycklar. Dessa nycklar lagras i TPM- hårdvaran (trusted platform module) och av tillverkare som innehar privata TPM-nycklar. Att stjäla en TPM-tillverkares nyckel eller skaffa nyckeln genom att undersöka TPM-chippet skulle undergräva den försäkran.
Bevis på användbart arbete (PoUW)
På IACR -konferensen Crypto 2022 presenterade forskare ett dokument som beskrev Ofelimos, ett blockchain-protokoll med en konsensusmekanism baserad på "bevis på användbart arbete" (PoUW). Istället för att gruvarbetare förbrukar energi för att lösa komplexa, men i princip värdelösa, pussel för att validera transaktioner, uppnår Ofelimos konsensus samtidigt som de tillhandahåller en decentraliserad optimeringsproblemlösare . Protokollet är byggt kring Doubly Parallel Local Search (DPLS), en lokal sökalgoritm som används som PoUW-komponenten. Tidningen ger ett exempel som implementerar en variant av WalkSAT , en lokal sökalgoritm för att lösa booleska problem.
Bevis på arbete av Bitcoin-typ
2009 gick Bitcoin- nätverket online. Bitcoin är en proof-of-work digital valuta som, liksom Finneys RPoW, också är baserad på Hashcash PoW. Men i Bitcoin tillhandahålls dubbel-utgiftsskydd av ett decentraliserat P2P-protokoll för att spåra överföringar av mynt, snarare än den betrodda hårdvarufunktionen som används av RPoW. Bitcoin har bättre pålitlighet eftersom det skyddas av beräkningar. Bitcoins "mineras" med hjälp av Hashcash proof-of-work-funktionen av enskilda gruvarbetare och verifieras av de decentraliserade noderna i P2P bitcoin-nätverket.
Svårighetsgraden justeras periodiskt för att hålla blocktiden runt en måltid.
Energiförbrukning
Sedan skapandet av Bitcoin har proof-of-work varit den dominerande designen av peer-to-peer kryptovaluta. Studier har uppskattat den totala energiförbrukningen vid brytning av kryptovalutor. PoW-mekanismen kräver en stor mängd datorresurser, som förbrukar en betydande mängd elektricitet. 2018 års uppskattningar från University of Cambridge visar att Bitcoins energiförbrukning är lika med den i Schweiz.
Historik modifiering
Varje block som läggs till i blockkedjan, som börjar med blocket som innehåller en given transaktion, kallas en bekräftelse på den transaktionen. Helst bör handlare och tjänster som tar emot betalning i kryptovalutan vänta på att minst en bekräftelse distribueras över nätverket innan de antar att betalningen har gjorts. Ju fler bekräftelser som handlaren väntar på, desto svårare är det för en angripare att framgångsrikt vända transaktionen i en blockchain – såvida inte angriparen kontrollerar mer än hälften av den totala nätverkskraften, i vilket fall det kallas en 51 % attack .
ASIC och gruvpooler
Inom Bitcoin-gemenskapen finns det grupper som arbetar tillsammans i gruvpooler . Vissa gruvarbetare använder applikationsspecifika integrerade kretsar (ASIC) för PoW. Denna trend mot gruvpooler och specialiserade ASIC:er har gjort att bryta vissa kryptovalutor ekonomiskt omöjlig för de flesta spelare utan tillgång till de senaste ASIC:erna, närliggande källor till billig energi eller andra speciella fördelar.
Vissa PoWs hävdar att de är ASIC-resistenta, det vill säga för att begränsa effektivitetsvinsten som en ASIC kan ha jämfört med råvaruhårdvara, som en GPU, för att vara väl under en storleksordning. ASIC-resistens har fördelen att hålla gruvdrift ekonomiskt genomförbar på råvaruhårdvara, men bidrar också till motsvarande risk att en angripare kort kan hyra tillgång till en stor mängd ospecialiserad råvaruprocessorkraft för att starta en 51% attack mot en kryptovaluta .
Miljöproblem
Dessa gruvarbetare tävlar om att lösa kryptoutmaningar på Bitcoin-blockkedjan , och deras lösningar måste komma överens om av alla noder och nå konsensus. Lösningarna används sedan för att validera transaktioner, lägga till block och generera nya bitcoins. Gruvarbetare belönas för att de har löst dessa pussel och framgångsrikt lagt till nya block. Den Bitcoin-liknande gruvprocessen är dock mycket energikrävande eftersom beviset på arbetet formade som en lotterimekanism. Det underliggande beräkningsarbetet har ingen annan användning. Gruvarbetare måste slösa mycket energi för att lägga till ett nytt block som innehåller en transaktion till blockkedjan. Gruvarbetare måste också investera datorhårdvara som behöver stora utrymmen som fast kostnad.
uppmanade vice ordföranden för Europeiska värdepappers- och marknadsmyndigheten Erik Thedéen EU att förbjuda proof of work-modellen till förmån för proof of stake- modellen på grund av dess lägre energiutsläpp.
I november 2022 antog delstaten New York ett tvåårigt moratorium för brytning av kryptovalutor som inte helt använder förnybar energi som kraftkälla under två år. Befintliga gruvbolag kommer att få bryta utan användning av förnybar energi men de kommer inte att få utöka eller förnya tillstånd med staten, inga nya gruvbolag som inte helt använder förnybar energi kommer inte heller att få börja brytning.
Se även
- Bitcoin
- Bitmeddelande
- Kryptovaluta
- Bevis på auktoritet
- Bevis på brännskada
- Bevis på personlighet
- Bevis på utrymme
- Bevis på insats
- Bevis på förfluten tid
- Ouroboros (protokoll)
- Consensus (datavetenskap)
Anteckningar
-
^ På de flesta Unix-system kan detta verifieras med
echo -n 1:52:380119:[email protected]:::9B760005E92F0DAE | openssl sha1
externa länkar
- Finneys system på Wayback Machine (arkiverad 22 december 2007)
- lite guld Lite guld . Beskriver ett komplett penningsystem (inklusive generering, lagring, analys och överföring) baserat på bevis på arbetsfunktioner och maskinarkitekturproblemet som uppstår genom användningen av dessa funktioner.
- Merkle Proof Standardized Format for Simplified Payment Verification (SPV).