Vad Àr en konsensusalgoritm för blockkedjan?
Hem
Artiklar
Vad Àr en konsensusalgoritm för blockkedjan?

Vad Àr en konsensusalgoritm för blockkedjan?

Nybörjare
Publicerad Dec 13, 2018Uppdaterad Jun 13, 2024
7m

Introduktion

En konsensusalgoritm Àr en mekanism som tillÄter anvÀndare eller maskiner att koordinera i en distribuerad miljö. Det mÄste sÀkerstÀlla att alla ombud i systemet kan komma överens om en enda kÀlla till sanning, Àven om vissa ombud misslyckas. Systemet mÄste med andra ord vara feltolerant (se Àven: Vi förklarar bysantinsk feltolerans förklaras).

I en centraliserad konfiguration har en enda enhet makt över systemet. I de flesta fall kan denna göra Ă€ndringar som den vill – det finns inget komplicerat styrningssystem för att nĂ„ konsensus bland flera administratörer. 

Men en decentraliserad konfiguration Àr en helt annan historia. Hur nÄr vi en överenskommelse om vilka poster som lÀggs till i en distribuerad databas?

Att övervinna den utmaningen, 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 kommer vi att ta en titt pÄ hur konsensusalgoritmer Àr avgörande för hur kryptovalutor och distribuerade orderböcker fungerar.


Konsensusalgoritmer och kryptovaluta

I kryptovalutor registreras anvĂ€ndarnas balanser i en databas – blockkedjan. Det Ă€r viktigt att alla (eller mer exakt, varje nod) har en identisk kopia av databasen. Annars skulle du snart fĂ„ olika sorters information, vilket undergrĂ€ver hela syftet med kryptovalutanĂ€tverket.
Kryptografi med offentlig nyckel sÀkerstÀller att anvÀndarna inte kan spendera varandras coin. Men det mÄste fortfarande finnas en enda kÀlla till sanning som nÀtverksdeltagare förlitar sig pÄ för att kunna avgöra om tillgÄngarna redan har spenderats.

Satoshi Nakamoto, skaparen av bitcoin, föreslog ett bevis (PoW) pĂ„ arbete-system för att samordna deltagarna. Vi gĂ„r snart in pĂ„ hur PoW fungerar – men först kommer vi att identifiera nĂ„gra av de gemensamma egenskaperna hos de mĂ„nga konsensusalgoritmer som finns.

För det första krÀver vi att anvÀndare som vill lÀgga till block (vi kallar dem validerare) tillhandahÄller en insats. Insatsen Àr nÄgot slags vÀrde som en validerare mÄste lÀgga fram, vilket avskrÀcker henfrÄn att handla oÀrligt. Om nÄgon fuskar kommer hen att förlora sin insats. Exempel inkluderar datorkraft, kryptovaluta eller till och med rykte. 
Varför skulle nÄgon bry sig om att riskera sina egna resurser? DÀrför att det ocksÄ finns en belöning tillgÀnglig. Denna bestÄr vanligtvis av protokollets egen kryptovaluta och bestÄr av avgifter som betalas av andra anvÀndare, nygenererade kryptovalutaenheter eller bÄda.
Till sist behöver vi transparens. Vi mÄste kunna upptÀcka om nÄgon fuskar. Helst borde det vara dyrt att tillverka block, men billigt för vem som helst att validera dem. Detta sÀkerstÀller att validerare hÄlls i schack av vanliga anvÀndare.


Andra typer av konsensusalgoritmer

Bevis pÄ arbete (PoW)

Bevis pÄ arbete (PoW) Àr gudfadern till blockkedjans konsensusalgoritmer. Det implementerades först i bitcoin, men sjÀlva konceptet har funnits sedan lÀnge. I bevis pÄ arbete hashar validerarna (kallade miners) data de vill lÀgga till tills en specifik lösning tas fram.
En hash Ă€r en till synes slumpmĂ€ssig strĂ€ng av bokstĂ€ver och siffror som skapas nĂ€r du kör data genom en hashfunktion. Men om du kör samma data igenom den igen fĂ„r du alltid samma utdata. Ändras en enda detalj blir din hash helt annorlunda.

NÀr du tittar pÄ utdata kan Àr det omöjligt sÀga 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 innan en viss tidpunkt. Du kan ge nÄgon dess hash och nÀr du senare avslöjar data kan den personen köra dessa genom funktionen för att se till att alla utdata Àr desamma.

I bevis pÄ arbete anger protokollet villkoren för vad som gör ett block giltigt. Det kan till exempel sÀga att bara ett block vars hash som börjar med 00 kommer att vara giltigt. Det enda sÀttet för miners att skapa en som matchar den kombinationen Àr att anvÀnda brute-force-indata. 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. 

