Zephyrnet-logo

Een Bitcoiner's Guide to Proof-of-Stake

Datum:

Dit is een opinieredactie van Scott Sullivan.

Normaal gesproken geven Bitcoiners niet zoveel om wat er in Shitcoin-land gebeurt, maar nu Ethereum is gefuseerd tot proof-of-staak (PoS), er is nogal wat geroezemoes op Bitcoin Twitter. Natuurlijk blijft het Bitcoin-netwerk zelf onaangetast, maar ik denk dat deze "upgrade" nog steeds de moeite waard is om aandacht aan te besteden. Nu Ethereum zichzelf heeft gereinigd van de "vuile" en "verspillende" externe effecten die verband houden met proof-of-work (PoW), kunnen we verwachten dat de handschoenen uit zullen gaan in de verhalende oorlog, en ik denk dat Bitcoiners klaar moeten zijn om terug te slaan .

Leren hoe PoS werkt, is een heel goede manier om de verschillen en afwegingen tussen PoW en PoS te internaliseren. Ook al had ik al eerder alle argumenten op hoog niveau tegen PoS gezien - dat PoS meer geautoriseerd, centraliserend en oligarchisch is - geef ik toe dat zonder in de details te kijken, het allemaal nogal handgolvend aanvoelde. Door daadwerkelijk in het PoS-algoritme te duiken, kunnen we beginnen te zien hoe al deze eigenschappen op natuurlijke wijze voortkomen uit de eerste principes. Dus als je nieuwsgierig bent naar hoe het PoS-algoritme werkt, en waarom het tot dit soort eigenschappen leidt, lees dan verder!

Het probleem van dubbele uitgaven oplossen

Laten we beginnen met een korte samenvatting van het probleem dat we proberen op te lossen. Stel dat we een grote groep deelnemers hebben in een cryptocurrency-netwerk die proberen een gedecentraliseerd grootboek bij te houden. Hier is het probleem: hoe kunnen nieuwe transacties worden toegevoegd aan ieders grootboek, zodat iedereen het eens is over welke nieuwe transacties "juist" zijn? PoW lost dit probleem heel elegant op: transacties worden gegroepeerd in blokken, waarbij elk blok een grote hoeveelheid rekenwerk kost om te produceren. De benodigde hoeveelheid werk kan omhoog of omlaag gaan om ervoor te zorgen dat blokken gemiddeld om de tien minuten worden geproduceerd, zodat elk nieuw blok voldoende tijd heeft om zich door het netwerk te verspreiden voordat het volgende wordt gemaakt. Elke dubbelzinnigheid wordt opgelost door de keten te selecteren met het meeste werk, en dubbele uitgaven worden voorkomen omdat er minimaal 51% van de wereldwijde hashpower nodig is om een ​​blok met dubbele uitgaven in te halen.

Maar stel nu dat we Satoshi Nakamoto's belangrijkste inzicht dat dit alles mogelijk heeft gemaakt, willen weggooien. Die vervelende ASIC's zijn tenslotte luidruchtig en irritant, en ze verbruiken meer energie dan alle privéjets van George Soros, Bill Gates en Hillary Clinton samen. Is er een manier waarop we het ondubbelzinnig eens kunnen worden over welke transacties waar zijn, gewoon door het uit te praten?

De proof-of-stake van Ethereum stelt voor om dit probleem op te lossen met behulp van twee belangrijke ingrediënten. De eerste is om zo nu en dan speciale "checkpoint-blokken" te maken, die tot doel hebben iedereen in het netwerk op verschillende tijdstippen zekerheid te geven over de "waarheid" van het systeem. Het creëren van een controlepunt vereist een tweederde meerderheid van stemmen per inzet, dus er is enige zekerheid dat de meerderheid van de validators het eens was over wat de waarheid op dat moment was. Het tweede ingrediënt is om gebruikers te straffen voor het toevoegen van ambiguïteit aan het netwerk, een proces dat bekend staat als 'slashing'. Als een validator bijvoorbeeld een vork zou maken of op een oudere zijketen zou stemmen (vergelijkbaar met een aanval van 51%), dan zou hun inzet worden verlaagd. Validators kunnen ook worden verlaagd voor inactiviteit, maar niet zo veel.

Dit brengt ons bij ons eerste principe achter PoS, namelijk dat PoS gebaseerd is op een negatief (op boetes gebaseerd) beloningssysteem.

