. . .

Kryptowalutowe drugie warstwy - Czym są i jak działają Layer 2?

Rafał avatar
Rafał   2023-09-13 08:12

Pojęcie „warstwa druga” pojawia się coraz częściej i wszystko wskazuje na to, że nie tylko szybko nie zniknie, a wręcz będzie używane jeszcze częściej. Z tego artykułu dowiesz się co to znaczy Layer 2, jakie są najpopularniejsze rozwiązania i jak działają.

Layer 2, warstwa druga

Wzrost popularności DeFi i NFT w sieci Ethereum doprowadził do wzrostu opłat, które stały się nie do zniesienia. Kilkaset dolarów za wymianę na DEX sprawiło, że wiele innych projektów otrzymało ogromną szansę rozwoju, podobnie jak omawiane w artykule rozwiązania L2. 

Żaden artykuł na Blokpres nie stanowi porady inwestycyjnej. Zawsze wykonaj własny research. Tekst oryginalnie opublikowany 28.09.2021 r. i zaktualizowany 13.09.2023 r. 

Co to znaczy warstwa druga?

Layer 2, czyli warstwa druga, jest rozwiązaniem skalującym, które ma na celu odciążenie sieci głównej poprzez przeniesienie transakcji off-chain, czyli poza łańcuch bloków projektu, który jest skalowany. 

Rozwiązania L2 są tak projektowane, aby zapewniać jak największą szybkość transakcji przy jednoczesnym ograniczeniu ich kosztów. W większości przypadków bezpieczeństwo jest zapewniane przez warstwę pierwszą, często nazywaną też warstwą bazową.

Najczęściej wykorzystującym takie rozwiązania łańcuchem jest Ethereum skalowane przez wiele różnych projektów, z których każdy korzysta z innego pomysłu, jednak nie tylko największa platforma smart kontraktów tego potrzebuje. Bitcoin także posiada swoje rozwiązanie L2, którym jest Lightning Network.

Wiedz, że na co dzień korzystasz z jednego rozwiązania L2, który nie jest związany z kryptowalutami, a mianowicie z... kart VISA, Mastercard itp. Są to rozwiązania L2 bankowości.

Rodzaje Layer 2

Jak już zaznaczyłem skupimy się tutaj głównie na Ethereum, ale pamiętaj, że właściwie każdy projekt może posiadać swoje L2, choć nie wszystkie tego potrzebują.

Niektóre projekty mogą skalować się już na poziomie warstwy bazowej poprzez optymalizację działania protokołu, sharding i inne rozwiązania, jednak w przypadku Ethereum i drogi, jaką obiera ten projekt, L2 będą nie tylko potrzebne, ale mają stanowić główny element ekosystemu tej sieci.

Oto kilka technik skalowania sieci, które tego wymagają. Zaczniemy od dwóch mniej popularnych, a później przejdziemy do najistotniejszych, czyli "Rollups".

Sidechains

Sidechain, czyli łańcuch poboczny. W tym momencie nie jest już najpopularniejszą formą skalowania Ethereum, ani najoptymalniejszą formą warstwy drugiej. Technicznie rzecz biorąc... w ogóle nie jest L2, ale jest jakąś formą skalowania nie tylko Ethereum, ale też np. Cardano.

Sidechain jest osobnym blockchainem, który posiada własną strukturę, zasady i konsensus jednak jest połączony dwukierunkowym powiązaniem z siecią główną. Owo powiązanie odpowiada za przesyłanie tokenów z jednego łańcucha do drugiego. Jest to tzw. "most".

Przesyłanie nie odbywa się dosłownie. Następuje poprzez zablokowanie tokenów na łańcuchu głównym i wybicie reprezentacji zablokowanych tokenów w stosunku 1:1 na łańcuchu pobocznym. Przesłanie tokenów z powrotem do sieci bazowej odbywa się poprzez spalenie ich na sidechain i odblokowaniu w sieci głównej.

Najpopularniejszym tego typu rozwiązaniem jest Polygon POS (wcześniej Matic Network).

Bezpieczeństwo sidechain zapewnia sobie zazwyczaj sam, ponieważ posiada własnych walidatorów. Oznacza to, że jeśli sidechain zawiedzie lub zostanie zaatakowany, można stracić swoje tokeny. 

Matic sidechainźródło

Wspomniany Polygon POS jest łańcuchem pobocznym Ethereum, ale projekt stosuje pewne rozwiązania, aby zwiększać bezpieczeństwo. Takim rozwiązaniem jest np. checkpoint. To zapisanie stanu łańcucha pobocznego na łańcuchu bazowym, które następuje w pewnych odstępach czasu i wymaga zgody 2/3 sieci.

State Channels

W przypadku Ethereum działają podobnie do Lightning Network Bitcoina, ale oprócz płatności wspierają także ogólne aktualizacje stanu. 

