Kryptoskolan del 3 – Konsenus? – Proof Of Stake!

Vad är Proof of Stake?

I förra inlägget gick vi igenom konsensusmekanismen Proof of Work (PoW) och mining, nu är det äntligen dags för oss att ta oss an Proof of Stake (PoS) som är ett annat sätt att validera/verifiera transaktioner och uppnå distribuerad konsenus.

Proof Of Stake har i Ethereums värld länge diskuterats (och planerats) som ersättare till dagens PoW i den kommande Casper implementering som väldigt nyligen fick en uppdatering.
Det är fortfarande en konsensusalgoritm, och syftet är detsamma som PoW, men vägen för att nå målet skiljer och bygger istället på validerarens ekonomiska andel i nätverket.

Kryptografiska beräkningarna i PoS är mycket enklare för datorer att lösa kontra PoW: du behöver bara bevisa att du äger en viss procentandel av alla mynt som finns i en given valuta.

Till skillnad från PoW, där algoritmen belönar miners som löser matematiska problem med målet att validera/verifiera transaktioner och skapa nya block, så väljs alltså skaparen av ett nytt block i PoS på ett deterministiskt sätt, beroende på dess andel, eller rättare sagt insats (eng. stake).

Detta görs genom att blockkedjan håller reda på en uppsättning av validerare, och alla dessa som håller blockkedjans baskryptovaluta (ether, i Ethereums fall) kan bli en validerare genom att skicka en transaktionstyp som låser upp dess andel av ether i en insats (stake).
Processen att skapa och godkänna nya block görs sedan genom en konsensusalgoritm som alla nuvarande validerare kan delta i. Här turas validerarna om och röstar på nästa block, och vikten av varje validerares röst bygger på dess insats (stake).

Ingen belöning

I PoS är alla mynten redan skapade och deras antal växer aldrig. Det betyder att till skillnad från PoW där minern får belöning i form av nya mynt som skapas, så får smeden istället ta ut transaktionsavgifter. I PoS kallas minern/validatorn istället för smed (engelskans forger)
Om man vill summera PoS i två meningar så kan man säga följande:
I PoS så låser en validerare (smed) sin andel av Blockkedjans mynt i en insats (engelskans stake) i syftet att verifiera ett block av transaktioner och rösta fram nästa block. Detta sker deterministiskt där vikten av ens röst beror på hur stor ens andel är samt att belöningen fås i form av transaktionsavgifter.

Typer av PoS

Är det verkligen så enkelt? Självklart inte (Doh)! Utan självfallet finns det olika versioner av PoS. Ur ett algoritmiskt perspektiv rör det sig om två huvudtyper: kedjebaserat bevis på insats (Chain-based PoS) och BFT-stil PoS (Byzantine Fault Tolerant-style).

I kedjebaserat PoS väljer algoritmen pseudo-slumpmässigt en validerare under varje tidslucka (t.ex. varje 10-sekundersperiod) och tilldelar den valideraren rätten att skapa ett enda block och detta block måste peka på några tidigare block (normalt blocket i slutet av den tidigare längsta kedjan), och över tiden konvergeras blocken i en ständigt växande kedja.

I BFT-Stil PoS så tilldelas validerare slumpmässigt rätten att föreslå block, men att komma överens om vilket föreslaget block som är kanoniskt görs genom en multi-rond process där varje validator skickar en röst för ett visst föreslaget block under varje runda och I slutet av processen så avgörs det permanent av alla validerare som är online om huruvida ett givet block är en del av
kedjan eller ej.
Notera här att i BFT-Style POS så kan block fortfarande vara kedjade ihop; Den viktigaste skillnaden till Kedjebaserat PoS är att konsensus på ett block kan ske inuti ett block och beror inte på kedjans längd eller storlek efter det.

Bildkälla

För mer info och väldigt intressant läsning om Byzantine Fault Tolerance klickar du här.

Skillnader

PoW – Har ett objektivt konsensusprotokoll där en ny nod kan självständigt komma fram till samma staus som resten av nätverket baseras enbart på protokollregler.

PoS – Är inte ett objektivt protokoll. Det är svagt subjektivt, eftersom en nod behöver en nytt tillstånd i tillägg till protokollregler och meddelanden som sprids över hela systemet för att självständigt bestämma systemets nuvarande tillstånd.

