🇨🇿 Musí být blockchain pomalá a nákladná databáze? Cardano možná přepíše historii

CZ překlad:

Musí být blockchain pomalá a nákladná databáze? Cardano možná přepíše historii.

Občas se dá narazit na názor, že blockchain je pomalá, drahá a neefektivní databáze a že ji nelze použít pro nic jiného než kryptoměnu a to zejména pro Bitcoin. V článku vysvětlíme, proč databáze nemůže být blockchain a že blockchain nemusí být nutně pomalý nebo drahý, pokud to tak není zamýšleno od začátku. Cardano PoS konsenzus může vše převrátit vzhůru nohama.

DATABÁZE NENÍ BLOCKCHAIN

Začněme vyvrácením jednoho mýtu. Databáze nikdy nebude blockchain. Jednoduše řečeno, databáze nabízí prostor pro ukládání údajů. Váš zaměstnavatel pravděpodobně používá databázi a ukládá do ni digitální informace o vás. Každý e-shop má databázi uchovávající informace o veškerém zboží, objednávkách, zákaznících atd. Blockchain má spíše povahu účetní knihy (často se také můžete setkat s názvem ledger = účetní kniha). Je to specifický seznam údajů stejného druhu a udržuje se hlavně určitý druh informace o vlastnictví. Digitální ledger je schopen udržovat celou historii změn a je vždy možné získat poslední platný stav. Jako uživatel kryptoměnové peněženky může účetní kniha poskytovat informace o počtu mincí, které vlastní Alice či Bob.

V databázi je možné údaje vytvářet, číst, aktualizovat a mazat (CRUD operace) a všechny tyto operace jsou rychlé a vysoce škálovatelné. To je možné proto, protože existuje pouze jeden node nebo server s databází a není vyžadován žádný většinový síťový konsenzus. Každá operace se tak stane okamžitě. Blockchain je neměnný, takže je možné přidávat pouze nová data bez možnosti přepisovat historii. Historie je tedy vždy plně auditovatelná. Blockchain je schopen udržet všechny transakce, alespoň takový je současný stav. Je tedy možné procházet všemi historickými transakcemi uloženými od prvním bloku blockchainu až do konce blockchainu. Po přečtení naposledy přidaného bloku uvidíte aktuální stav knihy.

Jakmile máte možnost měnit data v databázi a data splňují podmínky, záznam se může okamžitě změnit. Obvykle existuje pouze jedna kopie databáze, ale pravidelně se provádí zálohování, aby nedošlo k neočekávané ztrátě dat. Administrátor má plnou kontrolu nad databází, takže data mohou být kdykoli změněna každým, kdo má požadovaná oprávnění. Databáze, jakožto jediný kritický bod selhání, může být lehce napadena hackery a data mohou být změněna útočníkem.

Chcete-li přidat nová data do blockchainu, vyžaduje se konsenzus distribuované sítě. Nody ověřují nově navržený blok spolu s transakcemi a ty budou trvale přidány do blockchainu pouze v případě, že s tím souhlasí většina nodů. Po dohodě budou mít všechny čestné nody stejnou kopii ledgeru. Neexistuje tedy žádná ústřední autorita s právem měnit ledger. Existuje pouze skupina nezávislých operátorů, vlastníků ověřovacích nodů, kteří se aktivně účastní konsensu, a rozhodovací pravomoc je rozdělena mezi všechny z nich. Ověření se provádí na všech úplných uzlech v distribuované síti a čestné uzly neustále udržují platný stav ledgeru.

Samotné vlastnictví dat, například držení ADA mincí, jsou určitým způsobem uzamčeno. Data jsou zapsaná v ledgeru, ale jsou vlastněna vlastníky držící soukromé klíče a jen ti jsou schopni změnit vlastnictví. Chcete-li utratit ADA mince z adresy, transakci musíte podepsat odpovídajícím soukromým klíčem. Transakce je ověřena všemi ověřovacími uzly, a pokud je validní (a také celý blok je validní), změní se vlastnictví mincí.

