Obsah
Úvod
Problém škálovatelnosti blockchainu
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.
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á.
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.
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.
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?
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ý.
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í.
Ú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.
Jak platební kanál funguje?
Ř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.
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ů.