Dit staat in schril contrast met Bitcoin en proof-of-work, wat een positief (op beloningen gebaseerd) beloningssysteem is. In Bitcoin kunnen miners proberen de regels te overtreden - slecht opgemaakte blokken, ongeldige transacties, enzovoort - maar deze blokken worden gewoon genegeerd door volledige knooppunten. Het slechtste scenario is een beetje verspilde energie. Mijnwerkers zijn ook vrij om op oudere blokken te bouwen, maar zonder 51% van de hashpower zullen deze ketens nooit inhalen, opnieuw verspillen ze alleen maar energie. Elke miner die deelneemt aan deze acties, al dan niet opzettelijk, hoeft zich geen zorgen te maken over het verliezen van hun verzamelde bitcoin of mijnmachines, maar ze zullen geen nieuwe beloningen krijgen. In plaats van in angst te leven, kunnen bitcoin-mijnwerkers de fout maken om actie te ondernemen en risico's te nemen.

De wereld is een heel andere plaats voor validators die in Ethereum-land wonen. In plaats van hard te werken en beloond te worden voor het toevoegen van beveiliging aan het netwerk, doen validators geen echt werk, maar moeten ze oppassen dat hun node zich nooit misdraagt, anders zien ze hun spaargeld in vlammen opgaan. Als er voorgestelde wijzigingen in het netwerk zouden worden aangebracht, zou het eerste instinct van een validator zijn om te voldoen aan wat iedereen ook aan het doen was, of anders het risico te lopen bezuinigd te worden. Een validator zijn is elke dag op eieren lopen.

(bron)

Trouwens, leven onder een negatief stimuleringssysteem is een van de, ahem, "voordelen" van proof-of-stake, volgens de mede-oprichter van het Ethereum-netwerk, Vitalik Buterin's FAQ:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Dus hoe zou slashing eigenlijk werken op technisch niveau? Zouden we niet eerst een lijst van alle validators moeten maken, om in de eerste plaats iets te slashen? Het antwoord is ja. Om een ​​validator in Ethereum te worden, moet men ETH eerst naar een speciaal "staking" -adres verplaatsen. Deze lijst is niet alleen nodig voor slashing, maar ook om te stemmen, aangezien een tweederde meerderheid van stemmen nodig is voor checkpointblokken.

Er zijn enkele interessante implicaties verbonden aan het te allen tijde bijhouden van een lijst van alle validators. Hoe moeilijk is het om mee te doen? Hoe moeilijk is het om te vertrekken? Kunnen validators stemmen over de status van andere validators?

Dit brengt ons bij ons tweede principe achter PoS, namelijk dat PoS een geautoriseerd systeem is.

De eerste stap om validator te worden, is om wat ETH te deponeren op een speciaal stakingsadres. Hoeveel ETH? Het vereiste minimum is 32 ETH, of ongeveer $ 50,000 op het moment van schrijven. Voor de context draait een fatsoenlijke bitcoin-mijnbouwinstallatie meestal in de enkele cijfers van duizenden dollars, en een thuismijnwerker kan beginnen met een enkele S9 voor een paar honderd dollar. Om eerlijk te zijn, de hoge toegangsprijs van ETH heeft een technische rechtvaardiging:, omdat een hogere inzet minder validators betekent, wat de bandbreedte verlaagt.

Dus de aanbetaling is hoog, maar in ieder geval is iedereen die 32 ETH bezit vrij om op elk moment lid te worden of te vertrekken, toch? Niet helemaal. Er zijn veiligheidsrisico's als grote coalities van validators allemaal tegelijkertijd zouden binnenkomen of verlaten. Als een meerderheid van het netwerk bijvoorbeeld allemaal tegelijk weggaat, kunnen ze een voltooid blok dubbel uitgeven door een vork opnieuw te spelen waarin ze nooit zijn vertrokken, zonder op een van beide ketens te worden gesneden. Om dit risico te beperken, hebben de op- en afritten een ingebouwde doorvoerlimiet. Momenteel dit begrenzing is ingesteld op max(4,|V|/65536) validators per epoche (elke 6.4 minuten), en is hetzelfde voor zowel binnenkomst als vertrek. Dit vertaalt zich ruwweg in één volledige validatorset om de tien maanden.