Blockchain je nesmírně užitečný, pokud je potřeba nezměnitelně ukládat informace, že pro uživatele X je platný stav Y v čase Z. Je velmi vhodný pro uchovávání informací o vlastnictví cenných věcí. Například ADA mincí, jak jsme si ukázali výše. Krása blockchainu spočívá v tom, že majitel skutečně vlastní aktiva a dokonce ani síť není schopna to změnit bez soukromého klíče. Pouze vlastník může inicializovat změnu prostřednictvím vlastnictví soukromého klíče a síť pouze potvrdí požadavek a může jej přijmout přidáním transakce do nového bloku, který je připojen k blockchainu. Ke změně vlastnictví dochází plně decentralizovaným způsobem. Toto je něco, čeho nelze pomocí databáze nikdy dosáhnout. Za databází je vždy nějaká centralizovaná entita, které musíte důvěřovat.

Blockchain jen nezměnitelně uchovává informace o datech a může být veřejný a auditovatelný. Pro síť je snadné chránit maximální počet mincí nebo tokenů, protože všechna data jsou uložena v ledgeru. Každý úplný uzel si je vědom současného stavu a může snadno ověřit správnost navrhovaných změn. Jak jsme řekli, nikdo není schopen změnit data v knize, například vlastnictví ADA mincí, kromě vlastníka. Distribuovaná síť je tedy důvěryhodnou stranou mezi Alicí a Bobem, když chtějí navzájem komunikovat. Distribuovaná síť je důvěryhodná hlavně díky těmto důvodů: Síť sama o sobě nemůže změnit žádná data, protože vždy je vyžadován distribuovaný konsensus a podpis vlastníka. Jinými slovy, pokud vlastníte ADA mince, jste zodpovědní za uchování a bezpečí soukromých klíčů, které vám umožní utratit mince. Nikdo jiný to nemůže udělat. Síť pouze potvrdí vaše přání a jedná na váš příkaz.

Stav Y, který může uživatel X změnit, může být více než pouhé vlastnictví ADA mincí. Může se jednat o jakýkoli jiný token (fungible či non-fungible). Blockchain je tedy schopen uchovávat informace o akciích, dluhopisech, vlastnictví nemovitosti, herních předmětech atd. Stav Y může být dokonce podmínkou definovanou ve smart kontraktu, která říká, že pokud Alice pošle token Q Bobovi, stane se Alice vlastníkem tokenu R.

Blockchain je velmi užitečný pro uchovávání téměř jakýchkoliv informací o vlastnictví, pokud je možné je digitalizovat. Tato funkce však sama o sobě nestačí a my musíme pracovat na dalších užitečných funkcích, protože pouze kombinace více funkcí způsobí, že moderní distribuované sítě jako Cardano budou více užitečnější. Abychom mohli distribuované sítě ještě více využívat, potřebujeme, aby byly škálovali. To znamená, že je může používat mnoho uživatelů současně. Doposud to byl problém, a proto se objevil narativ, že blockchain je pomalá a nákladná databáze. Pokud máme mluvit o kryptoměnách, jako o něčem, co lidé chtějí denně používat, musí sítě nutně škálovat. Pokud mají být transakce pomalé a drahé, nemůžeme ani mluvit o globálně použitelných kryptoměnách. Škálovatelnost, ale také programovatelnost peněz a tokenů, užší propojení s fyzickým světem a práce s digitální identitou otevřou dveře, o kterých dnes ani nevíme.

Pojďme se blíže podívat na důvody, proč se o blockchainu říká, že je pomalý a drahý.

PROČ BLOCKCHAIN BÝVÁ POMALÝ A DRAHÝ

Důvod, proč blockchain bývá pomalý, je velmi jednoduchý a přímočarý. Distribuovaný síťový konsensus bude vždy vyžadovat více času než databáze. Databáze žádost jednoduše rychle ověří a okamžitě provede požadované změny. Škálovatelnost zde není velký problém (pokud ano, je lehce řešitelný). Distribuovaná síť potřebuje více času. Uzel obvykle vytvoří blok s vícero transakcemi, což je téměř vždy rychlý proces. Blok je následně ověřen ostatními uzly a ani to síť nebrzdí. Každý distribuovaný konsensus funguje trochu jinak a to je kámen úrazu. Některé mohou být závislé na bohaté interní komunikaci, jiné mohou být schopné udělit právo na vytvoření bloku určitému uzlu a následně ověřit, že je vše v pořádku dle předepsaných pravidel. Zde se rychlost zásadně liší.

