Podobné články

Průvodce Bitcoinerem po proof-of-stake

Technická a hloubková analýza kompromisů, které mechanismus konsensu Etherea přináší při přechodu na proof-of-stake a jak se liší proof-of-work.

Toto je názorový editorial, jehož autorem je Scott Sullivan.

Za normálních okolností se bitcoináři o dění v Shitcoin-landu příliš nezajímají, ale nyní, když Ethereum přešlo na proof-of-stake (PoS), se na bitcoinovém Twitteru strhl pořádný humbuk. Samotná síť Bitcoin samozřejmě zůstane nedotčena, ale myslím, že tento „upgrade“ přesto stojí za pozornost. Nyní, když se Ethereum očistilo od „špinavých“ a „plýtvavých“ externalit spojených s proof-of-work (PoW), můžeme očekávat, že v narativní válce dojde k sejmutí rukavic, a myslím si, že by bitcoináři měli být připraveni vrátit úder

Naučit se, jak funguje PoS, je opravdu dobrý způsob, jak si osvojit rozdíly a kompromisy mezi PoW a PoS. I když jsem už dříve viděl všechny argumenty na vysoké úrovni proti PoS – že PoS je více povolovací, centralizující a oligarchický – přiznám se, že bez zkoumání detailů mi to všechno připadalo tak nějak rukama. Když se do algoritmu PoS skutečně ponoříme, můžeme začít vidět, jak všechny tyto vlastnosti přirozeně vyplývají z prvních principů. Pokud vás tedy zajímá, jak algoritmus PoS funguje a proč vede k těmto vlastnostem, pak čtěte dál!

Řešení problému dvojího výdaje

Začněme rychlou rekapitulací problému, který se snažíme vyřešit. Předpokládejme, že máme velkou skupinu účastníků kryptoměnové sítě, kteří se snaží udržovat decentralizovanou účetní knihu. Zde je problém: Jak lze přidávat nové transakce do účetní knihy všech tak, aby se všichni shodli na tom, které nové transakce jsou „správné“? PoW tento problém řeší poměrně elegantně: Transakce jsou seskupeny do bloků, přičemž vytvoření každého bloku vyžaduje velké množství výpočetní práce. Množství potřebné práce se může pohybovat nahoru nebo dolů, aby se zajistilo, že bloky budou vytvářeny v průměru každých deset minut, což dává každému novému bloku dostatek času na rozšíření po celé síti, než je vytvořen další. Jakákoli nejasnost se řeší výběrem řetězce s největším množstvím práce a dvojímu utrácení se zabrání díky tomu, že je zapotřebí alespoň 51 % globální hashpower, aby se blok s dvojím utrácením dohnal.

Předpokládejme však, že nyní chceme zahodit klíčový poznatek Satoshiho Nakamota, který toto všechno umožnil. Koneckonců, ty otravné ASICy jsou hlučné a otravné a spotřebují více energie než všechna soukromá letadla George Sorose, Billa Gatese a Hillary Clintonové dohromady. Existuje nějaký způsob, jak se jednoznačně shodnout na tom, které transakce jsou pravdivé, jen tím, že si to vyříkáme?

Ethereum proof-of-stake navrhuje tento problém vyřešit pomocí dvou klíčových složek. První z nich je čas od času vytvořit speciální „kontrolní bloky“, jejichž účelem je poskytnout všem v síti ujištění o „pravdivosti“ systému v různých časových okamžicích. Vytvoření kontrolního bodu vyžaduje dvoutřetinovou většinu hlasů kůlů, takže existuje určitá jistota, že se většina ověřovatelů shodla na tom, jaká byla v daném okamžiku skutečně pravda. Druhou složkou je trestání uživatelů za přidávání nejednoznačnosti do sítě, což je proces známý jako „slashing“ Pokud by například validátor vytvořil fork nebo hlasoval pro starší sidechain (podobně jako při 51% útoku), jeho podíl by byl slashed. Validátoři mohou být také slashováni za nečinnost, ale ne v takové míře.

To nás přivádí k našemu prvnímu principu PoS, který spočívá v tom, že PoS je založen na negativním (sankčním) motivačním systému.

To silně kontrastuje s Bitcoinem a systémem proof-of-work, který je založen na pozitivním (na odměnách založeném) motivačním systému. V Bitcoinu se těžaři mohou pokoušet porušovat pravidla – špatně formátované bloky, neplatné transakce a podobně -, ale tyto bloky budou plnohodnotnými uzly prostě ignorovány. Nejhorším scénářem je trocha zbytečně vynaložené energie. Těžaři také mohou stavět na starších blocích, ale bez 51 % hashpower tyto řetězce nikdy nedoženou, opět jen plýtvají energií. Každý těžař, který se těchto akcí účastní, ať už záměrně, nebo ne, se nemusí obávat, že by přišel o své nashromážděné bitcoiny nebo těžební stroje, ale nedostane nové odměny. Spíše než žít ve strachu mohou těžaři bitcoinů chybovat a riskovat.“

Svět je pro validátory žijící v zemi Ethereum zcela odlišný. Místo toho, aby tvrdě pracovali a byli odměňováni za přidávání bezpečnosti do sítě, validátoři žádnou skutečnou práci nedělají, ale musí dávat pozor, aby se jejich uzel nikdy nechoval špatně, aby nesledovali, jak jejich úspory shoří v plamenech. Pokud by byly v síti provedeny nějaké navrhované změny, první instinkt validátora by byl podřídit se všemu, co dělají všichni ostatní, jinak by riskoval, že bude podříznut. Být validátorem je jako chodit každý den po skořápkách.

(Source)

Mimochodem, život v negativním motivačním systému je podle FAQ spoluzakladatele sítě Ethereum Vitalika Buterina jednou z, ehm, „výhod“ proof-of-stake:

(Source)

Jak by tedy lomítko vlastně fungovalo na technické úrovni? Nemuseli bychom nejprve vytvořit seznam všech validátorů, abychom vůbec měli co lomítkovat? Odpověď zní ano. Aby se člověk mohl stát validátorem v Ethereu, musí nejprve přesunout ETH na speciální „staking“ adresu. Tento seznam je potřeba nejen pro slashing, ale také pro hlasování, protože pro kontrolní bloky je potřeba dvoutřetinová většina hlasů

Udržování seznamu všech validátorů má některé zajímavé důsledky. Jak těžké je se k němu připojit? Jak těžké je odejít? Mohou validátoři hlasovat o statusu ostatních validátorů?

To nás přivádí k našemu druhému principu PoS, který spočívá v tom, že PoS je systém s povolením

Prvním krokem k tomu, abyste se stali validátorem, je vložit nějaké ETH na speciální stakingovou adresu. Kolik ETH? Minimální požadovaná částka je 32 ETH, což je v době psaní tohoto článku přibližně 50 000 USD. Pro kontext: slušný těžební rig na bitcoiny se obvykle pohybuje v řádu jednociferných tisíců dolarů a domácí těžař může začít s jedním S9 za pár stovek dolarů. Abychom byli spravedliví, vysoký vstupní poplatek za ETH má své technické opodstatnění, protože vyšší vklad znamená méně validátorů, což snižuje propustnost

Takže poplatek za vklad je vysoký, ale alespoň se každý, kdo vlastní 32 ETH, může kdykoli svobodně připojit nebo odejít, ne? Ne tak docela. Existují bezpečnostní rizika, pokud by velké koalice validátorů vstoupily nebo vystoupily všechny ve stejnou dobu. Pokud by například většina sítě odešla všichni najednou, pak by mohli dvakrát utratit finalizovaný blok přehráním forku, ve kterém nikdy neodešli, aniž by byli na obou řetězcích podříznuti. Aby se toto riziko zmírnilo, mají vstupní a výstupní rampy zabudovaný limit propustnosti. V současné době je tento limit nastaven na max(4,|V|/65536) validátorů za epochu (každých 6,4 minuty) a je stejný pro vstup i výstup. To znamená zhruba jednu plnou sadu validátorů každých deset měsíců.

Mimochodem, i když je v současné době možné, aby validátory zveřejnily „výstupní“ transakci a přestaly validovat, kód pro skutečný výběr prostředků ještě nebyl ani napsán. Zní to trochu jako „Hotel California“…

(Source)

Ještě jedna poznámka k podnětům, které stojí za schvalováním nových validátorů. Předpokládejme, že jste akcionářem velké a stabilní společnosti, která vyplácí pravidelně každé čtvrtletí dividendy. Mělo by smysl rozdávat nové akcie zdarma? Samozřejmě že ne, protože by se tím rozředily dividendy všech stávajících akcionářů. Podobná motivační struktura existuje v PoS, protože každý nový validátor rozmělňuje příjmy všech stávajících validátorů.

Teoreticky by validátoři mohli jednoduše cenzurovat každou jednotlivou transakci, která přidá nového validátora; v praxi si však myslím, že takový tupý přístup by byl nepravděpodobný. Bylo by to velmi nápadné a přes noc by to zničilo image „decentralizace“ Etherea, což by mohlo vést k pádu ceny. Myslím, že by se místo toho použil jemnější přístup. Například by se pravidla mohla v průběhu času pomalu měnit, čímž by se ztížila možnost stát se validátorem, přičemž by se nabízely výmluvy jako „bezpečnost“ nebo „efektivita“ Jakákoli politika, která by obohacovala stávající validátory na úkor nových validátorů, by měla finanční pozadí, ať už by byla vyslovena nahlas, nebo ne. Začínáme chápat, proč by PoS směřovala k oligarchii.

(Source)

Přehled Casperova algoritmu

Nyní, když známe strategii PoS na vysoké úrovni, jak vlastně algoritmus funguje? Hlavní myšlenky stojící za kontrolními body a slashingem byly předloženy v algoritmu nazvaném Casper, takže začneme tam. Casper sám o sobě vlastně nespecifikuje nic o tom, jak vytvářet bloky, ale spíše poskytuje rámec pro to, jak na nějaký již existující strom blockchainu navrstvit strategii checkpoint/slashing.

Nejprve se zvolí nějaká libovolná konstanta (C) jako číslo „checkpoint spacing“, které určuje, kolik bloků se vyskytuje mezi kontrolními body; například pokud C=100, pak by se kontrolní body vyskytovaly v blocích 0, 100, 200 atd. Poté všechny uzly hlasují o tom, který blok kontrolního bodu má být dalším „oprávněným“ kontrolním bodem. Spíše než o jednotlivých blocích izolovaně hlasují validátory ve skutečnosti o dvojicích kontrolních bodů (s,t), které spojují nějaký dříve zdůvodněný zdrojový kontrolní bod „s“ s nějakým novým cílovým kontrolním bodem „t“ Jakmile propojení kontrolních bodů (s,t) získá dvoutřetinovou většinu hlasů, pak se „t“ stane novým oprávněným kontrolním bodem. Následující diagram ukazuje příklad stromu kontrolních bodů:

(Source)

V tomto diagramu se funkce h(b) vztahuje k „výšce kontrolního bodu“, např. k násobku 100 bloku. Možná jste si všimli, že ne každý stý blok musí být nutně ospravedlněn, což se může stát, pokud hlasování selhalo v určité výšce. Předpokládejme například, že ve výšce 200 obdržely dva samostatné kontrolní body každý 50 % hlasů. Protože dvojí hlasování je přestupek, který se dá škrtnout, systém by se „zasekl“, ledaže by někteří ověřovatelé dobrovolně škrtli svůj vlastní podíl, aby dosáhli dvoutřetinového hlasování. Řešením by bylo, kdyby všichni „přeskočili“ kontrolní bod 200 a „zkusili to znovu“ v bloku 300.

To, že je kontrolní bod oprávněný, neznamená, že je finalizovaný. Aby se kontrolní bod počítal jako finalizovaný, musí po něm bezprostředně následovat další odůvodněný kontrolní bod v nejbližší možné výšce. Pokud by například kontrolní body 0, 200, 400, 500 a 700 byly všechny odůvodněné a spojené dohromady, počítal by se jako „finalizovaný“ pouze kontrolní bod 400, protože za ním jako jediným bezprostředně následuje další odůvodněný kontrolní bod.

Protože je terminologie velmi přesná, zopakujme si naše tři kategorie. „Kontrolní bod“ je každý blok, který se vyskytuje ve výšce C*n, takže pokud by C=100, každý blok s výškou 0, 100, 200, 300 atd. by byl kontrolním bodem. I kdyby bylo vytvořeno více bloků s výškou 200, oba by byly „kontrolními body“ Kontrolní bod je pak „oprávněný“, pokud je buď kořenovým blokem s výškou 0, nebo pokud dvě třetiny validátorů hlasovaly pro vytvoření vazby mezi nějakým dříve oprávněným kontrolním bodem a aktuálním kontrolním bodem. Ospravedlněný kontrolní bod je pak „finalizován“, pokud se pak propojí s jiným ospravedlněným kontrolním bodem v další možné výšce. Ne každý kontrolní bod se musí nutně stát oprávněným a ne každý oprávněný kontrolní bod se musí nutně stát finalizovaným, a to ani v konečném řetězci.

Pravidla pro řezání v Casperu

Pravidla pro řezání v Casperu jsou navržena tak, že není možné, aby dva finalizované kontrolní body existovaly ve dvou různých rozvětveních, pokud alespoň jedna třetina validátorů neporušila pravidla pro řezání.

Jinými slovy, jako jednoznačné bloky „pravdy“ by se měly počítat pouze finalizované kontrolní body. Je dokonce možné, aby se na obou stranách vidlice vyskytly dva oprávněné kontrolní body, jen ne dva finalizované kontrolní body. Neexistuje také žádná záruka, kdy nebo kde se objeví další finalizovaný kontrolní bod, pouze to, že pokud by došlo k rozdělení řetězce, pak byste měli sedět a čekat, dokud se někde neobjeví finalizovaný blok, a jakmile se tak stane, pak víte, že je to „správný“ řetězec.

V Casperu existují dvě pravidla lomítka, která tuto vlastnost vynucují:

(Source)

První pravidlo zakazuje komukoli hlasovat dvakrát pro kontrolní body se stejnou cílovou výškou, takže pokud by validátor hlasoval pro dva různé bloky kontrolních bodů s cílovou výškou 200, jednalo by se o přestupek, který lze podřezat. Účelem tohoto pravidla je zabránit rozdělení řetězce na dva různé oprávněné kontrolní body se stejnou výškou, protože k tomu by bylo zapotřebí 2/3 + 2/3 = 4/3 všech hlasů validátorů, což znamená, že alespoň třetina validátorů porušila pravidla pro lomítko. Jak jsme však viděli dříve, je možné, aby ospravedlněné kontrolní body „přeskočily“ určité výšky bloků. Co brání rozdělení řetězce na různé výšky cílů? Nemohl by se například kontrolní bod 200 rozvětvit na ospravedlněné kontrolní body na 300 a 400, aniž by byl někdo proříznut?

Právě zde přichází ke slovu druhé pravidlo, které v podstatě brání validátorům v „sendvičování“ hlasů uvnitř jiných hlasů. Pokud by například validátor hlasoval pro 300→500 i 200→700, jednalo by se o přestupek, který lze podříznout. V případě řetězového rozdělení, jakmile jedna větev uvidí dokončený kontrolní bod, je pro druhou větev nemožné, aby poté viděla oprávněný kontrolní bod, pokud alespoň třetina validátorů neporušila pravidlo č. 2.

Abychom viděli proč, předpokládejme, že se blokový řetězec rozvětvil na ospravedlněné kontrolní body 500→800 a 500→900, a pak v určitém okamžiku první řetězec viděl finalizovaný kontrolní bod s odkazem 1700→1800. Protože 1700 i 1800 mohou být ospravedlněny pouze na forku #1 (za předpokladu, že nikdo neporušil první pravidlo lomítka), jediný způsob, jak by fork #2 mohl vidět ospravedlněný kontrolní bod po 1800, je, že by existoval nějaký hlasovaný odkaz mezi výškami H<1700 and H>1800. Protože by však toto hlasování „překlenulo“ spojení 1700→1800 a vyžadovalo by dvě třetiny hlasů, a spojení 1700→1800 již dvěma třetinami hlasů prošlo, musela by pravidlo č. 2 porušit alespoň třetina ověřovatelů. Casperův článek obsahuje pěkný diagram, který tuto vlastnost demonstruje:

(Source)

A to je vše, stačí dodržovat Casperova pravidla a je to v pořádku!

(Source)

Vypadá to docela jednoduše, že? Jsem si jistý, že PoS by vždy použil slashing jen jako absolutně poslední možnost k udržení konsensu, a ne jako vyděračský mechanismus k nátlaku na validátory, aby se chovali určitým způsobem… že?

(Source)

Tím se dostáváme k naší třetí zásadě, která stojí za PoS: Neexistují žádná pravidla. „Pravidla“ jsou taková, jaká říkají všichni ostatní

(Source)

Jeden den může váš uzel technicky do puntíku dodržovat všechna Casperova přikázání a druhý den vám mohou být úspory kráceny, protože děláte něco, co se ostatním nelíbí. Schválili jste jednou transakci „červeného týmu“? Zítra by vás mohla podříznout většina „modrého týmu“. Nebo jste možná udělali pravý opak a vynechali příliš mnoho transakcí „červeného týmu“? Zítra by vás „týmová červená“ většina mohla seřezat za cenzuru. Schopnost omezit cenzuru jde daleko za omezený rozsah cenzury OFAC (Úřad pro kontrolu zahraničních aktiv). PoS je jako nepřetržitá mexická přestřelka, kde je implicitní hrozba podříznutí neustále přítomná.

(Source)

Nedivil bych se, kdyby při sporném hard forku obě strany natvrdo zakódovaly validační pravidla druhého forku pro případ, že by chtěly potrestat každého, kdo by se přidal na „špatnou“ stranu. Samozřejmě by to byla jaderná varianta a stejně jako u atomovek by se každá strana mohla rozhodnout udeřit jen v odvetě. Odhadoval bych, že většina jednotlivých validátorů je neutrální v tom smyslu, že by upřednostnili finanční sebezáchovu před politickým sebeobětováním, ale mohli by se navenek postavit na jednu stranu, pokud by cítili, že je to správný krok, aby se vyhnuli lomcování.“

Kolik je hodin?

Nyní, když známe základy kontrolních bodů a lomcování, můžeme přejít k samotnému algoritmu používanému v Ethereu, který se nazývá Gasper. Jedná se o portmanteau ze slov Casper, které jsme již probrali, a GHOST, strategie pro výběr „nejlepšího“ řetězce bloků mezi kontrolními body.

První věc, kterou je třeba u Gasperu pochopit, je, že hlavní nezávislou proměnnou je samotný čas. Čas reálného světa je rozdělen na dvanáctisekundové jednotky zvané „sloty“, přičemž každý slot obsahuje nejvýše jeden blok. Tyto sloty pak tvoří větší skupiny zvané „epochy“, přičemž každá epocha se vztahuje k jednomu kontrolnímu bodu. Každá epocha obsahuje 32 slotů, což představuje délku 6,4 minuty.

Stojí za povšimnutí, že toto paradigma obrací kauzální vztah mezi časem a produkcí bloků ve srovnání s PoW. V PoW se bloky vytvářejí proto, že byl nalezen platný hash, nikoli proto, že uplynul dostatečný čas. V Gasperu se však bloky vytvářejí proto, že uplynulo dost reálného času na to, aby bylo možné se dostat k dalšímu slotu. Dovedu si představit, s jakými ošemetnými časovými chybami se takový systém může setkat, zejména když nejde jen o jeden program běžící na jednom počítači, ale o desítky tisíc počítačů, které se snaží běžet synchronizovaně po celém světě. Doufejme, že vývojáři Etherea jsou obeznámeni s falešnými představami programátorů o čase

Nyní si představte, že byste spouštěli uzel validátoru a poprvé synchronizovali blockchain. Jen proto, že jste vypozorovali, že určité bloky odkazují na určitá časová razítka, jak jste si mohli být jisti, že tyto bloky byly skutečně vytvořeny v těchto časech? Protože výroba bloků nevyžaduje žádnou práci, nemohla by záškodnická skupina validátorů simulovat zcela falešný blockchain od prvního dne? A kdybyste viděli dva konkurenční blockchainy, jak byste poznali, který z nich je pravdivý?

Tím se dostáváme k našemu čtvrtému principu PoS, který spočívá v tom, že PoS se spoléhá na subjektivní pravdu.

Jednoduše neexistuje objektivní způsob, jak vybrat mezi dvěma konkurenčními blockchainy, a každý nový uzel sítě musí nakonec důvěřovat nějakému existujícímu zdroji pravdy, aby vyřešil jakoukoli nejasnost. To výrazně kontrastuje s Bitcoinem, kde je „pravdivý“ řetězec vždy ten, na kterém se nejvíce pracuje. Nezáleží na tom, jestli vám tisíc uzlů říká řetězec X, pokud jediný uzel vysílá řetězec Y a ten obsahuje více práce, pak je Y správný blockchain. Záhlaví bloku může prokázat svou vlastní hodnotu, čímž zcela odpadá potřeba důvěry.

(Source)

Tím, že se PoS spoléhá na subjektivní pravdu, znovu zavádí potřebu důvěry. Teď přiznávám, že jsem možná mírně zaujatý, takže pokud si chcete přečíst i druhou stranu, Buterin napsal esej obsahující jeho názory zde. Uznávám, že v praxi se mi rozdělení řetězce nezdá vzhledem k pravidlům Casperu až tak pravděpodobné, ale bez ohledu na to mám klid, když vím, že to v Bitcoinu ani nepřipadá v úvahu.

Výroba a hlasování o blocích

Když už jsme se seznámili se sloty a epochami, jak se vyrábí a hlasuje o jednotlivých blocích? Na začátku každé epochy je celá sada validátorů „náhodně“ rozdělena do 32 skupin, pro každý slot jedna. Během každého slotu je jeden validátor „náhodně“ vybrán jako výrobce bloku, zatímco ostatní jsou vybráni jako hlasující (nebo „atestátoři“). Slovo „náhodně“ dávám do uvozovek, protože proces musí být deterministický, protože se všichni musí jednoznačně shodnout na stejných sadách validátorů. Tento proces však musí být také nezneužitelný, protože být producentem bloku je vysoce privilegovaná pozice díky dodatečným odměnám dostupným z těžařské extrahovatelné hodnoty (MEV), nebo jak se nyní přejmenovává, „maximální extrahovatelné hodnoty“ skvěle si o tom můžete přečíst v knize „Ethereum je temný les“

Jakmile je blok vytvořen, jak o něm hlasují ostatní validátoři nebo jak ho „potvrzují“? K návrhu bloku by mělo dojít v první polovině (šest sekund) slotu a k atestování v druhé polovině, takže teoreticky by mělo být dost času na to, aby atestující hlasovali o bloku svého slotu. Ale co se stane, když je navrhovatel bloku offline nebo nekomunikuje nebo staví na špatném bloku? Úkolem atestátora není nutně hlasovat o bloku daného slotu, ale spíše o tom, který blok „vypadá z jeho pohledu v danou chvíli nejlépe“. Za normálních podmínek to obvykle bude blok z daného slotu, ale může to být i starší blok, pokud se něco pokazilo. Co však technicky znamená „vypadá nejlépe“? Zde přichází na řadu algoritmus GHOST.

GHOST je zkratka pro „Greediest Heaviest Observed SubTree“ (nejtěžší pozorovaný podstrom) a jedná se o nenasytný rekurzivní algoritmus pro nalezení bloku s nejnovější „aktivitou“ Tento algoritmus v podstatě prohlíží všechny nedávné bloky ve formě stromu a prochází stromem dolů tak, že chamtivě vybírá větev s největším počtem kumulativních atestací na celé této podvětvi. Do tohoto součtu se započítává pouze nejnovější atestace každého ověřovatele a nakonec tento proces skončí na některém listovém bloku.

(Source)

Atestace nejsou jen hlasy pro aktuální nejlepší blok, ale také pro poslední kontrolní bod, který k tomuto bloku vedl. Stojí za zmínku, že v Gasperu jsou kontrolní body založeny na epochách, nikoli na výškách bloků. Každá epocha se vztahuje přesně k jednomu bloku kontrolního bodu, což je buď blok v prvním slotu této epochy, nebo pokud byl tento slot přeskočen, pak nejnovější blok před tímto slotem. Stejný blok může být teoreticky kontrolním bodem ve dvou různých epochách, pokud epocha nějakým způsobem přeskočila každý jednotlivý slot, takže kontrolní body jsou reprezentovány pomocí dvojic (epocha, blok). V následujícím diagramu znamená EBB „epoch boundary block“ a představuje kontrolní bod pro konkrétní epochu, zatímco „LEBB“ znamená „last epoch boundary block“ a představuje celkově poslední kontrolní bod.

(Source)

Podobně jako v Casperu se kontrolní bod stává oprávněným, jakmile celkový počet atestací překročí hranici dvou třetin, a finalizovaným, pokud po něm bezprostředně následoval další oprávněný kontrolní bod v následující epoše. Příklad fungování tohoto hlasování je uveden níže:

(Source)

V Gasperu existují dvě podmínky pro lomítko, které jsou analogické pravidlům pro lomítko v Casperu:

  1. Žádné hlasování nesmí proběhnout dvakrát v téže epoše.
  2. Žádné hlasování nesmí obsahovat kontrolní body epochy, které „překrývají“ kontrolní body epochy jiného hlasování.

Přestože jsou Casperova pravidla založena na epochách místo na výškách bloků, stále zajišťují, že se žádné dva finalizované kontrolní body nemohou vyskytovat v různých řetězcích, ledaže by bylo možné proříznout třetinu validátorů

Za zmínku stojí také to, že atesty jsou zahrnuty v samotných blocích. Podobně jako se blok v PoW ospravedlňuje pomocí svého hashe, ospravedlňuje se finalizovaný kontrolní bod v PoS pomocí všech svých minulých atestací. Když někdo poruší pravidla lomítka, jsou tyto špatné atestace zahrnuty do bloku, který toto porušení dokládá. Existuje také malá odměna pro producenta bloku, který porušení zahrnul, aby byl motivován k potrestání porušování pravidel.

Forky

Je zajímavé se zamyslet nad tím, co by se stalo v případě forku. Pro rychlou rekapitulaci, fork znamená změnu pravidel konsensu a existuje ve dvou variantách: hard fork a soft fork. Při tvrdém forku nejsou nová pravidla zpětně kompatibilní, což může vést ke vzniku dvou konkurenčních blockchainů, pokud na ně nepřejdou všichni. Při měkkém forku jsou nová pravidla restriktivnější než stará, ale zároveň zůstávají zpětně kompatibilní. Jakmile více než 50 % těžařů nebo validátorů začne prosazovat nová pravidla, mechanismus konsensu se přepne bez rozdělení řetězce. Měkké vidlice jsou obecně spojovány s upgrady a novými typy transakcí, ale technicky zahrnují také jakýkoli typ cenzury vynucené 51% většinou. PoS má také třetí typ „forku“, který se v PoW nevyskytuje: rozdělení řetězce beze změny pravidel. Protože jsme se však tímto tématem již zabývali, zaměříme se na tvrdé a měkké forky

Začněme nejjednodušším případem: samostatným sporným hard forkem. Slovem sporný mám na mysli změnu pravidel, která politicky rozděluje uživatele. Oprava chyby nebo drobná technická změna by pravděpodobně nebyla sporná, ale něco jako změna odměny za validaci pravděpodobně ano. Pokud by byl hard fork dostatečně sporný, mohl by vést k rozdělení řetězce a vyřešil by se ekonomicky tím, že by uživatelé prodali jeden řetězec a koupili druhý. Bylo by to podobné jako při rozdělení Bitcoin Cash v roce 2017, které má podle všeho jasného vítěze:

(Source)

Nyní předpokládejme, že validátoři jednoho dne seděli a rozhodli se, že nedostávají dost peněz, a rozhodli se, že by měli zvýšit své odměny z 5 % ročně na 10 % ročně. Jednalo by se o jasný kompromis ve prospěch validátorů na úkor nevalidátorů, kteří by nyní dostávali více naředěno. Který řetězec by v případě rozdělení vyhrál?

Tím se dostáváme k naší páté zásadě PoS, která říká, že peníze jsou moc.

Ze 120 milionů ETH, které existují, je v současné době vsazeno více než 10 %, jak je vidět na grafu níže:

(Source)

Za předpokladu, že by došlo ke spornému hard forku mezi validátory a nevalidátory a všichni nevalidátoři by prodávali na trhu nový řetězec a všichni validátoři starý řetězec, pak by teoreticky vyhrál starý řetězec, protože většinu ETH by stále drželi nevalidátoři (90 % versus 10 %). Je tu ale ještě několik dalších věcí, které je třeba zvážit. Zaprvé, po případném rozdělení řetězce by validátoři stále „ovládali“ oba blockchainy. Pokud by validátoři mohli ovlivňovat druhý řetězec, mohli by být motivováni k jeho selhání. Za druhé, existuje také dříve diskutovaná jaderná varianta, kdy by nový řetězec mohl podříznout všechny, kteří stále validují starý řetězec, aby je přiměl k připojení. A konečně, validátoři by pravděpodobně měli značný sociální a politický vliv na všechny ostatní v síti. Pokud by se Buterin, Ethereum Foundation a burzy unisono rozhodli, že zvýší odměnu za staking, těžko uvěřit, že by běžní uživatelé Etherea a validátoři dokázali udržet starý fork v chodu a zároveň ho nátlakem na nákupy zhodnotit.“

Přejdeme-li k soft forkům, co by se stalo v případě sporného soft forku, například cenzury OFAC? Validátoři jsou poměrně centralizovaní, jak můžeme vidět na grafu níže:

(Source)

Na rozdíl od PoW, kde mohou těžaři přepínat pooly stisknutím tlačítka, jsou validátoři v Ethereu uzamčeni na stakingové adrese, dokud nezpracují výstupní transakci. Pokud by Lido a špičkové burzy byly nuceny cenzurovat určité transakce, mohly by snadno překročit dvoutřetinovou většinu potřebnou pro rozhodování o kontrolních bodech. Dříve jsme viděli, jak by se Buterin a ostatní validátoři ETH mohli pokusit čelit cenzurnímu soft forku vlastním proticenzurním hard forkem, přičemž by při tom podřezali cenzory. I kdyby se jim podařilo vytvořit fork, zničilo by se při tom mnoho hodnoty, a to jak kvůli řezání, tak kvůli ztrátě důvěry.“

Závěrečné myšlenky

V této eseji jsme se podívali na to, jak PoS řeší problém dvojího utrácení pomocí Gaspera, kombinace pravidel pro kontrolní body/řezání zvaných Casper a pravidla pro hlasování o „nejlepším bloku“ zvaného G HOST. Gasper dělí čas na jednotky zvané sloty, přičemž každý slot může mít nejvýše jeden blok, a sloty jsou seskupeny do epoch, přičemž každá epocha se vztahuje k jednomu kontrolnímu bodu. Pokud pro kontrolní bod hlasuje dvoutřetinová většina, stává se oprávněným, a pokud se vyskytnou dva oprávněné kontrolní body za sebou, první z těchto dvou kontrolních bodů se stane finalizovaným. Jakmile se kontrolní bod stane finalizovaným, stává se nemožným, aby byl finalizován paralelní řetězec, ledaže by se třetina validátorů mohla proříznout.

V tomto procesu jsme odhalili pět principů PoS:

  1. PoS používá negativní (na pokutách založenou) motivační strukturu.
  2. PoS je systém založený na povolení.
  3. PoS nemá žádná pravidla.
  4. PoS se spoléhá na subjektivní pravdu.
  5. V PoS jsou peníze mocí.

Každý z těchto principů má v PoS opačné chování:

  1. PoS používá pozitivní (na odměně založený) motivační systém.
  2. PoS je systém bez povolení (kdokoli může kdykoli začít nebo přestat těžit).
  3. V PoW jsou forky, které mění pravidla, ignorovány.
  4. PoW se opírá o objektivní pravdu.
  5. V PoW těžaři slouží uživatelům a sami mají malou moc.

Věřím, že každý by se měl snažit vytvořit takový svět, ve kterém chce žít. Pokud stejně jako já chcete žít ve světě bez povolení, kde můžete mít kontrolu nad svými penězi, kde je tvrdá práce odměňována a pasivní vlastnictví je přítěží a kde si vaše peníze uchovávají svou hodnotu daleko do budoucnosti, aniž by se měnily z rozmaru, pak byste možná měli pečlivě zvážit kompromisy mezi PoW a PoS a bojovat ve prospěch principů, podle kterých chcete žít.“

Tento příspěvek napsal Scott Sullivan. Vyjádřené názory jsou výhradně jeho vlastní a nemusí nutně odrážet názory společnosti BTC Inc. nebo časopisu Bitcoin Magazine.

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Diskuze

{{ reviewsTotal }} Review
{{ reviewsTotal }} Reviews
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}