Trouwens, hoewel het momenteel mogelijk is voor validators om een ​​"exit" -transactie te publiceren en te stoppen met valideren, is de code om geld daadwerkelijk op te nemen nog niet eens geschreven. Klinkt een beetje als “Hotel California”…

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Er is nog een laatste punt over de prikkels achter het goedkeuren van nieuwe validators. Stel dat u aandeelhouder bent van een groot en stabiel bedrijf dat elk kwartaal regelmatig dividend uitkeert. Zou het zin hebben om nieuwe aandelen gratis weg te geven? Natuurlijk niet, aangezien dit de dividenden van alle bestaande aandeelhouders zou verwateren. Een vergelijkbare incentive-structuur bestaat in PoS, aangezien elke nieuwe validator de inkomsten van alle bestaande validators verwatert.

In theorie zouden validators eenvoudig elke transactie kunnen censureren die een nieuwe validator toevoegt; in de praktijk denk ik echter dat een dergelijke botte benadering onwaarschijnlijk is. Dit zou zeer merkbaar zijn en zou het imago van Ethereum van "decentralisatie" van de ene op de andere dag vernietigen, waardoor de prijs mogelijk zou crashen. Ik denk dat in plaats daarvan een meer subtiele benadering zou worden gebruikt. De regels kunnen bijvoorbeeld in de loop van de tijd langzaam veranderen, waardoor het moeilijker wordt om een ​​validator te worden, met excuses als 'beveiliging' of 'efficiëntie'. Elk beleid dat bestaande validators verrijkt ten koste van nieuwe validators, zou financiële tegenwind hebben, of deze nu hardop wordt uitgesproken of niet. We kunnen beginnen te zien waarom PoS zou neigen naar oligarchie.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Overzicht van het Casper-algoritme

Hoe werkt het algoritme nu we de strategie op hoog niveau achter PoS kennen? De belangrijkste ideeën achter checkpoints en slashing werden naar voren gebracht in een algoritme genaamd Casper, dus daar beginnen we. Casper zelf specificeert eigenlijk niets over het produceren van blokken, maar biedt eerder een raamwerk voor het superponeren van een checkpoint/slashing-strategie bovenop een reeds bestaande blockchain-boom.

Ten eerste wordt een willekeurige constante (C) gekozen als het "controlepuntafstand" -nummer, dat bepaalt hoeveel blokken er tussen controlepunten voorkomen; bijvoorbeeld, als C=100 dan zouden controlepunten voorkomen bij blokken 0, 100, 200, enzovoort. Vervolgens stemmen de knooppunten allemaal over welk controlepuntblok het volgende "gerechtvaardigde" controlepunt moet zijn. In plaats van afzonderlijk op afzonderlijke blokken te stemmen, stemmen validators in feite op (s,t) controlepuntparen, die enkele eerder gerechtvaardigde controlepuntbron "s" koppelen aan een nieuw doelcontrolepunt "t". Zodra een checkpoint-link (s,t) een tweederde meerderheid van stemmen per inzet krijgt, wordt "t" een nieuw gerechtvaardigd checkpoint. Het onderstaande diagram toont een voorbeeldboom van checkpoints:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

In dit diagram verwijst de functie h(b) naar de "hoogte van het controlepunt", bijv. het veelvoud van 100 van het blok. Het is je misschien opgevallen dat niet elk honderdste blok noodzakelijkerwijs gerechtvaardigd is, wat kan gebeuren als de stemming op een bepaald moment mislukt. hoogte. Stel bijvoorbeeld dat op hoogte 200 twee afzonderlijke controleposten elk 50% van de stemmen kregen. Aangezien tweemaal stemmen een overtreding is, zou het systeem "vastlopen" tenzij sommige validators vrijwillig hun eigen inzet zouden verlagen om een ​​tweederde meerderheid te behalen. De oplossing zou zijn dat iedereen checkpoint 200 "overslaat" en "opnieuw proberen" bij blok 300.

Alleen omdat een checkpoint gerechtvaardigd is, wil nog niet zeggen dat het definitief is. Om ervoor te zorgen dat een controlepunt als definitief wordt beschouwd, moet het onmiddellijk worden gevolgd door een ander gerechtvaardigd controlepunt op de eerstvolgende mogelijke hoogte. Als ijkpunten 0, 200, 400, 500 en 700 bijvoorbeeld allemaal gerechtvaardigd en aan elkaar gekoppeld waren, zou alleen ijkpunt 400 als 'afgerond' tellen, omdat dit het enige is dat onmiddellijk wordt gevolgd door een ander gerechtvaardigd ijkpunt.

