Brak skalowalności jest jedną z głównych przeszkód na drodze do szerszej adopcji technologii blockchain w wielu sektorach. Istnieje jednak pewne rozwiązanie tego problemu, a mianowicie sharding. Shardy mogą pomóc blockchainom poprawić ich skalowalność i wydajność, co uczyniłoby je bardziej konkurencyjnymi w porównaniu z dotychczasowymi scentralizowanymi rozwiązaniami.
Co to jest sharding?
Publiczne blockchainy to rozproszone księgi, które mogą przechowywać dowolny rodzaj danych w zdecentralizowany i bezpieczny sposób. Brak centralnego organu w sieci oznacza, że wszystkie dane powinny być przetwarzane przez każdy węzeł w systemie, a każda nowa informacja jest dodawana do księgi tylko wtedy, gdy węzły dojdą do konsensusu. W ten sposób sieć zapewnia, że przechowywane dane są poprawne i nie mogą być naruszone przez jeden lub więcej szkodliwych węzłów.
Zdecentralizowana natura daje technologii blockchain jej atrakcyjną cechę – odporność na modyfikacje. Tworzy jednak jedną z głównych przeszkód na drodze do jej szerszego przyjęcia – brak skalowalności.
Gdy do systemu dodawanych jest więcej węzłów, a ilość danych w księdze rośnie, znacznie wzrasta szybkość sieci. Pomyślmy o zdecentralizowanym systemie płatności. Za każdym razem, gdy trzeba przetworzyć nową transakcję, informacje powinny być aktualizowane na wszystkich węzłach sieci, a to wymaga czasu. Scentralizowane sieci mają tu znaczną przewagę. Dla przykładu, system płatności Visa twierdzi, że jest w stanie przetworzyć ponad 65 000 transakcji na sekundę.
Sharding jest jednym z rozwiązań problemu związanego ze skalowalnością blockchaina. Polega on na podzieleniu bazy danych na tzw. shardy. Każdy shard jest odpowiedzialny za przetwarzanie tylko części danych przechowywanych w sieci, skracając czas ich przetwarzania.
Jak działa sharding?
Sharding polega na podzieleniu węzłów sieci na grupy i rozdzieleniu informacji przechowywanych w sieci pomiędzy te grupy. Czyli po prostu „pocięciu” bazy danych na mniejsze kawałki (shardy). Każdy shard przechowuje dane o określonych właściwościach, dzięki czemu mogą być one od siebie odróżnione.
Jedną z metod podziału jest pozioma partycja bazy danych, tj. podział na wiersze. Wiersze składają się z fragmentów, które mogą przechowywać określone typy informacji. Shardy mogą być przykładowo oddzielone na podstawie typów aktywów cyfrowych lub smart kontraktów, które przechowują.
Innym sposobem na sharding jest zorganizowanie węzłów sieci tak, aby istniała centralna sieć przekaźnikowa, przez którą wszystkie inne „sidechainy”, lub shardy, mogą komunikować się ze sobą. W ten sposób shardy mogą przechowywać i przetwarzać wszelkiego rodzaju informacje, których wymagają ich funkcje. Informacje te mogą być dostępne dla innych shardów poprzez przekaźnik.
Ważne jest, aby shardy mogły komunikować się ze sobą w taki czy inny sposób, tak aby każdy użytkownik sieci mógł uzyskać dostęp do wszystkich informacji przechowywanych w blockchainie.
Gdzie używany jest sharding?
Jednym z najczęściej omawianych przypadków użycia shardingu w branży blockchain jest prawdopodobnie sharding Ethereum. Ether, rodzima waluta tej sieci, jest drugą co do wielkości kryptowalutą po Bitcoinie. Ethereum przetwarza nawet 1 milion transakcji dziennie. Wdrożenie łańcuchów shard na łańcuchu jest częścią aktualizacji do Ethereum 2.0.
Zgodnie z roadmapem, shardy Ethereum będą zorganizowane wokół warstwy koordynacyjnej – Beacon Chain – która została uruchomiona w grudniu 2020 roku. Beacon Chain jest blockchainem Proof-of-Stake, więc odgrywa rolę w innej ważnej zmianie na Ethereum – wprowadzeniu stakingu. Shardy Ethereum zastosują proof-of-stake, aby działać bezpiecznie. Oczekuje się, że Ethereum będzie w stanie pomieścić 64 blockchainy (shardy) co znacznie zwiększy jego pojemność i poprawi wydajność. Shardy będą koordynowane za pośrednictwem Beacon Chain. Obecnie Beacon Chain jest oddzielony od głównej sieci Ethereum i nie może obsługiwać smart kontraktów. W przyszłości planuje się, że oba te elementy zostaną połączone.
Innym przypadkiem shardingu wykorzystywanego do poprawy skalowalności jest Polkadot. Jest to projekt, którego celem jest stworzenie połączonego ekosystemu blockchainów. Koncepcyjnie, Polkadot jest zaprojektowany jako sieć z shardami zorganizowanymi wokół głównej sieci zwanej Relay Chain. Shardy te nazywane są parachainami. Na początku Polkadot ma pomieścić około 20 parachainów, a docelowo ich liczba ma wzrosnąć do 100. Oprócz parachainów, Relay Chain będzie posiadał tak zwane „parathreads”, sloty, które mogą być dynamicznie współdzielone przez kilka blockchainów.
Jakie korzyści niesie sharding?
Główną korzyścią z zastosowania shardingu w blockchainie jest poprawa skalowalności. Sharding pozwala blockchainowi na połączenie większej liczby węzłów i przechowywanie większej ilości informacji bez zbytniego spowalniania transakcji. Może to przyspieszyć adopcję technologii blockchain w wielu sektorach, nie tylko w finansach. Szybsze transakcje mogą pomóc opartym na blockchainie firmom z branży fintech w konkurowaniu ze scentralizowanymi aplikacjami płatniczymi.
Dodatkowe korzyści z shardingu to lepsza dostępność dla użytkowników i większa partycypacja w sieci. Jeśli chodzi o Ethereum, oczekuje się, że sharding obniży wymagania sprzętowe do uruchomienia klienta. Możliwe więc stanie się także działanie na komputerze lub telefonie. W ten sposób więcej osób będzie mogło uczestniczyć w sieci.
Sharding nie przynosi jednak tylko korzyści. Może również zwiększyć pewne ryzyko. Jednym z problemów związanych z bezpieczeństwem jest przejęcie shardu lub zmowy między shardami. Może to skutkować częściową lub całkowitą utratą informacji lub wprowadzeniem do sieci nieprawidłowych danych. W Ethereum 2.0 to ryzyko jest rozwiązywane poprzez losowe przydzielanie węzłów w losowych odstępach czasu.
Inwestowanie jest ryzykowne. Inwestuj odpowiedzialnie.