Optymistyczne skalowanie Ethereum
W moich oczach perspektywa rozwoju Ethereum wygląda bardzo optymistycznie. I nie mam tutaj wcale na myśli wysiłków zmierzających do powstania Ethereum 2.0. O tym będzie innym razem. Dzisiaj skupimy się na bardziej namacalnym rozwiązaniu problemów Ethereum ze skalowalnością. Rozwiązaniu, które już powoli staje się rzeczywistością.
Spis treści
W czym problem?

Wszyscy aktywnie korzystający z sieci Ethereum zdają sobie sprawę z jej mankamentów. Jej ograniczona przepustowość nieraz daje się we znaki. Wzmożone zainteresowanie i ruch w sieci, które zdarzają się na przykład podczas gwałtownych ruchów cenowych, czynią korzystanie z sieci frustrujące, czasochłonne i drogie. By nie rzecz, że czasem wręcz niemożliwe. I to w momentach, kiedy najbardziej tego potrzebujemy.
Koronny przykład tego zjawiska, i kosztownych jego konsekwencji, zaobserwowaliśmy podczas krypto crashu 12-13 marca 2020. Sieć była wtedy kolosalnie przeciążona. Nieraz trzeba było płacić wręcz dziesiątki dolarów opłaty dla górników, aby w miarę szybko zrealizować swoją transakcję. Kłopoty mieli nawet Ci, których było stać na tak wysokie opłaty. Sytuacja była na tyle dynamiczne, że problemem było w ogóle wyliczenie ceny gazu, która w danym momencie gwarantowała w miarę szybkie umieszczenie transakcji w bloku. W wyniku tego ludzie nie tylko nie byli w stanie przetransferować swoich tokenów na giełdy, aby je szybko sprzedać. Z powodu nadmiernego ruchu cierpiały też projekty DeFi. I to wtedy kiedy były najbardziej potrzebne. Wystarczy wspomnieć o problemach Makera z likwidacją zastawów pod emisję DAI. Ludzie po pierwsze nie byli w stanie zrealizować transakcji, które obroniły by ich ich zastawy przed likwidacją. Pomimo posiadania środków potrzebnych do tego. Po drugie, sam system nie był w stanie optymalnie przeprowadzić procesu sprzedaży zastawu na aukcjach. W wyniku czego sprzedał go za bezcen. Straty sięgały milionów dolarów.
Podobny scenariusz obserwowaliśmy podczas epicentrum hossy na rynku krypto w pierwszej połowie 2021 roku. Koszty gasu przez długie tygodnie były liczone w setkach GWei. Jeśli dodamy do tego rosnącą cenę Etheru, to zazwykły transfer trzeba było zapłacić dziesiątki dolarów. A bardziej zaawansowane transakcje w DeFi kosztowały nas nie raz setki, jeśli nie tysiące, dolarów. Tak się nie da żyć.
Dlatego też w ostatnich miesiącach mamy ogrom zainteresowania innymi sieciami. Które rownież obsługują smart contracty zgodne z Ethereum, ale pozwalają na większą ilość tańszy transakcji. Pierwszy kwartał tego roku to eldorado ekosystemu Binance Smart Chain. W drugim obserwowaliśmy ocean kapitału zasilającego ekosystem Polygon. Przeprowadzanie tam transakcji jest szybsze i tańsze. A to dlatego, że sieci te nie są tak wysoce zdecentralizowane, jak właśnie Ethereum. O tym, dlaczego chcemy, aby sieć gdzie trzymamy nasze środki była zdecentralizowana dowiem się za chwilę.
Teraz skupmy się na tym, że jeśli Ethereum ma być światowym, zdecentralizowanym komputerem, to musi oferować coś więcej niż dwadzieścia transakcji na sekundę. Musi gwarantować komfortowe korzystanie z sieci w tym samym czasie setkom tysięcy użytkowników. Najlepiej wręcz milionom. Zawieranie transakcji powinno przy tym być komfortowe oraz relatywnie szybkie i tanie.
Wszyscy więc z zapartym tchem wypatrujemy ETH 2.0, które ma rozwiązać te problemy. Jednak powstanie użytecznej wersji ETH 2.0 jest cały czas pod dużym znakiem zapytania. Zadowalających nas rezultatów nie otrzymamy wcześniej, niż za kilkanaście miesięcy.
Na szczęście w ekosystemie Ethereum są ludzie, którzy poświęcają swój czas i wysiłki, aby nadać sieci Ethereum nową jakość bez konieczności czekania na ETH 2.0. I te wysiłki zaczynają przynosić namacalne efekty. Niektóre z nich są już prawie gotowane do odpalenia. Na innych możemy już korzystać z pierwszych wdrożeń na mainnecie. Są to rozwiązania tzw. drugiej warstwy (ang. layer 2). Wszystkie one pozwalają na szybsze i tańsze transakcje. Przy zachowaniu bezpieczeństwa i decentralizacji wynikającej z głównego łańcucha Ethereum. Jednym z nich jest nasz dzisiejszy bohater – technologia zwana Optimistic Rollups.
Dlaczego zwiększanie rozmiaru bloku nie działa?
W technologii blockchain największy nacisk kładziony jest na bezpieczeństwo. Jednym z jego kluczowych aspektów jest sprawienie, że wszyscy będą postępować uczciwie, zgodnie z zasadami działania sieci. W zdecentralizowanej sieci, w której nie ma organu, który będzie tą uczciwość wymuszał i egzekwował. Na straży porządku stoi więc protokół działania sieci oparty o kryptografię. Kryptografia sprawia, że część szkodliwych działań jest w ogóle niemożliwych do podjęcia. Inne zasady protokołu sprawiają, że pozostałe nieuczciwe zachowanie stają się bardzo kosztowne. Czyniąc je nieopłacalnymi czy wręcz ekonomicznie niewykonalnymi. Utrzymanie tego ładu i bezpieczeństwa jest jednak kosztowne. Większość pracy z tym związanej wykonują górnicy, dlatego są przez sieć wynagradzani nowymi monetami za wydobycie kolejnego bloku. Po to, aby mieli ekonomiczny interes w kontynuowaniu kopania i zapewnianie tym samym bezpieczeństwa sieci.
Gdy słyszymy, że sieć ma problemy ze skalowalnością, to pierwsza myśl jaka przychodzi do głowy: dorzućmy pracy górnikom. Niech wpuszczają do bloku większą ilość transakcji. I po sprawie. Jest to naiwne myślenie, które może być skuteczne tylko w małej skali. A mała skala, czyli na przykład zwiększenie ilość transakcji na sekundę z 20 na 100 niewiele zmienia. Dalej nie mamy rozwiązania, z którego komfortowo będzie mógł korzystać cały świat. Możesz więc zapytać, dlaczego nie zwiększyć rozmiaru bloku tak, aby mieściło się w nim zdecydowanie więcej transakcji? Więcej o kilka rzędów wielkości. Tak, abyśmy mogli przeprowadzać tysiące, czy dziesiątki tysięcy transakcji na sekundę.
Odpowiedź jest prosta. Tracimy wtedy zdecentralizowany charakter sieci. A jest to najważniejszy przymiot publicznych sieci blockchain. To właśnie decentralizacja robi różnicę. Jest tym co wyróżnia blockchain od tradycyjnych rozwiązań informatycznych, które istniały przed powstaniem Bitcoina. To dzięki tej cesze blockchain jest odporny na cenzurę i daje gwarancję niemożliwości wprowadzania zmian w historii transakcji.
Jeżeli zwiększymy przepustowość blockchaina po prostu zwiększając ilość danych, to długoterminowo jest to droga prowadząca w jedną stroną. Do centralizacji. Po pierwsze umieszczenie większej ilość danych w bloku oraz skrócenie czasu pomiędzy powstaniem kolejnych bloków powodują coraz większe problemy w sieci z propagowaniem danym. Przypomnijmy, że sieć blockchain to tysiące komputerów połączone ze sobą. Każdy z tych komputerów, zwany węzłem, połączony jest kilkoma, kilkunastoma bądź kilkudziesięcioma innymi komputerami. Tylko węzły połączone ze sobą są w stanie wymieniać ze sobą dane. A że każdy z nich jest połączony maksymalnie tylko z kilkudziesięcioma innymi, to przesyłanie danych po siec odbywa się etapami. Nie jest tak, że nagle wszystkie węzły wiedzą o nowo powstałym bloku. W pierwszej kolejności wiedzą o tym węzły, które są połączone bezpośrednio, z górnikiem który wykopał nowy blok. Następnie one podają tę informację do kolejnych węzłów, z którymi mają połączone. Te z kolei podają do jeszcze następnych. Ten krok jest powtarzany co najmniej kilka razy, zanim informacja zostanie rozesłana po całej sieci.
Jeśli zmniejszymy odległość między powstawaniem bloków, to zwiększamy szanse za to, że zanim wszyscy dowiedzą się o nowym bloku, to już ktoś inny wykopie drugi. Cześć sieci będzie wiedziała o jednym nowym bloku, a część o drugim. Co może grozić forkiem, podzieleniem sieci. Dodatkowo często pojawiające się, duże bloki sprzyjają centralizacji sieci. Aby być w stanie szybko i skutecznie je odbierać, a następnie przechowywać, nie wystarczy już zwykły komputer. Czy nawet pojedynczy serwer. Potrzebujemy już całej farmy serwerów z super wydajnym łączem internetowym. Co sprawia, że coraz mniejsza ilość osób jest w stanie przyłączyć się do sieci. Co zwiększa ryzyko dogadania się i przejęcia nad nią kontroli, przez nielicznych których jest na to stać. Przykłady tego typu korupcji protokołu spotykamy często w systemach typu Delegated Proof of Stake (DPoS). Gdzie liczbę “górników’ ograniczono do kilkudziesięciu. Po to, by być w stanie zapewnić zwiększoną przepustowość sieci. Niestety doświadczenia takich sieci jak Steem, EOS czy Lisk pokazują jednoznacznie, że jest to droga do utraty zdecentralizowanego charakteru sieci i oddania kontroli nad nią w ręce zorganizowanych karteli.
Na czym polega skalowanie drugiej warstwy?
Dlatego, jeśli blockchain ma mieć dalej publiczny i zdecentralizowanych charakter, to nie możemy po prostu uczynić go większym i bardziej kosztownym w utrzymaniu. Musimy wymyślić coś innego. Jakieś rozwiązanie, które będzie nabudowane na sam blockchain. Korzystające z jego bezpieczeństwa. Tak jak on zabezpieczone kryptografią i nie wymagające zaufania. Tego typu rozwiazania nazywane są druga warstwą. Są one bowiem nadbudowane na blockchain (który stanowi pierwszą warstwę). Najbardziej znanym rozwiązaniem tego typu jest Lightning Network. Jest to druga warstwa oparta o blockchain Bitcoina. Pozwala ona na dokonywanie niemal natychmiastowych i niemal darmowych transakcji Bitcoinem.
Oto jak w uproszczeniu działają rozwiązania drugiej warstwy. Podstawowym konceptem jest tu przeniesienie środków z blockchaina na tą drugą warstwę. Odbywa się to poprzez ich zamrożenia na blockchainie. Od tego czasu nie możemy ich wykorzystywać w pierwszej warstwie, ale za to pojawiają się one na drugiej warstwie. I tam ich wykorzystanie jest tańsze i szybsze niż w oryginalnym łańcuchu. Następnie możemy w dowolnym momencie powrócić z naszymi środkami do łańcucha głównego. Który jest też ostatecznym strażnikiem, czuwającym nad bezpieczeństwem naszych środków.
Jednym z takich rozwiązań dla sieci Ethereum jest Optimistic Rollups.
Jak działa Optimistic Rollups?
Tak jak wspomniałem wcześniej, największym kosztem utrzymania sieci blockchain jest zapewnienie jej bezpieczeństwa w zdecentralizowanym sposób. Każdy blok i transakcję należy zweryfikować pod kątem ich poprawności. Czy ktoś nie próbuje dokonać transakcji nie swoimi coinami? Czy nie mamy do czynienia z próbą wydania tych samych środków po raz drugi? Wszystko trzeba sprawdzić, nie można wierzyć ludziom na słowo. Dlatego wszystkie operacje, wszystkie transakcje, wszystkie interakcje ze smart contractami są wykonywane na wszystkich komputerach w sieci Ethereum.
Optimistic rollup ma tutaj bardziej optymistyczne podejście. Domyślnie zakłada, że wszystko je w porządku. Jednocześnie zapewniając wszystkim możliwość zakwestionowania potencjalnie nieuczciwego stanu. Przyjrzyjmy się jak w uproszczeniu działa ten model:
- Jego sercem jest umieszczony na blockchainie Ethereum smart contract. Odpowiada on za fundamentalne funkcje działania systemu takie jak:
- wpłacanie i wypłacanie środków na drugę warstwę przez użytkowników
- przesyłanie przez agregatorów (o nich za chwilkę) potwierdzeń stanów z drugiej warstwy
- możliwość zakwestionowania poprawności stanów drugiej warstwy przesłanych przez agregatorów. Może to zrobić każdy.
- Agregatorzy to podmioty odpowiedzialne za wykonywanie operacji przeprowadzanych na drugiej warstwie. Następnie grupują te transakcje (stąd określenie rollup w nazwie), obliczają ich sumę kontrolną stanu (merkle root) i przesyłają ten stan na łańcuch główny, do wspomnianego w punkcie pierwszym smart contractu.
- Gdy stan ten trafia do smart contractu, to każdy ma możliwość jego zakwestionowania i przesłania poprawnego. Jeśli takie zgłoszenie oszustwa okaże się poprawne, to wtedy ten stan nie jest uznawany, a nieuczciwy agregator jest karany utratą środków. Środki te musiał wcześniej umieścić w smart contracie, aby móc agregować transakcje na drugiej warstwie..
Optimistic rollups pozwala na osiągnięcie znacznie większej przepustowości sieci dzięki temu, że transakcję nie muszę być wysyłane na dziesiątki tysięcy komputerów. A potem wykonywane na każdym z nich. Tutaj zajmuje się tym zaledwie kilku bądź kilkunastu agregatorów. Którym wszyscy mogą patrzeć na ręce. I ukarać ich stratą środków, jeśli podejmą się nieuczciwych działań.
Optimistic Virtual Machine