”Kanały Stanu” działają jako pozałańcuchowy system przesyłania wiadomości, czyli po prostu transakcji. Użytkownicy blokują część stanu łańcucha w kontrakcie multisig np. tokeny ERC20. Następnie mogą między sobą dowolnie przesyłać te tokeny. Dzieje się to bez aktualizacji stanów na łańcuchu głównym, ale zgodnie z jego zasadami.

Użytkownicy danego kanału wysyłają tylko końcowy stan do łańcucha głównego. Bitcoin Lightning Network działa właśnie wykorzystując takie kanały. Więcej szczegółów działania tego typu L2 poznasz czytając ten artykuł:

Co to Bitcoin Lightning Network i jak działa

Rollups

Przejdźmy teraz do najnowszych sposobów skalowania i prawdopodobnie tych, które będą najszerzej stosowane w przyszłości, czyli ZK-Rollups i Optimistic Rollups.

Określenie Rollup, czyli „Zawijanie” jest trafnie użyte do nazwania tej techniki, ponieważ transakcje są "zawijane", czy też "pakowane" w pakiety składające się z wielu transakcji jednocześnie i wysyłane do sieci głównej.

W rozwiązaniach Rollup transakcje są zapisywane na głównym łańcuchu Ethereum, ale obliczenia są wykonywane poza łańcuchem, czyli off-chain. Takie podejście sprawia, że Rollups dziedziczą bezpieczeństwo Ethereum, jednocześnie znacznie zwiększając przepustowość i zmniejszając koszty

Warto też dodać, że tak naprawdę każde L2 tego typu stanowi osobny łańcuch, do którego należy przesłać tokeny, poprzez wpłacenie ich do odpowiedniego smart kontraktu. Jednak mechanizmy, które są stosowane (o ile są...) sprawiają, że powiązanie z L1 jest ogromne, co oznacza, że dziedziczone jest bezpieczeństwo warstwy bazowej, a cenzura niemożliwa.

Techniki Optimistic i ZK określają zasady dotyczące poprawności publikowanych na L1 zbiorów transakcji.

Optimistic Rollups

Rollups to smart kontrakty w sieci głównej Ethereum, które służą jako przekaźnik między głównym łańcuchem a warstwą drugą, w której odbywają się obliczenia.

Jak sama nazwa wskazuje, w tym wypadku działają „Optymistycznie”. Optymistycznie zakładają, że nowy hash nie zawiera nieprawdziwych informacji, czyli nikt nie próbuje oszukiwać. Innymi słowy, jest dobrze, dopóki ktoś nie udowodni, że nie jest.

Hash to unikalna liczba zapisana w systemie szesnastkowym, która powstaje w wyniku funkcji matematycznej.

Hash nie zawiera żadnego towarzyszącego dowodu gwarantującego jego poprawność, dlatego wykorzystuje się „dowody oszustwa”. Jeśli ktoś odkryje, że w którymś zbiorze transakcji doszło do próby oszustwa, może opublikować dowód, że cała partia została obliczona niepoprawnie, czyli został opublikowany niewłaściwy hash. Dowód jest weryfikowany i jeśli jest poprawny cała partia transakcji oraz wszystkie kolejne są cofane.

Główne podmioty, które „zawijają” transakcje w pakiety są nazywane różnie, najczęściej jest to "Sequencer". Jego zadaniem jest zbieranie przychodzących transakcji, układanie ich w uporządkowaną sekwencję i opublikowanie ich na L1 (Ethereum).

Transakcje są publikowane w grupach, co zmniejsza koszty, podobnie jak wykorzystywane przez węzły L2 techniki kompresji.

Ze względu na stosowanie dowodów oszustwa, wypłaty tokenów z L2 do L1są opóźniane i trwają nawet 7 dni (choć można stosować pośredników, którzy przyspieszają ten proces).

Z Optimistic Rollups korzystają projekty takie jak Optimism, Arbitrum, czy Base. 

ZK-Rollup

Smart kontrakt ZK-Rollup utrzymuje stan wszystkich transferów w warstwie 2, a ten stan można zaktualizować tylko za pomocą dowodu ważności znanego jako ZK-SNARK, czyli Zero-Knowledge Succinct Non-Interactive Argument of Knowledge...

polygon zkZK-Rollup na przykładzie Polygon Hermez

Oznacza to, że ZK potrzebują tylko dowodu ważności, a nie wszystkich danych transakcyjnych. Dzięki temu sprawdzanie poprawności bloku jest szybsze i tańsze. Bez względu na to, jak duże są obliczenia off-chain, dowód można bardzo szybko zweryfikować na łańcuchu (on-chain).

