Tematyka kryptowalut przyciąga coraz większą uwagę społeczeństwa, co wpływa na poziom wydajności sieci blockchain. Sharding jest rozwiązaniem umożliwiającym skalowanie łańcuchów bloków, dzięki któremu sieć działa szybciej. Czy sharding jest rozwiązaniem idealnym?

Czym jest sharding?
Zacznijmy od wyjaśnienia pojęcia sharding. Sharding jest procesem polegającym na rozbiciu bardzo dużej bazy danych na mniejsze części. Proces ten w znacznym stopniu ułatwia zarządzanie bazą, a także ma duży wpływ na wydajność i czas odpowiedzi. Celem shardingu jest skalowanie platformy w taki sposób, aby była ona w stanie obsługiwać większą ilość użytkowników.
Sharding w kontekście blockchain
Na pewno wiesz czym jest blockchain. Gdy mówimy o shardingu, blockchain rozumiemy jako bazę danych, której węzły reprezentują poszczególne serwery przechowujące dane. W kontekście technologii blockchain, celem shardingu jest rozłożenie obciążenia sieci na pojedyncze węzły. Co więcej, każdy węzeł jest odpowiedzialny za znajdujące się w nim dane, dzięki czemu nie ma potrzeby, aby w transakcji brały udział wszystkie węzły.
Blockchain – aktualna sytuacja
Aktualnie każdy węzeł znajdujący się w sieci blockchain przechowuje informacje odnośnie historii transakcji oraz sald kont. Takie rozwiązania ma swoje plusy i minusy. Plusem zdecydowanie jest bezpieczeństwo informacji, a minusem fakt, że przechowywanie wszystkich informacji we wszystkich węzłach z całą pewnością wydłuża czas przetwarzania transakcji. Idealna sieć blockchain powinna być: bezpieczna, zdecentralizowana oraz skalowalna.
Jak działa sharding?
Proces shardingu najlepiej omówić na przykładzie blockchainu Ethereum. Składa się on z blisko 11 tysięcy komputerów. Ze względu na liniowość działania, każdy węzeł musi obliczyć każdą operację oraz przetworzyć każdą transakcję. W przypadku shardingu, obliczenia wykonywane są równolegle co oznacza, że węzły przypisywane są do przetwarzania jedynie określonych obliczeń. Tak jak wspominałam wcześniej, proces ten polega na podzieleniu bazy (w naszym przypadku jest to blockchain) na mniejsze fragmenty. Dzięki niemu węzły w celu wykonania obliczeń i zweryfikowania transakcji będą musiały uruchomić tylko część księgi, do której są przypisane.
Sharding – odpowiedź na aktualne problemy
Jak już na pewno się domyślasz, sharding jest rozwiązaniem problemów związanych ze skalowalnością łańcucha bloków. Większa popularność sieci blockchain wiąże się bezpośrednio z większą ilością użytkowników, którzy inicjując transakcję zwiększają zapotrzebowanie na węzły, które weryfikują transakcje. Podzielenie łańcucha bloków na fragmenty pozwoli na równoległe przeprowadzanie operacji, tym samym zwiększając prędkość działania całej sieci.
Sharding – wyzwania
Czy sharding, dzięki któremu czas weryfikacji jest znacznie krótszy ma jakieś wady? Mogłoby się wydawać, że jest to rozwiązanie idealne, jednak przed shardingiem stoją wyzwania, którym musi on sprostać. Pierwszym z nich jest bezpieczeństwo. Problemem, z którym musi zmierzyć się sharding są ataki przejęcia pojedynczego fragmentu (inaczej atak 1%). Po przejęciu jednego segmentu hacker może przesyłać nieprawidłowe transakcje do głównej sieci lub manipulować danymi znajdującymi się w tym fragmencie w taki sposób, że zostaną one unieważnione lub trwale utracone. Według twórców Ethereum, rozwiązaniem problemu bezpieczeństwa jest losowe próbkowanie polegające na przypisaniu do każdego fragmentu określonej liczby notariuszy, których zadaniem jest weryfikacja zestawień. Drugim wyzwaniem jest komunikacja. Komunikowanie się użytkowników i aplikacji z jednej subdomeny z użytkownikami i aplikacjami z innej subdomeny wymaga zaimplementowania specjalnego rozwiązania (ang. intershard communication mechanism).