Czym jest Sharding w kryptowalucie?

Sharding to technika dzielenia dużych baz danych na mniejsze, szybsze i łatwiejsze w zarządzaniu części, zwane shardami danych. Słowo shard oznacza małą część całości.

Każdy podzbiór danych jest nazywany strzępem lub węzłem, a wszystkie strzępy razem składają się na cały zbiór danych. Liczba shardów w aplikacji zależy od jej wymagań dotyczących wydajności, takich jak pojemność pamięci masowej czy szybkość odczytu/zapisu.

Celem shardingu jest rozdzielenie danych na wiele maszyn i umożliwienie równoległego wykonywania wielu transakcji. Innymi słowy, celem jest skalowalność pozioma. Sharding może być stosowany w blockchain również sieci. Na przykład Ethereum planuje wprowadzenie shardingu do swojej sieci w celu zwiększenia jej skalowalności.

W tym artykule wyjaśnimy, czym jest sharding i jak działa w Cryptocurrency.

Sharding jest jedną z najbardziej obiecujących technologii skalowania w przestrzeni kryptowalutowej, która ostatnio zyskuje na uwadze. Sharding to proces, który ma na celu zwiększenie skalowalności blockchain poprzez podzielenie jej na mniejsze jednostki (zwane "shardami"), które mogą być przetwarzane równolegle i w ten sposób zwiększają ogólną przepustowość sieci w zakresie transakcji. 

Dlaczego potrzebujemy shardingu?

Gdy węzeł chce uczestniczyć w sieci kryptowalutowej, klient pobiera całą historię transakcji. Dzięki temu może zatwierdzić transakcje i sprawdzić, czy nie doszło do podwójnego wydania środków. Oznacza to, że aby wziąć udział w blockchain, musisz pobrać wszystkie dane.

Jeśli chcesz hostować lub uruchomić węzeł w Bitcoin aby otrzymać pełną nagrodę za blok, potrzebujesz co najmniej 200 GB przestrzeni dyskowej, według stanu na kwiecień 2018 r. W Ethereum liczba ta jest jeszcze wyższa, według stanu na kwiecień 2018 r. na każdym węźle przechowywanych jest ponad 100 GB danych. Przy typowym połączeniu internetowym pobranie wszystkich tych informacji zajmuje około dwóch tygodni. Nie jest to praktyczne dla większości osób, które chcą zaangażować się w sieć kryptowalutową.

Sharding został po raz pierwszy wprowadzony w systemach zarządzania bazami danych w celu poprawy wydajności, efektywności i skalowalności usług bazodanowych poprzez rozdzielenie danych na wiele maszyn. Sharding jest stosowany w nowoczesnych systemach baz danych, ponieważ może zwiększyć ogólną szybkość działania aplikacji. Tę samą ideę stosuje się obecnie również w technologii blockchain.

Sieci blockchain, takie jak Ethereum, próbują wdrożyć sharding w celu zwiększenia skalowalności swojej sieci, co pozwoliłoby im przetwarzać więcej transakcji w szybszym tempie. Współzałożyciel Ethereum, Vitalik Buterin, od pewnego czasu bada i rozwija koncepcję shardingu, a badania te zaowocowały stworzeniem EIP 1559, jednej z możliwych implementacji shardingu na Ethereum.

Idea shardingu istnieje już od jakiegoś czasu, ale po raz pierwszy została wykorzystana w świecie kryptowalut przez firmę Zilliqa. Model proof-of-work (PoW) blockchain nie jest idealny, jeśli chcesz stworzyć sieć, która będzie w stanie obsłużyć duży wolumen transakcji. Zilliqa była pierwszą firmą, która spróbowała rozwiązać ten problem, tworząc jedną z najszybszych sieci blockchain na rynku.

Zilliqa wykorzystuje rozwiązanie shardingu, które pozwala na zwiększenie przepustowości transakcji w miarę dołączania do sieci kolejnych węzłów. Im więcej komputerów jest dodawanych do sieci, tym więcej transakcji może być przetwarzanych w ciągu sekundy.

Jak działa sharding

blockchain jest księgą rozproszoną, która składa się z danych przechowywanych w blokach; każdy blok zawiera określoną ilość danych, a bloki te są połączone w łańcuch, tworząc księgę. Łańcuch jest prowadzony przez węzły - uczestników, którzy posiadają kopię całej księgi i aktualizują ją po otrzymaniu nowych informacji. Każdy węzeł musi zatwierdzić nowe dane, zanim zostaną one dodane do łańcucha. Jeśli firma chce rozbudować swój system, ma dwie możliwości: kupić droższy sprzęt lub znaleźć alternatywne rozwiązanie, które lepiej wykorzysta posiadany sprzęt.

Sharding jest jednym z kilku podejść do skalowania bazy danych i zapewniania wysokiej dostępności. Inne podejścia obejmują buforowanie odpowiedzi, replikację master-slave i hosting w chmurze.

Sharding rozdziela dane na wiele serwerów, jak pokazano na poniższym diagramie. Każdy shard działa jak oddzielna baza danych, a każdy serwer bazy danych obsługuje operacje odczytu i zapisu dla swojego sharda. Aby podzielić bazę danych na shardy, każdy shard musi zawierać pewien rodzaj metadanych, które pomogą określić, które dane powinny być przechowywane w którym shardzie.

Ethereum planuje wykorzystać sharding jako rozwiązanie do skalowania. Obecnie w Ethereum istnieją dwa rodzaje węzłów: węzły pełne i węzły lekkie. Pełne węzły przechowują wszystkie informacje o blockchain (do 1 terabajta), natomiast lekkie węzły przechowują tylko niewielką część tych informacji lub tylko podsumowanie tego, co dzieje się w łańcuchu. Dzięki rozwiązaniu Ethereum polegającemu na dzieleniu (sharding), węzły pełne zostaną podzielone na węzły "kolacyjne" i "atestacyjne". W ten sposób węzły kolacji będą miały znacznie mniej walidatorów niż obecnie węzły pełne i będą mogły przechowywać znacznie mniej informacji niż obecnie węzły pełne. Oznacza to, że więcej osób będzie mogło uczestniczyć w sieci jako walidatorzy i opiekunowie.

Takie podejście przynosi kilka korzyści:

Korzyści i zalety shardingu na rynku kryptowalut 

Jak wspomniano powyżej, celem shardingu jest podzielenie dużego obciążenia na małe podobciążenia. To z kolei przyczynia się do poprawy skalowalności i wydajności sieci. Korzyści płynące z tej metody obejmują większą przepustowość i szybsze przeprowadzanie transakcji. To ostatnie jest szczególnie ważne dla giełd kryptowalutowych, które szukają alternatywnego i bardziej wydajnego sposobu obsługi transakcji użytkowników.

  1. Obniżone koszty - Sharding pozwala na rozbudowę bazy danych w poziomie, a nie w pionie, ponieważ każdy shard może być hostowany na osobnym serwerze. Oznacza to, że można zacząć od mniej wydajnego i tańszego sprzętu, a następnie dodawać kolejne shardy w miarę wzrostu rozmiaru systemu lub zapotrzebowania na większą moc obliczeniową. 
  1. Wzrost popytu na transakcje na blockchain powoduje zatory i zwiększa wartość opłat transakcyjnych; może to powodować problemy w ekosystemach kryptowalutowych, w których "górnicy" są wynagradzani opłatami transakcyjnymi. Im wyższa jest wartość opłaty, tym większa jest zachęta do wydobywania bloków. Jeśli jednak opłaty transakcyjne są zbyt wysokie, dla niektórych użytkowników mogą być zbyt drogie, co może prowadzić do spadku popularności kryptowalut.
  1. Szybsze zapytania - Shardy mogą być rozmieszczone na różnych serwerach, co skraca czas potrzebny na wykonanie każdego zapytania, ponieważ jest mniej danych do przeszukania.
  1. Zwiększona skalowalność: Przepustowość wzrasta wraz ze wzrostem liczby węzłów, co można wykorzystać do obsługi większej liczby transakcji na sekundę w sieci. Idea shardingu jest podobna do przechowywania różnych danych w różnych serwerach baz danych lub używania wielu serwerów do różnych zadań. Pomaga to w utrzymaniu bazy danych, która jest duża i może obsłużyć wiele transakcji na sekundę.
  1. Wysoka dostępność: Ponieważ baza danych jest podzielona na mniejsze bazy danych zwane shardami, nawet jeśli jedna z nich ulegnie awarii, istnieje wiele innych shardów, które mogą pomóc w utrzymaniu dostępności sieci.
  1. Zmniejszone opóźnienie: W przypadku posiadania wielu serwerów baz danych można je umieścić bliżej użytkowników i

Wady stosowania shardingu 

Wady shardingu są tak naprawdę związane z implementacją, a nie z koncepcją. Implementacja shardingu jest trudna i wymaga forków, ponieważ istnieje wiele wariantów propozycji shardingu. Ponadto, bez odpowiedniego wdrożenia i przetestowania, może prowadzić do ryzyka centralizacji z powodu przerwania łańcuchów lub niewłaściwej dystrybucji nagród.

Niektóre z największych problemów związanych z shardingiem dotyczą kwestii praktycznych. Na przykład, jeśli masz wiele shardów (bloków danych), to skąd wiesz, który z nich ma najbardziej aktualne informacje? Jeśli w jednym shardzie znajduje się stara wersja pewnych danych, a w innym nowsza wersja, to który z nich powinien być użyty? Nazywa się to "synchronizacją shardów" i jest to coś, nad czym programiści muszą popracować, zanim wdrożą nowy system

  • Oddziały mogą stać się niedostępne w przypadku wystąpienia błędów sieciowych
  • W przypadku zmiany liczby węzłów w systemie re-shard wymaga czasu.
  • Znalezienie informacji w przypadku awarii może być trudne

Sharding nie jest jak magiczna różdżka, która może rozwiązać wszystkie problemy blockchain na raz. Jest to koncepcja, której wdrożenie wymaga wiele pracy i zawsze są pewne kompromisy. Bezpieczeństwo zawsze będzie głównym problemem dla sieci blockchain - jeśli ułatwisz komuś atakowanie sieci, musisz się upewnić, że Twoje zabezpieczenia są wystarczająco dobre, aby odeprzeć te ataki.

Widać wyraźnie, że sharding ma ogromny potencjał, ponieważ może pomóc w zwiększeniu liczby transakcji na sekundę poprzez zwiększenie liczby shardów. W rezultacie użytkownicy będą mogli cieszyć się szybszym czasem realizacji transakcji. A jeśli chodzi o giełdy i handel kryptowalutami platformy - to jest to, co liczy się najbardziej.

Powiązane

pl_PLPolish