Rozwiązania pomiaru wymierzalności - Token-Economy-Book/PolishTranslation GitHub Wiki

Rozwiązania dla skalowalności

Jednym z największych wyzwań związanych z konsensusem rozproszonym, takim jak Proof-of-Work, jest to, że choć czyni on sieć bezpieczną, nie jest dobrze skalowalny. Wynika to z kompromisu pomiędzy decentralizacją, bezpieczeństwem i skalowalnością.

Zastrzeżenie: Badania i rozwój w zakresie rozwiązań skalowalności są uzależnione od bieżących wydarzeń. Ten rozdział daje ogólny przegląd, ale nie wyczerpuje wszystkich możliwych rozwiązań i/lub ich kompromisów.

Trylemat skalowalności" opisuje kompromis pomiędzy decentralizacją, bezpieczeństwem i skalowalnością w konsensusie rozproszonym. Decentralizacja jest założeniem sieci rozproszonej, bezpieczeństwo jest najważniejszym aspektem, gdy sieć obejmuje zbiór niezaufanych aktorów, a skalowalność odnosi się do liczby transakcji, które system może przetworzyć w ciągu sekundy. Aby umożliwić wysoki stopień włączenia słabszych obliczeniowo węzłów, rozmiar bloku w sieci Proof-of-Work jest ograniczony, a bloki są tworzone z opóźnieniem. W przeciwnym razie, ponieważ większe bloki są trudniejsze do przetworzenia, opóźnienia w sieci uniemożliwiłyby słabszym węzłom udział w procesie tworzenia bloków. Takie ograniczenia zmniejszają jednak ilość transakcji, które mogą zostać zatwierdzone w danym przedziale czasowym, w wyniku czego mechanizmy Proof-of-Work są bezpieczne, ale nie są dobrze skalowalne. We wczesnych dniach sieci blockchain, skalowalność była rzadko poruszana przez społeczność deweloperów, ponieważ ruch w tych sieciach był wciąż niewielki. Obecnie skalowalność publicznych sieci blockchain jest jednym z głównych wąskich gardeł masowej adopcji, a także jedną z najczęściej opracowywanych kwestii badawczo-rozwojowych.

Skalowalność blockchaina można porównać do początków Internetu, kiedy to przeciągaliśmy kable telefoniczne przez nasze mieszkania, aby połączyć nasze komputery z Internetem. Jeśli chodzi o połączenie, przepustowość była niska, a komunikacja powolna; trzeba było czekać, aż strony będą się tworzyć piksel po pikselu. Wprowadzenie modemów 56k było uważane za znaczne ulepszenie modemu 28k, ale strumieniowe przesyłanie wideo było uważane za odległe marzenie. Chociaż przepustowość danych była problemem, problemy te zostały ostatecznie rozwiązane i z pewnością nie powstrzymało to Internetu przed ewolucją w to, czym jest dzisiaj. W kontekście sieci blockchain zaproponowano wiele rozwiązań, aby transakcje były szybsze i tańsze, przy jednoczesnym zachowaniu bezpieczeństwa i pewnego poziomu decentralizacji. Rozwiązania dotyczące skalowalności mogą rozwiązywać te problemy na (i) poziomie protokołu lub na (ii) poziomie drugiej warstwy.

Kanały państwowe

Kanały państwowe oferują drugą warstwę na szczycie sieci blockchain, pozwalając transakcjom, które mogłyby wystąpić on-chain, zostać rozliczone off-chain, przy jednoczesnym zachowaniu bezpieczeństwa wszystkich uczestników sieci. W tym procesie, rozliczenia transakcji są zlecane prywatnemu kanałowi państwowemu, który można opisać jako dwukierunkową ścieżkę pomiędzy dwoma użytkownikami. Te kanały stanowe są sformalizowane i przetwarzane przez inteligentny kontrakt. "Kanały stanów" pozwalają na transfer dowolnego stanu dla dowolnego typu zdecentralizowanej aplikacji. "Kanały płatności" pozwalają jedynie na przekazywanie płatności. Są one przydatne, jeśli dwie strony, Alicja i Bob, mają ciągłe relacje biznesowe z ciągłymi płatnościami w obie strony.