Omdat de terminologie erg precies is, laten we onze drie categorieën samenvatten. Een "controlepunt" is elk blok dat voorkomt op hoogte C*n, dus als C=100, zou elk blok met hoogte 0, 100, 200, 300, enzovoort allemaal controlepunten zijn. Zelfs als er meerdere blokken op hoogte 200 zouden worden gemaakt, zouden ze allebei "controlepunten" zijn. Een controlepunt is dan "gerechtvaardigd" als het ofwel het rootblok op hoogte 0 is, of als tweederde van de validators heeft gestemd om een ​​link te maken tussen een eerder gerechtvaardigd controlepunt en het huidige controlepunt. Een gerechtvaardigd ijkpunt is dan “afgerond” als het vervolgens linkt naar een ander gerechtvaardigd ijkpunt op de eerstvolgende mogelijke hoogte. Niet elk ijkpunt wordt noodzakelijkerwijs gerechtvaardigd en niet elk gerechtvaardigd ijkpunt wordt noodzakelijkerwijs definitief, zelfs niet in de laatste keten.

Casper Slashing-regels

De slashing-regels in Casper zijn zo ontworpen dat het onmogelijk is dat twee voltooide checkpoints in twee afzonderlijke forks bestaan, tenzij ten minste een derde van de validators de slashing-regels overtreedt.

Met andere woorden, alleen definitieve controlepunten mogen ooit worden geteld als ondubbelzinnige "waarheids" -blokken. Het is zelfs mogelijk dat er twee gerechtvaardigde checkpoints aan weerszijden van een vork plaatsvinden, alleen niet twee definitieve checkpoints. Er is ook geen garantie over wanneer of waar het volgende voltooide controlepunt zal plaatsvinden, alleen dat als er een kettingsplitsing zou plaatsvinden, je achterover moet leunen en wachten tot er ergens een definitief blok verschijnt, en zodra dat het geval is, weet je dat dit de " juiste” keten.

Er zijn twee slashing-regels in Casper die deze eigenschap afdwingen:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

De eerste regel verbiedt iedereen om dubbel te stemmen op checkpoints met dezelfde doelhoogte, dus als een validator zou stemmen voor twee verschillende checkpointblokken met doelhoogte 200, zou dat een strafbaar feit zijn. Het doel van deze regel is om te voorkomen dat de keten zich splitst in twee verschillende gerechtvaardigde controlepunten met dezelfde hoogte, aangezien hiervoor 2/3 + 2/3 = 4/3 van het totale aantal validatorstemmen nodig is, wat inhoudt dat ten minste een derde van de validators brak de slashing-regels. Zoals we eerder zagen, is het echter mogelijk voor gerechtvaardigde controlepunten om bepaalde blokhoogten te "overslaan". Wat verhindert dat een ketting zich in verschillende doelhoogten splitst? Kan controlepunt 200 bijvoorbeeld niet overgaan in gerechtvaardigde controlepunten bij 300 en 400 zonder dat iemand wordt neergehaald?

Dat is waar de tweede regel van pas komt, die in feite voorkomt dat validators stemmen "sandwichen" in andere stemmen. Als een validator bijvoorbeeld voor zowel 300 → 500 als 200 → 700 stemde, zou dat een strafbaar feit zijn. In het geval van een ketensplitsing, wordt het voor de andere tak, zodra een tak een definitief controlepunt ziet, onmogelijk om daarna een gerechtvaardigd controlepunt te zien, tenzij ten minste een derde van de validators regel #2 overtreedt.

Om te zien waarom, stel dat de blockchain zich splitste in gerechtvaardigde checkpoints 500→800 en 500→900, dan zag de eerste ketting op een gegeven moment een definitief checkpoint met link 1700→1800. Aangezien zowel 1700 als 1800 alleen kunnen worden gerechtvaardigd op splitsing #1 (ervan uitgaande dat niemand de eerste slash-regel heeft overtreden), is de enige manier waarop splitsing #2 na 1800 een gerechtvaardigd checkpoint zou kunnen zien, als er een gestemde link was tussen hoogte H1800. Maar aangezien deze stemming de 1700 → 1800-link zou "sandwichen" en een tweederde van de stemmen zou vereisen, en de 1700 → 1800 al met een tweederde van de stemmen was aangenomen, zou ten minste een derde van de validators regel # moeten overtreden 2. Het Casper-papier heeft een mooi diagram dat deze eigenschap demonstreert:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

