Škálovatelnost blockchainu - sidechainy a platební kanály
Domů
Články
Škálovatelnost blockchainu - sidechainy a platební kanály

Škálovatelnost blockchainu - sidechainy a platební kanály

Středně pokročilí
Zveřejněno Feb 20, 2020Aktualizováno Feb 9, 2023
9m

Obsah


Úvod

Škálovatelnost obecně označuje schopnost systému růst a přizpůsobovat se rostoucí poptávce. Ve výpočetní technice můžete zvýšit výkon počítače upgradem jeho hardwaru, aby byl rychlejší při provádění určitých úloh. Když mluvíme o škálovatelnosti v blockchainech, máme na mysli růst jejich kapacity tak, aby mohly zpracovávat více transakcí.
Protokoly jako Bitcoin mají mnoho silných stránek, ale škálovatelnost mezi ně nepatří. Kdyby byl Bitcoin provozován v centrálně vlastněné databázi, bylo by pro správce relativně snadné zvýšit rychlost a propustnost. Hodnotové nabídky Bitcoinu (tj. odolnost vůči cenzuře) však vyžadují, aby mnoho účastníků synchronizovalo své kopie blockchainu.


Problém škálovatelnosti blockchainu

Provoz uzlu Bitcoinu je relativně levný a zvládnou ho i jednoduchá zařízení. Protože však tisíce uzlů musí být navzájem aktualizovány, existují určitá omezení jejich kapacity. 
Na počet transakcí, které lze v chainu zpracovávat, jsou stanoveny limity, aby se databáze nerozrostla do nepřehledných rozměrů. Pokud by se příliš rychle zvětšila, uzly by s ní nedokázaly držet krok. Pokud jsou navíc bloky příliš velké, nelze je rychle předávat po síti.

V důsledku toho jsme se ocitli v zúženém bodě. Na blockchain se můžeme dívat jako na vlakovou dopravu, která odjíždí ve stanovených intervalech. V každém vagonu je pouze omezený počet míst a aby cestující získali jízdenku, musí podávat nabídky na místo, aby si ho zajistili. Pokud se všichni snaží dostat do vlaku ve stejnou dobu, cena bude vysoká. Podobně síť zahlcená čekajícími transakcemi bude vyžadovat, aby uživatelé platili vyšší poplatky za to, že jejich transakce bude včas zařazena do nabídky.

Jedním z řešení by bylo zvětšení vozů. To by znamenalo více míst k sezení, vyšší propustnost a nižší ceny jízdenek. Neexistuje však žádná záruka, že se místa prostě nezaplní jako kdysi. Vozy nelze rozšiřovat donekonečna, stejně jako nelze donekonečna škálovat bloky nebo limity poplatku za blok. Druhá možnost zdraží setrvání uzlů v síti, protože budou potřebovat nákladnější hardware, aby zůstaly synchronizované.

Tvůrce Etherea Vitalik Buterin vymyslel trilema škálovatelnosti, aby popsal problém, kterému čelí blockchainy. Teoreticky tvrdí, že protokoly musí najít kompromis mezi škálovatelností, bezpečností a decentralizací. Ty jsou do jisté míry ve vzájemném rozporu – přílišným zaměřením na dvě z vlastností bude třetí vlastnost nedostatečná.

Z tohoto důvodu mnozí považují škálovatelnost za něco, čeho je třeba dosáhnout mimo chain, zatímco bezpečnost a decentralizace by měly být maximalizovány v samotném blockchainu.


Jaká jsou off-chainová řešení škálování?

Škálování mimo chain označuje přístupy, které umožňují provádět transakce bez toho, aby se blockchain rozšířil. Protokoly, které se zapojují do chainu, umožňují uživatelům posílat a přijímat finanční prostředky, aniž by se transakce objevily v hlavním chainu. Podíváme se hlouběji na dvě nejvýznamnější vylepšení v této oblasti: sidechainy a platební kanály.


Úvod do sidechainů

Co je sidechain?

Sidechain je samostatný blockchain. Není to však samostatná platforma, protože je nějakým způsobem navázána na hlavní chain. Main chain a sidechain jsou interoperabilní, což znamená, že aktiva mohou volně přecházet z jednoho do druhého.

