Wstęp

Skalowalność ogólnie odnosi się do zdolności systemu do rozbudowy w celu dostosowania się do rosnącego zapotrzebowania. W informatyce możesz zwiększyć wydajność swojej maszyny, modernizując jej sprzęt, aby szybciej wykonywać określone zadania. Kiedy mówimy o skalowalności w blockchainach, mamy na myśli zwiększanie ich zdolności do obsługi większej liczby transakcji.

Protokoły takie jak Bitcoin mają wiele mocnych stron, ale skalowalność nie jest jedną z nich. Gdyby Bitcoin działał w centralnej bazie danych, administratorowi stosunkowo łatwo byłoby zwiększyć prędkość i przepustowość. Jednak propozycje wartości Bitcoina (tj. odporność na cenzurę) wymagają, aby wielu uczestników zsynchronizowało kopię łańcucha bloków.


Problem skalowalności blockchaina

Uruchomienie węzła Bitcoin jest stosunkowo tanie i poradzą sobie z tym nawet proste urządzenia. Ponieważ jednak tysiące węzłów muszą być ze sobą na bieżąco, istnieją pewne ograniczenia dotyczące ich wydajności.

Na liczbę transakcji, które można przetworzyć w łańcuchu, nakłada się ograniczenia, aby baza danych nie rozrosła się do nieporęcznych rozmiarów. Jeśli zbyt szybko stanie się zbyt duży, węzły nie będą w stanie nadążyć. Co więcej, jeśli bloki są zbyt duże, nie można ich szybko przesyłać w sieci.

W rezultacie znaleźliśmy się w pewnym wąskim gardle. Blockchain można postrzegać jako pociąg odjeżdżający w określonych odstępach czasu. W każdym wagonie jest ograniczona liczba miejsc i aby otrzymać bilet, podróżujący muszą złożyć ofertę w celu zagwarantowania miejsca. Jeśli wszyscy będą starali się wsiąść do pociągu w tym samym czasie, cena będzie wysoka. Podobnie sieć zapchana transakcjami oczekującymi będzie wymagać od użytkowników uiszczenia wyższych opłat, aby transakcja została uwzględniona w odpowiednim czasie.

Jednym z rozwiązań byłoby zwiększenie rozmiarów wagonów. Oznaczałoby to więcej miejsc, większą przepustowość i niższe ceny biletów. Nie ma jednak gwarancji, że miejsca nie zapełnią się tak, jak kiedyś. Wagonów nie można stale poszerzać, tak jak bloki lub limity gazu w blokach nie mogą być skalowane w nieskończoność. To drugie powoduje, że utrzymanie węzłów w sieci jest droższe, ponieważ do utrzymania synchronizacji będą potrzebować droższego sprzętu.

Twórca Ethereum, Vitalik Buterin, ukuł trylemat skalowalności, aby opisać wyzwanie stojące przed blockchainami. Teoretyzuje, że protokoły muszą zawierać kompromisy między skalowalnością, bezpieczeństwem i decentralizacją. Są one ze sobą w pewnym stopniu sprzeczne – skupiając się zbytnio na dwóch z nich, trzecia będzie słaba.

Z tego powodu wielu postrzega skalowalność jako coś, co można osiągnąć poza łańcuchem, podczas gdy bezpieczeństwo i decentralizacja powinny być maksymalizowane w samym łańcuchu bloków.


Jakie są rozwiązania skalowania poza łańcuchem?

Skalowanie poza łańcuchem odnosi się do podejść, które pozwalają na wykonywanie transakcji bez rozdęcia łańcucha bloków. Protokoły podłączane do łańcucha umożliwiają użytkownikom wysyłanie i odbieranie środków bez pojawiania się transakcji w głównym łańcuchu. Przyjrzymy się dwóm najbardziej znaczącym postępom w tym zakresie: łańcuchom bocznym i kanałom płatności.


Wprowadzenie do łańcuchów bocznych

Co to jest łańcuch boczny?

Sidechain to odrębny łańcuch bloków. Nie jest to jednak samodzielna platforma, ponieważ jest w jakiś sposób powiązana z głównym łańcuchem. Łańcuch główny i łańcuch boczny są interoperacyjne, co oznacza, że ​​zasoby mogą swobodnie przepływać między sobą.

Istnieje wiele sposobów zapewnienia możliwości przenoszenia środków. W niektórych przypadkach aktywa są przenoszone z głównego łańcucha poprzez zdeponowanie ich pod specjalnym adresem. W rzeczywistości nie są one wysyłane – zamiast tego są blokowane na adresie, a w łańcuchu bocznym wydawana jest odpowiadająca kwota. Prostszą (aczkolwiek opcją scentralizowaną) jest wysłanie środków do depozytariusza, który wymienia depozyt na środki w sidechainie.