ZK oznacza Zero-Knowledge Proof, czyli dowód z wiedzą zerową. Najczęściej używane wyjaśnienie tego pojęcia pojawia się na przykładzie jaskini, którą przedstawił Jean-Jacques Quisquater w 1990 roku.

Co to znaczy zero-knowledge (ZK proof)

Na powyższej grafice znajduje się jaskinia (powiedzmy), która ma dwie drogi, A i B oraz zamknięte drzwi pośrodku, które można otworzyć tylko znając hasło.

Alicja wchodzi do jaskini wybierając drogę A lub B i staje przed drzwiami. Następnie do jaskini wchodzi Wiktor i mówi, którą drogą Alicja ma wyjść. Oczywiście ma ona 50% szans na wejście i wyjście tą samą drogą bez otwierania drzwi (wchodzi A, Wiktor wybiera A), jednak kolejne próby sprawiają, że Wiktor nabiera 100% pewności, że Alicja zna hasło do drzwi i nie ma potrzeby ujawniania mu tego hasła.

Właśnie tak działa dowód z wiedzą zerową. Ktoś udowadnia ci, że ma pewną informację bez podawania tej informacji.

Operator ZK-Rollup zbiera transakcje od użytkowników, którzy zdeponowali środki do smart kontraktu, czyli „przenieśli” je off-chain, generuje opisany wyżej dowód wiedzy zerowej (używając do tego skomplikowanych obliczeń matematycznych), który jest następnie przesyłany i weryfikowany na łańcuchu. Tworzenie dowodu wymaga sporej mocy obliczeniowej, ale jest to robione poza łańcuchem, do którego trafia tylko łatwy do zweryfikowania wynik obliczeń.

Główną różnicą między ZK Rollups, a Optimistic Rollups jest więc metoda weryfikacja poprawności publikowanych transakcji.

ZK-Rollup są stosowane przez np. zkSync, Loopring oraz StarkNet.

Aktualne problemy Rollups

Niestety w aktualnym stanie wiele projektów, nie do końca przypomina L2 z prawdziwego zdarzenia.

Powodem jest brak kluczowych "dowodów oszustwa", które np. w przypadku Optimism i Base nadal są opracowywane. To oznacza, że nie ma możliwości poradzenia sobie z ewentualną próbą publikacji niepoprawnych danych. Arbitrum, choć pozwala na to tylko dopuszczonym węzłom, posiada taki mechanizm. Pewność poprawności stanu jest większa w ZK, których podstawą działania są właśnie te dowody.

Dodatkowo, problemem jest centralizacja Sequencera, która wiąże się z wieloma nieprzyjemnymi konsekwencjami.

Po pierwsze pojedynczy węzeł odpowiadający za przetwarzanie transakcji, może je cenzurować. Na szczęście wiele projektów pozwala wymusić przetworzenie transakcji, poprzez wysłanie jej na L1. Cenzura nie jest więc dużym problemem, choć nadal są projekty, które sobie z tym nie radzą (np. StarkNet).

Dużo gorzej sprawa wygląda z wypłatą powrotną do L1. Każdy może wypłacić, ale jeśli węzeł odpowiedzialny za przesyłanie danych z L2 do L1 ma jakieś problemy, wypłaty mogą zostać wstrzymane jeśli nie ma bezpośredniego mechanizmu wyjścia. Niestety, aktualnie sporo popularnych rozwiązań nie ma takich mechanizmów, w tym Optimism, Base, zkSync, czy Starknet.

Natomiast możliwość "ucieczki" bez ufania innym podmiotom, w sposób zdecentralizowany poprzez wysłanie specjalnego dowodu działa w projektach takich jak Arbitrum, dYdX, Loopring, czy ImmutableX.

Poza technicznymi problemami wewnętrznymi, niektórzy zauważają również pewne problemy fundamentalne, o których więcej pisałem w tym artykule. Zapraszam:

jakie problemy mają L2 i sieci multichain

Podsumowanie

Niektóre projekty starają się implementować rozwiązania skalujące już w warstwie pierwszej, a najpopularniejszym z nich jest sharding. Jednak przy braku możliwości wprowadzenia zmian w działaniu całego łańcucha i wzroście wykorzystania potrzebujemy rozwiązań L2, aby projekty oferowały szybkie i tanie transakcje. 

Rozwiązania warstwy drugiej są coraz popularniejsze i będą nadal popularne jeśli kryptowaluty osiągną masową adopcję. Największym motorem napędowym ich rozwoju będzie Ethereum, ale nie jest to jedyny projekt stosujący L2. Bitcoin, czy Cardano także stosują takie metody skalowania.

Nawet w sieciach, które niekoniecznie potrzebują L2 mogą powstawać takie rozwiązania.

Warstwy drugie nie odejdą w niepamięć i warto je poznać, co więcej, już poważnie rozważane są warstwy... trzecie.

Popularne