Sharding - KamilTaylan.blog
5 maja 2021 2:57

Sharding

Co to jest fragmentacja?

Sharding to technika partycjonowania bazy danych używana przez firmy typu blockchain w celu zapewnienia skalowalności, umożliwiającej przetwarzanie większej liczby transakcji na sekundę. Sharding dzieli całą sieć firmy blockchain na mniejsze partycje, zwane „odłamkami”. Każdy fragment składa się z własnych danych, dzięki czemu jest charakterystyczny i niezależny w porównaniu z innymi fragmentami.

Sharding może pomóc zmniejszyć opóźnienia lub spowolnienie sieci, ponieważ dzieli sieć blockchain na oddzielne fragmenty. Istnieją jednak pewne obawy dotyczące bezpieczeństwa związane z fragmentowaniem, w którym można atakować fragmenty.

Kluczowe wnioski

  • Sharding to technika partycjonowania bazy danych rozważana przez sieci blockchain i testowana przez Ethereum.
  • Im więcej użytkowników przyjmuje sieci blockchain, tym wolniejsza staje się sieć, co prowadzi do znacznych opóźnień.
  • Sharding może poprawić opóźnienie sieci, dzieląc sieć blockchain na oddzielne fragmenty – każdy z własnymi danymi, oddzielnymi od innych shardów.
  • Obawy związane z bezpieczeństwem związane z fragmentowaniem obejmują włamanie lub przejęcie fragmentu, w którym jeden odłamek atakuje inny, powodując utratę informacji.

Zrozumienie fragmentowania

Sieci Blockchain oraz ich cryptocurrencies zyskują na popularności ze względu na powszechne stosowanie technologii, która obejmuje zarządzanie łańcuchem dostaw i transakcji finansowych. Wraz ze wzrostem popularności blockchain rośnie również obciążenie pracą i wolumen transakcji obsługiwanych przez sieć. Jeśli myślimy o łańcuchu bloków jako współdzielonej bazie danych, w miarę dodawania coraz większej ilości danych sieć musi znaleźć nowe sposoby na wydajne i szybkie przetwarzanie wszystkich tych danych, w czym może pomóc fragmentowanie.

Rozproszona księga

Rozłożone księgi z blockchain technologii sprawia, że jest atrakcyjna, ponieważ umożliwia transakcje do konsensusu dzielone w wielu miejscach i regionach. W miarę rejestrowania transakcji kopie są wysyłane do udostępnionej sieci w ciągu kilku sekund, tworząc publicznych „świadków”. Jeśli jakaś część sieci padnie ofiarą oszustwa lub złośliwego ataku, uczestnicy współużytkowanej sieci mogą zidentyfikować zmiany wprowadzone przez oszustów, ponieważ wszyscy mają kopię transakcji w księdze głównej. W rezultacie technologia blockchain i jej rozproszony system rejestrów mogą pomóc w ograniczeniu oszustw i szkód spowodowanych cyberatakami, takimi jak włamania.

Skalowalność

Jednak jednym z głównych wyzwań związanych z technologią blockchain jest to, że w miarę dodawania kolejnych komputerów do sieci i przetwarzania większej liczby transakcji sieć może zostać zablokowana, spowalniając proces – zwany opóźnieniem. Opóźnienie jest przeszkodą dla przyjęcia blockchain do powszechnego użytku, szczególnie w porównaniu z obecnymi systemami płatności elektronicznych, które działają szybko i wydajnie. Innymi słowy, skalowalność jest wyzwaniem dla blockchain, ponieważ sieci mogą nie być w stanie obsłużyć zwiększonych ilości danych i przepływu transakcji, ponieważ coraz więcej branż przyjmuje tę technologię.

Jednym z rozwiązań rozważanych w celu stworzenia skalowalności bez opóźnień jest proces shardingu. Sharding ma na celu rozłożenie obciążenia sieci na partycje, co może pomóc zmniejszyć opóźnienia i umożliwić przetwarzanie większej liczby transakcji przez łańcuch bloków.



Trzy cechy, które sieci blockchain starają się wykorzystać, to decentralizacja, skalowalność i bezpieczeństwo.

Jak odbywa się fragmentacja

Przed zbadaniem, w jaki sposób odbywa się sharding w sieci blockchain, ważne jest, aby sprawdzić, w jaki sposób dane są obecnie przechowywane i przetwarzane.

Węzły Blockchain

Obecnie w łańcuchu bloków każdy węzeł w sieci musi przetwarzać lub obsługiwać wszystkie woluminy transakcji w sieci. Węzły w łańcuchu bloków są niezależne i są odpowiedzialne za utrzymywanie i przechowywanie wszystkich danych w zdecentralizowanej sieci. Innymi słowy, każdy węzeł musi przechowywać krytyczne informacje, takie jak salda kont i historia transakcji. Sieci Blockchain zostały utworzone tak, aby każdy węzeł musiał przetwarzać wszystkie operacje, dane i transakcje w sieci.

Chociaż zapewnia bezpieczeństwo łańcucha bloków, przechowując każdą transakcję we wszystkich węzłach, model ten znacznie spowalnia przetwarzanie transakcji. Niska prędkość przetwarzania transakcji nie wróży dobrze na przyszłość, w której blockchain stanie się odpowiedzialny za miliony transakcji.

Sharding może pomóc, ponieważ dzieli lub rozkłada obciążenie transakcyjne z sieci blockchain, dzięki czemu każdy węzeł nie musi obsługiwać ani przetwarzać całego obciążenia łańcucha blokowego. W pewnym sensie dzielenie na fragmenty dzieli obciążenie na partycje lub fragmenty.

Partycjonowanie poziome

Fragmentowanie można przeprowadzić poprzez poziome partycjonowanie baz danych poprzez podział na wiersze. Odłamki, jak nazywane są rzędy, są konceptualizowane na podstawie cech. Na przykład jeden fragment może być odpowiedzialny za przechowywanie stanu i historii transakcji dla określonego typu adresu. Możliwe jest również podzielenie fragmentów na podstawie typu przechowywanych w nich zasobów cyfrowych. Transakcje z udziałem tego zasobu cyfrowego mogą być możliwe dzięki kombinacji odłamków.

Jako przykład rozważmy transakcję wynajmu nieruchomości, w której zaangażowanych jest wiele fragmentów. Te fragmenty odpowiadają różnym podmiotom zaangażowanym w transakcję, od nazwy klienta po klucze cyfrowe skonfigurowane w inteligentnym zamku, który jest udostępniany najemcy po opłaceniu czynszu.

Udostępnianie fragmentów

Każdy fragment nadal może być współdzielony przez inne fragmenty, co zachowuje kluczowy aspekt technologii blockchain – zdecentralizowaną księgę. Innymi słowy, księga jest nadal dostępna dla każdego użytkownika, umożliwiając mu przeglądanie wszystkich transakcji księgi.

Sharding and Security

Jednym z głównych problemów w praktyce, która się pojawiła, jest bezpieczeństwo. Chociaż każdy fragment jest oddzielny i przetwarza tylko własne dane, istnieje obawa dotycząca bezpieczeństwa dotycząca uszkodzenia fragmentów, w przypadku których jeden fragment przejmuje inny fragment, co powoduje utratę informacji lub danych.

Jeśli pomyślimy o każdym fragmencie jako o własnej sieci blockchain z uwierzytelnionymi użytkownikami i danymi, haker lub cyberatak może przejąć odłamek. Atakujący może wtedy wprowadzić fałszywe transakcje lub złośliwy program.

Ethereum, jedna z najbardziej znanych firm blockchainowych, znajduje się na pierwszej linii testowania shardingu jako możliwego rozwiązania problemów z opóźnieniami i skalowalnością. Ethereum zwalczył potencjał ataku odłamkowego, losowo przypisując węzły do ​​niektórych odłamków i stale je ponownie przypisując w losowych odstępach czasu. To losowe próbkowanie utrudniłoby hakerom określenie, kiedy i gdzie uszkodzić fragment.

Należy również zauważyć, że sharding jest nadal we wczesnej fazie testów, gdy jest używany w sieciach blockchain. W rezultacie wszystkie potencjalne problemy i wyzwania nie zostały jeszcze rozwiązane.