Proof-of-Work (PoW) je první úspěšný síťový konsenzus používaný ve světě kryptoměny s nastaveným průměrným časem bloku na 10 minut. PoW je ve své podstatě velmi jednoduchý. Všechny uzly (dnes pooly), které mají zájem o odměnu, se snaží vyhrát v soutěži, ve které se snaží vyřešit obtížný úkol, který trvá přibližně oněch 10 minut. Úloha je velmi náročná na výpočetní výkon a je obtížné předvídat, zda úkol potrvá 2, 10 nebo 60 minut. Co se týče odměny, soutěž vyhraje pouze jeden uzel. Jakmile uzel vyřeší úlohu, začne pouze šířit blok na další uzly pro ověření. Součástí procesu validace bloku je také ověření, že úloha byla skutečně vyřešena, takže blok může být připojen k blockchainu.

PoW je také velmi drahý a neefektivní co se týče rychlosti a počtu odbavených transakcí. Výpočetní výkon potřebný k vyřešení úlohy navíc vyžaduje hodně elektrické energie. Aby byla zachována dobrá férovost PoW soutěže, musí mít blok omezenou velikost a do omezené velikosti lze vložit pouze omezené množství transakcí.

Pokud vezmeme v úvahu, že typická transakce může mít ~ 250 B a rozumná velikost bloku v dnešních síťových podmínkách je asi 1 MB (může být i 2 MB, 4 MB může být už hodně), může takový blok obsahovat 4000 transakcí. 4000 transakcí za 10 minut nám dává 6,7 transakcí za sekundu. Bitcoin PoW je v současné době schopen zpracovat ne více než 10 transakcí za sekundu (TPS) a důvodem je hlavně dlouhý čas bloku (čas potřebný k vytvoření bloku).

PoW původně sloužil jako anti-spam nebo DoS ochrana a byl vynalezen už v roce 1993. Žadatel o nějakou službu musel poskytnout PoW, kus obtížné a drahé práce, před tím než mu bude poskytnuta služba. Útočník tedy nemohl síť spamovat, protože generování většího množství zpráv by vyžadovalo velké množství PoW, takže by to nakonec bylo drahé. PoW nebyl vynalezen jako síťový konsenzus. Satoshi Nakamoto ho použil, protože v té době bylo těžké přijít s jiným spolehlivým distribuovaným konsensem vhodným pro globální síť. PoW je sice pomalý, neefektivní a drahý, ale navzdory všem těmto nevýhodám funguje a je velmi bezpečný. PoW je jednoduchý, robustní a je velmi nákladné vyrábět podvodné blok. Bezpečnost je považována za největší výhodu PoW, na druhou stranu v čase tíhne k centralizaci, což je pravý opak toho, co mají decentralizované sítě nabídnout.

Mohli bychom uvažovat o 2 způsobech, jak zvýšit propustnost sítě, což znamená zpracovat více transakcí za sekundu. Mohli bychom zvětšit velikost bloku, abychom do něj mohli vložit více transakcí, nebo bychom mohli zkrátit čas bloku, aby se produkovali častěji. Díky latenci sítě je téměř nemožné zvětšit velikost bloku. Pokud by byl blok příliš velký, pak by propagace na všechny kontinenty trvala dlouho. Níže je uveden čas potřebný pro doručení 2 MB bloku z Londýna do jiných částí světa prostřednictvím TCP/IP protokolu:

  • Paris — 0.1s

  • US East coast — 1.1s

  • US West coast — 2.5s

  • Brazil — 3.0s

  • Korea — 3.4s

  • Australia — 5.3s

