Vad är en Blockchain konsensus algoritm?
introduktion
en konsensusalgoritm är en mekanism som tillåter användare eller maskiner att samordna i en distribuerad inställning. Det måste se till att alla agenter i systemet kan komma överens om en enda källa till sanning, även om vissa agenter misslyckas. Med andra ord måste systemet vara feltolerant (se även: bysantinsk feltolerans förklaras).
i en centraliserad inställning har en enda enhet makt över systemet. I de flesta fall kan de göra ändringar som de vill – det finns inte något komplext styrningssystem för att nå enighet bland många administratörer.
men i en decentraliserad installation är det en helt annan historia. Säg att vi arbetar med en distribuerad databas – hur når vi en överenskommelse om vilka poster som läggs till?
att övervinna denna utmaning i en miljö där främlingar inte litar på varandra var kanske den mest avgörande utvecklingen som banade väg för blockkedjor. I den här artikeln tar vi en titt på hur konsensusalgoritmer är avgörande för hur cryptocurrencies och distribuerade ledgers fungerar.
konsensusalgoritmer och cryptocurrency
i cryptocurrencies registreras användarnas saldon i en databas – blockchain. Det är viktigt att alla (eller mer exakt, varje nod) upprätthåller en identisk kopia av databasen. Annars skulle du snart sluta med motstridiga uppgifter, vilket undergräver hela syftet med cryptocurrency-nätverket.
kryptering med offentlig nyckel säkerställer att användare inte kan spendera varandras mynt. Men det måste fortfarande finnas en enda sanningskälla som nätverksdeltagarna litar på för att kunna avgöra om medel redan har spenderats.
Satoshi Nakamoto, skaparen av Bitcoin, föreslog ett bevis på arbetssystem för att samordna deltagarna. Vi kommer snart in på hur PoW fungerar-för nu kommer vi att identifiera några av de gemensamma egenskaperna hos de många konsensusalgoritmerna som finns.
för det första kräver vi att användare som vill lägga till Block (vi kallar dem validerare) ger en insats. Insatsen är ett slags värde som en validator måste lägga fram, vilket avskräcker dem från att agera oärligt. Om de fuskar, kommer de att förlora sin insats. Exempel är datorkraft, cryptocurrency eller till och med rykte.
varför skulle de bry sig om att riskera sina egna resurser? Tja, det finns också en belöning tillgänglig. Detta består vanligtvis av protokollets inhemska cryptocurrency och består av avgifter som betalas av andra användare, nyligen genererade cryptocurrency-enheter eller båda.
det sista vi behöver är öppenhet. Vi måste kunna upptäcka när någon fuskar. Helst bör det vara dyrt för dem att producera block, men billigt för alla att validera dem. Detta säkerställer att validerare hålls i kontroll av vanliga användare.
typer av konsensusalgoritmer
bevis på arbete (PoW)
bevis på arbete (PoW) är gudfadern för blockchain konsensusalgoritmer. Det implementerades först i Bitcoin, men det faktiska konceptet har funnits under en tid. Som bevis på arbete har validerare (kallade gruvarbetare) de data de vill lägga till tills de producerar en specifik lösning.
en hash är en till synes slumpmässig sträng av bokstäver och siffror som skapas när du kör data via en hashfunktion. Men om du kör samma data genom det igen, kommer du alltid att sluta med samma utgång. Ändra även en detalj, och din hash kommer att vara helt annorlunda.
om du tittar på utgången kan du inte berätta vilken information som matades in i funktionen. De är därför användbara för att bevisa att du kände till en bit data före en viss tid. Du kan ge någon sin hash, och när du senare avslöjar data kan den personen köra den genom funktionen för att se till att utmatningen är densamma.
i bevis på arbete anger protokollet villkor för vad som gör ett block giltigt. Det kan till exempel säga att endast ett block vars hash börjar med 00 kommer att vara giltigt. Det enda sättet för gruvarbetaren att skapa en som matchar den kombinationen är att brute-force ingångar. De kan justera en parameter i sina data för att producera ett annat resultat för varje gissning tills de får rätt hash.
med stora blockkedjor är baren otroligt hög. För att konkurrera med andra gruvarbetare, skulle du behöva ett lager fullt av speciella hashing hårdvara (ASIC) att vara i med en chans att producera ett giltigt block.
din insats, när gruvdrift, är kostnaden för dessa maskiner och den el som krävs för att köra dem. ASIC är byggda för ett ändamål, så de har ingen användning i applikationer utanför cryptocurrency mining. Ditt enda sätt att återhämta din initiala investering är att bryta, vilket ger en betydande belöning om du framgångsrikt lägger till ett nytt block i blockchain.
det är trivialt för nätverket att verifiera att du verkligen har skapat rätt block. Även om du har provat biljoner kombinationer för att få rätt hash, behöver de bara köra dina data genom en funktion en gång. Om dina data ger en giltig hash, det kommer att accepteras, och du får en belöning. Annars kommer nätverket att avvisa det, och du har slösat bort tid och el för ingenting.
Proof of Stake (PoS)
proof of Stake (PoS) föreslogs i början av Bitcoin som ett alternativ till bevis på arbete. I ett PoS-system finns det inget begrepp om gruvarbetare, specialiserad hårdvara eller massiv energiförbrukning. Allt du behöver är en vanlig dator.
Tja, inte alla. Du måste fortfarande lägga lite hud i spelet. I PoS lägger du inte fram en extern resurs (som el eller hårdvara), utan en intern – cryptocurrency. Reglerna skiljer sig åt med varje protokoll, men det finns i allmänhet ett minimum av medel du måste hålla för att vara berättigad till staking.
därifrån låser du dina pengar i en plånbok (de kan inte flyttas medan du satsar). Du håller vanligtvis med andra validerare om vilka transaktioner som kommer att gå in i nästa block. På ett sätt satsar du på blocket som kommer att väljas, och protokollet väljer ett.
om ditt block är valt får du en del av transaktionsavgifterna, beroende på din insats. Ju mer pengar du har låst upp, desto mer står du för att vinna. Men om du försöker fuska genom att föreslå ogiltiga transaktioner förlorar du en del (eller hela) av din insats. Därför har vi en liknande mekanism som PoW – att agera ärligt är mer lönsamt än att agera oärligt.
generellt finns det inte nyskapade mynt som en del av belöningen för validerare. Blockchains inhemska valuta måste således utfärdas på något annat sätt. Detta kan göras antingen via en initial distribution (dvs. en ICO eller IEO) eller genom att protokollet startas med PoW innan det senare övergår till PoS.
hittills har pure proof of Stake bara använts i mindre kryptokurser. Därför är det oklart om det kan fungera som ett livskraftigt alternativ till PoW. Medan det verkar teoretiskt ljud, kommer det att vara väldigt annorlunda i praktiken.
när PoS rullas ut på ett nätverk med ett stort värde blir systemet ett spelfält för spelteori och ekonomiska incitament. Vem som helst med kunskapen att “hacka” ett PoS-system skulle sannolikt bara göra det om de kunde vinna på det – därför är det enda sättet att ta reda på om det är möjligt på ett levande nätverk.
vi kommer snart att se PoS testad i stor skala – Casper kommer att implementeras som en del av en serie uppgraderingar till Ethereum-nätverket (kollektivt känt som Ethereum 2.0).
andra konsensusalgoritmer
bevis på arbete och bevis på insats är de mest diskuterade konsensusalgoritmerna. Men det finns en mängd andra, alla med sina egna fördelar och nackdelar. Kolla in följande artiklar:
- fördröjd Proof of Work Explained
- Leased Proof of Stake Consensus Explained
- proof of Authority Explained
- Proof of Burn Explained
- delegerad proof of Stake Explained
- Hybrid PoW/PoS Consensus Explained
avslutande tankar
mekanismer för att uppnå konsensus är avgörande för hur distribuerade system fungerar. Många tror att den största innovationen i Bitcoin var användningen av bevis på arbete för att göra det möjligt för användare att komma överens om en gemensam uppsättning fakta.
konsensusalgoritmer stöder idag inte bara digitala pengesystem utan blockkedjor som gör det möjligt för utvecklare att köra kod över ett distribuerat nätverk. De är nu en hörnsten i blockchain-tekniken och är kritiska för den långsiktiga lönsamheten hos de olika nätverken som finns.
av alla konsensusalgoritmer är Proof of Work fortfarande det dominerande erbjudandet. Ett alternativ som är mer tillförlitligt och säkrare har ännu inte föreslagits. Som sagt, det finns en enorm mängd forskning och utveckling i ersättare för PoW, och vi kommer sannolikt att se fler av dem yta under de kommande åren.