Existuje řada způsobů, jak zajistit, aby bylo možné finanční prostředky převádět mezi chainy. V některých případech se aktiva přesouvají z main chainu tak, že se uloží na zvláštní adresu. Ve skutečnosti se nepřevádějí – místo toho jsou na této adrese uzamčeny a na sidechainu je vydána odpovídající částka. Přímočařejší (i když centralizovanou) variantou je zaslání prostředků správci, který vklad vymění za prostředky na sidechainu.


Jak funguje sidechain?

Předpokládejme, že naše přítelkyně Alice má pět bitcoinů. Chce je vyměnit za pět ekvivalentních jednotek na sidechainu Bitcoinu – říkejme jim sidecoiny. Dotyčný sidechain používá obousměrné propojení, což znamená, že uživatelé mohou převádět svá aktiva z main chainu na sidechain a naopak. 

Nezapomeňte, že sidechain je samostatný blockchain. Bude mít tedy jiné bloky, uzly a mechanismy ověřování. Aby Alice získala své sidecoiny, pošle svých pět bitcoinů na jinou adresu. Tu by mohl vlastnit někdo, kdo pak po obdržení bitcoinů připíše na její adresu v sidechainu pět sidecoinů. Případně by mohla mít nějaký druh nastavení s minimalizací důvěry, kde jsou sidecoiny automaticky připsány poté, co software detekuje platbu.



Alice nyní převedla své coiny na sidecoiny, ale vždy může proces zvrátit a získat své bitcoiny zpět. Nyní, když vstoupila do sidechainu, může v tomto odděleném blockchainu volně provádět transakce. Může posílat sidecoiny nebo je přijímat od ostatních stejně jako v main chainu.

Mohla by například zaplatit Bobovi jeden sidecoin za mikinu Binance. Až se bude chtít vrátit k bitcoinu, mohla by poslat zbývající čtyři sidecoiny na speciální adresu. Po potvrzení transakce by se čtyři bitcoiny odblokovaly a doručily na adresu, kterou ovládá v main chainu.


Proč se sidechainy používají?

Možná si říkáte, jaký to má smysl. Proč Alice prostě nepoužívá blockchain Bitcoinu?

Odpověď zní, že sidechain může být schopen věcí, které Bitcoin nedokáže. Blockchainy jsou pečlivě navržené systémy kompromisů. Bitcoin je sice nejbezpečnější a nejdecentralizovanější kryptoměna, ale z hlediska propustnosti není nejlepší... Transakce v Bitcoinu jsou sice rychlejší než konvenční metody, ale ve srovnání s jinými blockchainovými systémy je stále relativně pomalý. Bloky se těží každých deset minut a poplatky mohou při přetížení sítě výrazně vzrůst.

Je pravda, že pro drobné každodenní platby pravděpodobně není taková úroveň zabezpečení potřeba. Pokud Alice platí za kávu, nebude stát a čekat na potvrzení transakce. Zdržovala by frontu a její nápoj by byl v době předání studený.

Pro sidechainy neplatí stejná pravidla. Ve skutečnosti ke svému fungování ani nepotřebují používat mechanismus Proof of Work. Můžete použít jakýkoli mechanismus konsenzu, důvěřovat jedinému validátorovi nebo upravit libovolný počet parametrů. Můžete přidávat vylepšení, která v main chainu neexistují, vytvářet větší bloky a vynucovat rychlé vypořádání.

Zajímavé je, že sidechainy mohou mít i kritické chyby, aniž by to ovlivnilo základní chain. To umožňuje jejich využití jako platformy pro experimentování a zavádění funkcí, které by jinak vyžadovaly konsenzus většiny sítě.

Za předpokladu, že uživatelé budou spokojeni s kompromisy, by sidechainy mohly být nedílným krokem k efektivnímu škálování. Neexistuje žádný požadavek, aby uzly main chainu ukládaly každou transakci ze sidechainu. Alice by mohla vstoupit do sidechainu s jedinou bitcoinovou transakcí, provést stovky sidecoinových transakcí a poté sidechain opustit. Co se týče bitcoinového blockchainu, provedla pouze dvě – jednu vstupní a jednu výstupní.

