Úvod
Škálovateľnosť v širšom ponímaní opisuje schopnosť systému rásť tak, aby dokázal zabezpečiť rastúci dopyt. Vo svete počítačov môžete zvýšiť výkon svojho počítača inováciou jeho hardvéru, čím dosiahnete rýchlejšie vykonávanie určitých úloh. Keď hovoríme o škálovateľnosti vo svete blockchainov, máme na mysli zvyšovanie ich kapacity tak, aby dokázali spracovať väčší počet transakcií.
Protokoly ako Bitcoin majú veľa silných stránok. Škálovateľnosť však nie je jednou z nich. Ak by Bitcoin fungoval v centrálne vlastnenej databáze, pre správcu by bolo relatívne jednoduché zvýšiť rýchlosť a priepustnosť. Hodnotové priority siete Bitcoin (t. j. odolnosť proti cenzúre) však vyžadujú, aby množstvo účastníkov synchronizovalo kópiu blockchainu.
Problém škálovateľnosti blockchainu
Prevádzka uzla siete Bitcoin je relatívne lacná, zvládnu ju aj jednoduché zariadenia. Keďže je však potrebná neustála aktualizácia tisícov uzlov, existujú určité obmedzenia súvisiace s ich kapacitou.
Existuje obmedzenie počtu transakcií, ktoré je možné spracovať v reťazci, aby veľkosť databázy nedosiahla nepraktickú veľkosť. Ak sa veľkosť zvýši príliš rýchlo, uzly nebudú schopné držať krok. Navyše, ak sú bloky príliš veľké, nie je možný ich rýchly prenos v rámci siete.
V dôsledku toho vzniká určitá slabina. Blockchain možno prirovnať k vlaku, ktorý vyráža v stanovených intervaloch. V každom vozni je len obmedzený počet miest na sedenie. Na získanie lístka musí cestujúci požiadať o zaručenie miesta. Ak sa všetci snažia dostať do vlaku v tom istom čase, cena lístka bude vysoká. Podobne sieť upchatá čakajúcimi transakciami bude od používateľov vyžadovať zaplatenie vyšších poplatkov, aby bola ich transakcia zahrnutá do bloku včas.
Jedným z riešení by bolo zvýšiť kapacitu vozňov. To by znamenalo viac sedadiel, vyššiu priepustnosť a lacnejšie lístky. Nikde však nie je záruka, že sa miesta nezaplnia rovnako ako predtým. Vozne sa nedajú zväčšovať donekonečna, rovnako ako limity blokov a poplatkov gas sa nedajú donekonečna meniť. Druhé uvedené znamená, že je drahšie, aby uzly zostali v sieti, pretože aby zostali synchronizované, budú potrebovať drahší hardvér.
Vitalik Buterin, zakladateľ siete Ethereum, vytvoril trilemu škálovateľnosti, v ktorej opísal výzvu, ktorej čelia blockchainy. Zastáva teóriu, že protokoly musia robiť kompromisy medzi škálovateľnosťou, bezpečnosťou a decentralizáciou. Tie sú do istej miery v rozpore. Ak sa príliš sústredíte na dve vlastnosti, tretia zostane oslabená.
Z tohto dôvodu mnohí vnímajú škálovateľnosť ako niečo, čo sa má dosiahnuť mimo blockchainu, zatiaľ čo bezpečnosť a decentralizácia by sa mali maximalizovať priamo na samotnom blockchaine.
Aké sú riešenia škálovania mimo blockchainu?
Škálovanie sa týka prístupov, ktoré umožňujú uskutočňovanie transakcií bez nafúknutia blockchainu. Protokoly, ktoré sa pripájajú k reťazcu, umožňujú používateľom odosielať a prijímať finančné prostriedky bez toho, aby sa transakcie objavili v hlavnom reťazci. Pozrieme sa na dve najvýznamnejšie vylepšenia v tejto oblasti: sidechain a platobné kanály.
Úvod k princípu Sidechain
Čo je sidechain?
Sidechain je samostatný blockchain. Nie je to však samostatná platforma, keďže nejakým spôsobom je prepojená na hlavný reťazec. Hlavný reťazec a sidechain sú interoperabilné. To znamená, že aktíva môžu voľne prúdiť z jedného do druhého.
Na zabezpečenie prenosu prostriedkov existuje viacero spôsobov. V niektorých prípadoch sa aktíva presúvajú z hlavného reťazca vložením na špeciálnu adresu. V skutočnosti sa neposielajú. Namiesto toho sú zamknuté na adrese a na sidechain sa vydá príslušná suma. Jednoduchšia (aj keď centralizovaná možnosť) je poslať prostriedky správcovi, ktorý vymení vklad za prostriedky na sidechaine.
Ako funguje sidechain?
Predpokladajme, že naša priateľka Alica má päť bitcoinov. Chce ich vymeniť za päť ekvivalentných jednotiek (nazvime si ich sidecoin) na sidechaine siete Bitcoin. Príslušný sidechain používa obojsmerné prepojenie, čo znamená, že používatelia môžu preniesť svoje aktíva z hlavného reťazca do sidechain a naopak.
Nezabudnite, že sidechain je samostatný blockchain. Takže bude mať rôzne bloky, uzly a mechanizmy overovania. Aby Alica získala svoje sidecoiny, svojich 5 bitcoinov pošle na inú adresu. Adresu môže vlastniť niekto, kto po prijatí bitcoinov na jej adresu sidechain pripíše 5 sidecoinov. Prípadne môže použiť nejaký druh nastavenia s minimalizovaním dôvery, kde sa sidecoiny automaticky pripíšu, keď softvér zistí platbu.
Alice teraz premenila svoje coiny na sidecoiny. Tento proces môže kedykoľvek zvrátiť a získať svoje bitcoiny späť. Teraz, keď vstúpila do sidechainu, môže voľne uskutočňovať transakcie na tomto samostatnom blockchaine. Môže posielať sidecoiny alebo ich prijímať od iných osôb, rovnako ako na hlavnom reťazci.
Môže napríklad zaplatiť Bobovi jeden sidecoin za mikinu s kapucňou Binance. Keď sa bude chcieť vrátiť k bitcoinu, svoje 4 zostávajúce sidecoiny môže poslať na špeciálnu adresu. Po potvrdení transakcie sa odomknú štyri bitcoiny a doručia sa na adresu, ktorú ovláda na hlavnom reťazci.
Prečo sa používajú sidechainy?
Možno sa pýtate, aký má toto všetko vlastne zmysel. Prečo Alica nepoužije jednoducho blockchain Bitcoin?
Odpoveď je, že sidechain dokáže také veci, ktoré Bitcoin nedokáže. Blockchainy sú starostlivo navrhnuté systémy kompromisov. Aj keď je bitcoin najbezpečnejšou a decentralizovanou kryptomenou, jeho priepustnosť nie je najlepšia. Zatiaľ čo transakcie bitcoinov sú rýchlejšie ako klasické metódy, v porovnaní s inými blockchainovými systémami sú stále relatívne pomalé. Bloky sa ťažia každých 10 minút a keď je sieť preťažená, poplatky môžu výrazne rásť.
Je pravda, že pri malých každodenných platbách pravdepodobne nie je potrebná takáto úroveň zabezpečenia. Ak Alica zaplatí za kávu, nebude čakať na potvrdenie transakcie. Zdržiavala by ostatných čakajúcich a kým by sa k nej káva konečne dostala, bola by už studená.
Pre sidechainy platia iné pravidlá. V skutočnosti na fungovanie nepotrebujú používať algoritmus Proof of Work. Môžete použiť akýkoľvek mechanizmus konsenzu, dôverovať jedinému validátorovi, prípadne upraviť ľubovoľný počet parametrov. Môžete pridať vylepšenia, ktoré neexistujú na hlavnom reťazci, vyrobiť väčšie bloky a vynútiť rýchle vyrovnanie.
Zaujímavé je, že sidechainy môžu mať dokonca kritické chyby bez toho, aby ovplyvnili fungovanie základného reťazca. To im umožňuje, aby sa používali ako platformy na experimentovanie a zavádzanie funkcií, ktoré by si inak vyžadovali konsenzus väčšiny siete.
Za predpokladu, že používatelia súhlasia s kompromismi, sidechainy by mohli byť neoddeliteľnou súčasťou efektívneho škálovania. Neexistuje žiadna požiadavka, aby uzly hlavného reťazca ukladali každú transakciu zo sidechainu. Alica môže vstúpiť do sidechainu pomocou jedinej transakcie bitcoinu, uskutočniť stovky transakcií sidecoinov a potom sidechain opustiť. Čo sa týka blockchainu Bitcoin, uskutočnila iba 2 transakcie – jednu na vstup a jednu na výstup.
Plasma Ethereum je podobný prípad, má však niekoľko zásadných rozdielov. Viac informácií nájdete v článku Čo je Ethereum Plasma?
Platobné kanály – predstavenie
Čo je platobný kanál?
Platobné kanály slúžia na rovnaký účel ako sidechainy, čo sa týka škálovateľnosti. V zásade sú však veľmi odlišné. Podobne ako sidechainy, s cieľom zabrániť nafúknutiu blockchainu, vytláčajú transakcie z hlavného reťazca. Na rozdiel od sidechainov však na ich fungovanie nie je potrebný samostatný blockchain.
Platobný kanál používa smart kontrakt, ktorý používateľom umožňuje vykonávať transakcie bez ich zverejnenia v blockchaine. Robí to pomocou softvérovo vynútenej dohody medzi dvomi účastníkmi.
Ako funguje platobný kanál?
V modeloch, ako napríklad obľúbená sieť Lightning, najskôr obe strany vložia coiny na adresu, ktorú spoločne vlastnia. Toto je adresa s viacerými podpismi, ktorá na minutie prostriedkov vyžaduje dva podpisy. Takže ak Alica a Bob vytvorili takúto adresu, finančné prostriedky sa môžu presunúť len na základe súhlasu oboch.
Povedzme, že každý vloží 10 BTC na adresu, ktorá teraz obsahuje 20 BTC. Bolo by pre nich ľahké viesť súvahu, ktorá začína tým, že Alica a Bob majú po 10 BTC. Ak by Alica chcela dať Bobovi coin, mohli by ju aktualizovať tak, aby v nej bolo uvedené, že Alica má 9 BTC a Bob má 11 BTC. Transakciu by nemuseli zverejniť v blockchaine, keďže pokračujú v aktualizácii týchto zostatkov.
Keď však príde čas, povedzme, že Alica má 5 BTC a Bob má 15 BTC. Potom môžu vytvoriť transakciu, ktorá odošle tieto zostatky na adresy vo vlastníctve strán, podpíšu ju a odošlú.
Alica a Bob mohli dovtedy vo svojej súvahe zaznamenať desať, sto alebo tisíc transakcií. Ale čo sa týka blockchainu, vykonali iba dve operácie: jednu pre počiatočnú transakciu financovania a druhú na prerozdelenie zostatkov, keď skončia. Okrem týchto dvoch transakcií sú všetky ostatné transakcie bezplatné a takmer okamžité, pretože prebiehajú mimo reťazca. Nie je potrebné zaplatiť žiadny poplatok ťažiarovi ani čakať na potvrdenie bloku.
Samozrejme, predpokladom vyššie uvedeného je, aby obe strany spolupracovali, čo nie je ideálna situácia pre ľudí, ktorí sa nepoznajú. Na potrestanie každého pokusu o podvod však možno použiť špeciálne mechanizmy, takže strany môžu bezpečne komunikovať bez toho, aby si museli dôverovať.
Smerovanie platieb
Je zrejmé, že platobné kanály sú vhodné pre dve strany, ktoré očakávajú vysoký počet transakcií. Je to však ešte lepšie. Sieť týchto kanálov je možné rozšíriť, čo znamená, že Alica môže zaplatiť strane, s ktorou nie je priamo spojená. Ak má Bob otvorený kanál s Carol, Alica jej môže zaplatiť, ak je kapacita dostatočná. Prostriedky posunie na Bobovu stranu kanála, ktorý ich zase posunie Carol. Ak je Carol prepojená s ďalším účastníkom, Danom, je možné urobiť to isté.
Takáto sieť sa vyvíja do distribuovanej topológie, kde sa každý pripája k viacerým partnerom. Do cieľa bude často existovať viacero trás. Používatelia si budú môcť vybrať tú najefektívnejšiu.
Záverečné myšlienky
Povedali sme si o dvoch prístupoch škálovateľnosti, ktoré umožňujú vykonávať transakcie bez zaťaženia základného blockchainu. Technológie sidechainov aj platobných kanálov musia ešte dozrieť, čoraz viac ich však využívajú používatelia, ktorí chcú obísť nedostatky transakcií používajúcich základnú vrstvu.
Postupom času a ako sa k sieti pripája viac používateľov, je dôležité zabezpečiť podporu decentralizácie. To je možné dosiahnuť iba presadzovaním limitov na rast blockchainu, aby sa nové uzly mohli ľahko pripojiť. Zástancovia riešení škálovateľnosti mimo blockchainu veria, že časom sa hlavný reťazec bude používať iba na zúčtovanie transakcií s vysokou hodnotou alebo na pripájanie/odpájanie sidechainov a otváranie/zatváranie kanálov.