Kryptowaluty działają wedle jednej prostej zasady: “Nie ufaj, weryfikuj”. Każdy blok i każda transakcja w nim jest weryfikowana przez uczestników sieci na własną rękę, co uniemożliwia oszustwa.
Każdy blok składa się z dwóch głównych części:
- nagłówka, który zawiera podstawowe informacje o bloku, jest to pewnego rodzaju podsumowanie całego bloku,
- zawartości, “ciała”, które zawiera wszystkie transakcje, jakie miały miejsce w bloku.
Każdy pełny węzeł w sieci, pobiera nowy blok i wykonuje każdą transakcję w nim, sprawdzając tym samym, czy wszystko jest poprawnie i można taki blok dodać do swojego łańcucha. Sprawdzają, czy na przykład adres A posiada 1 ETH, który chce wydać. Jeśli nie, to nie przyjmą takiej transakcji oraz bloku, który ją zawiera.
Z kolei drugi typ węzłów, czyli lekkie, polegają na pełnych. Pobierają i weryfikują tylko nagłówki bloków, a więc lżejsze podsumowania całych bloków. Takie węzły są wygodniejsze i mają niewielkie wymagania, ale nie są w stanie działać całkowicie niezależnie.
Artykuł nie stanowi porady inwestycyjnej. Zawsze wykonaj własne badanie rynku.
Czym jest dostępność danych?
Kluczowym aspektem całego wspomnianego procesu jest właśnie samodzielne wykonanie transakcji danego bloku, który otrzymaliśmy od walidatora/górnika. Aby przeprowadzić weryfikację, musimy posiadać dane, które zostały użyte do stworzenia bloku, a więc musimy otrzymać listę transakcji, w konkretnej kolejności, aby móc sprawdzić, czy wszystko jest w porządku. Właśnie to nazywa się “Dostępnością danych”, z języka angielskiego Data Availability, w skrócie DA.
„Dostępność danych” to gwarancja, że wszystkie dane stojące za nowo proponowanym blokiem, które są wymagane do sprawdzenia jego poprawności, zostały udostępnione wszystkim uczestnikom sieci w danym czasie.
Kluczowe jest tutaj “w danym czasie” i odróżnienie dostępności danych od ich długoterminowego przechowywania. Dostępność danych dotyczy najnowszych bloków, których poprawność musi zostać sprawdzona w danym czasie przez zainteresowanych uczestników sieci. Nie gwarantuje ona (zazwyczaj) przechowywania danych w nieskończoność. Po sprawdzeniu informacji i dodaniu bloku, nie są one już potrzebne.
Wiele sieci pozwala pełnym węzłom czyścić dane historyczne po pewnym czasie, a więc je usuwać, by oszczędzać miejsce na dysku. Przechowywaniem danych historycznych zajmują się inne typy węzłów, tzw. archiwalne węzły, kluczowe choćby dla eksploratorów, które pozwalają przeglądać całą historię i analizować ją.
W przypadku projektów monolitycznych L1 takich jak Bitcoin, czy Ethereum, zapewnienie dostępności danych jest to bardzo proste. Po prostu każdy musi opublikować dane, których użył (a więc transakcje), albo blok nie zostanie uznany za poprawny.
Pełnych węzłów nie można więc oszukać, ponieważ pobierają i wykonują każdą transakcję na własny rachunek.
Gdzie tu problem?
Pobieranie wszystkich danych i weryfikacja ich na własną rękę ogranicza możliwości skalowania, a nawet decentralizacji, zwłaszcza w przypadku nieco starszych projektów, takich jak Ethereum.
Ważne w całym rozrachunku są wspomniane lekkie węzły, które są lekkie właśnie dlatego, że nie sprawdzają zawartości bloku, a “ufają” pełnym węzłom, pobierając tylko nagłówki. Nie są więc pewne czy blok jest poprawny (choć raczej jest, jeśli sieć doszła do konsensusu). Mimo to powinna istnieć metoda, która upewni wszystkie węzły, także lekkie, że dane zostały udostępnione.
Lekkie węzły są bardzo istotne. To dzięki nim możemy wygodnie sprawdzać ileż to tokenów nam zostało na kontach, bez pobierania pełnej kopii łańcuchów, w międzyczasie dokupując kilka dysków twardych, aby pomieścić wszystkie dane.
W problemie dostępności danych kluczowe są jednak rozwiązania L2 i to na nich właśnie się skupimy.
Warstwy drugie i problem dostępności danych
W L2 chodzi o to, aby odciążyć sieć główną. To oznacza, że transakcje nie są wykonywane przez węzły Ethereum na bazowym łańcuchu, a na rozwiązaniu L2, które jest osobnym łańcuchem, ale posiada smart kontrakty zaimplementowane na sieci głównej, śledzące kluczowe informacje oraz będące mostem, pozwalającym przesyłać tokeny z i do L2.
Węzły Ethereum nie są obarczone wykonywaniem każdej pojedynczej transakcji, ale nadal je zabezpieczają właśnie dzięki smart kontraktom.
Najpopularniejsze L2 to rozwiązania Rollups. Działają na dwa sposoby:
- Optymistycznie (Optimistic) - kontrakt na L1 akceptuje wszystkie partie transakcji jako ważne, ale wymusza opóźnienie, zanim będzie można wypłacić tokeny, ze względu na możliwe oszustwa. Ktoś, kto wykrył złośliwe zachowanie przesłać “dowód oszustwa” do sieci, co skutkuje cofnięciem stanu L2 do ostatniego poprawnego oraz ukaraniem oszusta.
- Dowody poprawności (ZK) - kontrakt na L1 akceptuje wszystkie partie transakcji, o ile posiadają kryptograficzny dowód ważności - Dowód z wiedzą zerową (ZK Proof).
Jeśli chodzi o dostępność danych, to warstwy drugie przesyłają do L1 “podsumowanie” wszystkich transakcji w jednej operacji. Pozwala to dziedziczyć wszystkie właściwości Ethereum, a jednocześnie oszczędzić na opłatach, niż gdyby każdą z nich chciano przesyłać osobno. Tym przesyłaniem zajmuje się węzeł danego L2 nazywany Sequencer.
Aby rozwiązanie L2 działało jak należy i zachowywało kluczowe właściwości, musi dać możliwość niezależnej weryfikacji swojego stanu i jego odtworzenia. Jeśli dane nie zostaną udostępnione obie czynności będą niemożliwe.
Wiele rozwiązań warstw drugich, zwłaszcza w przypadku Optimistic Rollups, wykorzystuje jako warstwę dostępności danych Ethereum, właśnie tam publikując skompresowane dane transakcji. Bez nich, podważenie niepoprawnej transakcji, a więc wygenerowanie dowodu oszustwa, nie byłoby możliwe. To mogłoby prowadzić do niepożądanych skutków, nawet kradzieży środków z L2.
Rollupy ZK obchodzą to, ponieważ dostarczanie dowodu na poprawność każdej partii jest kluczową cechą ich działania. Mimo to publikacja danych nadal jest ważna, ponieważ umożliwia niezależną weryfikację stanu L2 i uniemożliwia cenzurowanie lub zatrzymywanie łańcucha (ZK Rollup).
Wykorzystywanie Ethereum jako warstwy dostępności danych, a więc nie tylko dla smart kontraktów śledzących kluczowe dane danego L2, ale też zapisaniu na Ethereum wszystkich transakcji, których wykonanie skutkuje zmianą stanu, zapewnia najwyższy poziom bezpieczeństwa. Ogranicza jednak możliwości skalowania (bloki Ethereum mają ograniczoną ilość miejsca), a także zwiększa koszty.
https://dune.com/niftytable/rollup-economics
Jak widać na powyższej grafice, koszty publikacji danych transakcyjnych na Ethereum sięgają nawet 10 mln USD miesięcznie (Arbitrum), co ogranicza zyski rozwiązań L2 i zwiększa koszty użytkowników.
Tutaj do gry wchodzą warstwy dostępności danych, których jedynym celem, z perspektywy rozwiązań L2, staje się publikacja danych transakcyjnych, czyli udostępnienie danych.
L2, DA i Ethereum
Czy będąc L2 na Ethereum da się w ogóle publikować dane gdzie indziej? Da się, niektórzy po prostu kwestionują sens takich rozwiązań, a o ile nie sens, to nazywanie ich “L2 Ethereum”.
Rozwiązania skalujące Ethereum, które wymusza integralność transakcji przy użyciu dowodów ważności (ZK), ale nie przechowujące danych transakcyjnych na głównej sieci, nazywają się “Validiums”. Z kolei rozwiązania korzystające z optymistycznej weryfikacji, ale przenoszące dane poza łańcuch nazywa się “Optimiums”.
Niezależnie jednak od opinii i nazw, jedno jest pewne. Chcąc być jak najbezpieczniejszym L2, jak najbliżej powiązanym z Ethereum, najlepiej jest publikować wszystkie dane na Ethereum i wykorzystywać właśnie tę sieć jako warstwę dostępności danych. Jest to on-chain DA, czyli dostępność danych na łańcuchu bazowym (niezależnie czy podstawową warstwą jest Ethereum, czy inny łańcuch). Jednak koszty i ograniczenia w skalowalności robią swoje.
Już niedługo wejdzie w życie aktualizacja EIP-4844 nazywana proto-danksharding, która pozwoli oszczędzać warstwom drugim na publikacji danych transakcyjnych.
EIP-4844 wprowadza do Ethereum nowy rodzaj transakcji, który akceptuje „bloby” danych, które będą przechowywane przez około 2 tygodnie. Publikacja takich danych będzie znacznie tańsza niż dzisiejsze wykorzystywane przez L2 calldata.
https://welovetheblobs.xyz/
Jak widać na powyższej grafice, szacunki (choć to tylko szacunki!) mówią o znacznym obniżeniu kosztów transakcji na L2 po wprowadzeniu w życie aktualizacji. Nawet jeśli koszty będą wyższe niż przewidywane, poprawa będzie widoczna.
Mimo wprowadzanych usprawnień projekty L2 wykorzystują przeróżne rozwiązania, aby skalować się lepiej, między innymi korzystają z warstw dostępności danych, które zaraz krótko przedstawię, zachowując jednak kluczowe cechy Ethereum i wykorzystując je jako warstwę rozliczeniową.
Ethereum jako warstwa rozliczeniowa stanowi centrum weryfikacji dowodów i rozstrzygania sporów dotyczących oszustw w celu ustalenia, jaka wersja łańcucha L2 jest poprawna. Dodatkowo umożliwia przenoszenie tokenów pomiędzy łańcuchami wykonawczymi (L2), a siecią główną, czyli zarządza wpłatami i wypłatami. Są to tzw. mosty.
Jednym z przykładów projektów wykorzystujących wiele różnych rozwiązań do działania jest Eclipse.
Eclipse korzysta z maszyny wirtualnej Solana (SVM) na warstwie wykonawczej, czyli na L2. Jako warstwę dostępności danych wykorzystuje Celestia, a jako warstwę rozliczeniową Ethereum.
W takim wypadku można nadal korzystać z dobrodziejstw Ethereum, ale przenieść dane transakcyjne poza łańcuch, czyli oferować off-chain DA, a przy okazji usprawnić doświadczenia użytkowników wykonujących transakcje na L2.
Projekty zajmujące się zapewnieniem warstwy dostępności danych rosną w siłę, rywalizują ze sobą, a wiele rozwiązań dostosowuje swoje sieci, właśnie po to aby zapewnić takie możliwości rozwiązaniom L2, głównie tym na Ethereum, ale nie tylko.
Oto kilka z nich.
Przykładowe projekty Dostępności Danych (DA)
Celestia
Termin taki jak “dostępność danych”, choć nie jest niczym nowym, trafił do mainstreamu (tego krypto) dzięki Celestia, podobnie zresztą jak “modułowy blockchain”.
Celestia to modułowa sieć dostępności danych (DA), która skaluje się wraz z liczbą użytkowników.
Rozwiązania L2 mogą wykorzystywać Celestię jako sieć dla publikowania i udostępniania danych transakcyjnych każdemu, w celu ich pobrania. Celestia zapewnia DA o wysokiej przepustowości.
Dwie kluczowe cechy Celestia w kwestii DA, to Data Availability Sampling (DAS), który umożliwia lekkim węzłom weryfikację dostępności danych bez konieczności pobierania całego bloku oraz Namespaced Merkle Trees (NMT), które umożliwiają pobieranie tylko tych transakcji, które są istotne z punktu widzenia projektu L2.
Celestia to niewątpliwie aktualny lider sektora “off-chain DA”.
EigenDA
Choć znajduje się dopiero na testnecie, już dziś jest jednym z najbardziej obiecujących rozwiązań wśród projektów dostępności danych.
EigenDA do swojego działania będzie wykorzystywać EigenLayer, czyli restaking, który zapewni wysoki poziom bezpieczeństwa. Będzie to jedno z pierwszych (lub pierwsze) AVS zbudowane na Ethereum poprzez EigenLayer.
EigenDA będzie zdecentralizowanym rozwiązaniem dostępności danych przechowującym transakcje do czasu sfinalizowania ich obliczonego stanu. Bezpieczeństwo EigenDA będzie zapewniane przez restakowany kapitał walidatorów Ethereum.
Wysoka przepustowość EigenDA jest zapewniana między innymi dzięki stosowaniu erasure coding, czyli rozłożenia danych na mniejsze fragmenty, które po uzyskaniu określonej części danych (np. 50%) mogą odzyskać całość. Do wykrywania nieprawidłowego kodowania, EigenDA wykorzystuje dowody poprawności w postaci zobowiązań KZG.
Poza tym EigenDA ma dawać możliwości personalizacji rozwiązaniom L2 zgodnie z potrzebami. Modułowa natura EigenDA umożliwia dostosowywanie ustawień zakresie bezpieczeństwa, żywotności, sposobów stakowania tokenów, kodowania, czy akceptowanych tokenów płatności.
EigenDA ma wejść w życie w drugim kwartale 2024 roku.
Avail DA
Avail to nie tylko projekt DA, to blockchain zbudowany za pomocą Substrate, wykorzystujący hybrydowy konsensus BABE i GRANDPA znany z Polkadot.
Avail DA łączący erasure coding, zobowiązania wielomianowe KZG i DAS, aby zapewnić jak najlepszą warstwę dostępności danych, która zabezpieczona jest przez setki węzłów działających zgodnie ze sprawdzonym konsensusem i mechanizmem NPoS.
Oprócz warstwy dostępności danych, z której korzystać mogą rozwiązania L2, Avail zapewnia także Nexus oraz Fusion.
Nexus to potężny ZK Rollup, który umożliwia rozliczenia między rollupami budowanymi na Avail, a nawet między innymi ekosystemami. Pełni rolę centrum weryfikacji i komunikacji, wykorzystując Avail DA jako źródło zaufania. Co istotne ma on znacznie poprawić doświadczenia użytkowników korzystających z tego rozwiązania.
Fusion to warstwa bezpieczeństwa. Umożliwia łańcuchowi Avail włączenie dodatkowych tokenów do natywnego stakingu Avail (AVL) w celu zwiększenia zabezpieczenia całej platformy. Nie tylko zwiększy bezpieczeństwo, ale i doda użyteczność dla tokenów projektów budujących na Avail.
Cały ten system, DA, Nexus oraz Fusion, składa się na “Avail Trinity”.
Głównym tokenem projektu będzie jeszcze niedostępny AVL. Ma być wykorzystywany do:
- zabezpieczenia warstw DA, Nexus i Fusion, poprzez stakowanie,
- pokrywania opłat transakcyjnych
Avail jest bardzo ciekawym projektem, choć nie tak wyczekiwanym jak EigenDA.
Near DA
Wszystkie wymienione wyżej projekty są bardzo ciekawe, a ich przyszłość rysuje się co najmniej interesująco, ale oprócz Celstia jeszcze nie działają. Mimo tego, że Celestia działa i jest coraz częściej wykorzystywana, jej historia jest bardzo krótka, a projekt nadal nie przeszedł realnej weryfikacji “w terenie”.
Near ma tę przewagę, że jest sprawdzonym, działającym projektem i to absolutnie jednym z topowych na rynku pod niemal każdym względem (choć to opinia, moja opinia).
Projekty L2 Ethereum mogą wykorzystywać właśnie łańcuch Near w celu publikacji danych transakcyjnych. Koszty publikacji danych na Near są stałe i niskie i wynoszą 1 NEAR za 100KB.
Do zapewnienia wydajnej, skalowalnej i bardzo taniej, ale jednocześnie bezpiecznej warstwy DA Near wykorzystuje własną podzieloną na fragmenty (sharding) architekturę i konsensus Nightshade.
Near może przyjąć duże ilości danych, dzięki równoległemu przetwarzaniu fragmentów bloków, które będą dostępne do weryfikacji przez 5 epok, czyli około 60 godzin.
https://near.org/data-availability
Podsumowanie
Rozwój projektów DA dopiero się rozpoczyna, a ilość warstw dostępności danych zapewne znacznie zwiększy się w ciągu najbliższych miesięcy i lat. Rywalizacja już dziś zapowiada się bardzo interesująco, a jakość czterech wymienionych w tym artykule projektów jest niewątpliwa.
Temat “dostępności danych” i “modułowości” będzie przewijał się coraz częściej, wraz z rozwojem rozwiązań warstw drugich, nie tylko na Ethereum, i warto zdobyć podstawową wiedzę na ten temat oraz poznać czołowe projekty tego sektora.
Pamiętajmy jednak, że technologia w hossie, czasem nawet w bessie… w sumie w ogóle w kryptowalutach, ma nieco mniejsze znaczenie (choć nadal ma), niż marka projektu, hype, czy zachęty, a przedstawienie aktualnych liderów w dziedzinie off-chain DA nie oznacza rekomendacji inwestycji w ich tokeny, o ile są, lub zakupu, gdy się pojawią ;)