Zvětšení velikosti bloku nebude nějakou dobu na stole, ale v budoucnu bude pravděpodobně možné to zvážit. Musíme tedy zkrátit čas bloku. To je však možné pouze tehdy, pokud použijeme jiný konsenzus v síti a neobětujeme bezpečnost a decentralizaci.

PoS může být rychlý a levný konsenzus

Očekává se, že konsenzus protokolu Cardano Ouroboros PoS dokáže zvládnout zpracovat 200–250 transakcí za sekundu. Dalšími parametry konsensu by mohla být čas bloku kolem 20 sekund, více než 50 % stakovaných mincí pro možnost spáchat 51% útok a přibližně 1000 poolů v síti.

Cardano Ouroboros PoS zásadně zvýší kvalitu decentralizace ve veřejných sítích. Současná situace není příliš dobrá, pokud si uvědomíte, že v bitcoinové síti existuje pouze ~ 10 významných poolů. Jiné velké projekty využívají DPoS, který má pevný počet subjektů s právem vytvořit blok. Například EOS má 21 takových entit a Tron pouze 26. Ethereum 1.0 používá PoW a vzhledem k počtu velkých hráčů je velmi podobný bitcoinu. Ethereum 2.0 migruje na PoS, aby také dosáhl lepší decentralizace a škálovatelnosti.

Kvalita decentralizace je nejdůležitější vlastností distribuovaných sítí. Někdy slyšíme, že nejde až tak moc o kvalitu decentralizace, ale hlavně o bezpečnost. Dnes už máme dobře zabezpečenou a centralizovanou síť či databáze. Pravdou je, že potřebujeme decentralizaci i bezpečnost. Jeden bez druhého nemůže dlouhodobě dobře fungovat. Pokud bychom však měli dát přednost jedné vlastnosti, musela by to být decentralizace. Cardano nastaví laťku decentralizace dost vysoko. Potřebuje jen čas na to aby síť dokázala, že je bezpečná. Tým IOHK dlouhodobě zkoumal PoW a pracoval na tom, jak dodat stejně bezpečný PoS. Toho bylo dosaženo díky dlouhému a podrobnému výzkumu. Nyní je nutné to dokázat celému světu. Nemá smysl řešit jestli je to možné či nikoliv. Pro úspěch blockchain technologie je to v podstatě nezbytné, pokud nemáme skončit i privátní verze v podání různých národních měn. To není o souboji mezi PoW a PoS, ale o tom, jak světu dodat něco globálně použitelného.

Zpracovávat 250 transakcí za sekundu ani zdaleka nestačí pro globální protokol, který má ambice být používaný pro platby a dokonce i pro více věcí současně. Cardano má v rukávu jedno eso a tím je sharding. Sharding je způsob, jak paralelně zpracovávat transakce ve více podsítích, ale stále udržovat jednotný konzistentní stav.

Sharding je založen na předpokladu, že všechny uzly v síti nemusí nutně validovat všechny transakce. Uzly lze rozdělit do několika podsítí, jednotek či shardů. Každý shard bude poté validovat pouze část všech transakcí. Pokud by síť měla 1000 uzlů aktivně zapojených do konsensu sítě a byly by rozděleny do 10 shardů, síť by mohla validovat přibližně 10 krát více transakcí. Je také pravděpodobně možné zvýšit počet uzlů v jednotných shardech, aby se nesnížila decentralizace. Díky shardům můžeme TPS jednoho blockchainu vynásobit několika desítkami, možná dokonce stovkami. Bylo by tak možné dostat se k potřebným desítkám tisíc transakcí za sekundu. Například, pokud bude mít Cardano 10 shardů, pak by propustnost byla 2 500 TPS.

Udržení konzistence v síti napříč shardy je však náročné na synchronizaci mezi nimi a latence sítě je stále velkým nepřítelem. Dosažení paralelismu v distribuovaném síťovém prostředí je pro IOHK tým (ale i pro ostatní týmy usilující o totéž) jednou z největších výzev. To je potřeba si uvědomit.

