Spis treści
Wprowadzenie
Problem skalowalności blockchainu
W rezultacie może się wydawać, że znajdujemy się w sytuacji bez wyjścia. Ciekawą analogią blockchainu jest wyobrażenie go sobie jako pociągu, który odjeżdża w określonych odstępach czasowych. W każdym z wagonów znajduje się tylko ograniczona liczba miejsc. Jeśli pragniemy uzyskać bilet, wraz z innymi podróżnymi musimy wziąć udział w licytacji, aby wykupić jedno z dostępnych miejsc. Jeśli wszyscy będą chcieli wsiąść do pociągu w tym samym czasie, cena drastycznie wzrośnie. Podobnie sieć Bitcoina zapchana transakcjami będzie wymagać od użytkowników uiszczenia wyższych opłat, aby ich transakcje zostały uwzględnione przez górników jak najszybciej.
Twórca Ethereum, Vitalik Buterin, stworzył abstrakcyjny koncept określany jako Trylogię Skalowalności , aby zobrazować wyzwania, stojące przed systemami opartymi o blockchain. W swoim modelu Buterin teoretyzuje, że protokoły muszą iść na kompromis między skalowalnością, bezpieczeństwem i decentralizacją. Są to, w pewnym stopniu, sprzeczne ze sobą cechy - zbyt duże skupienie na dwóch właściwościach spowoduje, że trzecia będzie słabła.
Czym są rozwiązania off-chain w zakresie skalowalności?
Skalowanie off-chain polega na przekierowaniu części transakcji poza główny łańcuch bloków - możemy to zrobić stosunkowo bezpiecznie, na przykład z mikrotransakcjami. Protokoły, które podłączają się do głównego blockchainu, pozwalają użytkownikom wysyłać i odbierać środki, bez zawierania transakcji w głównym łańcuchu (mniejsze transakcje zbiera się w grupy). Teraz omówimy dwie z najbardziej znaczących technologii mających to umożliwić: sidechainy oraz kanały płatności.
Wprowadzenie do sidechainów
Czym jest sidechain?
Sidechain to po prostu dodatkowy blockchain (łańcuch boczny). Nie działa on jednak w pełni samodzielnie, ponieważ jest zawsze w pewnym stopniu połączony z nadrzędnym blockchainem. Łańcuch główny i boczny są interoperacyjne, co oznacza swobodny przepływ zasobów cyfrowych między jednym a drugim.
Jak dokładnie działa sidechain?
Załóżmy, że nasza przyjaciółka Alice posiada pięć bitcoinów. Chce wymienić je na pięć równoważnych jednostek w łańcuchu bocznym Bitcoina – nazwijmy je sidecoins'ami. Łańcuch boczny, o którym mowa, używa dwukierunkowego peg, co oznacza, że użytkownicy mogą przenosić swoje zasoby z łańcucha głównego do łańcucha bocznego i odwrotnie.
Alice przekształciła teraz swoje bitcoiny w coiny na sidechainie, jednak w każdym momencie jest w stanie odwrócić ten proces. Teraz, gdy weszła już w łańcuch boczny, może śmiało dokonywać transakcji na tym oddzielnym łańcuchu bloków. Może wysyłać sidecoiny lub odbierać je od innych, tak jak w głównym blockchainie.
Alice mogłaby na przykład zapłacić Bobowi jednym sidecoinem za bluzę Binance. Gdy będzie chciała powrócić do sieci Bitcoin, może wysłać pozostałe cztery monety boczne na specjalny adres. Po potwierdzeniu transakcji cztery bitcoiny zostaną odblokowane i dostarczone na adres, który Alice kontroluje w głównym łańcuchu bloków.
Po co wykorzystuje się sidechainy?
Możesz się słusznie zastanawiać, o co w tym wszystkim chodzi. Dlaczego Alice nie użyje po prostu łańcucha bloków Bitcoina?
Trzeba przyznać, że ten poziom bezpieczeństwa prawdopodobnie nie jest potrzebny w przypadku drobnych, codziennych płatności. Jeśli Alice płaci za kawę, nie będzie czekać godziny na potwierdzenie transakcji. Zajmowałaby kolejkę, a jej kawa już dawno wystygła.
Co ciekawe, łańcuch boczny może doświadczyć krytycznych problemów i mimo tego nie zaszkodzić w żadnym stopniu głównemu blockchainowi. Dzięki temu możemy wykorzystywać sidechainy jako platformy do eksperymentów i wdrażania funkcji, które w innym przypadku wymagałyby konsensusu od większości sieci.
Pod warunkiem, że użytkownicy są zadowoleni z kompromisów, łańcuchy boczne mogą stanowić integralny krok w kierunku skutecznego skalowania. Nie jest wymagane, aby węzły w łańcuchu głównym przechowywały każdą transakcję z sidechainów. Alice może "wejść" w sidechain za pomocą pojedynczej transakcji - konwersji bitcoinów na sidecoiny, wykonać setki transakcji w łańcuchu bocznym, a następnie wyjść z niego. Z perspektywy blockchainu Bitcoina, Alice wykonała zaledwie dwie transakcje – konwersja bitcoinów na sidecoiny i odwrotnie. Wejście i wyjście.
Wprowadzenie do kanałów płatności
Czym jest kanał płatności?
Kanały płatności służą temu samemu celowi, jeśli chodzi o skalowalność, co sidechainy, choć zasadniczo różnią się od siebie. Podobnie jak łańcuchy boczne, kanały płatności przekierowują i przejmują transakcje z głównego łańcucha, aby zapobiec zapchaniu się sieci. W przeciwieństwie jednak do sidechainów, nie wymagają one osobnego łańcucha bloków do działania.
W jaki sposób działa kanał płatności?
Powiedzmy, że każdy z nich wpłaca 10 BTC na adres, na którym obecnie znajduje się 20 BTC. Łatwo byłoby im zachować bilans, który zaczyna się od stwierdzenia, że Alice i Bob mają po 10 BTC każdy. Gdyby Alice chciała dać Bobowi bitcoiny, mogliby zaktualizować swoją wewnętrzną księgę rozrachunkową, od teraz mówiącą, że Alice ma 9 BTC, a Bob 11 BTC. Nie muszą ogłaszać żadnych nowych transakcji w głównym łańcuchu bloków - wszystko pozostaje w obrębie ich własnej księgi rozliczeniowej - kanału płatności.
Kiedy jednak nadejdzie odpowiedni czas, powiedzmy, że Alice posiada 5 BTC, a Bob 15 BTC. Mogą następnie utworzyć transakcję, która wyśle te salda na adresy będące własnością konkretnych stron, podpisz je i wyemituj.
Alice i Bob mogli zarejestrować dziesięć, sto lub tysiąc transakcji w swoim kanale płatności. Lecz jeśli chodzi o blockchain, wykonali tylko dwie operacje: jedną dla początkowej transakcji wysyłającej BTC na kanał płatności i drugą, aby dokonać realokacji sald po ich zakończeniu. Oprócz tych dwóch, wszystkie inne transakcje były bezpłatne i niemal natychmiastowe, ponieważ występują poza łańcuchem. Nie ma opłaty górniczej do zapłaty i bloków, na które trzeba czekać.
Przekierowywanie płatności
Kanały płatnicze stanowią wygodne rozwiązanie dla dwóch stron, spodziewających się dużej liczby transakcji między sobą. Sieć kanałów płatności można rozwinąć, co oznacza, że Alice może zapłacić stronie, z którą nie jest bezpośrednio połączona. Jeśli Bob posiada otwarty kanał z Carol, Alice może jej zapłacić, pod warunkiem, że kanał jest wystarczająco pojemny. Popchnie fundusze na stronę kanału Boba, który z kolei przekaże je Carol. Jeśli Carol połączona jest z innym użytkownikiem, nazwijmy go Danem, łańcuch transakcji można kontynuować.
Taka sieć ewoluuje w rozproszoną topologię, w której każdy łączy się z wieloma równorzędnymi kanałami. Często do jednego celu będzie wiele dróg, a użytkownicy będą mogli wybrać najbardziej efektywną.
Wnioski końcowe
Omówiliśmy dwa podejścia do rozwiązania problemu skalowalności kryptowalut, które umożliwiają dokonywanie transakcji bez obciążania bazowego łańcucha bloków. Zarówno sidechainy, jak i kanały płatności nie są jeszcze dojrzałymi technologiami, ale coraz częściej są wykorzystywane przez użytkowników, którzy pragną ominąć wady transakcji w warstwie podstawowej (base/first layer).
Kiedy do ekosystemu kryptowalut dołącza coraz więcej nowych uczestników, ważne jest utrzymanie odpowiedniego poziomu decentralizacji. Można to osiągnąć tylko poprzez wymuszenie ograniczeń wzrostu blockchainu, aby nowe węzły były w stanie łatwo dołączyć do sieci. Zwolennicy rozwiązań skalowalności poza łańcuchem (off-chain) są przekonani, że z czasem główny łańcuch będzie wykorzystywany wyłącznie do rozliczania transakcji o wysokiej wartości lub do ustalania/zamykania sidechainów oraz otwierania/zamykania kanałów płatności.