Sharding vs Off-Chain: co jest lepsze dla skalowalności Blockchain?

Skalowalność Blockchain jest istotną kwestią, która wpływa na dalsze wdrażanie tej rewolucyjnej technologii. Istnieją różne rozwiązania tego problemu, aw tym artykule rozważymy dwa z nich: sharding i off-chain. Zrobimy to, odwołując się do przykładów kilku projektów skalowalności: FLETA, Elrond i GEO Protocol.

sharding vs offchain

Problem

Problem skalowalności łańcucha bloków można podzielić na kilka części: rozmiar danych, szybkość transakcji i koszt.

Rozmiar danych

Nowe transakcje w każdym bloku (szczególnie popularnym, jak Bitcoin czy Ethereum) prowadzą do ciągłego dodawania bloków do księgi. To z kolei prowadzi do dalszego wzrostu ilości starszych danych, które powinny być przechowywane przez pełne węzły łańcucha blokowego (ponieważ jest to istota technologii rozproszonej księgi – DLT). Wraz ze wzrostem liczby użytkowników i transakcji gromadzenie się danych ogromnie rośnie i nie ma sposobu, aby jakoś odwrócić lub spowolnić ten proces. 

Szybkość transakcji

Każda transakcja blockchain wymaga weryfikacji peer-to-peer przez innych członków sieci (mechanizm konsensusu), które mogą stać się znacznie wolniejsze, gdy rośnie liczba użytkowników i transakcji. Bitcoin może obsłużyć tylko 6 transakcji na sekundę. Porównaj to ze średnią Visa wynoszącą 8 000 lub ze szczytową wydajnością 43 000 transakcji na sekundę.

Koszty transakcji

To samo dotyczy kosztów transakcji. Widzimy wzrost kosztów w czasach, gdy w popularnych sieciach blockchain jest więcej użytkowników i transakcji. Dzieje się tak, ponieważ wraz ze wzrostem sieci potrzeba więcej węzłów (kopaczy lub walidatorów), aby je przetworzyć (w przypadku najczęściej używanego mechanizmu weryfikacji pracy – PoW – mechanizmu konsensusu), co wiąże się z większymi kosztami operacyjnymi. Ponadto, gdy cena konkretnej monety rośnie, powoduje to, że transakcje, które wcześniej kosztowały centy opłat, kosztują dolary, a nawet dziesiątki dolarów. 

Oczywiście niektóre znane łańcuchy bloków, takie jak Ethereum, są znacznie szybsze i tańsze niż Bitcoin – ale to nie rozwiązuje całkowicie problemu. Chodzi o to, że w blockchain można uzyskać decentralizację i odporność na cenzurę, ale zawsze kosztem skalowalności i szybkości. Próby uczynienia systemów blockchain bardziej skalowalnymi i szybszymi z założenia prowadzą do większej centralizacji i / lub mniejszego bezpieczeństwa, co jest sprzeczne z samą ideą technologii.

Rozwiązania

Te problemy są dobrze znane i rozwiązane na wiele różnych sposobów, począwszy od ulepszenia bazy kodu łańcucha bloków, miękkie widelce i twarde widelce (co ogólnie dodaje jedynie przyrostowe ulepszenia) do różnych projektów warstwy 2 innych firm, mających na celu rozwiązanie problemu skalowalności poszczególnych łańcuchów bloków.

Przyjrzyjmy się szczegółowo tylko dwóm podejściom do problemu skalowalności łańcucha bloków, a mianowicie sharding i poza łańcuchem.

Rozwiązanie fragmentacji

Sharding jest jednym ze sposobów rozwiązania problemu skalowalności i jest używany przez długi czas w zarządzaniu bazami danych ze względu na jego wydajność. Chodzi o to, aby podzielić bazę danych na fragmenty – zasadniczo segmenty poziome – z których każdy jest przechowywany na osobnym serwerze, co rozkłada obciążenie i poprawia wydajność.