S shardingem lze Cardano decentralizovat, zabezpečit a škálovat na první vrstvě. To je velmi důležité z hlediska uživatelské přívětivosti a celkové spolehlivosti. Pojďme se podívat na některé další alternativy, jak dosáhnout vyšší škálovatelnosti.

Architektura vrstev

V zásadě má každý projekt dvě základní možnosti, jak zlepšit současný nejpalčivější problém blockchainu, tedy škálovatelnost. Tým může zlepšit konsenzus sítě v první vrstvě, nebo použít jinou vrstvu s jinými vlastnostmi. Příkladem první možnosti je práce na PoS a shardingu. Příkladem druhé možnosti je vytvoření druhé vrstvy, jako je třeba Lightning Network (LN).

Bitcoin, jako zástupce první generace blockchainu, si vybral druhou možnost. Mince jsou předávány z první vrstvy do druhé vrstvy, kde lze použít bleskově rychlé a levné transakce s mnohem vyšší propustností v síti. Lightning Network je zcela odlišná, samostatná síť s vlastními uzly, adresami, peněženkami atd. Přenos mincí do a z druhé vrstvy vyžaduje transakce na první vrstvě.

Toto řešení má však také několik nevýhod. Jakmile se mince objeví ve druhé vrstvě, je bezpečnost vašich mincí do značné míry závislá na této vrstvě. LN nemá síťový konsenzus, kde by se uzly pokusili shodnout na jedné verzi pravdy. Místo toho existuje snaha zajistit, aby byl přenos mincí mezi vrstvami dostatečně bezpečný a aby mince nemohly být vytvořeny jen tak ze vzduchu, nebo se neztratili v rámci otevřeného platebního kanálu, například mezi Alicí a Bobem. Na bezpečnost kanálů budou dohlížet centralizované subjekty zvané Watchers (pokud vím, zatím neexistuje žádný motivační ani konsensuální mechanismus).

Nyní si představte situaci, kdy Alice otevřela platební kanál A s Bobem, aby mohla rychle poslat mince v Lightning Network a Bob otevřel další platební kanál B s Carol. Každý účastník otevřel kanál s třemi mincemi. Bob má kanály 2, takže musel mít 6 mincí.

Žluté korálky (na obrázku) představují mince. Kterýkoli účastník může poslat 3 mince protistraně prostřednictvím kanálu. Všimněte si, že mezi Alicí a Carol není vytvořen žádný přímý kanál. Pokud by Alice chtěla Carol poslat 3 mince, pak by mohla vytvořit nový kanál přes pomalou a drahou první vrstvu. Druhou rychlejší možností je použít oba již otevřené platební kanály A a B. V tomto případě musí být Bobovy mince použity k převodu hodnoty od Alice ke Carol. Nakonec bude mít Alice 0 mincí, Bob bude mít 6 mincí na kanálu A, který je otevřen mezi nimi. Carol bude mít 6 mincí. Bob bude mít 0 mincí na kanálu B, který je otevřen mezi Bobem a Carol. Bob má před a po transakci mezi Alicí a Carol stále 6 mincí. Jeho likvidita na kanálu B je však nyní 0.

V podstatě to znamená, že Bob již není schopen Carol posílat mince a Alice také nemůže Bobovi poslat žádné mince. Pokud by tedy chtěla Alice poslat Bobovi mince, musí být kanál A uzavřen a znovu otevřen prostřednictvím transakcí první vrstvy. Totéž je třeba udělat, pokud Bob chce mice poslat Carol. Dodejme, že pro uskutečnění transakce mezi Alice a Carol musí být všechny peněženky online.

Aby bylo možné posílat mince přes více kanálů, musí v síti existovat entita, která je schopna neustále sledovat aktuální stav všech kanálů a hledat cestu, kterou lze použít k platbě. S rostoucím počtem uživatelů a počtem kanálů se toto může stát výpočetně náročným úkolem a proces pravděpodobně povede k centralizaci. Aby bylo možné posílat mince přes více kanálů, musí mít kanály dostatečnou likviditu. Jakmile je likvidita vyčerpána, musí být kanály uzavřeny a znovu otevřeny. LN je určen pouze pro mikro-transakce. Může být obtížné poslat větší částky a některým selháním při posílání platby se pravděpodobně nelze vyhnout.