Jak działa sidechain?

Załóżmy, że nasza przyjaciółka Alicja ma pięć bitcoinów. Chce je wymienić na pięć równoważnych jednostek w sidechainie Bitcoina – nazwijmy je sidecoinami. Omawiany łańcuch boczny wykorzystuje kołek dwukierunkowy, co oznacza, że ​​użytkownicy mogą przenosić swoje aktywa z łańcucha głównego do łańcucha bocznego i odwrotnie.

Pamiętaj, że sidechain jest odrębnym blockchainem. Będzie więc miał różne bloki, węzły i mechanizmy sprawdzania poprawności. Aby zdobyć sidecoiny, Alice wysłałaby jej pięć bitcoinów na inny adres. Może być własnością kogoś, kto następnie przekaże jej adresowi sidechain pięć sidecoinów po otrzymaniu bitcoinów. Alternatywnie może mieć konfigurację o zminimalizowanym zaufaniu, w której sidecoiny są automatycznie dodawane po wykryciu płatności przez oprogramowanie.


Sidechain scaling


Alice zamieniła teraz swoje monety na sidecoiny, ale zawsze może odwrócić ten proces i odzyskać swoje bitcoiny. Teraz, gdy weszła do łańcucha bocznego, może swobodnie przeprowadzać transakcje na tym oddzielnym łańcuchu bloków. Może wysyłać sidecoiny lub otrzymywać je od innych, tak samo jak w głównym łańcuchu.

Mogłaby na przykład zapłacić Bobowi jednego sidecoina za bluzę Binance. Gdy będzie chciała wrócić do Bitcoina, będzie mogła wysłać pozostałe cztery sidecoiny na specjalny adres. Po potwierdzeniu transakcji cztery bitcoiny zostaną odblokowane i dostarczone na kontrolowany przez nią adres w głównym łańcuchu.


Dlaczego stosuje się łańcuchy boczne?

Można się zastanawiać, jaki jest w tym sens. Dlaczego Alice po prostu nie użyje łańcucha bloków Bitcoin?

Odpowiedź jest taka, że ​​sidechain może być zdolny do rzeczy, których Bitcoin nie może zrobić. Blockchainy to starannie zaprojektowane systemy kompromisów. Chociaż Bitcoin jest najbezpieczniejszą i zdecentralizowaną kryptowalutą, nie jest najlepszy pod względem przepustowości. Chociaż transakcje Bitcoinem są szybsze niż metody konwencjonalne, nadal są stosunkowo powolne w porównaniu z innymi systemami blockchain. Bloki wydobywane są co dziesięć minut, a opłaty mogą znacznie wzrosnąć, gdy sieć jest przeciążona.

Trzeba przyznać, że w przypadku małych, codziennych płatności prawdopodobnie nie jest potrzebny taki poziom bezpieczeństwa. Jeśli Alicja płaci za kawę, nie będzie czekać na potwierdzenie transakcji. Będzie stać w kolejce, a zanim jej podadzą drink, będzie już zimny.

Sidechains nie podlegają tym samym zasadom. Tak naprawdę nie muszą nawet korzystać z Proof of Work, aby działać. Możesz użyć dowolnego mechanizmu konsensusu, zaufać jednemu walidatorowi lub dostosować dowolną liczbę parametrów. Możesz dodać ulepszenia, które nie istnieją w głównym łańcuchu, stworzyć większe bloki i wymusić szybkie rozliczenia.

Co ciekawe, łańcuchy boczne mogą nawet zawierać krytyczne błędy, nie wpływając na leżący u ich podstaw łańcuch. Dzięki temu można je wykorzystywać jako platformy do eksperymentów i wdrażania funkcji, które w innym przypadku wymagałyby konsensusu większości sieci.

Pod warunkiem, że użytkownicy będą zadowoleni z kompromisów, łańcuchy boczne mogą stanowić integralny krok w kierunku skutecznego skalowania. Nie ma wymogu, aby węzły łańcucha głównego przechowywały każdą transakcję z łańcucha bocznego. Alicja może wejść do łańcucha bocznego za pomocą pojedynczej transakcji Bitcoin, wykonać setki transakcji typu sidecoin, a następnie opuścić łańcuch boczny. Jeśli chodzi o blockchain Bitcoin, wykonała tylko dwa – jedno do wejścia i jedno do wyjścia.

Plazma Ethereum jest podobna, ale ma kilka zasadniczych różnic. Przeczytaj więcej na ten temat: Co to jest Plasma Ethereum?


Wprowadzenie do kanałów płatności

Co to jest kanał płatności?

Kanały płatności służą temu samemu celowi, co sidechains, jeśli chodzi o skalowalność, ale zasadniczo się od nich różnią. Podobnie jak sidechainy, wypychają transakcje z głównego łańcucha, aby zapobiec rozdęciu łańcucha bloków. Jednak w przeciwieństwie do sidechainów nie wymagają one oddzielnego łańcucha bloków do działania.

Kanał płatności wykorzystuje inteligentną umowę, aby umożliwić użytkownikom przeprowadzanie transakcji bez publikowania ich w łańcuchu bloków. Dokonuje tego poprzez zastosowanie umowy wymuszanej oprogramowaniem pomiędzy dwoma uczestnikami.


Jak działa kanał płatności?

W modelach takich jak popularna sieć Lightning Network dwie strony najpierw wpłacają monety na wspólny adres. Jest to adres wielopodpisowy, czyli taki, który wymaga dwóch podpisów, aby środki mogły zostać wydane. Zatem, jeśli Alicja i Bob utworzyli taki adres, transfer środków mógł nastąpić jedynie za zgodą obojga.

Załóżmy, że każdy z nich wpłacił 10 BTC na adres, na którym obecnie znajduje się 20 BTC. Łatwo byłoby im prowadzić bilans, który zaczyna się od stwierdzenia, że ​​Alicja i Bob mają po 10 BTC. Gdyby Alicja chciała dać Bobowi monetę, mogłaby zaktualizować ją i przeczytać, że Alicja ma 9 BTC, Bob ma 11 BTC. Nie musieliby publikować w łańcuchu bloków, ponieważ nadal aktualizują te salda.


how a payment channel works


Kiedy jednak nadejdzie czas, powiedzmy, że Alicja ma 5 BTC, a Bob ma 15 BTC. Mogą następnie utworzyć transakcję, która wyśle ​​te salda na adresy należące do stron, podpisze ją i opublikuje.

Alicja i Bob mogli zarejestrować w swoim bilansie dziesięć, sto lub tysiąc transakcji. Ale jeśli chodzi o blockchain, wykonali tylko dwie operacje w łańcuchu: jedną dla początkowej transakcji finansowania i jedną w celu realokacji sald po jej zakończeniu. Oprócz tych dwóch wszystkie pozostałe transakcje są bezpłatne i niemal natychmiastowe, ponieważ odbywają się poza łańcuchem. Nie ma żadnej opłaty za wydobycie i żadnych potwierdzeń blokowych, na które trzeba czekać.

Oczywiście omówiony powyżej przykład wymaga współpracy obu stron, co nie jest sytuacją idealną dla nieznajomych. Można jednak zastosować specjalne mechanizmy, aby ukarać każdą próbę oszustwa, dzięki czemu strony mogą bezpiecznie współdziałać ze sobą bez zaufania.


Kierowanie płatności

Ewidentnie kanały płatności są wygodne dla obu stron, które przewidują duży wolumen transakcji. Ale jest coraz lepiej. Sieć tych kanałów można rozbudować, co oznacza, że ​​Alicja będzie mogła płacić stronie, z którą nie jest bezpośrednio połączona. Jeśli Bob ma otwarty kanał z Carol, Alicja może jej zapłacić, pod warunkiem, że jest wystarczająca pojemność. Przekieruje fundusze na stronę Boba, który z kolei przekieruje je na stronę Carol. Jeśli Carol jest połączona z innym uczestnikiem, Danem, można zrobić to samo.

Taka sieć ewoluuje w kierunku topologii rozproszonej, w której wszyscy łączą się z wieloma urządzeniami równorzędnymi. Często do miejsca docelowego prowadzi wiele tras, a użytkownicy będą mogli wybrać najbardziej efektywną.


Zamykanie myśli

Omówiliśmy dwa podejścia do skalowalności, które pozwalają na dokonywanie transakcji bez obciążania bazowego łańcucha bloków. Zarówno łańcuchy boczne, jak i technologia kanałów płatności nie są jeszcze dojrzałe, ale są coraz częściej wykorzystywane przez użytkowników, którzy chcą ominąć niedociągnięcia transakcji w warstwie podstawowej.

W miarę upływu czasu i coraz większej liczby użytkowników dołączających do sieci ważne jest utrzymanie decentralizacji. Można to osiągnąć jedynie poprzez egzekwowanie ograniczeń rozwoju łańcucha bloków, aby nowe węzły mogły łatwo przyłączać się. Zwolennicy rozwiązań zapewniających skalowalność poza łańcuchem uważają, że z czasem główny łańcuch będzie wykorzystywany wyłącznie do rozliczania transakcji o dużej wartości lub do podłączania/wyłączania łańcuchów bocznych oraz kanałów otwierania/zamykania.