En dat is het, gewoon de Casper-regels volgen en je zit goed!

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Lijkt vrij eenvoudig, toch? Ik weet zeker dat PoS slashing alleen zou gebruiken als een absoluut laatste redmiddel om consensus te behouden, en niet als een afpersingsmechanisme om validators onder druk te zetten om zich op een bepaalde manier te gedragen ... toch?

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Dit brengt ons bij ons derde principe achter PoS: er zijn geen regels. De "regels" zijn wat iedereen zegt dat ze zijn.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

De ene dag zou je node technisch gezien elk Casper-gebod tot op de letter kunnen volgen, en de volgende dag zou je spaargeld kunnen worden verlaagd omdat je iets deed dat iedereen niet leuk vond. Die ene keer een "team rode" transactie goedgekeurd? Morgen zou de "teamblauwe" meerderheid je kunnen afsnijden. Of misschien heb je het tegenovergestelde gedaan en te veel "team rode" transacties weggelaten? Morgen kan de meerderheid van de "team rode" je voor censuur afsnijden. De mogelijkheid om te snijden gaat veel verder dan de beperkte reikwijdte van OFAC (Office of Foreign Assets Control) censuur. PoS is als een non-stop Mexicaanse impasse, waar de impliciete dreiging van snijden altijd aanwezig is.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Het zou me niet verbazen als in een controversiële harde vork beide partijen de validatieregels van de andere vork hard coderen, voor het geval ze iedereen willen straffen die zich bij de "verkeerde" kant heeft aangesloten. Dit zou natuurlijk een nucleaire optie zijn, en net als kernwapens zou elke partij er alleen voor kunnen kiezen om als vergelding toe te slaan. Ik vermoed dat de meeste individuele validators neutraal zijn in die zin dat ze de prioriteit zouden geven aan financieel zelfbehoud boven politieke zelfopoffering, maar uiterlijk een kant zouden kunnen kiezen als ze zouden voelen dat dit de juiste zet was om te voorkomen dat ze werden gesneden.

Hoe laat is het?

Nu we de basis van checkpoints en slashing kennen, kunnen we verder gaan met het daadwerkelijke algoritme dat in Ethereum wordt gebruikt, Gasper genaamd. Dit is een samentrekking van Casper, die we al hebben behandeld, en GHOST, een strategie voor het selecteren van de "beste" keten van blokken tussen controlepunten.

Het eerste dat je over Gasper moet begrijpen, is dat tijd zelf de belangrijkste onafhankelijke variabele is. De echte tijd is verdeeld in eenheden van twaalf seconden die 'slots' worden genoemd, waarbij elk slot maximaal één blok bevat. Deze slots vormen vervolgens grotere groepen die 'tijdperken' worden genoemd, waarbij elk tijdperk verwijst naar één controlepunt. Elk tijdperk bevat 32 slots, waardoor ze 6.4 minuten lang zijn.

Het is vermeldenswaard dat dit paradigma de causale relatie tussen tijd en blokproductie omdraait in vergelijking met PoW. In PoW worden blokken geproduceerd omdat er een geldige hash is gevonden, niet omdat er voldoende tijd is verstreken. Maar in Gasper worden blokken geproduceerd omdat er genoeg tijd in de echte wereld is verstreken om naar het volgende slot te gaan. Ik kan me alleen maar de lastige timingfouten voorstellen die zo'n systeem kan tegenkomen, vooral wanneer het niet slechts één programma is dat op één computer draait, maar tienduizenden computers die over de hele wereld synchroon proberen te draaien. Hopelijk zijn de Ethereum-ontwikkelaars bekend met de onwaarheden die programmeurs geloven over tijd.

Stel nu dat u een validatorknooppunt opstartte en dat u de blockchain voor de eerste keer synchroniseerde. Alleen omdat je hebt opgemerkt dat bepaalde blokken naar bepaalde tijdstempels verwijzen, hoe kon je er dan zeker van zijn dat die blokken echt op die tijd werden geproduceerd? Aangezien blokproductie geen werk vereist, zou een kwaadwillende groep validators dan niet vanaf de eerste dag een volledig nep-blockchain kunnen simuleren? En als je twee concurrerende blockchains zou zien, hoe zou je dan weten welke waar is?

Dit brengt ons bij ons vierde principe achter PoS, namelijk dat PoS vertrouwt op subjectieve waarheid.

