Skalowalno艣膰 Blockchain贸w - Sidechainy i Kana艂y P艂atno艣ci
Strona G艂贸wna
Artyku艂y
Skalowalno艣膰 Blockchain贸w - Sidechainy i Kana艂y P艂atno艣ci

Skalowalno艣膰 Blockchain贸w - Sidechainy i Kana艂y P艂atno艣ci

Zaawansowany
Opublikowane Feb 20, 2020Zaktualizowane Feb 9, 2023
9m

Spis tre艣ci


Wprowadzenie

Poj臋cie skalowalno艣膰 odnosi si臋 do zdolno艣ci wzrostu danego systemu, w celu zaspokojenia rosn膮cego popytu b膮d藕 zwi臋kszaj膮cej si臋 liczby u偶ytkownik贸w. Na przyk艂ad przeprowadzaj膮c obliczenia, jeste艣 w stanie zwi臋kszy膰 wydajno艣膰 swojego komputera, poprzez modernizacj臋 sprz臋tu. Wykonywanie niekt贸rych zada艅 stanie si臋 szybsze. Kiedy za艣 odnosimy si臋 do skalowalno艣ci聽blockchain贸w, mamy na my艣li ich zdolno艣膰 do obs艂ugi wi臋kszej liczby transakcji na sekund臋.
Protoko艂y takie jak聽Bitcoin maj膮 wiele mocnych stron, lecz skalowalno艣膰 nie jest jedn膮 z nich. Gdyby Bitcoin dzia艂a艂 w oparciu o scentralizowan膮 baz臋 danych, administratorowi by艂oby stosunkowo 艂atwo zwi臋kszy膰 jej聽szybko艣膰 i przepustowo艣膰. Ale propozycja warto艣ci Bitcoina (tj. odporno艣膰 na cenzur臋) wymaga, 偶eby wielu u偶ytkownik贸w zsynchronizowa艂o swoje kopie blockchainu.


Problem skalowalno艣ci blockchainu

Uruchomienie聽w臋z艂a Bitcoina jest stosunkowo proste, a dodatkowo jeste艣my w stanie to zrobi膰 na tanim sprz臋cie. Niemniej, poniewa偶 tysi膮ce w臋z艂贸w musz膮 aktualizowa膰 i synchronizowa膰 si臋 ze sob膮 w czasie rzeczywistym, istniej膮 ograniczenia ich przepustowo艣ci.聽
Ograniczenia na艂o偶one zosta艂y na liczb臋 transakcji, kt贸re mo偶e w danym momencie przetworzy膰 艂a艅cuch blok贸w kryptowaluty, aby nie dopu艣ci膰 do lawinowego wzrostu blockchainu. Je艣li zbyt szybko stanie si臋 zbyt du偶y, w臋z艂y nie b臋d膮 w stanie nad膮偶y膰 z synchronizacj膮. Co wi臋cej, je艣li聽bloki s膮 zbyt wielkie, propagowanie ich w聽sieci staje si臋 nieefektywne.

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.

Jednym z rozwi膮za艅 by艂oby dodanie kolejnych wagon贸w do poci膮gu. Oznacza艂oby to wi臋cej miejsc, wy偶sz膮 przepustowo艣膰 i ni偶sze ceny bilet贸w. Ale nie ma gwarancji, 偶e nowe miejsca nie zape艂ni膮 si臋 tak, jak kiedy艣. Wagon贸w nie mo偶na stale poszerza膰, tak samo jak bloki i聽op艂aty sieciowe nie mog膮 by膰 skalowane w niesko艅czono艣膰. Ten ostatni fakt sprawia, 偶e posiadanie pe艂nych w臋z艂贸w w sieciach kryptowalut sta艂oby si臋 kosztowne.

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.

Z tego powodu wielu postrzega skalowalno艣膰 jako co艣, co mo偶na osi膮gn膮膰 rozwi膮zaniami聽off-chain (systemami "dodatkowymi", nie b臋d膮cymi bezpo艣rednio opartymi o dany blockchain, lecz pomagaj膮cymi mu), podczas gdy bezpiecze艅stwo i decentralizacja powinny by膰 maksymalizowane na samym blockchainie (z ang. first layer).


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.

Istnieje wiele sposob贸w na przeniesienie 艣rodk贸w z blockchainu na sidechain. W niekt贸rych przypadkach aktywa przenoszone s膮 z g艂贸wnego 艂a艅cucha poprzez zdeponowanie ich na specjalnym adresie. Nie s膮 tak naprawd臋 wysy艂ane - zamiast tego blokuje si臋 je na danym聽adresie, w zamian za co sie膰 sidechainu "wydaje" Tobie adekwatn膮 ilo艣膰 艣rodk贸w, kt贸re dowolnie mo偶esz wykorzystywa膰 w jej obr臋bie. Bardziej bezpo艣redni膮 (aczkolwiek scentralizowan膮 opcj膮) jest wysy艂anie 艣rodk贸w do powiernika, kt贸ry p贸藕niej wymienia depozyt na 艣rodki w sidechainie.


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.聽

Pami臋taj, 偶e sidechainy to blockchain. B臋dzie wi臋c mia艂 r贸偶ne bloki, w臋z艂y i odmienny mechanizm konsensusu. Je艣li Alice chce pozyska膰 "sidecoins", musi wys艂a膰 swoje 5 bitcoin贸w na inny adres. Mo偶e by膰 on w艂asno艣ci膮 osoby, kt贸ra po otrzymaniu bitcoin贸w przypisze jej adresowi w sidechainie pi臋膰 sidecoin贸w. Alternatywnie, zamiast polega膰 na czynnikowi ludzkiemu, mo偶liwe jest stworzenie oprogramowania minimalizuj膮cego potrzeb臋 powierzania komukolwiek zaufania. Taki software przyznawa艂by sidecoiny automatycznie, po tym jak Alice wy艣le na dany adres swoje bitcoiny.



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?

Odpowied藕 brzmi nast臋puj膮co: sidechain mo偶e by膰 zdolny do rzeczy, kt贸rych Bitcoin nie jest w stanie wykona膰. Blockchain to starannie opracowane systemy kompromis贸w. Chocia偶 Bitcoin jest najbezpieczniejsz膮 i zdecentralizowan膮 kryptowalut膮, nie jest najlepszy pod wzgl臋dem przepustowo艣ci. Chocia偶 transakcje bitcoinami s膮 szybsze ni偶 konwencjonalne metody transfer贸w zagranicznych, wci膮偶 s膮 stosunkowo wolne, w por贸wnaniu z innymi blockchainami. Bloki Bitcoina聽wydobywa si臋 co dziesi臋膰 minut, a op艂aty mog膮 znacznie wzrosn膮膰, gdy sie膰 jest przepe艂niona.

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.

Sidechainy nie podlegaj膮 tym samym regu艂om. W rzeczywisto艣ci nie musz膮 nawet u偶ywa膰聽Proof of Work, aby funkcjonowa膰. Mo偶esz u偶y膰 dowolnego聽mechanizmu konsensusu, zaufa膰 pojedynczemu walidatorowi lub dostosowa膰 dowoln膮 liczb臋 parametr贸w. Jeste艣 w stanie doda膰 ulepszenia, kt贸re nie istniej膮 w g艂贸wnym 艂a艅cuchu, produkowa膰 wi臋ksze聽bloki i wymusza膰 szybkie rozliczenia transakcji.

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.

Mogli艣cie s艂ysze膰 o technologii zwanej Ethereum Plasma. Jest ona podobna, lecz charakteryzuje si臋 kilkoma wa偶nymi r贸偶nicami. Je艣li chcia艂by艣 si臋 dowiedzie膰 wi臋cej na ten temat, koniecznie przeczytaj:聽Co to jest Ethereum Plasma?


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.

Kana艂 p艂atno艣ci stosuje聽smart kontrakty, aby umo偶liwi膰 u偶ytkownikom przesy艂anie transakcji bez og艂aszania ich w blockchainie. Odbywa si臋 to poprzez stosowanie umowy mi臋dzy dwoma uczestnikami w zakresie egzekwowania oprogramowania.


W jaki spos贸b dzia艂a kana艂 p艂atno艣ci?

W modelach, takich jak popularna聽Lightning Network, dwie strony najpierw wp艂acaj膮 coiny pod wsp贸lny adres. Wykorzystuje si臋 tzw. adresy聽multisignature, wymagaj膮ce dw贸ch lub wi臋cej podpis贸w do wydania 艣rodk贸w. Tak wi臋c, je艣li Alice i Bob utworz膮 taki adres, fundusze mo偶na by przenie艣膰 tylko za zgod膮 obu stron.

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膰.

Oczywi艣cie powy偶szy przyk艂ad wymaga wsp贸艂pracy obu stron, co nie jest idealn膮 sytuacj膮 dla nieznajomych. Na szcz臋艣cie jeste艣my w stanie zastosowa膰聽specjalne mechanizmy, aby ukara膰 ka偶d膮 pr贸b臋 oszustwa, dzi臋ki czemu strony mog膮 bezpiecznie wchodzi膰 w interakcje bez ufania sobie.聽


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.