En Bitcoiners guide til Proof-of-Stake PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

En Bitcoiners guide til bevis-på-innsats

Dette er en meningsredaksjon av Scott Sullivan.

Normalt bryr ikke Bitcoiners seg så mye om hva som skjer i Shitcoin-land, men nå som Ethereum har fusjonert til bevis for eierandel (PoS), det har vært mye buzz på Bitcoin Twitter. Selvfølgelig vil selve Bitcoin-nettverket forbli upåvirket, men jeg tror denne "oppgraderingen" fortsatt er verdt å være oppmerksom på. Nå som Ethereum har renset seg selv for de "skitne" og "sløsende" eksternalitetene knyttet til proof-of-work (PoW), kan vi forvente at hanskene vil gå av i den narrative krigen, og jeg tror Bitcoiners bør være klare til å slå tilbake .

Å lære hvordan PoS fungerer er en veldig god måte å internalisere forskjellene og avveiningene mellom PoW og PoS. Selv om jeg hadde sett alle argumentene på høyt nivå mot PoS før – at PoS er mer tillat, sentraliserende og oligarkisk – skal jeg innrømme at uten å se nærmere på detaljene, føltes det hele litt håndbølget. Ved faktisk å dykke inn i PoS-algoritmen, kan vi begynne å se hvordan alle disse egenskapene naturlig kommer ut fra de første prinsippene. Så hvis du er nysgjerrig på hvordan PoS-algoritmen fungerer, og hvorfor den fører til denne typen egenskaper, så les videre!

Løse problemet med dobbeltforbruk

La oss starte med en rask oppsummering av problemet vi prøver å løse. Anta at vi har en stor gruppe deltakere i et kryptovalutanettverk som prøver å opprettholde en desentralisert hovedbok. Her er problemet: Hvordan kan nye transaksjoner legges til alles reskontro, slik at alle blir enige om hvilke nye transaksjoner som er "riktige"? PoW løser dette problemet ganske elegant: Transaksjoner er gruppert sammen i blokker, hvorved hver blokk krever en stor mengde beregningsarbeid å produsere. Mengden arbeid som kreves kan bevege seg opp eller ned for å sikre at blokker produseres hvert tiende minutt i gjennomsnitt, noe som gir hver nye blokk god tid til å forplante seg gjennom nettverket før den neste opprettes. Enhver tvetydighet løses ved å velge kjeden med mest arbeid, og dobbeltforbruk forhindres på grunn av at det kreves minst 51 % av den globale hashkraften for at en blokk med dobbel forbruk skal ta igjen.

Men anta at vi nå ønsker å kaste bort Satoshi Nakamotos nøkkelinnsikt som gjorde alt dette mulig i utgangspunktet. Tross alt er disse irriterende ASIC-ene høylytte og irriterende, og de bruker mer energi enn alle George Soros, Bill Gates og Hillary Clintons private jetfly til sammen. Er det noen måte vi entydig kan bli enige om hvilke transaksjoner som er sanne bare ved å snakke ut?

Ethereums proof-of-stake foreslår å løse dette problemet ved å bruke to nøkkelingredienser. Den første er å lage spesielle "sjekkpunktblokker" nå og da, hvis formål er å gi forsikring til alle i nettverket om "sannheten" til systemet på forskjellige tidspunkter. Oppretting av et sjekkpunkt krever to tredjedels flertall av stemmer etter innsats, så det er en viss sikkerhet for at flertallet av validatorene var enige om hva sannheten faktisk var på det tidspunktet. Den andre ingrediensen er å straffe brukere for å legge til tvetydighet i nettverket, en prosess kjent som "slashing". For eksempel, hvis en validator skulle lage en gaffel, eller stemme på en eldre sidekjede (ligner på et 51 % angrep), så vil deres innsats bli kuttet. Validatorer kan også kuttes for inaktivitet, men ikke så mye.

Dette leder oss til vårt første prinsipp bak PoS, som er at PoS er basert på et negativt (straffbasert) insentivsystem.

Dette står i sterk kontrast til Bitcoin og proof-of-work, som er et positivt (belønningsbasert) insentivsystem. I Bitcoin kan gruvearbeidere forsøke å bryte reglene – dårlig formaterte blokker, ugyldige transaksjoner og så videre – men disse blokkene vil bare bli ignorert av fulle noder. Det verste scenarioet er litt bortkastet energi. Gruvearbeidere står også fritt til å bygge på eldre blokker, men uten 51 % av hashkraften vil disse kjedene aldri ta igjen, igjen bare å kaste bort energi. Enhver gruvearbeider som deltar i disse handlingene, enten med vilje eller ikke, trenger ikke bekymre seg for å miste sine akkumulerte bitcoin eller gruvemaskiner, men de vil ikke få nye belønninger. I stedet for å leve i frykt, kan bitcoin-gruvearbeidere ta feil og ta handling og risiko.

Verden er et helt annet sted for validatorer som bor i Ethereum-land. I stedet for å jobbe hardt og bli belønnet for å legge til sikkerhet til nettverket, gjør ikke validatorer noe faktisk arbeid, men må passe på at noden deres aldri oppfører seg dårlig, for ikke å se sparepengene deres gå opp i flammer. Hvis noen foreslåtte endringer ble gjort i nettverket, ville en validators første instinkt være å overholde hva alle andre gjorde, ellers risikere å bli kuttet. Å være en validator er som å gå på eggeskall hver dag.

(kilde)

Forresten, å leve under et negativt insentivsystem er en av "fordelene" med bevis-på-innsats, ifølge Ethereum-nettverkets medgründer Vitalik Buterin's FAQ:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Så hvordan ville slashing egentlig fungere på et teknisk nivå? Må vi ikke først lage en liste over alle validatorene, for å ha noe å kutte i første omgang? Svaret er ja. For å bli en validator i Ethereum, må man først flytte ETH til en spesiell "staking"-adresse. Ikke bare er denne listen nødvendig for å kutte, men også for å stemme siden det trengs to tredjedels flertall for sjekkpunktblokker.

Det er noen interessante implikasjoner å opprettholde en liste over alle validatorer til enhver tid. Hvor vanskelig er det å bli med? Hvor vanskelig er det å forlate? Får validatorer stemme på statusen til andre validatorer?

Dette bringer oss til vårt andre prinsipp bak PoS, som er at PoS er et tillatelsessystem.

Det første trinnet for å bli en validator er å sette inn noe ETH på en spesiell innsatsadresse. Hvor mye ETH? Minimumskravet er 32 ETH, eller omtrent $50,000 9 når dette skrives. For kontekst kjører en anstendig bitcoin-gruverigg vanligvis i ensifrede tusenvis av dollar, og en hjemmegruvearbeider kan starte med en enkelt SXNUMX for noen hundrelapper. For å være rettferdig har ETHs høye inngangsavgift en teknisk begrunnelse, siden en høyere innsats betyr færre validatorer, noe som reduserer båndbredden.

Så innskuddsgebyret er høyt, men alle som eier 32 ETH står fritt til å bli med eller forlate når som helst, ikke sant? Ikke helt. Det er sikkerhetsrisiko hvis store koalisjoner av validatorer alle skulle gå inn eller ut på samme tid. For eksempel, hvis et flertall av nettverket forlot på en gang, kan de dobbeltbruke en ferdig blokkering ved å spille om en gaffel som de aldri forlot, uten å bli kuttet på noen av kjedene. For å redusere denne risikoen har på- og avkjøringsrampene en innebygd gjennomstrømningsgrense. Foreløpig dette begrense er satt til max(4,|V|/65536) validatorer per epoke (hvert 6.4 minutt), og er den samme for både inn- og utreise. Dette tilsvarer omtrent ett komplett validatorsett hver tiende måned.

Forresten, selv om det for øyeblikket er mulig for validatorer å publisere en "exit"-transaksjon og slutte å validere, er koden for å faktisk ta ut penger ikke engang skrevet ennå. Høres litt ut som "Hotel California" ...

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Det er et siste poeng om insentivene bak å godkjenne nye validatorer. Tenk deg at du var aksjonær i et stort og stabilt selskap som betaler regelmessig utbytte hvert kvartal. Vil det være fornuftig å gi bort nye aksjer gratis? Selvfølgelig ikke, siden det ville utvanne utbyttet til alle eksisterende aksjonærer. En lignende insentivstruktur eksisterer i PoS, siden hver nye validator fortynner inntektene til alle eksisterende validatorer.

I teorien kan validatorer ganske enkelt sensurere hver enkelt transaksjon som legger til en ny validator; i praksis tror jeg imidlertid en slik sløv tilnærming vil være usannsynlig. Dette ville være veldig merkbart og ville ødelegge Ethereums bilde av "desentralisering" over natten, og potensielt krasje prisen. Jeg tror en mer subtil tilnærming ville blitt brukt i stedet. For eksempel kan reglene sakte endres over tid, noe som gjør det vanskeligere å bli en validator, med unnskyldninger som tilbys som "sikkerhet" eller "effektivitet". Enhver policy som beriker eksisterende validatorer på bekostning av nye validatorer, vil ha økonomisk medvind, enten det blir sagt høyt eller ikke. Vi kan begynne å se hvorfor PoS vil tendere mot oligarki.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Oversikt over Casper-algoritmen

Nå som vi kjenner strategien på høyt nivå bak PoS, hvordan fungerer egentlig algoritmen? Hovedideene bak sjekkpunkter og slashing ble fremsatt i en algoritme kalt Casper, så vi starter der. Casper selv spesifiserer faktisk ikke noe om hvordan man produserer blokker, men gir snarere et rammeverk for hvordan man kan legge en sjekkpunkt/slashing-strategi på toppen av et allerede eksisterende blokkjede-tre.

Først velges en vilkårlig konstant (C) til å være "sjekkpunktavstand"-tallet, som bestemmer hvor mange blokker som oppstår mellom sjekkpunktene; for eksempel, hvis C=100, vil sjekkpunkter oppstå ved blokkene 0, 100, 200, og så videre. Deretter stemmer alle nodene om hvilken sjekkpunktblokk som skal være det neste "begrunnede" sjekkpunktet. I stedet for å stemme på enkeltblokker isolert, stemmer validatorer faktisk på (s,t) sjekkpunktpar, som kobler noen tidligere begrunnede sjekkpunktkilder "s" til et nytt målsjekkpunkt "t." Når en sjekkpunktlenke (s,t) får to tredjedels flertall ved innsats, blir "t" et nytt berettiget sjekkpunkt. Diagrammet nedenfor viser et eksempeltre med sjekkpunkter:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

I dette diagrammet refererer h(b)-funksjonen til "sjekkpunkthøyden", f.eks. blokkens multiplum av 100. Du har kanskje lagt merke til at ikke hver hundrede blokk nødvendigvis er rettferdiggjort, noe som kan skje hvis avstemningen mislyktes på en bestemt måte. høyde. Anta for eksempel på høyde 200 at to separate sjekkpunkter hver fikk 50 % av stemmene. Siden det å stemme to ganger er en forseelse som kan kuttes, ville systemet bli "stopp" med mindre noen validatorer villig kuttet sin egen eierandel for å oppnå to tredjedelers stemme. Løsningen vil være at alle "hopper over" sjekkpunkt 200 og "prøver igjen" ved blokk 300.

Bare fordi et sjekkpunkt er berettiget, betyr det ikke at det er ferdigstilt. For at et sjekkpunkt skal telle som ferdigstilt, må det umiddelbart etterfølges av et annet begrunnet sjekkpunkt i neste mulige høyde. For eksempel, hvis sjekkpunkt 0, 200, 400, 500 og 700 alle var rettferdiggjort og koblet sammen, vil bare sjekkpunkt 400 telle som "ferdiggjort", siden det er det eneste som umiddelbart etterfølges av et annet begrunnet sjekkpunkt.

Fordi terminologien er veldig presis, la oss oppsummere våre tre kategorier. Et "sjekkpunkt" er en hvilken som helst blokk som oppstår i høyden C*n, så hvis C=100, vil hver blokk med høyden 0, 100, 200, 300 og så videre alle være sjekkpunkter. Selv om flere blokker ble opprettet i høyden 200, ville de begge være "sjekkpunkter." Et sjekkpunkt er da "rettferdiggjort" hvis det enten er rotblokken i høyden 0, eller hvis to tredjedeler av validatorene stemte for å opprette en kobling mellom et tidligere begrunnet sjekkpunkt og det nåværende sjekkpunktet. Et berettiget sjekkpunkt blir deretter "sluttgjort" hvis det deretter kobles til et annet begrunnet sjekkpunkt i neste mulige høyde. Ikke alle sjekkpunkter blir nødvendigvis berettiget, og ikke alle berettigede sjekkpunkter blir nødvendigvis endelige, selv i den siste kjeden.

Casper Slashing Rules

Slashing-reglene i Casper er utformet slik at det er umulig for to ferdigstilte sjekkpunkter å eksistere i to separate gafler, med mindre minst en tredjedel av validatorene brøt slashing-reglene.

Med andre ord, bare ferdigstilte sjekkpunkter skal noen gang regnes som utvetydige "sannhets"-blokker. Det er til og med mulig for to berettigede sjekkpunkter å oppstå på begge sider av en gaffel, bare ikke to endelige sjekkpunkter. Det er heller ingen garanti for når eller hvor det neste fullførte sjekkpunktet vil finne sted, bare at hvis en kjededeling skulle skje, bør du lene deg tilbake og vente til en ferdig blokkert blokk dukker opp et sted, og når den først gjør det, vet du at det er " riktig” kjede.

Det er to kuttregler i Casper som håndhever denne egenskapen:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Den første regelen forbyr alle å dobbeltstemme på sjekkpunkter med samme målhøyde, så hvis en validator stemte for to forskjellige sjekkpunktblokker med målhøyde 200, ville det være en overtredelse. Hensikten med denne regelen er å forhindre at kjeden deler seg i to forskjellige begrunnede sjekkpunkter med samme høyde, siden dette vil kreve 2/3 + 2/3 = 4/3 av de totale validatorstemmene, noe som innebærer at minst en tredjedel av validatorene brøt kuttereglene. Men som vi så tidligere, er det mulig for berettigede sjekkpunkter å "hoppe over" visse blokkhøyder. Hva hindrer en kjede i å dele seg i forskjellige målhøyder? Kunne for eksempel ikke sjekkpunkt 200 dele seg inn i berettigede sjekkpunkter ved 300 og 400 uten at noen ble hugget?

Det er her den andre regelen kommer inn, som i utgangspunktet forhindrer validatorer fra å "sandwiche" stemmer inne i andre stemmer. For eksempel, hvis en validator stemte for både 300→500 og 200→700, ville det være en forseelse som kan kuttes. I tilfelle av en kjededeling, når én gren ser et endelig sjekkpunkt, blir det umulig for den andre grenen å se et berettiget sjekkpunkt etterpå med mindre minst en tredjedel av validatorene brøt regel #2.

For å se hvorfor, anta at blokkjeden gaffelet inn i berettigede sjekkpunkter 500→800 og 500→900, så på et tidspunkt så den første kjeden et ferdig sjekkpunkt med lenke 1700→1800. Siden både 1700 og 1800 bare kan rettferdiggjøres på gaffel #1 (forutsatt at ingen brøt den første slashing-regelen), er den eneste måten gaffel #2 kunne se et rettferdig sjekkpunkt etter 1800 hvis det var en innstemt kobling mellom høydene H1800. Men siden denne avstemningen ville "sandwich" koblingen 1700→1800 og krever to tredjedelers stemme, og 1700→1800 allerede vedtatt med to tredjedelers stemme, vil minst en tredjedel av validatorene måtte bryte regel # 2. Casper-papiret har et fint diagram som viser denne egenskapen:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Og det er det, bare følg Casper-reglene og du er flink!

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Virker ganske enkelt, ikke sant? Jeg er sikker på at PoS bare noensinne vil bruke slashing som en absolutt siste utvei for å opprettholde konsensus, og ikke som en utpressende mekanisme for å presse validatorer til å oppføre seg på en bestemt måte … ikke sant?

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Dette bringer oss til vårt tredje prinsipp bak PoS: Det er ingen regler. "Reglene" er hva alle andre sier de er.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

En dag kunne noden din teknisk sett følge hvert Casper-bud til punkt og prikke, og den neste dagen kunne sparepengene dine kuttes fordi du gjorde noe alle andre ikke likte. Godkjent en "team red"-transaksjon den ene gangen? I morgen kan det "lagblå" flertallet kutte deg. Eller kanskje du gjorde det motsatte og utelot for mange "lagrøde" transaksjoner? I morgen kan det "røde laget"-flertallet kutte deg for sensur. Evnen til å kutte går langt utover det begrensede omfanget av OFAC (Office of Foreign Assets Control) sensur. PoS er som en nonstop meksikansk standoff, der den implisitte trusselen om slashing er alltid tilstede til enhver tid.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Jeg ville ikke bli overrasket om i en omstridt hard gaffel, begge sider hardkodet valideringsreglene for den andre gaffelen, i tilfelle de ville straffe noen som ble med på "feil" side. Selvfølgelig ville dette være et kjernefysisk alternativ, og i likhet med atomvåpen, kan hver side bare velge å slå til som gjengjeldelse. Jeg vil tippe at de fleste individuelle validatorer er nøytrale ved at de ville prioritere økonomisk selvoppholdelse fremfor politisk selvoppofrelse, men utad kan de ta en side hvis de følte at det var det riktige grepet for å unngå å bli kuttet.

Hva er klokka?

Nå som vi vet det grunnleggende om sjekkpunkter og slashing, kan vi gå videre til den faktiske algoritmen som brukes i Ethereum, kalt Gasper. Dette er et portmanteau av Casper, som vi allerede har dekket, og GHOST, en strategi for å velge den "beste" kjeden av blokker mellom sjekkpunkter.

Det første du må forstå om Gasper er at tiden i seg selv er den viktigste uavhengige variabelen. Den virkelige tiden er delt inn i tolv-sekunders enheter kalt "slots", der hvert spor inneholder maksimalt én blokk. Disse sporene danner deretter større grupper kalt "epoker", der hver epoke refererer til ett sjekkpunkt. Hver epoke inneholder 32 spor, noe som gjør dem 6.4 minutter lange.

Det er verdt å merke seg at dette paradigmet snur årsakssammenhengen mellom tid og blokkproduksjon sammenlignet med PoW. I PoW produseres blokker fordi en gyldig hash ble funnet, ikke fordi det hadde gått nok tid. Men i Gasper produseres blokker fordi det har gått nok tid i den virkelige verden til å komme til neste spor. Jeg kan bare forestille meg de vanskelige tidsfeilene et slikt system kan støte på, spesielt når det ikke bare er ett program som kjører på én datamaskin, men titusenvis av datamaskiner som prøver å kjøre synkronisert over hele verden. Forhåpentligvis er Ethereum-utviklerne kjent med usannheter programmerere tror om tid.

Anta nå at du startet opp en valideringsnode, og du synkroniserte blokkjeden for første gang. Bare fordi du observerte at visse blokker refererte til bestemte tidsstempler, hvordan kunne du være sikker på at disse blokkene virkelig ble produsert på de tidspunktene? Siden blokkproduksjon ikke krever noe arbeid, kunne ikke en ondsinnet gruppe validatorer simulert en fullstendig falsk blokkjede fra dag én? Og hvis du så to konkurrerende blokkjeder, hvordan ville du vite hva som er sant?

Dette bringer oss til vårt fjerde prinsipp bak PoS, som er at PoS er avhengig av subjektiv sannhet.

Det er rett og slett ingen objektiv måte å velge mellom to konkurrerende blokkkjeder, og eventuelle nye noder til nettverket må til slutt stole på en eksisterende sannhetskilde for å løse enhver tvetydighet. Dette står i betydelig kontrast til Bitcoin, der den "ekte" kjeden alltid er den med mest arbeid. Det spiller ingen rolle om tusen noder forteller deg kjede X, hvis en enkelt node sender kjede Y og den inneholder mer arbeid, så er Y den riktige blokkjeden. En blokks overskrift kan bevise sin egen verdi, og helt fjerner behovet for tillit.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Ved å stole på subjektiv sannhet, gjeninnfører PoS behovet for tillit. Nå skal jeg innrømme at jeg kanskje er litt partisk, så hvis du vil lese den andre siden, skrev Buterin et essay som inneholdt synspunktene hans her.. Jeg skal innrømme at i praksis virker en kjededeling ikke så sannsynlig gitt Casper-reglene, men uansett får jeg litt sjelefred når jeg vet at dette ikke engang er en mulighet i Bitcoin.

Blokkproduksjon og stemmegivning

Nå som vi er kjent med spilleautomater og epoker, hvordan produseres og stemmes på individuelle blokker? I begynnelsen av hver epoke er hele valideringssettet "tilfeldig" delt inn i 32 grupper, en for hvert spor. I løpet av hvert spor blir en validator "tilfeldig" valgt til å være blokkprodusent, mens de andre er valgt til å være velgere (eller "attestere"). Jeg setter "tilfeldig" i anførselstegn fordi prosessen må være deterministisk, siden alle må utvetydig være enige om de samme validatorsettene. Denne prosessen må imidlertid også være ikke-utnyttbar, siden det å være blokkprodusent er en svært privilegert posisjon på grunn av de ekstra belønningene som er tilgjengelige fra miner extractable value (MEV), eller som den blir omdøpt til "maksimal utvinnbar verdi." "Ethereum er en mørk skog" er flott å lese om dette.

Når en blokk er produsert, hvordan stemmer eller "attesterer" de andre validatorene? Blokkforslag skal skje i løpet av den første halvdelen (seks sekunder) av et spor, og attestering i løpet av den andre halvdelen, så i teorien burde det være nok tid for attestorene til å stemme på blokken sin. Men hva skjer hvis blokkforslagsstilleren er offline eller ikke klarer å kommunisere eller bygger på en dårlig blokk? Jobben til en attestor er ikke nødvendigvis å stemme på blokkens blokk, men snarere hvilken blokk som "ser best ut" fra deres syn på det tidspunktet. Under normale forhold vil dette vanligvis være blokken fra det sporet, men kan også være en eldre blokk hvis noe gikk galt. Men hva betyr "se best" teknisk sett? Det er her GHOST-algoritmen kommer inn.

GHOST står for "Greediest Heaviest Observed SubTree" og er en grådig rekursiv algoritme for å finne blokken med den nyeste aktiviteten. I utgangspunktet ser denne algoritmen på alle de siste blokkene i form av et tre, og går nedover treet ved å grådig velge grenen med flest kumulative attester på hele undergrenen. Bare den siste attesten fra hver validator teller mot denne summen, og til slutt lander denne prosessen på en bladblokk.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Attester er ikke bare stemmer for den gjeldende beste blokken, men også for det siste sjekkpunktet som fører til den blokken. Det er verdt å merke seg i Gasper, sjekkpunkter er basert på epoker i stedet for blokkhøyder. Hver epoke refererer til nøyaktig én sjekkpunktblokk, som enten er blokken i den epokens første luke, eller hvis den plassen ble hoppet over, så den siste blokken før den plassen. Den samme blokken kan teoretisk sett være et sjekkpunkt i to forskjellige epoker hvis en epoke på en eller annen måte hoppet over hvert enkelt spor, så sjekkpunkter er representert ved å bruke (epoke, blokk) par. I diagrammet nedenfor står EBB for "epokegrenseblokk" og representerer sjekkpunktet for en spesifikk epoke, mens "LEBB" står for "siste epokegrenseblokk" og representerer det siste sjekkpunktet totalt sett.

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