Er is gewoon geen objectieve manier om te kiezen tussen twee concurrerende blockchains, en alle nieuwe knooppunten van het netwerk moeten uiteindelijk vertrouwen op een bestaande bron van waarheid om elke dubbelzinnigheid op te lossen. Dit staat in schril contrast met Bitcoin, waar de "echte" ketting altijd degene is met het meeste werk. Het maakt niet uit of duizend knooppunten je keten X vertellen, als een enkel knooppunt keten Y uitzendt en het meer werk bevat, dan is Y de juiste blockchain. De header van een blok kan zijn waarde bewijzen, waardoor vertrouwen volledig wordt weggenomen.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Door te vertrouwen op subjectieve waarheid, herintroduceert PoS de behoefte aan vertrouwen. Nu geef ik toe, ik ben misschien een beetje bevooroordeeld, dus als je de andere kant wilt lezen, Buterin schreef een essay met zijn opvattingen hier. Ik geef toe dat in de praktijk een kettingsplitsing niet zo waarschijnlijk lijkt, gezien de Casper-regels, maar hoe dan ook, ik krijg enige gemoedsrust, wetende dat dit niet eens een mogelijkheid is in Bitcoin.

Productie en stemmen blokkeren

Nu we bekend zijn met slots en tijdperken, hoe worden individuele blokken geproduceerd en gestemd? Aan het begin van elk tijdperk wordt de volledige validatorset "willekeurig" verdeeld in 32 groepen, één voor elk slot. Tijdens elk slot wordt één validator "willekeurig" gekozen om de blokproducent te zijn, terwijl de anderen worden gekozen om de kiezers (of "attestors") te zijn. Ik zet "willekeurig" tussen aanhalingstekens omdat het proces deterministisch moet zijn, omdat iedereen het ondubbelzinnig eens moet zijn over dezelfde validatorsets. Dit proces moet echter ook niet-exploiteerbaar zijn, omdat het een zeer bevoorrechte positie is om de blokproducent te zijn vanwege de extra beloningen die beschikbaar zijn van de extraheerbare waarde van de miner (MEV), of zoals het wordt hernoemd, "maximale extraheerbare waarde". “Ethereum is een donker bos’ is hier goed over te lezen.

Als een blok eenmaal is geproduceerd, hoe stemmen of "bevestigen" de andere validators het dan? Blokvoorstel wordt verondersteld binnen de eerste helft (zes seconden) van een slot te gebeuren en binnen de tweede helft te bevestigen, dus in theorie zou er voldoende tijd moeten zijn voor de attestors om op het blok van hun slot te stemmen. Maar wat gebeurt er als de blokaanbieder offline is of niet communiceert of voortbouwt op een slecht blok? De taak van een attestor is niet per se om te stemmen op het blok van dat slot, maar eerder op het blok dat er op dat moment vanuit hun gezichtspunt het beste uitziet. Onder normale omstandigheden zal dit meestal het blok van dat slot zijn, maar het kan ook een ouder blok zijn als er iets mis is gegaan. Maar wat betekent "er er het beste uitzien" technisch gezien? Dit is waar het GHOST-algoritme binnenkomt.

GHOST staat voor "Greediest Heaviest Observed SubTree" en is een hebzuchtig recursief algoritme voor het vinden van het blok met de meest "recente activiteit". Kortom, dit algoritme kijkt naar alle recente blokken in de vorm van een boom en loopt door de boom door gretig de tak te selecteren met de meest cumulatieve attesten op die hele subtak. Alleen het meest recente attest van elke validator telt mee voor deze som, en uiteindelijk komt dit proces op een bladblok terecht.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Attesten zijn niet alleen stemmen voor het huidige beste blok, maar ook voor het meest recente controlepunt dat naar dat blok leidt. Het is vermeldenswaard dat in Gasper checkpoints gebaseerd zijn op tijdperken in plaats van blokhoogten. Elk tijdperk verwijst naar precies één controlepuntblok, ofwel het blok in het eerste slot van dat tijdperk, of als dat slot werd overgeslagen, dan het meest recente blok vóór dat slot. Hetzelfde blok kan theoretisch een checkpoint zijn in twee verschillende tijdperken als een tijdperk op de een of andere manier elk slot overslaat, dus checkpoints worden weergegeven met (tijdperk, blok)paren. In het onderstaande diagram staat EBB voor "epoche grensblok" en vertegenwoordigt het het controlepunt voor een specifiek tijdperk, terwijl "LEBB" staat voor "laatste tijdperk grensblok" en het meest recente controlepunt in het algemeen vertegenwoordigt.

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Net als Casper wordt een controlepunt gerechtvaardigd zodra het totale aantal attesten de drempel van tweederde overschrijdt, en definitief als het onmiddellijk werd gevolgd door een ander gerechtvaardigd controlepunt in het volgende tijdperk. Hieronder ziet u een voorbeeld van hoe deze stemming werkt:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Er zijn twee slashing-voorwaarden in Gasper, die analoog zijn aan de slashing-regels in Casper:

  1. Geen twee keer stemmen in hetzelfde tijdperk.
  2. Geen enkele stem kan epoch-checkpoints bevatten die de epoche-checkpoints van een andere stem "sandwichen".

Ondanks dat ze gebaseerd zijn op tijdperken in plaats van blokhoogtes, zorgen de Casper-regels er nog steeds voor dat er geen twee definitieve controlepunten op verschillende ketens kunnen plaatsvinden, tenzij een derde van de validators kan worden verlaagd.

Het is ook vermeldenswaard dat attesten in de blokken zelf zijn opgenomen. Vergelijkbaar met hoe een blok in PoW zichzelf rechtvaardigt met behulp van zijn hash, rechtvaardigt een definitief controlepunt in PoS zichzelf met behulp van al zijn eerdere attesten. Wanneer iemand de slashing-regels overtreedt, worden die slechte attesten opgenomen in een blok dat de overtreding bewijst. Er is ook een kleine beloning voor de blokproducent die de overtreding heeft opgenomen, om een ​​stimulans te bieden om regelovertreders te straffen.

vorken

Het is interessant om na te denken over wat er zou gebeuren in het geval van een vork. Om snel samen te vatten, verwijst een vork naar een verandering in de consensusregels, en ze zijn er in twee varianten: harde vorken en zachte vorken. In een harde vork zijn de nieuwe regels niet achterwaarts compatibel, wat mogelijk kan resulteren in twee concurrerende blockchains als niet iedereen overschakelt. In een soft fork zijn de nieuwe regels restrictiever dan de oude regels, terwijl ze achterwaarts compatibel blijven. Zodra meer dan 50% van de miners of validators de nieuwe regels gaan handhaven, schakelt het consensusmechanisme over zonder de keten te splitsen. Soft forks worden over het algemeen geassocieerd met upgrades en nieuwe transactietypes, maar technisch gezien omvatten ze ook elke vorm van censuur die wordt afgedwongen door een meerderheid van 51%. PoS heeft ook een derde type "fork" dat niet aanwezig is in PoW: een kettingsplitsing zonder enige wijziging van de regels. Maar aangezien we dit al hebben behandeld, zullen we ons concentreren op harde en zachte vorken.

Laten we beginnen met het eenvoudigste geval: een op zichzelf staande controversiële harde vork. Met controversieel bedoel ik een regelwijziging die de gebruikers politiek verdeelt. Een bugfix of kleine technische wijziging zou waarschijnlijk niet controversieel zijn, maar zoiets als het veranderen van de validatiebeloning zou dat waarschijnlijk wel zijn. Als een harde vork controversieel genoeg was, zou dit kunnen leiden tot een kettingsplitsing en zou het economisch worden opgelost door gebruikers die de ene ketting verkopen en de andere kopen. Dit zou vergelijkbaar zijn met de Bitcoin Cash-splitsing in 2017, die een duidelijke winnaar lijkt te hebben:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Stel nu dat de validators op een dag zouden rondhangen en besloten dat ze niet genoeg betaald kregen, en besloten dat ze hun beloningen moesten verhogen van 5% per jaar naar 10% per jaar. Dit zou een duidelijke afweging zijn ten gunste van de validators ten koste van de niet-validators, die nu meer verwaterd zouden raken. In het geval van een kettingsplitsing, welke ketting zou winnen?

Dit leidt tot ons vijfde principe van PoS, namelijk dat geld macht is.

Van de 120M ETH die er bestaat, wordt momenteel meer dan 10% ingezet, zoals te zien is in de onderstaande grafiek:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