PoS vs. druhé vrstvy

Druhé vrstvy jsou rozhodně důležité a budou nutné. Na druhou stranu LN není nutně úplným a dostatečným řešením problému škálovatelnosti. Představte si, že bude existovat více druhých vrstev a tyto druhé vrstvy si budou vyměňovat mince mezi sebou. V této situaci bude velmi obtížné věřit, kolik mincí nebo tokenů může existovat. Čím více sítí druhé vrstvy existuje, tím obtížnější bude synchronizovat data o počtu mincí v oběhu.

Škálovatelnost vyřešená v první vrstvě pomocí Ouroboros PoS je pravděpodobně mnohem spolehlivější a bezpečnější řešení. Druhé a další vrstvy budou také potřebné a to i v systému, kde bude použit PoS. Otázkou však vždy je, jak zajistit dobrou bezpečnost vyšších vrstev a jak často a za kolik bude možné provést settlement na první vrstvě, která bude vždy tou nejbezpečnější. Udržování mincí v horních vrstvách po dlouhou dobu bude nespolehlivé a pokud bude probíhat mnoho transakcí na první vrstvě, může se první vrstva stále ucpat a poplatky mohou být vysoké.

Mnoho lidí tvrdí, že PoS nebude nikdy tak bezpečný jako PoW. IOHK matematicky prokázalo, že je to možné pomocí moderní kryptografie. Možná potřebujeme PoW a možná také PoS. Adopce otevřených, veřejných distribuovaných sítí je stále velmi nízká a jednou z často diskutovaných překážek je právě problém škálovatelnosti. Nyní máme více řešení. Jsou to druhé vrstvy a PoS s shardingem. Nyní potřebujeme čas, abychom vyzkoušeli obě varianty a uvidíme, co si lidé vyberou. Nejspíš nevyhraje jedno řešení a své uplatnění najde obě varianty.

Druhá vrstva jako Lightning Network bude pravděpodobně vždy vyžadovat otevření a uzavření kanálů a péči o ně ve smyslu likvidity. Uživatel musí zvážit, s kým kanál otevře a kolik finančních prostředků do něj vloží. Pokud budou v budoucnosti transakce na první vrstvě drahé, bude současně nákladné udržovat kanály na druhé vrstvě. S tím nebude problém v rámci PoS. Veškerá asety budete mít v jedné peněžence a můžete kdykoli odeslat přímou transakci komukoli. Všechno se děje přímo na blockchainu. Neexistuje žádná závislost na online peněženkách, likviditě, uzlech hledajících trasy a uživatelé se nemusí spoléhat na sítě bez blockchainu a konsensu v síti.

Závěr

Blockchain může zajistit vaše vlastnictví digitálních assetů. To je skvělá funkce, kterou databáze nemůže nikdy nabídnout. Aby blockchain veřejnost adoptovala, musí být technicky zdatný vyhovět požadavkům nejen early-adopterů, ale také dalších skupin, které mají větší nároky na kvalitu, spolehlivost a uživatelské rozhraní. Teď na adopci připravení nejsme, ale brzy se to snad podaří. Pokud se lidé rozhodnou více využívat veřejný blockchain a všechny jeho možnosti, máme se na co těšit.

Proponenti PoW tvrdí, že PoS nebude fungovat. Je potřeba si uvědomit, že PoW funguje dobře i přesto, že byl pravděpodobně pro Bitcoin upraven jednou osobou během jediného roku. Velký tým odborníků pracuje na protokolu Cardano již více než 5 let. Neexistuje žádný logický důvod si myslet, že nemohou uspět. Nemá smysl říkat, že když máme PoW, nepotřebujeme PoS. Trh je stále velmi mladý a lidé si dosud nevybrali, co chtějí použít a jak jsme řekli, nejsme na to ani připraveni. Vždy je lepší vybrat si z více alternativ, než být nucen používat jedno pomalé, drahé a neefektivní řešení.

Originální článek s obrázky: