Hlavní navigace

Co bude po merge? Pouť Etherea za dokonalostí (zatím) nekončí

21. 9. 2022
Doba čtení: 7 minut

Sdílet

 Autor: DepositPhotos
Ethereum prošlo minulý čtvrtek mergem, což neznamená nic jiného, než že se proof-of-work mainnet po dosažení celkové konečné obtížnosti sloučil s beacon chainem, který pro dosahování síťového konsenzu využívá proof-of-stake. Tím pro Ethereum skončila éra miningu, jenže co dál?

Z pohledu spekulantů a krátkodobých investorů je jasno, odliv kapitálu ze sítě je více než výmluvný. Spekulativní momentum je prozatím pryč a nadcházející nejistotu je nejlépe trávit s hotovostí bokem a pozorovat, jak se to vyvrbí. To si naneštěstí nemůže říci The Ethereum Foundation a zbytek vývojářské komunity.

Událost nastala 15. září v 8:42:42 našeho času s blokem 15 537 393, poté převzal vládu, respektive konsensus blockchainu proof-of-stake (PoS) beacon chain. Změna symbolicky završila úsilí několika let plánování a práce. Jestli to byla změna skutečně pozitivní, se ukáže teprve časem. Některé důsledky jsou zamýšlené – energetická úspora, nepatrné zkrácení doby mezi jednotlivými bloky a několikánásobně snížená emise nových etherů, jiné nezamýšlené: je nyní Ethereum cenný papír, jak si myslí šéf amerického SEC? Stala se síť na PoS protokolu náchylnější k cenzuře ze strany validátorů?

Jak bezpečná je vlastně síť na blockchainu, kde se (minimálně teoreticky) otevírají možnosti pro druhy útoků jako Posterior Corruption či Stake Bleeding? (Více o tématu v našem miniseriálu Veřejné blockchainy pod útokem, konkrétně v dílu Jak se přepisuje historie).

Jisté je ale jedno, s přerodem Etherea na proof-of-stake síť se počítalo od začátku, poprvé byl tento plán představen v roce 2015. Měnil se jen plán provedení a posouval se také časový plán, kdy by k tomu mělo nakonec dojít. Metoda realizace přechodu formou merge zaměstnávala Ethereum vývojáře od roku 2020, kdy byl také spuštěn takzvaný beacon chain. Ten byl následně do nekonečna testován a laděn, aby tato plánovaná „výměna motoru sítě za chodu“ nepřinesla nějaké nemilé překvapení tak, jako se to v minulosti stalo u jiných upgradů protokolu.

Merge byl poslední velkou akcí, která poutala pozornost nejen kryptosvěta. Síť ale nemá čas zahálet. Merge totiž jednu věc zatím rozhodně nevyřešil, a to škálování. Na limity v propustnosti síť naráží od roku 2017, kdy ji zahltila nejprve emise tuny ICO a později projekty jako CryptoKitties, na které síť nebyla v dané době vůbec připravena.

Oproti roku 2017 je současná propustnost dále, jak ale ukázala pandemická spekulativní horečka, ani zdaleka tam, kde by svět potřeboval Ethereum mít pro komerční, a už vůbec pak pro průmyslové nasazení. A zlepšení zatím nepřináší ani merge. To ale ostatně ani neměl. Jeho smyslem byla hlavně redukce energetické spotřeby, snížení nákladů na dosahování zabezpečení sítě, což je hodně dvousečná zbraň, a zlepšení decentralizace, což je bod, který se s ohledem na současné rozdělení validátorů zatím moc nepovedl, ale třeba nás síť ještě překvapí.

Jak jsme psali již v červnu v článku Proč proof of stake nutně hned nevyřeší současné škálovací problémy Etherea, tento problém nemá jednoduché řešení a úspěšně eliminovat by jej měl až sharding a, podobně jako u bitcoinu Lightning Network, také transakční sítě na druhé vrstvě, které se specializují na rychlejší a levnější transakce.

„Ethereum dnes dokáže zpracovat asi 15–20 transakcí za sekundu, toto Ethereum po zahrnutí rollupů a shardingu by podle matematiky mohlo zpracovat 100 000 transakcí za vteřinu,“ prohlásil již během své červencové prezentace Vitalik Buterin. Potíž je v tom, že jde o plejádu roztříštěných řešení nejrůznějších uskupení, startupů a projektů. 

První velká změna se ale přeci jenom odehraje poměrně koordinovaným způsobem. Řeč je o shardingu, který Buterin poprvé představil již v roce 2017. Připravován byl společně s mergem, jeho implementace byla ale naplánována na později. Jeho cílem je zlepšit škálovatelnost sítě na první vrstvě a proběhnout by měl ve třech fázích. První se jmenuje proto-danksharding a dočkat bychom se jí měli za šest měsíců od merge. Upgrade představí takzvané data bloby, které umožní zvýšit množství dat, které mohou jednotlivé bloky obsahovat. To by mělo pomoci zlevnit transakce na druhé vrstvě až 100krát. V druhé fázi, dankshardingu, by již mělo dojít k plnohodnotné implementaci shardingu do sítě.

Co je to sharding?

Jak napovídá název převzatý z databázového světa, hlavní smysl shardingu je rozbít jeden bobtnající blockchain na množství menších částí – shardů. Když se sharduje běžná databáze, rozdělí se velká databáze na větší množství menších zlomků, které je možné následně snadno spravovat, a díky tomu rapidně vzroste rychlost přístupu k jednotlivým položkám. U blockchainu to ale tak jednoduché není. Shardovat můžete vlastně jen dvě věci: zpracování transakcí nebo stav blockchainu. PoS Ethereum chce dosáhnout obojího. Doufá, že to přinese schopnost provádět přes 10 tisíc transakcí za vteřinu, a to bez ústupku v podobě větší centralizace nodů.

Až dosud každý node ověřoval každou transakci. To je součást bezpečnostního designu blockchainu a zajišťuje vysokou redundanci, aby síť fungovala i při výpadku své velké části, nicméně tím dochází ke značnému plýtvání se zdroji a vzniká předpoklad pro vytvoření úzkého hrdla. Sharding pracuje s myšlenkou, že se nody využijí efektivněji. Fungovat by to mělo tak, že se síť rozdělí na optimální počet shardů, který představuje schůdný kompromis mezi efektivitou a bezpečností, a každý z nich bude ověřovat jinou část čekajících transakcí. Protože na samotném řazení čekajících transakcí do bloku ani jeho velikosti se nic nemění, vzroste touto paralelizací průchodnost sítě. Ta by se měla ještě zvýšit po nasazení dalších vrstev, jako jsou rollupy. Vraťme se ale k problematice shardingu.

Jednou z výzev shardování je to, jak zajistit, aby při simultánním zpracovávání transakčních subsetů docházelo zároveň ke správnému aktualizování stavu sítě a zároveň bylo zajištěno, že bude takto získaný stav sítě platný (vzpomeňme si, jaké manévry kolem toho dělá veřejný blockchain normálně) a definitivní (problém, který běžně řeší proof-of-work). Systém založený na PoS proto musí obsahovat mechanismus, který bude na jedné straně rozdělovat odpovědnosti, na té druhé pak zajišťovat, že všechna data zůstanou platná a jejich stav konečný. Sám o sobě se přitom nesmí stát dalším vektorem útoku.

V principu by to mělo fungovat tak, že všechny uživatelské účty budou vždy přiděleny konkrétnímu shardu a v rámci nich bude probíhat všechno podobně jako doposud (síť se rozdělí na množství etherových mini-blockchainů). Komplikovat se to ale začíná v okamžiku, kdy dochází k vytváření finálního stavu. Aby jej bylo možné vůbec poskládat, budou muset transakce na začátku projít seskupením do jakýchsi transakčních balíčků podle automatického optimalizačního procesu. Ty následně projdou procesem dvojité validace a teprve pak se mohou připojit k hlavní síti.

Protože zde nefunguje proof of work, tedy ověřování neprovádí miner, který zrovna uhádl nonci, funguje zde princip validace transakcí hlasováním přiřazených validátorů. Bezpečnost a nestrannost je během tohoto procesu vynucena několika přidanými procesy. Za prvé platí, že jsou validátoři k shardu přiřazování náhodně a pravidelně se mění. Pokud validátoři transakční blok schválí, musí jej ještě před zařazením do hlavního blockchainu schválit separátní samostatný výbor na beacon chainu, což probíhá pomocí dalšího hlasování pomocí smart kontraktu pojmenovaného sharding manager.

Teprve pokud projde i toto hlasování, vznikne křížová vazba mezi shardem a hlavním chainem a transakční blok se tak stává trvalou součástí blockchainu. Podobně jako u řetězce hashí neshardovaného blockchainu, jakmile by verifikační mechanismus odhalil, že je některá z vazeb neplatná, stává se neplatným celý blockchain.

Logika náhodného přiřazování validátorů k shardu je taková, že pokud nebude potenciální útočník vědět, kam bude přiřazen, nemůže spolu s ostatními útočníky včas naplánovat a zkoordinovat útok, čímž by měla být teoreticky vynucena dostatečná bezpečnost.

V rámci našeho popisu shardingu jsme se zatím zabývali hlavně rozdělením blockchainu na shardy a jejich komunikací s beacon chainem. Pro plynulý chod celého systému je ale potřeba, aby byl také schopný provádět relativně rychle a bezpečně transakce přímo mezi jednotlivými shardy a uměl si navzájem na data odkazovat, a to všechno při zachování perfektní integrity sítě. Problém má více řešení, žádné není úplně univerzální a praktické pro všechny scénáře. Pokud tedy bude sharding odkládán podobně dlouho jako merge, víte už alespoň proč.

Rollups

Shardy samozřejmě nejsou samospasitelné, a to hlavně proto, že sice přidají síti extra prostor navíc, nevykonává se v nich ale žádný kód, což je alfa a omega celé Ethereum sítě.

KL22 hlasovani

To řeší takzvané rollups, o kterých jsme na Lupě již také v minulosti psali. Dělají to, že zabalí více transakcí do jedné, čímž snižují transakční náklady. Jedná se de facto o blockchainy, které obstarávají kompresi dat tím, že sdružují transakce a výsledek ukládají do Ethereum sítě. Rollups mají navíc teoretickou velkou výhodu v tom, že mohou na rozdíl od shardingu fungovat již na současné síti. Jejich hlavním problémem je naopak roztříštěnost jednotlivých řešení bez jasně se rýsujícího tržního vítěze.

Další nápad, jak škálovat Ethereum: co jsou tajemné Rollups a jak mají pomoci Přečtěte si také:

Další nápad, jak škálovat Ethereum: co jsou tajemné Rollups a jak mají pomoci

Škálování Etherea tak bude ještě přinejmenším podobně dobrodružná cesta, jakou byl samotný přechod od proof-of-wok k proof-of-stake.

Autor článku

Externí spolupracovník serveru Lupa.cz a expert na blockchain a kryptoměny. Jako šéfredaktor v minulosti vedl ADASTRA Business Intelligence Magazine a server ITbiz.cz. Dnes pracuje jako redaktor časopisu Forbes.