W przypadku zastosowania do dziedziny łańcucha bloków (co jest stosunkowo nowym podejściem), fragmentacja oznacza, że ​​każdy węzeł zawiera tylko określoną część danych łańcucha bloków, a nie całą kopię księgi (jak w przypadku „normalnego” systemu łańcucha bloków). W ten sposób węzły utrzymują te części całego łańcucha blokowego we współdzielony sposób, zachowując zdecentralizowaną zasadę, która jest natywna dla DLT. Tak więc w przypadku fragmentacji pojedynczy węzeł nie zawiera całej kopii księgi ani nie ładuje informacji z jej fragmentu do wszystkich innych węzłów w łańcuchu bloków. 

Sharding blockchain zwykle korzysta z algorytmów konsensusu dowodu stawki (lub ich modyfikacji), ponieważ bardziej powszechnego proof-of-work nie można zaimplementować razem z shardingiem. PoS ma wiele zalet w stosunku do PoW, takich jak znacznie niższe zużycie energii i brak konieczności stosowania specjalnego sprzętu. Naturalnie, ma pewne wady także.

Ale spójrzmy na więcej ilustracji i rozważmy kilka projektów, które obecnie używają fragmentowania.

Elrond

elrond

Stworzony przez zespół przedsiębiorców, inżynierów i badaczy z wszechstronnym doświadczeniem w firmach Intel, Microsoft, Google, NTT i NEM, Elrond to publiczny projekt blockchain skoncentrowany na zapewnieniu skalowalności – porównywalnej pod względem przepustowości z systemami scentralizowanymi przy zachowaniu zdecentralizowanego charakteru – minimalnych wymaganiach energetycznych i obliczeniowych oraz solidnych zabezpieczeniach. Projekt twierdzi również, że oferuje interoperacyjność międzyłańcuchową, którą można zaimplementować za pomocą mechanizmu adaptera na poziomie maszyny wirtualnej Ethereum. (Pomimo tego, że korzysta z maszyny wirtualnej Ethereum, Elrond nie jest pozycjonowany jako projekt warstwy 2 dla Ethereum – po prostu wykorzystuje istniejące frameworki Ethereum).

Wszystko to osiąga się dzięki wykorzystaniu dwóch kluczowych funkcji: Adaptive State Sharding i mechanizmu konsensusu Secure Proof of Stake (SPoS).

Adaptive State Sharding to podejście do skalowalności, które łączy trzy typy shardingu: sieć / komunikacja, transakcja / przetwarzanie, stan / magazyn. Zdaniem zespołu projektowego poprawi to komunikację między shardami, zmniejszy ilość pamięci masowej i zwiększy wydajność dzięki równoległemu przetwarzaniu. Takie podejście umożliwia dynamiczną zmianę liczby fragmentów zgodnie z dostępnymi zasobami walidacji i wykorzystaniem sieci. W ten sposób sieć może dostosowywać się do liczby użytkowników i żądać zmian bez narażania bezpieczeństwa, dostępności i decentralizacji. Prowadzi to do liniowej skalowalności: skalowalność sieci ma rosnąć wraz z liczbą węzłów w sieci. Również przepustowość sieci Elronda wynosi zgłoszono przekroczenie 10 000 TPS. Podczas Podczas ostatniego spotkania Elrond osiągnął 65 000 TPS z 

Pojawienie się nowego fragmentu jest możliwe tylko wtedy, gdy istniejący fragment osiągnie 400 węzłów. Oznacza to, że jeśli jest mniej niż 800 węzłów, nie będzie dwóch fragmentów. A jeśli jest więcej niż 1200 węzłów, trzy fragmenty zostaną utworzone automatycznie.

Jeśli chodzi o Secure Proof of Stake, w zasadzie Elrond używa mieszanki mechanizmów konsensusu PoS i pBFT. Ogólnie jest to zmodyfikowany mechanizm bizantyjskiej tolerancji błędów, w którym konsensus jest osiągany, jeśli 1/3 węzłów, które zostały losowo wybrane w loterii dwupoziomowej, jest uczciwa, podczas gdy obstawione żetony nadal odgrywają rolę w głosowaniu i nawet w prawdopodobieństwie wygrania na loterii. Oprócz kar i wagi głosu, postawiony depozyt jest oceniany. Jeśli węzeł postępuje zgodnie z regułami, jego ocena rośnie. Ale jeśli spróbuje wcisnąć coś, co jest sprzeczne z ogólnym konsensusem, ocena spada.