• Kostnaden att attackera ett PoW-system är högre än kostnaden för att attackera ett PoS-system. I PoW skulle en angripare behöva förvärva 50% + av beräkningskraften i nätverket, men i PoS skulle en angripare behöva förvärva 50% + av valutan inom det systemet. Huruvida vilket som är säkrast av ovan nämnda scenarion är upp för debatt.

Fördelar/Nackdelar

Fördelarna med PoS är bland annat ökad säkerhet, minskad risk för centralisering, och sist men inte minst: energiförbrukning.

Energiförbrukning (PoS fördel)
Med PoS så minskas behovet av energi drastiskt. Det uppskattas att både Bitcoin och Ethereum bränner över 1 miljon dollar av el och maskinvarukostnader per dag som en del av deras konsensusmekanism.
Enligt en artikel från arstechnica så beräknas Bitcoinnätverket år 2020 att årligen konsumera så mycket som Danmark, det vill säga närmare 32TWh (terawatt-timme)!

Minskad centraliseringsrisk (PoS fördel)
Eftersom stordriftsfördelar blir mycket mindre av ett problem. $10 miljoner mynt ger dig exakt 10 gånger högre avkastning än 1 miljon mynt utan några ytterligare oproportionerliga vinster.

Ekonomiska påföljder vid attacker (PoS fördel)
Med PoS ges är de ekonomiska påföljder för de som deltagit i 51% attacker betydligt stor. Här man kan bli av med hela sin insats (stake). för att parafrasera Vlad Zamfir, ”Det är som om din ASIC gård brann ner om du deltog i en 51% attack”.

Vlad Zamfir, till vänster i bilden, är en researcher känd för sitt arbete med ”cryptoeconomics”, Proof of Stake och blockkedje-sharding i Ethereums ekosystem. Han är en av medlemmarna i Ethereum Foundation som Vitalik Buterin, till höger i bild, skaparen av Ethereum, leder.

Sårbarheter

Bildkälla

Det finns en del sårbarheter med båda konsensusmekanismerna som du kan ta del av nedan.

Gemensamma sårbarheter

DoS Attacker – En DoS-attack (Denial of Service) syftar till att störa den normala driften av nätverket genom att översvämma noderna.

Sybil Attacks – I en Sybil-attack stör attackeren nätverket genom att skapa ett antal felaktiga noder.

Specifika sårbarheter

PoW
Selfish Mining Attack – I självisk mining kan en angripare selektivt avslöja hittade block för att slösa bort beräkningsresurserna hos ärliga miners.

PoS
Mutattack (Bribe attack)
1) Angriparen utför en transaktion som hen sedan vill återkalla (reverse).
2) Strax efter transaktionen börjar angriparen bygga en alternativ kedja baserad på blocket före den som innehåller angriparens tidigare transaktion. Angriparen skapar den alternativa kedjan i hemlighet.
3) Efter transaktionen (som angriparen vill återkalla) får ett antal nödvändiga valideringar (t.ex 6 st) och angriparens ”hemliga” kedja är längre än den validerade kedjan där transaktionen i steg 1 befinner sig så publicerar angriparen den hemliga kedjan.

Om angriparens tidigare hemliga kedja accepteras som den nya giltiga blockkedjan, blir transaktionen i steg ett återkallad. Med PoS så kostar denna typen av attack 50x mindre än motsvarande attack på PoW

Detta sammanfattar del 3 i kryptoskolan! Det finns en hel del mer läsning ni kan åta er för att dyka än mer djupt i Proof Of Stake. Länkarna hittar ni nedan.

Då artikeln återigen skulle bli allt för långrandig valde jag att skippa hyperledgers Sawtooths metod för att uppnå konsensus denna gång! I nästa inlägg kommer jag skriva om Ripples XRP.

Källor:
https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ
https://medium.com/@VitalikButerin/a-proof-of-stake-design-ph…
https://bitcoinmagazine.com/articles/what-proof-of-stake-is-a…
https://en.wikipedia.org/wiki/Proof-of-stake
https://blog.ethereum.org/2014/07/05/stake/
https://digiconomist.net/bitcoin-energy-consumption

Med vänlig hälsning
Sebastian Ziabari

Posted on 19 maj, 2018 in Cryptocurrency, Okategoriserade, Technology

Share the Story

About the Author

Sebastian is a Technical Project Manager with a burning passion for bleeding edge technology, software, hardware and virtual reality. His cryptonite is gluten.

Leave a reply

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Back to Top