I likhet med Casper blir et sjekkpunkt rettferdiggjort når det totale antallet attester passerer to-tredjedels-terskelen, og avsluttet hvis det umiddelbart ble fulgt av et annet berettiget sjekkpunkt i neste epoke. Et eksempel på hvordan denne avstemningen fungerer er vist nedenfor:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Det er to slashing-forhold i Gasper, som er analoge med slashing-reglene i Casper:

  1. Ingen stemmegivning to ganger i samme epoke.
  2. Ingen stemme kan inneholde epokesjekkpunkter som "sandwich" en annen stemmes epokesjekkpunkter.

Til tross for at de er basert på epoker i stedet for blokkhøyder, sikrer Casper-reglene fortsatt at det ikke kan forekomme to ferdige sjekkpunkter på forskjellige kjeder med mindre en tredjedel av validatorene kan kuttes.

Det er også verdt å merke seg at attester er inkludert i selve blokkene. I likhet med hvordan en blokk i PoW rettferdiggjør seg selv ved å bruke sin hash, rettferdiggjør et ferdigstilt sjekkpunkt i PoS seg selv ved å bruke alle sine tidligere attester. Når noen bryter slashing-reglene, blir de dårlige attestene inkludert i en blokk som beviser bruddet. Det er også en liten belønning til blokkprodusenten som inkluderte bruddet, for å gi et insentiv til å straffe regelbrytere.

Forks

Det er interessant å tenke på hva som ville skje i tilfelle av en gaffel. For raskt å oppsummere, refererer en gaffel til en endring i konsensusreglene, og de kommer i to varianter: harde gafler og myke gafler. I en hard gaffel er de nye reglene ikke bakoverkompatible, noe som potensielt kan resultere i to konkurrerende blokkjeder hvis ikke alle bytter. I en myk gaffel er de nye reglene mer restriktive enn de gamle reglene, samtidig som de holder dem bakoverkompatible. Når over 50 % av gruvearbeiderne eller validatorene begynner å håndheve de nye reglene, bytter konsensusmekanismen over uten å splitte kjeden. Myke gafler er generelt forbundet med oppgraderinger og nye transaksjonstyper, men de inkluderer også teknisk sett alle typer sensur som håndheves med 51 % flertall. PoS har også en tredje type "gaffel" som ikke finnes i PoW: en kjededeling uten endringer i reglene. Men siden vi allerede har dekket dette, vil vi fokusere på harde og myke gafler.

La oss starte med det enkleste tilfellet: en frittstående omstridt hardgaffel. Med omstridt mener jeg en regelendring som splitter brukerne politisk. En feilretting eller mindre teknisk endring vil sannsynligvis ikke være omstridt, men noe som å endre valideringsbelønningen vil sannsynligvis være det. Hvis en hard gaffel var omstridt nok, kunne det resultere i en kjededeling og ville bli løst økonomisk ved at brukere selger en kjede og kjøper den andre. Dette vil ligne på Bitcoin Cash-delingen i 2017, som ser ut til å ha en klar vinner:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Anta nå at validatorene satt rundt en dag og bestemte at de ikke fikk nok betalt, og bestemte at de skulle øke belønningene sine fra 5 % per år til 10 % per år. Dette ville være en klar avveining til fordel for validatorene på bekostning av ikke-validatorer som nå ville bli mer utvannet. I tilfelle en kjededeling, hvilken kjede ville vinne?

Dette fører til vårt femte prinsipp for PoS, som er at penger er makt.

Av de 120M ETH som eksisterer, er over 10% av det for tiden satset, som vist i diagrammet nedenfor:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

Gitt en omstridt gaffel mellom validatorene og ikke-validatorene, forutsatt at alle ikke-validatorene markedssolgte den nye kjeden og alle validatorene markedssolgte den gamle kjeden, så ville i teorien den gamle kjeden vinne, siden flertallet av ETH vil fortsatt holdes av ikke-validatorer (90 % mot 10 %). Men det er noen flere ting å vurdere. For det første, etter en eventuell kjededeling, ville validatorene fortsatt ha "kontroll" over begge blokkjedene. Hvis validatorene var i stand til å påvirke den andre kjeden, kan de bli incentivert til å få den til å mislykkes. For det andre er det også det kjernefysiske alternativet diskutert tidligere, der den nye kjeden kan kutte alle som fortsatt validerer den gamle kjeden for å presse dem til å bli med. Til slutt vil validatorene sannsynligvis ha betydelig sosial og politisk innflytelse over alle andre i nettverket. Hvis Buterin, Ethereum Foundation og børsene alle sammen bestemte at de skulle heve innsatsbelønningen, finner jeg det vanskelig å tro at vanlige Ethereum-brukere og validatorer kunne holde den gamle gaffelen i gang samtidig som den ble mer verdifull gjennom kjøpspress.