elrond SPOS

Ryc.1. Mechanizm konsensusu Elronda Secure Proof of Stake.

W tym momencie do gry wkracza część dzielenia na fragmenty. W innych łańcuchach bloków PoS wybranie grupy konsensusu może zająć około 12 sekund, ponieważ zaangażowany jest cały ciężki łańcuch bloków i wielu uczestników, a informacje są rozprowadzane w całej sieci. Natomiast Elrond ma oddzielną grupę konsensusu w każdym ze swoich fragmentów, a wymiana informacji w celu osiągnięcia konsensusu zachodzi w każdej z grup oddzielnie. W związku z tym utworzenie grupy i osiągnięcie konsensusu zajmuje na ogół cztery sekundy. Co więcej, w celu zwiększenia bezpieczeństwa i odporności na błędy, walidatory migrują z fragmentu do fragmentu, przechodząc najpierw do pewnego rodzaju strefy buforowej – puli walidatorów – z której są przypisywane do fragmentów w kolejności losowej. Ponadto same węzły można również przetasować w obrębie odłamków. Z powodu tych przetasowań, litera S została dodana do nazwy mechanizmu konsensusu Elronda: SPoS (Secure PoS).

Po osiągnięciu konsensusu, po zebraniu podpisów 2/3 + 1 od członków grupy konsensusu, blok zostaje zatwierdzony i podpisany zbiorczym podpisem grupy. Następnie blok jest dystrybuowany w całym fragmencie, a jego nagłówek jest wysyłany do metachain w celu zatwierdzenia. Pozostałe fragmenty otrzymują informacje o swoim stanie z metachain.  

Elrond jest obecnie w faza testnet (wydany w maju 2019 r.) i ma stać się platformą do łatwego wdrażania programowalnych pieniędzy i dApps. Niedawno (w czerwcu 2019 r.) Projekt stał się open source.

Sprzedaż tokenów: Elrond IEO został uruchomiony na platformie startowej Binance i zaplanowany na 1 lipca. 

elrond testnet

Zdjęcie: Elrond osiągnął 36 kTPS podczas spotkania

FLETA

fleta

FLETA ma na celu zapewnienie zrównoważonego, przyjaznego dla deweloperów ekosystemu dla dApps. Projekt próbuje rozwiązać istniejące problemy warstwy 1, takie jak skalowalność i szybkość transakcji, a także wprowadzić jeszcze większą decentralizację do łańcucha bloków. FLETA wykorzystuje w tym celu własne technologie: strukturę wielu łańcuchów, przeprojektowanie bloków, równoległe fragmentowanie i nowatorski algorytm konsensusu proof-of-formulation (PoF), w przeciwieństwie do bardziej powszechnych PoW i PoS w łańcuchu bloków.

Ze względu na technologię równoległego dzielenia na fragmenty z ulepszonym TPS każdego pojedynczego fragmentu, a także ogólny wzrost TPS, gdy rośnie liczba shardów w sieci, FLETA twierdzi, że może obsłużyć do 20 000 transakcji na sekundę. Jest to najwyższy do tej pory TPS wśród istniejących projektów blockchain, prawie dwukrotnie wyższy niż szczytowy TPS sieci testowej Elrond (wspomniany powyżej) i można go już porównać do scentralizowanych systemów, takich jak wspomniana wcześniej Visa. Dzięki 500 fragmentom sieć FLETA jest w stanie obsłużyć 10 milionów transakcji na sekundę!

Fragmenty w sieci FLETA mogą działać równolegle, bez podwójnego wydatkowania, ponieważ każdy fragment jest oddzielony, a dane nie są między nimi współdzielone. Tak więc najwyraźniej wyrównuje decentralizację w porównaniu z innymi projektami blockchain, w tym Elrond, w których odłamki są nadmiernie połączone przez metachain (patrz powyżej). 

