Bevis på arbete kontra bevis på insats: Blockchain Consensus Algorithms Explained
Om du har hört fraserna “Proof of Work” och “Proof of Stake” men inte vet vad de betyder, är det nu dags att ta reda på det.
Bevis på arbete och Bevis på insats är båda konsensusalgoritmer. De låter alla blockchain-noder komma överens och förhindra dubbla utgifter – en attack som försöker spendera samma mynt mer än en gång.
Här är fördelningen. Men om du inte redan har gjort det rekommenderar vi att du först läser vår introduktionsguide för blockchain.
Vad är bevis på arbete?
Proof of Work (PoW) är den ”traditionella” blockchain-modellen och fungerar nästan exakt som det låter. Den grundläggande förutsättningen är att en viss mängd bearbetning måste ske innan en dator ”får” göra något annat. För Bitcoin måste gruvarbetare göra svåra beräkningar, och i gengäld kan de upptäcka ett block och få en BTC-belöning för att göra det.
Notera: Bevis på arbete är inte unikt för kryptovaluta! Dataforskare Cynthia Dwork och Moni Naor uppfann det i sin uppsats från 1993 ”Prissättning via bearbetning, eller bekämpa skräppost, framsteg inom kryptologi” (även om den inte fick sitt namn förrän mycket senare).
PoW-algoritmen syftar till att förhindra missbruk av datorsystem som skräppost eller cyberattacker via e-post. Om en dator måste göra komplexa beräkningar innan du skickar ett e-postmeddelande (vilket kostar tid och pengar), är det mycket mindre troligt att spammare och andra skadliga enheter missbrukar systemet. Av denna anledning är Proof of Work nästan ett perfekt val för Bitcoin och andra kryptovalutor.
En av de mest grundläggande aspekterna av PoW är att det tar lång tid att beräkna, men är väldigt lätt att verifiera. Om en nod spenderar en timme på att göra beräkningar måste alla andra noder verifiera detta mycket snabbare. Om alla andra noder alla tog samma tid, skulle blockchain vara värdelös, eftersom det skulle vara alldeles för långsamt att använda. Verifiering måste ske nästan omedelbart.
Gruvarbetare utför dessa beräkningar. De tar lång tid att utföra, så gruvarbetare tävlar mot varandra för att beräkna dem först. De tjänar inget annat syfte än att begränsa utbudet av nya mynt på marknaden. Detta säkerställer att gruvarbetare stannar tillräckligt länge för att verifiera transaktioner och därmed driva nätverket.
PoW-algoritmen som används i Bitcoin kallas “Hashcash”. Detta är en komplex kryptografisk process, men eftersom det är en beräkning blir det snabbare att beräkna när processorkraften ökar med tiden. För att bekämpa detta justerar Bitcoin (och andra blockkedjor) ofta svårigheten för att säkerställa en ungefär konstant leverans av nya mynt till marknaden.
Som du kanske har gissat är den största nackdelen med PoW elanvändningen. PoW-beräkningar använder en enorm mängd processorkraft. Detta är inte gratis, så när processorkraften ökar, ökar också elförbrukningen. Detta leder till högre räkningar, och om tillräckligt många började bryta med kraftfulla gruvutrustningar kan du ha ett stort problem.
Av denna anledning har många länder förbjudit kryptovalutautvinning, särskilt länder med statliga tilläggskostnader för el. Om kryptovalutans boom i januari 2018 återkommer kommer den globala energianvändningen att öka betydligt. Kryptovalutor som Ethereum undersöker alternativ som Proof of Stake.
Ett annat möjligt problem med PoW är “51% attack”. Noder som ger 51% eller mer av nätverkseffekten kan överrösta varannan nod. Detta innebär att en enda person eller organisation kan “kontrollera” Bitcoin eller andra PoW-blockchains. I verkligheten är det lite bekymmer. Datorkraften som krävs för att göra det är massiv och är inte något som även regeringar har tillgång till. Medan det är ett teoretiskt problem är det troligt att en 51% -attack inte kommer att ske på något stort nätverk.
Vad är bevis på insats?
Proof of Stake (PoS) fungerar på ett annat sätt än PoW. Med PoS finns det inga enorma elräkningar, och operatörer satsar nästan med sina mynt. Nodoperatörer ”satsar” sina mynt. De med fler mynt har större chans att bli givande vid upptäckten av ett block, men det är inte den enda faktorn. Om den som satsar flest mynt alltid belönades med blockbelöningen, skulle detta göra det möjligt för vem som helst att “köpa” nätverket.
Istället sker ett mer slumpmässigt tillvägagångssätt. Detta varierar beroende på blockchain, men en vanlig metod är åldrande mynt. För att vara berättigad att upptäcka nya block måste mynt satsa under en tidsperiod – ofta 30 dagar. Insatta mynt kan inte göra någonting annat. Efter denna tid kan insatta mynt få en blockbelöning. Återigen, för att förhindra att de med flest mynt får en fördel, upphör satsade mynt efter en viss tid, vilket tvingar noder att starta om processen och vänta 30-dagars varaktigheten.
Du kanske undrar vem som verifierar transaktioner med PoS. Genom att lägga dina mynt måste din plånbok vara online. Din dator verifierar transaktioner, och eftersom det inte finns några komplexa beräkningar som i PoW, kan nästan vilken dator som helst göra det! Olika kryptovalutor har olika sätt att välja gruvarbetare, men i allmänhet tilldelas konton ungefär varje minut. Om ett konto som tilldelats för att behandla transaktioner inte svarar, godkänner hela nätverket att omfördela uppgiften.
PoS fungerar mycket bra och löser PoW-problemet med massiv energianvändning. Eftersom det att äga ett stort antal mynt ökar din chans att få en belöning, är det mer sannolikt att gruvarbetare har ett intresse av projektet snarare än att bara bry sig om vinsten. En PoW-gruvarbetare behöver inte äga någon kryptovaluta.
Slutligen “kostar” PoS-gruvdrift ingenting. Om du inte blir utvald att upptäcka ett nytt block förlorar du inte dina mynt. Av denna anledning kan PoS-nätverk vara känsliga för sårbarheten “ingenting på spel”. Eftersom gruvarbetare inte tappar sin insats, hindrar det dem att validera allt, även de dåliga transaktionerna?
Om en hård gaffel händer kan gruvarbetare välja att verifiera både den gamla och den nya kedjan, vilket nästan garanterar vinster oavsett vad som händer. Detta kan göra det svårt att utföra programvaruuppgraderingar, eftersom nätverket kanske inte byter till den nya gaffeln. Om någon provar några tvivelaktiga saker med storboken och sedan utför en gaffel, kan de komma undan med det eftersom gruvarbetare kommer att fortsätta verifiera transaktioner i båda kedjorna.
Lösningar på ingenting som står på spel övervägs av många nätverk. Ett vanligt tillvägagångssätt är att försena utbetalningen av en blockupptäckningsbelöning. Om en gaffel händer måste gruvarbetare välja en sida, för de får inte sin belöning om den gamla gaffeln “dör”. En anledning till att denna attack aldrig har uppstått är enkel. Trots att de kan tjäna på båda gafflarna vill gruvarbetare ofta se nätverket lyckas, så väljer en sida förr eller senare.
Andra Blockchain-konsensusalgoritmer
Det finns flera andra konsensusalgoritmer. Några experimentella, några helt nya, men de flesta är mycket mindre vanliga än PoS och PoW.
- Bevis på aktivitet: Detta kombinerar PoW och PoS, med både spelare och gruvarbetare som får en del av belöningarna.
- Delegerat bevis på insats: Användare sätter sina tokens för att välja en representant för att verifiera transaktioner. Mycket snabbt och människor kan samarbeta för att skapa nya block eller rösta ut dåliga noder.
- Bevis på brännskada: Att förstöra mynt ökar ditt rykte för att fatta beslut. Mer förstörda mynt = större nätverkskontroll.
- Bevis på vikt: I stället för att satsa ändras nodoperatörer baserat på ett annat mått (varierar beroende på blockchain). Detta kan vara vad som helst, till exempel hårddiskens kapacitet eller internethastighet.
- Bevis på förfluten tid: Som PoW, men mindre arbete och mer lotteri. Utvecklad av Intel och fortfarande experimentell.
Som du kan förvänta dig av en kryptovaluta är konsensusalgoritmer komplexa saker. Du behöver inte en examen inom datavetenskap för att kunna använda dem, men att förstå hur de fungerar kan hjälpa dig när du köper mynt eller kör en nod. Låt oss veta vad du tycker i kommentarerna nedan.