Plasma Etherea je podobná, ale má několik zásadních rozdílů. Přečtěte si o něm více: Co je Plasma Etherea?


Úvod do platebních kanálů

Co je platební kanál?

Platební kanály slouží stejnému účelu jako sidechainy, pokud jde o škálovatelnost, ale v zásadě se velmi liší. Stejně jako sidechainy odsouvají transakce z main chainu, aby zabránily nafouknutí blockchainu. Na rozdíl od sidechainů však ke svému fungování nevyžadují samostatný blockchain.

Platební kanál používá chytrý kontrakt, který uživatelům umožňuje provádět transakce, aniž by je zveřejňoval v blockchainu. Činí tak pomocí softwarově vynucené dohody mezi dvěma účastníky.


Jak platební kanál funguje?

V modelech, jako je populární Lightning Network, by dvě strany nejprve vložily coiny na adresu, kterou společně vlastní. Jedná se o vícepodpisovou adresu, která vyžaduje dva podpisy, aby mohly být prostředky utraceny. Pokud by tedy Alice a Bob vytvořili takovou adresu, prostředky by bylo možné přesunout pouze se souhlasem obou.

Řekněme, že každý z nich vloží 10 BTC na adresu, na které je nyní 20 BTC. Bylo by pro ně snadné vést bilanci, která by začínala tím, že Alice i Bob mají každý 10 BTC. Pokud by Alice chtěla dát Bobovi jeden coin, mohli by ji aktualizovat a napsat, že Alice má 9 BTC a Bob 11 BTC. Nemuseli by to zveřejňovat v blockchainu, protože by tyto zůstatky nadále aktualizovali. 



Po čase řekněme, že Alice má 5 BTC a Bob 15 BTC. Poté by mohli vytvořit transakci, která tyto zůstatky odešle na adresy vlastněné stranami, podepsat ji a odeslat ke zpracování.

Alice a Bob mohli ve své bilanci zaznamenat deset, sto nebo tisíc transakcí. Ale pokud jde o blockchain, provedli v chainu pouze dvě operace: jednu pro počáteční transakci pro financování a jednu pro přerozdělení zůstatků, jakmile skončí. Kromě těchto dvou jsou všechny ostatní transakce bezplatné a téměř okamžité, protože probíhají mimo chain. Není třeba platit žádné poplatky těžařům ani čekat na potvrzení bloku.

Výše uvedený příklad samozřejmě vyžaduje spolupráci obou stran, což pro cizince není ideální situace. Lze však použít speciální mechanismy, které potrestají jakýkoli pokus o podvod, takže strany spolu mohou bezpečně komunikovat bez důvěry. 


Směrování plateb

Je zřejmé, že platební kanály jsou výhodné pro dvě strany, které očekávají vysoký objem transakcí. Je to však ještě lepší. Síť těchto kanálů může být rozvětvená, což znamená, že Alice může zaplatit straně, se kterou není přímo spojena. Pokud má Bob otevřený kanál s Carol, může jí Alice zaplatit za předpokladu, že je k dispozici dostatečná kapacita. Bude posílat prostředky na Bobovu stranu kanálu, který je zase bude posílat na stranu Carol. Pokud je Carol připojena k jinému účastníkovi, Danovi, lze postupovat stejně. 

Taková síť se vyvíjí do distribuované topologie, kde se každý připojuje k více rovnocenným partnerům. Často bude existovat více tras k cíli a uživatelé si budou moci vybrat tu nejefektivnější. 


Závěrem

Probrali jsme dva přístupy ke škálovatelnosti, které umožňují provádět transakce bez zatížení základního blockchainu. Jak sidechainy, tak technologie platebních kanálů ještě úplně nedozrály, ale stále častěji je využívají uživatelé, kteří chtějí obejít nedostatky transakcí základní vrstvy.

S postupem času, kdy se k síti bude připojovat stále více uživatelů, je důležité, aby byla zachována decentralizace. Toho lze dosáhnout pouze vynucením omezení růstu blockchainu, aby se mohly snadno připojovat nové uzly. Zastánci řešení škálovatelnosti mimo chain věří, že časem bude main chain používán pouze k vypořádání transakcí s vysokou hodnotou nebo k připojování/odpojování sidechainů a otevírání/zavírání kanálů.