Gegeven een omstreden hard fork tussen de validators en niet-validators, ervan uitgaande dat alle niet-validators de nieuwe keten op de markt hebben verkocht en alle validators de oude keten op de markt, dan zou in theorie de oude keten winnen, aangezien de meerderheid van de ETH zou nog steeds in het bezit zijn van niet-validators (90% versus 10%). Maar er zijn nog een paar dingen om rekening mee te houden. Ten eerste zouden de validators na elke ketensplitsing nog steeds "in control" zijn over beide blockchains. Als de validators de andere keten konden beïnvloeden, zouden ze gestimuleerd kunnen worden om deze te laten mislukken. Ten tweede is er ook de nucleaire optie die eerder is besproken, waarbij de nieuwe keten iedereen die de oude keten nog valideert zou kunnen vernietigen om ze onder druk te zetten om mee te doen. Ten slotte zouden de validators waarschijnlijk aanzienlijke sociale en politieke invloed uitoefenen op alle anderen in het netwerk. Als Buterin, de Ethereum Foundation en de beurzen allemaal samen besloten om de inzetbeloning te verhogen, vind ik het moeilijk te geloven dat reguliere Ethereum-gebruikers en validators de oude fork in stand kunnen houden en tegelijkertijd waardevoller kunnen maken door koopdruk.

Overgaand op zachte vorken, wat zou er gebeuren in een controversiële zachte vork, zoals OFAC-censuur? De validators zijn redelijk gecentraliseerd, zoals we kunnen zien in de onderstaande grafiek:

Een technische en diepgaande analyse van de afwegingen die het consensusmechanisme van Ethereum maakt bij de overstap naar proof-of-stake en hoe proof-of-work verschilt.

(bron)

In tegenstelling tot PoW waar mijnwerkers kunnen van pool wisselen met een druk op de knop worden validators in Ethereum opgesloten in een uitzetadres totdat ze een exit-transactie verwerken. Als Lido en de topbeurzen zouden worden uitgevoerd om bepaalde transacties te censureren, zouden ze gemakkelijk de tweederdemeerderheid kunnen halen die nodig is om controlepunten te beslissen. Eerder zagen we hoe Buterin en de andere ETH-validators konden proberen een censuur-soft fork tegen te gaan met hun eigen counter-censuur-hard fork, terwijl ze de censors in het proces snijden. Zelfs als ze erin zouden slagen een vork te creëren, zou er veel waarde worden vernietigd, zowel door het snijden als door het verlies van vertrouwen.

Sluiting Gedachten

In dit essay hebben we gekeken hoe PoS het probleem van dubbele uitgaven met Gasper oplost, een combinatie van checkpoint/slashing-regels genaamd Casper, en een 'best block'-stemregel genaamd GHOST. Om samen te vatten, Gasper verdeelt de tijd in eenheden die slots worden genoemd, waarbij elk slot maximaal één blok kan hebben, en de slots zijn gegroepeerd in tijdperken, waarbij elk tijdperk verwijst naar één controlepunt. Als een tweederde meerderheid op een checkpoint stemt, wordt het gerechtvaardigd, en als er twee gerechtvaardigde checkpoints achter elkaar plaatsvinden, wordt de eerste van die twee checkpoints definitief. Als een controlepunt eenmaal is voltooid, kan een parallelle keten onmogelijk worden voltooid, tenzij een derde van de validators zou kunnen worden afgebroken.

In dit proces hebben we vijf principes van PoS blootgelegd:

  1. PoS hanteert een negatieve (op boetes gebaseerde) stimuleringsstructuur.
  2. PoS is een geautoriseerd systeem.
  3. PoS heeft geen regels.
  4. PoS vertrouwt op subjectieve waarheid.
  5. In PoS is geld macht.

Elk van deze principes heeft tegengesteld gedrag in PoW:

  1. PoW maakt gebruik van een positief (op beloningen gebaseerd) beloningssysteem.
  2. PoW is een systeem zonder toestemming (iedereen kan mijnbouw op elk moment starten of stoppen).
  3. In PoW worden vorken die de regels veranderen genegeerd.
  4. PoW vertrouwt op objectieve waarheid.
  5. In PoW dienen miners de gebruikers en hebben ze zelf weinig macht.

Ik vind dat iedereen ernaar moet streven om het soort wereld te creëren waarin ze willen leven. Als je, zoals ik, in een wereld zonder toestemming wilt leven waar je controle hebt over je geld, waar hard werken wordt beloond en passief eigendom een aansprakelijkheid en waar uw geld zijn waarde tot ver in de toekomst zal opslaan zonder in een opwelling te veranderen, dan wilt u misschien goed nadenken over de afwegingen tussen PoW en PoS en vechten voor de principes waarnaar u wilt leven.

Dit is een gastpost van Scott Sullivan. De geuite meningen zijn geheel van henzelf en komen niet noodzakelijk overeen met die van BTC Inc. of Bitcoin Magazine.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?