Inom stora blockkedjor Àr ribban satt otroligt högt. För att konkurrera med andra miners skulle du behöva ett lager fullt av speciell hashhÄrdvara (ASIC:er) för att ha en chans att producera ett giltigt block.

Din insats vid utvinning Àr kostnaden för dessa maskiner och den elektricitet som krÀvs för att driva dem. ASIC:er Àr byggda för ett ÀndamÄl, sÄ de har ingen anvÀndning i applikationer utanför kryptovalutautvinning. Ditt enda sÀtt att fÄ tillbaka din initiala investering Àr genom utvinning, vilket ger en betydande belöning om du lyckas lÀgga till ett nytt block i blockkedjan.

Det Ă€r enkelt 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 producerar en giltig hash accepteras de och du fĂ„r en belöning. Annars avvisar nĂ€tverket dem, varpĂ„ du kommer att ha slösat bort tid och elektricitet för ingenting.


Bevis pÄ insats (PoS)

Bevis pÄ insats (PoS) föreslogs i början av bitcoin som ett alternativ till bevis pÄ arbete. I ett PoS-system finns det inget koncept med miners, specialiserad hÄrdvara eller massiv energiförbrukning. Allt du behöver Àr en vanlig PC.
Ok, kanske lite mer Ă€n sĂ„. Du mĂ„ste fortfarande lĂ€gga lite tid pĂ„ detta. I PoS tar du inte fram en extern resurs (som el eller hĂ„rdvara), utan en intern sĂ„dan – kryptovaluta. Reglerna skiljer sig Ă„t för alla protokoll, men det finns i allmĂ€nhet ett minimibelopp du mĂ„ste inneha för att vara berĂ€ttigad till staking.

DÀrifrÄn lÄser du in dina tillgÄngar i en plÄnbok (de kan inte flyttas under staking). Du kommer vanligtvis överens med andra validerare om vilka transaktioner som ingÄr i nÀsta block. PÄ sÀtt och vis satsar du pÄ vilket block som vÀljs och protokollet vÀljer ett.

Om ditt block vĂ€ljs fĂ„r du en del av transaktionsavgifterna, beroende pĂ„ din insats. Ju mer tillgĂ„ngar du har lĂ„st, desto mer kan du vinna. Men om du försöker fuska genom att föreslĂ„ ogiltiga transaktioner förlorar du en del av (eller hela) din insats. DĂ€rför har vi en liknande mekanism som PoW – att agera Ă€rligt Ă€r mer lönsamt Ă€n att agera oĂ€rligt.

I allmÀnhet finns inga nyskapade coin som del av belöningen för validerare. Blockkedjans egen valuta mÄste alltsÄ ges ut pÄ ett 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 rena bevis pĂ„ insats bara implementerats i mindre kryptovalutor. DĂ€rför Ă€r det oklart om det kan fungera som ett lönsamt alternativ till PoW. Även om det verkar teoretiskt bra Ă€r det vĂ€ldigt annorlunda i praktiken. 

NĂ€r PoS vĂ€l introduceras pĂ„ ett nĂ€tverk med en stor mĂ€ngd vĂ€rde, blir systemet ett spelfĂ€lt för spelteori och ekonomiska incitament. Alla med kunskap om att "hacka" ett PoS-system skulle sannolikt bara göra det för att dra nytta av det om de kunde – dĂ€rför Ă€r det enda sĂ€ttet att ta reda pĂ„ om det Ă€r genomförbart pĂ„ ett livenĂ€tverk.

Vi kommer snart att fĂ„ se PoS testas i stor skala – Casper implementeras som en del av en serie uppgraderingar av Ethereum-nĂ€tverket (allmĂ€nt 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, som alla har sina egna fördelar och nackdelar. Kolla in följande artiklar:


Sammanfattningsvis

Mekanismer för att uppnÄ konsensus Àr avgörande för att distribuerade system ska fungera. MÄnga tror att den största innovationen inom 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 delad uppsÀttning fakta.

Konsensusalgoritmer stöder idag inte bara digitala penningsystem, utan Àven blockkedjor som tillÄter utvecklare att köra kod över ett distribuerat nÀtverk. De Àr nu en grundpelare i blockkedjetekniken och Àr avgörande för den lÄngsiktiga livskraften för de olika nÀtverk som finns.

Av alla konsensusalgoritmer Àr bevis pÄ arbete fortfarande det dominerande. Ett alternativ som Àr mer pÄlitligt och sÀkrare har Ànnu inte föreslagits. Det finns som sagt en enorm mÀngd forskning och utveckling för att ersÀtta PoW och vi kommer sannolikt att se fler av dem dyka upp under kommande Är.