Ponadto FLETA wykorzystuje niezależną strukturę wielołańcuchową, w której łańcuchy podrzędne są oddzielone od łańcucha głównego. To drastycznie zmniejsza przeciążenie głównego łańcucha, a także nadmierne opłaty dla użytkowników dApp, a także nadmierne koszty rozwoju. Oprócz głównego łańcucha, wielołańcuchowa struktura FLETA składa się z łańcucha tokenów i łańcucha dApp.

Główny łańcuch to miejsce, w którym następuje transakcja wydania. Tworzy umowę emisyjną i otrzymuje tokeny. Z kolei tokeny są sprzedawane w łańcuchu tokenów, który zawiera również numer bloku i wartość skrótu głównego łańcucha, aby utworzyć nowy blok. Ponadto łańcuch tokenów może tworzyć podłańcuch do uruchamiania dApps.

Najciekawszy punkt na temat FLETA to nowy mechanizm konsensusu – PoF, który służy do zapobiegania niepotrzebnym widelcom.

fleta PoF

Rys. 2. Mechanizm konsensusu FLETA Proof of Formulation.

Tam są formulatorów którzy są bezpośrednio odpowiedzialni za generowanie bloków; obserwatorzy którzy weryfikują bloki; i w końcu, osoby wyrażające zgodę którzy zgadzają się na sekwencję generowania bloków.

Konsensus składa się z procedury block mining, w której bloki są generowane w określonej kolejności (uzgodnionej przez osoby wyrażające zgodę). Istnieje grupa 20 formulatorów z rangami od 1 do 20, które są definiowane przez ich wynik, który określa formulator wydobywania i sekwencję nagród. 

Według twórców ta procedura zmniejsza zasięg rozpowszechniania bloku, co skutkuje szybszym generowaniem bloku. Węzeł obserwatora zapewnia natychmiastowe potwierdzenia i zapobiega potencjalnym rozwidleniom. W ten sposób sieć ma się ustabilizować, a szybkość transakcji zostanie zwiększona. Jednak tylko czas i praktyka pokażą, czy ten nowy mechanizm konsensusu jest skuteczniejszy niż bardziej tradycyjne.

Ponadto FLETA nie rozwiązuje problemu współdziałania, tak jak robi to Elrond.

Rozwiązanie poza łańcuchem

Podczas gdy podejście shardingu próbuje poprawić skalowalność blockchain od wewnątrz, istnieją alternatywy, które przyjmują bardziej destrukcyjne podejście do problemu. Poza łańcuchem jest jednym z najbardziej „radykalnych” z punktu widzenia łańcucha bloków warstwy 1. Ale przynosi szereg znaczących ulepszeń i nowych możliwości, które mogą wynieść adopcję na nowy poziom.

Sharding nadal korzysta z pojedynczej rozproszonej bazy danych, która jest wspólna dla całej sieci i nakłada określone ograniczenia w projekcie. Również podział bazy danych na oddzielne shardy rodzi nowy problem efektywnej i bezpiecznej synchronizacji jej części między sobą, dodając kolejny punkt potencjalnej awarii całego systemu.. 

Z drugiej strony podejście poza łańcuchem rozwiązuje zarówno problemy skalowalności, jak i interoperacyjności systemów blockchain (i innych niż blockchain), poprawia prędkość i ograniczenia przepustowości, zwiększa prywatność i sprawia, że ​​system jest jeszcze mniej scentralizowany, aby można go było rozszerzyć, gdy stanie się naprawdę rozproszony.  

Rozważmy więc przykład, aby uzyskać głębszy wgląd w to, jak można to wszystko zaimplementować.

GEO Protokół

protokół geograficzny

Protokół GEO jest protokołem infrastruktury open source, który zapewnia interoperacyjność sieci transferu wartości w lekki i ekonomiczny sposób, a także umożliwia praktycznie nieograniczoną skalowalność. Głównym celem projektu jest stworzenie protokół transportowy dla przyszłego Internetu wartości.

Aby to osiągnąć, w pierwszej kolejności należy ostatecznie rozwiązać podstawowy problem skalowalności blockchain, a następnie zająć się kwestią interoperacyjności skądinąd zamkniętych ekosystemów blockchain, a także brakiem połączenia świata blockchain ze światem tradycyjnych finansów. Protokół GEO rozwiązuje oba problemy, ale tutaj skupimy się bardziej na części dotyczącej skalowalności.

Głównym wąskim gardłem systemów blockchain pod względem skalowalności jest sama wspólna księga, a także potrzeba ogólnego konsensusu tego lub innego rodzaju.

Będąc agnostykiem blockchain, protokół GEO całkowicie pozbawia się wspólnej księgi, polegając na w pełni rozproszonej sieci węzłów i destrukcyjne podejście oparte na konsensusie lokalnym, gdzie tylko węzły, które bezpośrednio uczestniczą w transakcji, faktycznie potwierdzają tę transakcję. Podmioty specjalne – obserwatorzy – gwarantują międzyłańcuchową niepodzielność płatności i są rozwiązywane tylko w rzadkich przypadkach możliwych konfliktów, które mogą wynikać z problemów z łącznością sieciową dla poszczególnych węzłów itp..

geo offchain

Rys. 3. Struktura sieci protokołu GEO.

Ponadto wszystkie informacje dotyczące transakcji są przechowywane lokalnie tylko przez uczestniczące węzły. Ani sieć jako całość, ani obserwatorzy, ani żaden inny uczestnik nie są świadomi treści danej transakcji ani nawet nie wiedzą o jej istnieniu.

Zapewnia to najwyższą prywatność, a także możliwości skalowania sieci prawie w nieskończoność, ponieważ nie ma centralnego organu kontrolującego sieć, ani nawet rozproszonego (jak górnicy lub walidatorzy w systemach opartych na łańcuchu bloków). W ten sposób sieć GEO jest całkowicie zdecentralizowana, a mimo to może zapewnić pełną funkcjonalność i działanie, tak jak powinna.

Jeśli chodzi o przepustowość, ponieważ nie ma potrzeby niepotrzebnego dzielenia się nadmierną ilością informacji w sieciach, każda ścieżka płatności będzie funkcjonować oddzielnie i niezależnie. Zatem wzrost liczby transakcji nie wpływa na całkowity TPS sieci. 

Wzrost liczby użytkowników i uczestników sieci GEO stworzy tylko więcej możliwości ścieżki płatności i większą płynność kanału, wzmacniając efekt sieci i ogólną wydajność sieci.

W ten sposób każdy blockchain może wykorzystywać sieć GEO do własnej skalowalności, a także do współdziałania z innymi ekosystemami blockchain i innymi niż blockchain. Z punktu widzenia sieci, łańcuch bloków może służyć jako warstwa zabezpieczająca aktywa dla odpowiedników aktywów GEO. Prowadzi to do zdrowej symbiotycznej relacji między różnymi typami systemów w globalnym Internecie wartości.

Wniosek

Skalowalność jest jednym z głównych problemów stojących na drodze do masowego przyjęcia technologii blockchain. To wyzwanie może mieć różne rozwiązania, w tym sharding i off-chain. Każdy z nich ma swoje zalety i wady. 

Sharding, znacznie poprawiający skalowalność łańcucha bloków, nadal w dużym stopniu opiera się na wspólnej księdze, której nie da się rozwiązać od wewnątrz. Poza łańcuchem eliminuje to całkowicie, stając się agnostykiem blockchain, znosząc większość ograniczeń przepustowości i umożliwiając interoperacyjność.

Z drugiej strony rozwiązania poza łańcuchem nadal wymagają blockchain ze względu na ich nieufny charakter i inne korzyści. Dobrą rzeczą jest to, że nie musimy wybierać między sposobami rozwiązania problemu skalowalności, ponieważ mogą one efektywnie współpracować, wprowadzając nowe możliwości do wszystkich sieci kryptograficznych.