Podstawą sukcesu Ethereum są smart contracty. Są to umieszczone na blockchainie proste programy komputerowe. Pomagają one przy wielu operacjach wyeliminować potrzebę korzystania z zaufanej trzeciej strony. Na przykład smart contract może zastąpić bank, jeśli chodzi o umieszczanie kapitału na lokatach i wykorzystywanie go do udzielania pożyczek. Więcj o tym mówimy w darmowym kursie DeFi Masters.
Dlatego patrząc na każde rozwiązanie problemu skalowalności sieci Ethereum musimy sobie zadać pytanie: co ze smart contractami? Czy one również mogę być skalowane w ten sposób? Jak trudne i złożone jest zaadaptowanie istniejących smart contractów do korzystania z tego rozwiązania?
W przypadku Optimistic Rollups odpowiedź na te pytania jest wysoce optymistyczna. Po miesiącach ciężkiej pracy zespół odpowiedzialny za powstanie tego rozwiązania opublikował na początku 2020 roku pierwsze wersje Optimistic Virtual Machine. Jest ona zgodna z Ethereum Virtual Machine, co oznacza dwie wspaniałe rzeczy.
Po pierwsze wszystkie działające obecnie na Ethereum smart contracty będą mogły bardzo łatwo przenieść się na druga optymiastyczną warstwę. Wystarczy przekompilować istniejący już kod. Bez potrzeby wprowadzania żadnych zmian. Po kilku sekundach mamy wersję smart contractu, którą możemy umieścić na drugiej warstwie opartej o Optimistic Rollup.
Po drugie, do powstawania nowych smart contractów, natywnie działających na drugiej, optymistycznej warstwie, będzie można używać dokładnie tych samych narzędzi, z których obecnie korzystają programiści smart contractów na Ethereum. Cały ekosystem działa po staremu. Nie trzeba zmieniać żadnych narzędzi. Nie trzeba na nic się przesiadać.
Odrobina pesymizmu
Kończąc ten wywód przejdźmy na chwilę na ciemną stronę pesymizmu. Jakie są mankamenty Optimistic Rollup? Co tam może pójść nie tak?
Po pierwsze rozwiązanie to ma ograniczony potencjał skalowalności. Mówi się o tym, że swobodnie pozwala na przeprowadzanie setek transakcji na sekundę. Jest potencjał do kilku (ale raczej 2-3 niż 7-8) tysięcy transakcji na sekundę. To i tak postęp w stosunku do obecnych możliwości o rząd wielkości. Ale cały czas za mało, aby obsłużyć cały świat. Choćby ten finansowy.
Oczywiście różne rozwiązania skalowalności nie wykluczają się wzajemnie. Mogą być stosowane w tym samym czasie. Z tymże nie jesteśmy w stanie korzystać z kilku z nich na raz. W tym sensie, że na pierwszej warstwie, na blockchainie Ethereum, w jednej atomowej transakcji jesteśmy w stanie dokonać operacje na dowolnych smart contractach tam umieszczonych. To samo będzie prawdą dla Optimistic Rollup. Ale już nie jesteśmy w stanie przeprowadzić w jednej transakcji operacji zarówno na pierwszej jak i na drugiej warstwie. Albo korzystać z dwóch rozwiązań drugiej warstwy jednocześnie. Oznacza to, że każde rozwiązanie skalowalności będzie nam oferować ograniczonych zasobów projektów, z którym możemy korzystać. Tylko z tych, które zdecydują się na przejście na dane rozwiązanie drugiej warstwy. Czy tworząc tam drugą wersję swojego protokołu czy też migrując go tam całkowicie.
Krytycznym okiem należy też patrzeć na kwestie bezpieczeństwa. Co tu może pójść nie tak? Czy istnieją sytuacje, gdy nasze środki będą w jakiś sposób zagrożone? Aby środki w Optimistic Rollup były bezpieczne i nie było możliwość przeprowadzenia tam wałków, muszą być spełnione dwa warunki:
- Większość górników Ethereum (czy później walidatorów w ETH 2.0) musi być uczciwymi
- Co najmniej jeden agregator transakcji z Optimistic Rollup musi być uczciwy
O pierwszy warunek szczególnie bym się nie martwił. Jak pokazuje dotychczasowe doświadczenie stopień decentralizacji i wielkość mocy obliczeniowej Ethereum sprawiają, że to ryzyko jest właściwie tylko teoretyczne.
Za to przy drugim bym się poważnie zastanowił, że nie będa możliwe sytuacje podobne do tej, jaka miała miejsce w ekosystemie Maker podczas gwałtownych spadków na rynku 12/13 marca 2020. Przypomnijmy, że w ciągu kilku godzin cena większości kryptowalut spadła o 40-50%. Kto mógł, ten próbował się ratować. Co często wymagało skorzystania z sieci Ethereum. Która nie była w stanie udźwignąć tak dużego ruchu, więc automatycznie drastycznie wzrosły opłaty transakcyjne pozwalające na w miarę szybkie dostanie się do bloku. Do poziomu nawet rzędu kilkudziesięciu dolarów za transakcję. Takie duże koszta transakcyjne sprawiają, że pewne operacje stają się nieopłacalne. Ludzie i instytucje przerywają na ten czas swoje typowe zachowania. W przypadku Optimistic Rollup to może sprawić, że nikt nie będzie chciał albo nie będzie w stanie zgłosić reklamacji do nieuczciwego działania agregatorów. A na to zgłoszenie przewidziany jest tylko pewien okres. Po jego zakończeniu rozliczenie transakcji z drugiej warstwy trafia na blockchain. Jest na amen wyryte w kamieniu. Jeśli w nim było coś nie tak, coś nieuczciwego, to jest to już nie do cofnięcia. Jest pozamiatane. A scenariuszy znaczącego przesilenia sieci nie można wykluczyć. Dlatego, aby go maksymalnie zminimalizować jego ryzyko Optimism na tygodniowy okres karencji wypłać środków z powrotem na łańcuch główny Ethereum. Co daje wszystkim uczciwym aktorom tydzień czasu na zakwestionowanie nieuczciwej wypłaty. Ten okres wydaje się wystarczająco długi bądź wręcz nawet przesadzony.
Co ciekawe, ryzyko to można całkowicie wyeliminować w Ethereum 2.0. Jeśli tam zaczepimy Optimistic Rollup o beacon chain. Łańcuch ten bowiem służy wyłącznie do raportowania stanów z łańcuchów pobocznych (nazywanych shardami) oraz przesyłu wartości pomiędzy nimi. Ilość danych i transakcji mających miejsce w poszczególnych shardach nie wpływa znacząco na wykorzystanie beacon chaina.
Gdzie jesteśmy teraz?
Jesteśmy w momencie, w którym dwa główne wdrożenia Optimistic Rollups: Arbitrum oraz Optimism mają już działające ogranioczne mainnety.
Arbitrum uruchomiło swój zamknięty mainnet pod koniec maja 2021 roku. Na razie dostęp do niego mają wyłącznie developerzy. Po to, aby mogli właściwie przygotować swoje projekty na moment otwarcia dla użytkowników. Kiedy on nastąpi? Być możesz jeszcze w lipcu.
Jakie projekty będą dostępne na Arbitrum w momencie startu? Cześć z nich to będą totalnie nowe projekty, jak Amy Finance. Z drugie strony spotkamy tam też kilka dobrze znanych z Ethereum blue chipów, takich jak Uniswap, SushiSwap czy Perpetual Protocol.
Drugim najważniejszym graczem jest Optimism. Pierwszy zamknięty mainnet został uruchomiony w połowie stycznia 2021 roku. Dla projektu Synthetix, który zaczał tam umożliwiać staking swoich tokenów. Było to do tamtego czasu nieopłacalne dla mniejszych inwestorów, bowiem na Ethereum koszta transakcji z tym związanych mogły zjadać wypracowane zyski. Docelowo Synthetix ma przenieść na Optimism cały swój ekosystem. A kolejnym krokiem będzie uruchomienie testowej wersji ich giełdy syntetyków. Powinno to nastąpić pod koniec lipca. Wcześniej, bo już 13 lipca Uniswap v3 został uruchomiony w tej sieci (z zastrzeżeniem, to jest cały czas wersja Alpha).
Śmiem snuć prognozy, że do końca lata obie sieci będą działały w pełni produkcyjnie. I na każdej z nich będzie osadzone kilkadziesiąt projektów DeFi. Będziemy przyglądać się temu procesowi i na nim zarabiać podczas naszych wekkendowych darmowych webinarów. Jeśli jeszcze tego nie zrobiłeś, to zapisz się na nie teraz.
Świetny materiał. Bardzo dziękuję za włożony trud.
Mega wiedza, dziękuję !!
Kolejny rzeczowy i dobrze napisany tz prostym jak dla mnie językiem materiał. B . dziękuję
Wyrazy szacunku. Doceniam, że autorowi chce się edukować ludzi. Społecznik roku 🙂
Ale długi i ciekawy artykuł. Doceniam i czekam zawsze na następny.