Tokeny są tymczasowo zablokowane jako mechanizm bezpieczeństwa w przypadku sporów: (i) Tokeny mogą być przesyłane z Alicji do Boba i odwrotnie za pomocą kanałów państwowych, w których są one blokowane za pomocą schematu wielopodpisowego lub inteligentnego kontraktu na wstępnie zdefiniowany okres czasu. (ii) Zarówno Alice, jak i Bob podpisują każdą transakcję swoim kluczem prywatnym, ale transakcje są utrzymywane w tajemnicy i nie są transmitowane do sieci blockchain. (iii) Po upływie tego okresu saldo wszystkich transakcji dwustronnych jest transmitowane do sieci blockchain, co powoduje zamknięcie kanału państwowego.

Załóżmy, że Alicja ma 200 ETH, a Bob ma 100 ETH. W pewnym okresie czasu Alice wysyła dziesięć płatności po 10 ETH, a Bob wysyła Alice dwie płatności po 25 ETH. Jeśli wszystkie transakcje byłyby rozliczane bezpośrednio w sieci Ethereum, wszystkie węzły w sieci zarejestrowałyby dwanaście pojedynczych transakcji. Nie tylko spowodowałoby to rozdęcie liczby transakcji i spowolnienie sieci, ale również byłoby droższe zarówno dla Alicji, jak i Boba, ponieważ każda pojedyncza transakcja wiązałaby się z opłatą transakcyjną. Używając kanału państwowego do rozliczania takich transakcji dwustronnych, tylko saldo wszystkich transakcji musi być rozliczone bezpośrednio na blockchainie po upływie wcześniej zdefiniowanego czasu. Oznacza to, że tylko dwie transakcje zostaną zarejestrowane przez sieć: transakcje otwarcia i zamknięcia kanału.

Utrzymywanie transakcji poza łańcuchem i wyłącznie pomiędzy obiema stronami jest nie tylko tańsze i szybsze, ale także bardziej chroniące prywatność. Wszystko dzieje się wewnątrz kanału, a nie jest publicznie transmitowane przez całą sieć. Jedynymi transakcjami, które są rejestrowane na łańcuchu i widoczne publicznie są transakcje otwierające i zamykające. Wadą tego procesu jest to, że kanały państwowe wymagają pełnej dostępności wszystkich zaangażowanych uczestników. W przeciwnym razie, jeśli ostateczne zamknięcie kanału, a tym samym ostateczne przekazanie stanu, zostałoby złożone przez złego aktora, tokeny mogłyby być zagrożone. Aby odeprzeć złośliwe ataki, zablokowane tokeny mogą zostać zatrzymane przez inteligentny kontrakt, aby ukarać złośliwego aktora. Wymaga to monitorowania i może być zlecane dostawcom usług, tzw. kontraktom sędziowskim, w zamian za opłatę. Kanały stanów są zatem przydatne tylko w przypadkach, gdy uczestnicy wymieniają wiele aktualizacji stanu w długim okresie czasu, aby zmniejszyć początkowe koszty utworzenia kanału i wdrożenia kontraktu sędziowskiego.


State Channels


Inteligentny kontrakt używany do blokowania stanu musi z góry znać uczestników danego kanału. Kanały stanowe działają dobrze ze zdefiniowanym zestawem uczestników, ale dodawanie i usuwanie uczestników wymaga zmiany w inteligentnym kontrakcie lub utworzenia nowego kanału. Projekty takie jak Lightning Network (Bitcoin) czy Raiden Network (Ethereum) wymyśliły rozwiązania oparte na siatce uczestników, tworząc sieć ze wszystkich kanałów tak, że nie trzeba tworzyć nowego kanału dla każdego nowego uczestnika. Transakcje mogą być teraz kierowane przez kanały innych osób, ale tylko tak długo, jak istnieje jakieś bezpośrednie połączenie kanałowe w sieci. Oto wybrana lista państwowych rozwiązań kanałowych dla różnych sieci blockchain o różnym stopniu dojrzałości i powodzenia: "Celer", "Counterfactual", "Fun Fair", "Liquidity", "Lightning" "Machinomy", "Perun", "Raiden", "Spankchain" czy "Trinity". Większość rozwiązań jest wyspecjalizowana w jednej sieci blockchain - takiej jak Bitcoin, Ethereum lub Neo - inne są agnostyczne sieciowo.

Sidechains

Sidechains są oddzielnymi sieciami blockchain, kompatybilnymi z mainchain. Sieci boczne mają swój własny mechanizm konsensusu, własny poziom bezpieczeństwa i własne tokeny. Sidechain nie musi być koniecznie publiczny i może być również prywatnie zarządzaną księgą. Jeśli bezpieczeństwo sieci sidechain zostanie naruszone, szkody nie będą miały wpływu na mainchain lub inne sidechainy. Obie sieci są połączone ze sobą za pomocą "dwukierunkowego kołka" i mogą przekazywać dowolny stan. W ten sposób tokeny mogą być wymieniane po z góry ustalonym kursie pomiędzy mainchainem a sidechainem. Mainchain gwarantuje ogólne bezpieczeństwo i rozstrzyganie sporów, a transakcje, które są zlecane do sidechaina, mogą poświęcić decentralizację w zamian za skalowalność.

W przeciwieństwie do kanałów państwowych, transakcje, które występują na sidechainie nie są prywatne pomiędzy uczestnikami transakcji. Są one publikowane w sieci sidechain i tym samym widoczne dla każdego, kto ma dostęp do księgi głównej. Alice i Bob nie muszą być dostępni przez cały czas, nie ma też dodatkowych kosztów administracyjnych związanych z dodawaniem i usuwaniem uczestników. Utworzenie sidechaina jest jednak dużym wysiłkiem, ponieważ oznacza zbudowanie całej infrastruktury od podstaw.


Sidechains


Sidechain wchodzi w interakcję z warstwą obliczeniową na mainchainie i wymaga zablokowania tokenów w celu ułatwienia sporów. Grupa serwerów (federacja) pośredniczy między mainchainem a jego sidechainami i określa, kiedy tokeny, których użył użytkownik, są zablokowane i zwolnione. Dodaje to kolejną warstwę bezpieczeństwa pomiędzy mainchainem a sidechainem. Federacja jest wybierana przez twórców sidechain. Jednak taka federacja dodaje kolejną warstwę między mainchainem a sidechainem i może wprowadzić więcej wektorów ataku. Poniżej znajduje się wybrana lista rozwiązań sidechain dla różnych sieci blockchain o różnym stopniu dojrzałości i sukcesu: "Bitcoin Codex", "Bitcoin Extended", "Elements Projects", "Hivemind", "Loom", "Liquid", "Mimblewimble", "Plasma", "Poa Network" czy "Rootstock".

Interoperacyjność Blockchain

Liczba sieci blockchain i innych ksiąg rozproszonych stale rośnie. Jednak wszystkie te systemy rozproszonych ksiąg rachunkowych są w przeważającej części odizolowanymi systemami i działają jako silosy. Sieci nie mają wiedzy na temat stanu tokenów zarządzanych w innych sieciach. Nie mają też pojęcia o tym, czy inne sieci mają wolne moce przerobowe do rozliczania transakcji. Sidechainy mogą być postrzegane jako pierwszy krok w kierunku pełnej interoperacyjności i skalowalności blockchainów. Bardziej efektywne i globalne rozwiązanie mogłyby zapewnić sieci interoperacyjności, takie jak "Cosmos", "Polkadot" czy "Wanchain", które mogłyby rozwiązać problem skalowalności dla wielu sieci jednocześnie.

Interoperacyjność, w kontekście ksiąg rozproszonych, odnosi się do zdolności do swobodnego dzielenia się tokenami i powiązanymi danymi w różnych sieciach. W środowisku w pełni interoperacyjnym użytkownik z sieci A mógłby wysyłać tokeny do innego użytkownika w sieci B bez potrzeby korzystania z pośrednika, takiego jak scentralizowana giełda. Interoperacyjność blockchain jest ideą przeciwną do tego, co niektórzy proponują, że może się zdarzyć: sytuacja, w której zwycięzca bierze wszystko, gdzie z powodu efektów sieciowych tylko jedna sieć blockchain przetrwa w dłuższej perspektywie. Idea "jednego łańcucha, aby rządzić nimi wszystkimi" jest sprzeczna z podstawową ideą decentralizacji. Przyszłość Web3 może zatem zależeć od zdolności sieci blockchain do wzajemnego oddziaływania na siebie.

Sharding

Niektórzy deweloperzy proponują, że sharding stanu sieci może być rozwiązaniem problemu skalowalności sieci blockchain. Sharding jest koncepcją zaadoptowaną z rozproszonych baz danych, która nie została jeszcze przetestowana na skalę globalną w kontekście sieci blockchain. Sharding mógłby rozwiązać ograniczenia skalowalności obecnych protokołów konsensusu, gdzie każdy węzeł musi regularnie aktualizować swoją księgę i utrzymywać pełną historię, od bloku genezy do dnia dzisiejszego. Sugeruje się, że historia księgi może być podzielona na oddzielne części, z których każda będzie miała swój własny "shard" stanu sieci. Wiele shardów utrzymywanych przez różne węzły sieci równolegle do siebie, poprawiając w ten sposób ogólną skalowalność sieci. Shardy byłyby "pod-stanami" jako część całego stanu sieci. Sieć jako całość powinna nadal działać w ramach jednego stanu, ale każdy shard musiałby być spójny sam w sobie. Komunikacja pomiędzy shardami byłaby obsługiwana za pomocą reguł protokołu. W takim procesie, adresy blockchain, salda i ogólny stan byłyby zawarte na shardach. Shardy dostarczają dowody do mainchain i mogą komunikować się z innymi shardami poprzez protokół shardingu. Przykładowe projekty pracujące nad rozwiązaniami shardingowymi: "Prysmatic Labs", "Drops of Diamond", "Status" i "PegaSys".

Alternatywne Algorytmy Kryptograficzne

Jednym z największych wyzwań sieci Bitcoin i podobnych sieci jest zarządzanie niewydanymi transakcjami. Te niewydane transakcje przyczyniają się do wykładniczego wzrostu księgi głównej. W Bitcoin, na przykład, są one określane jako UTXO i przyczyniają się do większego obciążenia, droższych transakcji i mniejszej przepustowości na sekundę. Kiedy nowa surowa transakcja jest tworzona, a następnie walidowana, przed podpisaniem, dane wejściowe mogą pochodzić tylko z niewydanych wyjść z poprzednich transakcji. Dlatego też, dla walidacji tworzenia transakcji i podpisywania, niewydane transakcje są ważniejsze niż wydane transakcje (wyjścia). Dla spójności księgi głównej, niewydane transakcje mają znaczenie dla takich rzeczy jak znakowanie czasem, dowód istnienia, przechowywanie danych, a także tworzenie i wydobywanie bloków. Sieci blockchain zorientowane na transakcje są w całości o niewydanych transakcji. Dlatego rozdęcie księgi głównej jest tak silnie z nimi związane. Zarządzanie wielkością ładunku UTXO, ilością UTXO w księdze oraz stopniem, w jakim możliwe jest utrzymanie ich poza łańcuchem, stanowi remedium na rozdęcie łańcucha jako takiego. W rzeczywistości, wszystko, co utrzymuje ładunek mniejszy rozwiązuje problem rozdęcia.

Alternatywne algorytmy kryptograficzne stosowane w podpisach zbiorowych, takie jak wielopodpisy, podpisy pierścieniowe, podpisy progowe lub podpisy Schnorra, mogłyby rozwiązać pewne problemy ze skalowalnością, na przykład poprzez zmniejszenie ilości informacji dodawanych do księgi głównej lub wyeliminowanie tych informacji przy wielopodpisach i skryptach umarzających. W przypadku transakcji wielopodpisowych, na przykład, adresy odbiorcy są agregowane w jeden adres odbiorcy multisig i powodują, że towarzyszący skrypt wykupu jest przechowywany w trybie offline. Zmniejsza to również liczbę wyjść i rozmiar skryptu wewnątrz transakcji. To samo jest prawdziwe dla podpisów pierścieniowych, progowych i zbiorczych.

Wielopodpisy są podzielone na transakcję finansowania, która zamienia się w transakcję UTXO i transakcję wydatkowania, a w rezultacie w transakcję wydatkowania. Dla transakcji finansowania związanych z UTXO, agregacja kilku odbiorników w jeden adres odbiorczy i użycie mniejszej ilości wyjść, plus off-chaining skryptu redeem, zwykle skutkuje mniejszym payload. Alternatywne schematy podpisów należą do zestawu narzędzi antybloatowych, ale w porównaniu z przeciętną transakcją nie-multisig, redukcja payload nie zawsze ma miejsce i zależy od konkretnego przypadku użycia. "Mimblewimble", na przykład, jest propozycją dla Bitcoin, aby użyć innego podejścia do konstrukcji transakcji. Usuwa ona większość historycznych danych blockchain, w tym zużyte dane wyjściowe transakcji, jednocześnie nadal pozwalając użytkownikom na pełną weryfikację łańcucha. Pozwala również na większą prywatność niż obecne implementacje Bitcoin. "Dfinity" i "Hyperledger Fabric" używają podpisów progowych, aby osiągnąć ten sam cel.

Referencja Rozdziału i Dalsze Czytanie