Kryptoskolan del 3 - Konsensus? - Proof Of Stake!

Trädvy Permalänk
Medlem
Plats
Cyberspace
Registrerad
Apr 2008

Kryptoskolan del 3 - Konsensus? - Proof Of Stake!

Bildkälla:Jag själv!

Vad är Proof of Stake?

I förra inlägget gick vi igenom konsensusmekanismen Proof of Work 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

Då energiförbrukning vid PoS är väsentligt mindre i jämförelse med PoW så är behovet av att nya mynt skapas inte lika väsentligt. Det diskuteras bland annat att alla mynten kan vara skapade från början samt att istället för skapandet av nya mynt så kan istället systemet har möjlighet för en självstyrande deflation, det vill säga att antalet mynt istället minskar.

Huruvida Ethereum kommer att anta denna form vid övergången till PoS är oklart, dock har Vitalik Buterin tidigare flörtat med tanken i en publicering som skedde den 1:a April. Datumet var medvetet valt för att väcka diskussion, vilket bekräftades senare i ett twittermeddelande.

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 (referens)[ https://medium.com/@robertgreenfieldiv/vulnerability-proof-of...

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
http://sebastian.ziabari.se/

Ändring av påstående om PoS och hardcap av mynt.

That Yellow Bastard
CPU: i7 5820K - EKWB Supremacy EVO | GPU:SLI 2X EVGA Titan X SC
RAM: HyperX 32GB DDR4 2800 Mhz | PSU: EVGA G2 1600W
MB: MSI X99S XPOWER AC HDD1:PM961 M.2 SSD HDD2: Samsung 850 EVO 500GB
Case: LIAN LI PC-O7SX Screen: ASUS ROG SWIFT PG348Q 34" 3440x1440 @100Hz

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2016

Jag tycker att det är väldigt roligt när folk tar sig tiden att skriva den här sortens informerande inlägg, det här ska läsas ordentligt vid tillfälle
Du får får gärna länka till de olika delarna (både framåt och bakåt, dvs uppdatera de äldre med länkar till de nya) i inledningen så att det blir lätt för läsare att ta sig mellan de olika delarna.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Cyberspace
Registrerad
Apr 2008
Skrivet av mmarks:

Jag tycker att det är väldigt roligt när folk tar sig tiden att skriva den här sortens informerande inlägg, det här ska läsas ordentligt vid tillfälle
Du får får gärna länka till de olika delarna (både framåt och bakåt, dvs uppdatera de äldre med länkar till de nya) i inledningen så att det blir lätt för läsare att ta sig mellan de olika delarna.

Skickades från m.sweclockers.com

Stort tack! Och bra tips!

That Yellow Bastard
CPU: i7 5820K - EKWB Supremacy EVO | GPU:SLI 2X EVGA Titan X SC
RAM: HyperX 32GB DDR4 2800 Mhz | PSU: EVGA G2 1600W
MB: MSI X99S XPOWER AC HDD1:PM961 M.2 SSD HDD2: Samsung 850 EVO 500GB
Case: LIAN LI PC-O7SX Screen: ASUS ROG SWIFT PG348Q 34" 3440x1440 @100Hz

Trädvy Permalänk
Medlem
Registrerad
Apr 2016
Skrivet av Helionart:

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.

Jag hittar inget i dina källor som tyder på att detta skulle vara en fundamental egenskap av PoS. I Ethereums PoS FAQ så nämns:

Citat:

Because of the lack of high electricity consumption, there is not as much need to issue as many new coins in order to motivate participants to keep participating in the network. It may theoretically even be possible to have negative net issuance, where a portion of transaction fees is "burned" and so the supply goes down over time.

D.v.s. PoS kan möjligtvis öppna upp möjligheten för att dra ned på eller ta bort block rewards helt, men det finns inte någon begränsning som gör att block rewards/inflation inte fungerar i PoS. Kryptovalutor som NAV använder PoS och har en inflation på 5% t.ex.

Jag hittade några tvivelaktiga källor som Forbes och Blockgeeks som också påstår detta, så jag antar att du saxade det därifrån.

Trädvy Permalänk
Medlem
Plats
Cyberspace
Registrerad
Apr 2008
Skrivet av Takyon:

Jag hittar inget i dina källor som tyder på att detta skulle vara en fundamental egenskap av PoS. I Ethereums PoS FAQ så nämns:
D.v.s. PoS kan möjligtvis öppna upp möjligheten för att dra ned på eller ta bort block rewards helt, men det finns inte någon begränsning som gör att block rewards/inflation inte fungerar i PoS. Kryptovalutor som NAV använder PoS och har en inflation på 5% t.ex.

Jag hittade några tvivelaktiga källor som Forbes och Blockgeeks som också påstår detta, så jag antar att du saxade det därifrån.

Tack för korrigering! Du har rätt, det är ingen fundamental regel vid PoS. Jag la till detta i artikeln. Jag har dock lagt till Vitaliks uttalande om hardcap av mynt vid PoS för att ge läsaren en inblick i hur Vitalik resonerar.

That Yellow Bastard
CPU: i7 5820K - EKWB Supremacy EVO | GPU:SLI 2X EVGA Titan X SC
RAM: HyperX 32GB DDR4 2800 Mhz | PSU: EVGA G2 1600W
MB: MSI X99S XPOWER AC HDD1:PM961 M.2 SSD HDD2: Samsung 850 EVO 500GB
Case: LIAN LI PC-O7SX Screen: ASUS ROG SWIFT PG348Q 34" 3440x1440 @100Hz

Trädvy Permalänk
Medlem
Registrerad
Jun 2004

jag ger det 1/5 för ett bra försök.

känner du inte till nothing-at-stake problemet?

Citat:

• 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.

oavsett om PoS ger minskad centralisering eller inte så är det du skriver fel, man 'minar' i poolar för att minska variationen i utbetalning och det är inget PoS hanterar bättre.

det är så mycket fel, jag orkar inte.

alla hatar barack obama.

Trädvy Permalänk
Medlem
Plats
Cyberspace
Registrerad
Apr 2008

@kaXe: Hej. Kan du hänvisa till källa för ditt påstående om att texten är felaktig?

Jag hänvisar till Ethereums wiki på Github... https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ

Där finner du:
"Reduced centralization risks, as economies of scale are much less of an issue. $10 million of coins will get you exactly 10 times higher returns than $1 million of coins, without any additional disproportionate gains because at the higher level you can afford better mass-production equipment."

och även:

"Will exchanges in proof of stake pose a similar centralization risk to pools in proof of work?
From a centralization perspective, in both Bitcoin and Ethereum it's the case that roughly three pools are needed to coordinate on a 51% attack (4 in Bitcoin, 3 in Ethereum at the time of this writing). In PoS, if we assume 30% participation including all exchanges, then three exchanges would be enough to make a 51% attack; if participation goes up to 40% then the required number goes up to eight. However, exchanges will not be able to participate with all of their ether; the reason is that they need to accomodate withdrawals.

Additionally, pooling in PoS is discouraged because it has a much higher trust requirement - a proof of stake pool can pretend to be hacked, destroy its participants' deposits and claim a reward for it. On the other hand, the ability to earn interest on one's coins without oneself running a node, even if trust is required, is something that many may find attractive; all in all, the centralization balance is an empirical question for which the answer is unclear until the system is actually running for a substantial period of time. With sharding, we expect pooling incentives to reduce further, as (i) there is even less concern about variance, and (ii) in a sharded model, transaction verification load is proportional to the amount of capital that one puts in, and so there are no direct infrastructure savings from pooling.

A final point is that centralization is less harmful in proof of stake than in proof of work, as there are much cheaper ways to recover from successful 51% attacks; one does not need to switch to a new mining algorithm."

----
Skulle även vara bra om du utvecklar vilka delar som "är så fel så du inte orkar"?. Vi är här för att upplysa varandra, inte för att vara spydiga så jag välkomnar gärna konstruktiv feedback som även läsarna kan ta del av.

That Yellow Bastard
CPU: i7 5820K - EKWB Supremacy EVO | GPU:SLI 2X EVGA Titan X SC
RAM: HyperX 32GB DDR4 2800 Mhz | PSU: EVGA G2 1600W
MB: MSI X99S XPOWER AC HDD1:PM961 M.2 SSD HDD2: Samsung 850 EVO 500GB
Case: LIAN LI PC-O7SX Screen: ASUS ROG SWIFT PG348Q 34" 3440x1440 @100Hz

Trädvy Permalänk
Medlem
Registrerad
Okt 2011
Skrivet av kaXe:

jag ger det 1/5 för ett bra försök.

känner du inte till nothing-at-stake problemet?

oavsett om PoS ger minskad centralisering eller inte så är det du skriver fel, man 'minar' i poolar för att minska variationen i utbetalning och det är inget PoS hanterar bättre.

det är så mycket fel, jag orkar inte.

Du svarar på någon som skrivit flera sidor lång förklaring, med vettiga referenser, som gjort detta för att göra information mer lättilgängligt för alla. Du skriver fem rader och avslutar med "det är så mycket fel, jag orkar inte"

Kom igen.. Om det är någon miss som gjordes som du tvunget ska klaga på kan du väl i alla fall ge en referens som förklarar vad som var fel. Dessutom mycket onödigt med den negativa attityden till någon som anstränger sig för att bidra till forumet. Detta borde uppmuntras, inte avskräckas!

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Registrerad
Sep 2011

@Helionart: Mycket trevliga och lättförståeliga artiklar!

Har du kollat något på Proof of Space? https://en.wikipedia.org/wiki/Proof-of-space

Finns väl egentligen bara Burstcoin https://www.burst-coin.org ute idag (har funnits sen 2014) som använder förallokerat hårddiskutrymme istället för realtidsberäkningar med GPU/ASIC och därigenom har en bråkdel av strömförbrukningen per transaktion mot vad andra kryptovalutor dras med.

Trädvy Permalänk
Medlem
Registrerad
Jun 2004
Skrivet av Helionart:

@kaXe: Hej. Kan du hänvisa till källa för ditt påstående om att texten är felaktig?

Jag hänvisar till Ethereums wiki på Github... https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ

Där finner du:
"Reduced centralization risks, as economies of scale are much less of an issue. $10 million of coins will get you exactly 10 times higher returns than $1 million of coins, without any additional disproportionate gains because at the higher level you can afford better mass-production equipment."

och även:

"Will exchanges in proof of stake pose a similar centralization risk to pools in proof of work?
From a centralization perspective, in both Bitcoin and Ethereum it's the case that roughly three pools are needed to coordinate on a 51% attack (4 in Bitcoin, 3 in Ethereum at the time of this writing). In PoS, if we assume 30% participation including all exchanges, then three exchanges would be enough to make a 51% attack; if participation goes up to 40% then the required number goes up to eight. However, exchanges will not be able to participate with all of their ether; the reason is that they need to accomodate withdrawals.

Additionally, pooling in PoS is discouraged because it has a much higher trust requirement - a proof of stake pool can pretend to be hacked, destroy its participants' deposits and claim a reward for it. On the other hand, the ability to earn interest on one's coins without oneself running a node, even if trust is required, is something that many may find attractive; all in all, the centralization balance is an empirical question for which the answer is unclear until the system is actually running for a substantial period of time. With sharding, we expect pooling incentives to reduce further, as (i) there is even less concern about variance, and (ii) in a sharded model, transaction verification load is proportional to the amount of capital that one puts in, and so there are no direct infrastructure savings from pooling.

A final point is that centralization is less harmful in proof of stake than in proof of work, as there are much cheaper ways to recover from successful 51% attacks; one does not need to switch to a new mining algorithm."

----
Skulle även vara bra om du utvecklar vilka delar som "är så fel så du inte orkar"?. Vi är här för att upplysa varandra, inte för att vara spydiga så jag välkomnar gärna konstruktiv feedback som även läsarna kan ta del av.

här kan du läsa om det:

http://lmgtfy.com/?q=crypto+nothing+at+stake

jag har varken lust eller ork att förklara mer ingående, det är inte speciellt komplicerat och jag tror du förstår. jag tycker mest dessa "lektioner" är lite kul för de tenderar att skrivas om folk som är intresserade men tyvärr inte är vidare insatta. Hur du har missat nothing at stake for pos är ju verkligen intressant om inte ett medvetet val

läs om casper för ethereum, det är ett försök att lösa nothing at stake problemet.

https://ethereum.stackexchange.com/questions/2401/what-is-the...

alla hatar barack obama.

Trädvy Permalänk
Medlem
Plats
Cyberspace
Registrerad
Apr 2008
Skrivet av kaXe:

här kan du läsa om det:

http://lmgtfy.com/?q=crypto+nothing+at+stake

jag har varken lust eller ork att förklara mer ingående, det är inte speciellt komplicerat och jag tror du förstår. jag tycker mest dessa "lektioner" är lite kul för de tenderar att skrivas om folk som är intresserade men tyvärr inte är vidare insatta. Hur du har missat nothing at stake for pos är ju verkligen intressant om inte ett medvetet val

läs om casper för ethereum, det är ett försök att lösa nothing at stake problemet.

https://ethereum.stackexchange.com/questions/2401/what-is-the...

1. Tack för att du nämner Nothing at stake. Alltid mysigt med referenser till lmgtfy.

2. Du svarade inte överhuvudtaget på vilka delar som är felaktiga. Jag ger dig referens till Ethereums egna wiki på github med citat och du ger mig lmgtfy länkar. Du bemöter inte heller mina svar på dina tidigare påståenden om felaktighet gällande pools, du undviker att svara på det överhuvudtaget.

Det som mest överraskar mig med dina inlägg är den kontinuerliga drygheten. Vi är här på detta forum för att lära oss och dela med oss. Det känns som att du är här för att trycka ner andra?

That Yellow Bastard
CPU: i7 5820K - EKWB Supremacy EVO | GPU:SLI 2X EVGA Titan X SC
RAM: HyperX 32GB DDR4 2800 Mhz | PSU: EVGA G2 1600W
MB: MSI X99S XPOWER AC HDD1:PM961 M.2 SSD HDD2: Samsung 850 EVO 500GB
Case: LIAN LI PC-O7SX Screen: ASUS ROG SWIFT PG348Q 34" 3440x1440 @100Hz