For å gå videre til myke gafler, hva ville skje i en omstridt myk gaffel, for eksempel OFAC-sensur? Validatorene er ganske sentraliserte, som vi kan se i diagrammet nedenfor:

En teknisk og dyptgående analyse av avveiningene som Ethereums konsensusmekanisme gjør i overgangen til bevis-på-innsats og hvordan bevis-på-arbeid er forskjellig.

(kilde)

I motsetning til PoW hvor gruvearbeidere kan bytte basseng ved å trykke på en knapp blir validatorer i Ethereum låst til en innsatsadresse til de behandler en utgangstransaksjon. Hvis Lido og toppbørsene ble gjort for å sensurere visse transaksjoner, kunne de lett passere to tredjedels flertall som trengs for å bestemme sjekkpunkter. Tidligere så vi hvordan Buterin og de andre ETH-validatorene kunne prøve å motarbeide en myk sensurgaffel med sin egen hardgaffel for motsensur, mens de kuttet sensurene i prosessen. Selv om de lyktes med å skape en gaffel, ville mye verdi bli ødelagt i prosessen, både fra skjæringen og fra tap av tillit.

Lukke Thoughts

I dette essayet så vi på hvordan PoS løser dobbeltforbruksproblemet med Gasper, en kombinasjon av sjekkpunkt/slashing-regler kalt Casper, og en "beste blokk"-stemmeregel kalt GHOST. For å oppsummere deler Gasper tiden inn i enheter som kalles spor, der hver spor kan ha maksimalt én blokk, og sporene er gruppert i epoker, der hver epoke refererer til ett sjekkpunkt. Hvis to tredjedels flertall stemmer på et sjekkpunkt, blir det berettiget, og hvis to berettigede sjekkpunkter oppstår på rad, blir det første av disse to sjekkpunktene ferdigstilt. Når et sjekkpunkt er ferdigstilt, blir det umulig for en parallell kjede å fullføres, med mindre en tredjedel av validatorene kan bli kuttet.

I denne prosessen avdekket vi fem prinsipper for PoS:

  1. PoS bruker en negativ (straffbasert) insentivstruktur.
  2. PoS er et tillatelsessystem.
  3. PoS har ingen regler.
  4. PoS er avhengig av subjektiv sannhet.
  5. I PoS er penger makt.

Hvert av disse prinsippene har motsatt oppførsel i PoW:

  1. PoW bruker et positivt (belønningsbasert) insentivsystem.
  2. PoW er et tillatelsesløst system (alle kan starte eller stoppe gruvedrift når som helst).
  3. I PoW blir gafler som endrer reglene ignorert.
  4. PoW er avhengig av objektiv sannhet.
  5. I PoW tjener gruvearbeidere brukerne og har liten makt selv.

Jeg mener at alle bør strebe etter å skape den typen verden de ønsker å leve i. Hvis du, som meg, ønsker å leve i en tillatelsesløs verden hvor du kan ha kontroll over pengene dine, hvor hardt arbeid belønnes og passivt eierskap er en ansvar og hvor pengene dine vil lagre verdien langt inn i fremtiden uten å endre seg på et innfall, så kan det være lurt å tenke nøye gjennom avveiningene mellom PoW og PoS, og kjempe for prinsippene du ønsker å leve etter.

Dette er et gjesteinnlegg av Scott Sullivan. Uttrykte meninger er helt deres egne og gjenspeiler ikke nødvendigvis meningene til BTC Inc. eller Bitcoin Magazine.

Tidstempel:

Mer fra Bitcoin Magazine