

W branży kryptowalut powszechnie utarł się schemat, że to Ethereum ma największe problemy ze skalowalnością. Oczywiście pod względem kosztów i czasu, jakie trzeba poświęcić, aby przeprowadzić daną transakcję.
Przypadek Ethereum nie jest jednak odosobniony. Problemy ze skalowalnością ma większość blockchainów. O tym utrudnieniu sieci blockchain pisaliśmy już tutaj. Z tego powodu wiele deweloperów pracuje, aby rozwiązać ten problem. Jedną z ich propozycji jest wielofazowa aktualizacja, nazywana Shardingiem. Czym jest Blockchain sharding i dlaczego jest taki ważny?
Blockchain Sharding
Sharding jest jedną z metod zwiększania skalowalności blockchaina. Polega na partycjonowaniu baz danych, które są wykorzystywane w danym ekosystemie technologii blockchain. Dzięki temu wykonują one więcej transakcji na sekundę.
Mówić prościej – sharding to dzielenie całej sieci blockchain na kilka mniejszych, zwanych shardami. Jeden shard zawiera unikalne dane i jest niezależny od pozostałych. W efekcie pamięć masowa w sieci peer-to-peer nie jest tak przeciążona. Węzły mogą więc wykonywać więcej transakcji, w szybszym czasie. Po shardingu każdy węzeł przechowuje tylko te dane, które dotyczą jego działu lub shardu.
Proces shardingu jest także nieinwazyjny dla całego ekosystemu blockchain. Informacje zawarte w pojedynczych shardach mogą być udostępniane innym węzłom, jednocześnie utrzymując rozproszoną księgę zleceń bezpieczną i zdecentralizowaną. Dlaczego? Ponieważ po podziale nadal, każdy shard może przeglądać każdy wpis do księgi, nie zachowując o nim danych. W taki sposób unikamy przeciążenia sieci.
Proces shardingu to doskonałe rozwiązanie w redukcji opóźnień transakcyjnych.
Jak działa sharding na blockchainie?
Sharding stosujemy głównie w przypadku blockchainów, mających bardzo dużo danych, ale jedną bazę. Doskonałym tego przykładem będzie Ethereum – ogromna baza deweloperów, pracująca nad różnymi projektami.
Na blockchainie Ethereum oprócz deweloperów pracuje ponad 300 dApps, co wręcz wymusza na ekosystemie skorzystanie ze shardingu, aby zwiększyć skalowalność.
Proces shardingu ułatwia rozłożenie przechowywanych danych, co z kolei czyni rollupy jeszcze bardziej opłacalnymi, jednocześnie upraszczając obsługę węzłów. Dzięki temu rozwiązania warstwy 2 korzystają z Ethereum, będąc jednocześnie bezpiecznymi i tańszymi.
Proces shardingu pomaga w podzieleniu całej sieci na mniejsze moduły, z których każda zwiększa TPS sieci. Cały proces wydaje się dość prosty, jednak ma w sobie sporo istotnych elementów:
- Węzły
Każdy węzeł w sieci blockchain przetwarza lub zarządza transakcją, jaka zachodzi wewnątrz ekosystemu. Węzły, które działają w technologii blockchain, są autonomiczne. Ich zadaniem jest przechowywanie wszystkich danych, jakie generuje zdecentralizowana sieć. Mowa o saldach kont, czy zapisie pojedynczych transakcji.
Przez takie podejście, całe przetwarzanie transakcji jest bardzo wolne. Zachowuje jednak wysokie bezpieczeństwo, ponieważ każda transakcja jest przechowywana w każdym węźle sieci. Wolne tempo przetwarzania transakcji nie jest zachęcające dla potencjalnych użytkowników.
Dlatego też, aby zmniejszyć obciążenie transakcyjne, wykorzystuje się sharding. Skutecznie odciąża on węzły, które nie muszą już zarządzać lub przetwarzać całej transakcji. Dzięki procesowi shardingu zarządzanie węzłami może być efektywniejsze.
- Horizontal Partitioning
Podział poziomy baz danych. Również może być wykorzystywany do wykonania shardingu. Przykładowo: zadaniem jednego z shardów może być przechowywanie historii transakcji i aktualnego stanu adresu. Inny przechowywałby dane o saldach kont i tak dalej.
Co więcej, dzięki Horizontal Partitioning, shardy mogłyby być podzielone według rodzaju zasobów cyfrowych, które są przechowywane w każdym z pojedynczych shardów.
Dlaczego Sharding jest taki ważny w ekosystemie blockchain?
Są trzy, główne powody, dla których sharding jest tak ważny.
- Kompresja używanych danych
Jak wspominaliśmy w akapitach wyżej, każdy węzeł ma swoją kopię, która zawiera pełną historię sieci. Dlatego hakerom tak trudno przejąć kontrolę i potencjalnie zmodyfikować transakcje. Jednakże, utrzymanie takiego stanu rzeczy odbywa się kosztem skalowalności całej sieci blockchain.
- Skalowalność
To najważniejsza zaleta zastosowań shardingu. Zwiększenie skalowalności. Dzięki temu procesowi blockchain może podzielić węzły i przechowywać więcej informacji. A to bez konieczności spowalniania czasu transakcji!
Co za tym idzie, deweloperzy już wywietrzyli potencjał. Dzięki shardingowi więcej branż może wdrażać technologię blockchain w swoich działaniach. Finanse, FinTech, bankowość mogą wykorzystać łańcuchy bloków i konkurować ze scentralizowanymi odpowiednikami.
- Dostępność
Lepsza dostępność dla użytkowników sieci to dodatkowa korzyść, jaką niesie za sobą sharding. Na przykładzie Ethereum – sharding zmniejszył ilość sprzętu, który był niezbędny do uruchomienia sieci. Można to z łatwością zrobić na urządzeniach konsumenckich. Efekt – więcej osób uczestniczy w sieci.
Sharding, a bezpieczeństwo
Sharding, tak jak większość rozwiązań skalowalności blockchain, jest dopiero w fazie testów. Jednak jego zalety są niepodważalne.
Problemem, jaki może wystąpić podczas shardingu, to kolizja shardów. Jeden z shardów może przejąć kontrolę nad drugim. W efekcie, informacje w nim zawarte mogą zostać utracone. Bierzemy też pod uwagę, że złośliwe shardy mogą wprowadzić do sieci blockchain uszkodzone dane.
Jeśli przyjrzymy się Ethereum, takie niebezpieczeństwo jest bardzo ograniczone i praktycznie niemożliwe do wystąpienia.
Kolejnym niebezpieczeństwem, jakie należy wziąć pod uwagę, to cyberatak na pojedynczy shard. Po takim działaniu fałszywe transakcje mogą zostać wprowadzone do sieci. Jednakże ta możliwość także została zminimalizowana. W przypadku Ethereum węzły zostały przydzielone do określonych shardów.
Przykłady sieci blockchain, wykorzystujących sharding
- NEAR
NEAR skupił się na transakcjach cross-shard w czasie rzeczywistym. Jednocześnie chciał utrzymać lekkie obciążenie sieci dla użytkowników. Jak to zrobił? Umożliwił każdemu urządzeniu low-end uruchomienie węzła, jako część całej sieci.
W konsekwencji, każde takie urządzenie pomaga w przetwarzaniu podzbioru transakcji. Sharded Proof of Stake blockchaina NEAR ma większą skalowalność i umożliwia działanie węzłów sieci na urządzeniach low-end. Dzięki temu rozwiązaniu sieć daje dostęp do wielu dodatkowych urządzeń, a te poprawiają szybkość działania całego ekosystemu.
- Ethereum Beacon Chain
Beacon Chain, to główny łańcuch w Ethereum 2.0. Jego zadaniem jest przetwarzanie powiązań krzyżowych i „przechowywanie” aktywnych walidatorów, oczekujących w kolejce. Pomaga także przetwarzać konsensus block by block w Ethereum. Funkcje obejmują także:
- Zarządzanie walidatorami i ich stawkami.
- Wdrożenie obowiązujących zasad konsensusu.
- Organizowanie głosowania nad proponowanymi zmianami.
- Przydzielanie nagród i kar dla walidatorów.
- Rejestruje stany shardów i odpowiada za transakcje między nimi.
- Polkadot Parachain
To kolejny ciekawy projekt, o którym pisaliśmy tutaj. To bardzo ciekawe wykorzystanie shardów w rozproszonej bazie danych. Cały ekosystem oferuje uproszczoną perspektywę sieci blockchain. Warto również nadmienić, że Polkadot ma wysoko wyspecjalizowane parachain, o których już pisaliśmy.
Podsumowanie
Proces shardingu jest niewątpliwie ciekawym i godnym uwagi rozwiązaniem, poprawiającym skalowalność danej sieci blockchain. Do pożądanych rezultatów co prawda daleko, ale deweloperzy pracują nad optymalizacją całego procesu. Rozwiązują wszelkie przeszkody, które mogą się pojawić, jednocześnie pracując nad poprawą bezpieczeństwa.