Jak vytvořit decentralizovanou aplikaci, která se škáluje? Používejte méně blockchainu

Ne, spuštění decentralizované aplikace (dapp) na blockchainu nepovede k úspěšnému podnikání. Ve skutečnosti většina uživatelů ani nepřemýšlí o tom, zda aplikace běží na blockchainu – jednoduše si vyberou produkt, který je levnější, rychlejší a jednodušší.

Bohužel, i když má blockchain své jedinečné vlastnosti a výhody, většina aplikací, které na něm běží, je mnohem dražší, pomalejší a méně intuitivní než jejich centralizovaní konkurenti.

Jak vytvořit decentralizovanou aplikaci, která se škáluje? Používejte méně blockchainu

Poměrně často ve whitepaperech aplikací, které jsou postaveny na blockchainu, můžete najít odstavec, který říká: "Blockchain je drahý a nedokáže podporovat požadovaný počet transakcí za sekundu. Naštěstí mnoho chytrých lidí pracuje na škálování blockchainu a ve chvíli, kdy se naše aplikace spustí, bude poměrně škálovatelná.“

V jednom jednoduchém odstavci se vývojář dapp může vzdát hlubší diskuse o problémech se škálovatelností a alternativních řešeních problémů. To často vede k neefektivní architektuře, kde smart kontrakty běžící na blockchainu slouží jako backend a jádro aplikace.

Stále však existují neotestované přístupy k decentralizované architektuře aplikací, které umožňují mnohem lepší škálovatelnost snížením závislosti na blockchainu. Blockstack například pracuje na architektuře, kde je většina aplikačních dat a logiky uložena mimo řetězec.

Podívejme se nejprve na tradičnější přístup, který využívá blockchain jako přímého prostředníka mezi uživateli aplikací a který se nijak zvlášť dobře neškáluje.

Přístup č. 1: Blockchain jako backend

Aby bylo vše jasnější, vezměme si jako příklad hotelový průmysl. Jedná se o obrovský průmysl, ve kterém zprostředkovatelé, jako je Booking.com, účtují obrovský poplatek pro spojení hostů a hotelů.

V každé situaci, kdy chceme takového prostředníka porazit pomocí tohoto přístupu, se pokusíme replikovat jeho obchodní logiku pomocí chytrých kontraktů na blockchainu, jako je Ethereum.

Inteligentní smlouvy s otevřeným zdrojovým kódem běžící na „světovém počítači“ mohou propojit obchodníky se spotřebiteli, aniž by mezi tím byla třetí strana, což v konečném důsledku snižuje poplatky a provize účtované zprostředkovatelem.

Jak je znázorněno na obrázku níže, hotely používají decentralizovanou aplikaci k tomu, aby na blockchainu zveřejňovaly informace o pokojích, jejich dostupnosti a cenách ve všední dny nebo o víkendech a možná i popis pokojů se všemi dalšími relevantními informacemi.

Jak vytvořit decentralizovanou aplikaci, která se škáluje? Používejte méně blockchainu

Každý, kdo si chce rezervovat pokoj, používá tuto aplikaci k vyhledávání hotelů a pokojů hostovaných na blockchainu. Jakmile si uživatel vybere pokoj, provede se rezervace zasláním požadovaného množství žetonů do hotelu jako zálohy. A v reakci na to inteligentní smlouva aktualizuje informace v blockchainu, že číslo již není k dispozici.

Tento přístup má dvě strany problému škálovatelnosti. Za prvé, maximální počet transakcí za sekundu. Za druhé, množství dat, které lze uložit na blockchain.

Udělejme nějaké hrubé výpočty. Booking.com uvádí, že u nich je registrováno téměř 2 miliony hotelů. Řekněme, že průměrný hotel má 10 pokojů a každý z nich je rezervován pouze 20krát ročně – to nám dává průměrně 13 rezervací za sekundu.

Pro představu tohoto čísla stojí za zmínku, že Ethereum dokáže zpracovat přibližně 15 transakcí za sekundu.

Zároveň stojí za zvážení, že naše aplikace bude obsahovat i transakce z hotelů – pro stahování a neustálou aktualizaci informací o jejich pokojích. Hotely aktualizují ceny pokojů velmi často, někdy dokonce denně, a každá změna ceny nebo popisu vyžaduje transakci na blockchainu.

I zde jsou problémy s velikostí – váha blockchainu Ethereum nedávno překročila hranici 2 TB. Pokud by se aplikace s tímto přístupem staly skutečně populární, síť Ethereum by se stala extrémně nestabilní.

Takový systém založený na blockchainu může vyloučit lidi zvenčí kvůli své nestrannosti a nedostatku centralizace, což jsou hlavní výhody technologie blockchain. Blockchain má ale i další vlastnosti – je distribuován a nepřepisován, to jsou vynikající vlastnosti, ale musíte za ně zaplatit v rychlosti a provizi transakcí.

Proto musí vývojáři dapp pečlivě vyhodnotit, zda každá funkce využívající blockchain skutečně potřebuje distribuci a nezapisovatelnost.

Například: jaká je výhoda distribuce dat každého hotelu mezi stovky strojů po celém světě a jejich trvalé uložení? Je opravdu důležité, aby historická data o cenách a dostupnosti pokojů byla vždy zahrnuta do blockchainu? Asi ne.

Pokud se začneme ptát na podobné otázky, začneme zjišťovat, že pro všechny naše funkce nutně nepotřebujeme všechny drahé funkce blockchainu. Jaká je tedy alternativa?

Přístup č. 2: Architektura inspirovaná blockstackem

I když hlavní důraz Blockstack v aplikacích, ve kterých jsou uživatelé vlastníky svých dat (např vzduchový text, BentenSound, Optimalizátor obrazu nebo Grafit), blockstack má také filozofii používání blockchainu lehce – pouze když je to absolutně nutné. Jejich hlavním argumentem je, že blockchain je pomalý a drahý, a proto by se měl používat pouze pro jednotlivé nebo málo časté transakce. Zbytek interakce s aplikacemi by měl probíhat prostřednictvím peer-to-peer, tzn. uživatelé decentralizovaných aplikací musí sdílet data přímo mezi sebou, nikoli prostřednictvím blockchainu. Vždyť nejstarší a nejúspěšnější decentralizované aplikace jako BitTorrent, email a Tor vznikly ještě před samotným konceptem blockchainu.

Jak vytvořit decentralizovanou aplikaci, která se škáluje? Používejte méně blockchainu
Vlevo: První přístup, ve kterém uživatelé interagují prostřednictvím blockchainu. Vpravo: Uživatelé komunikují přímo mezi sebou a blockchain slouží pouze k identifikaci a podobně.

Vraťme se k příkladu rezervace hotelu. Chceme nestranný, nezávislý a otevřený protokol pro spojení hostů s hotely. Jinými slovy, chceme odstranit centralizovaný prostředník. Nepotřebujeme například neustále ukládat ceny pokojů do společné distribuované knihy.

Proč prostě neumožníme hostům a hotelům přímou interakci, nikoli prostřednictvím blockchainu. Hotely mohou ukládat své ceny, dostupnost pokojů a jakékoli další informace někde, kde budou dostupné všem – například IPFS, Amazon S3 nebo dokonce vlastní lokální server. Přesně tak nazval decentralizovaný úložný systém Blockstack Gaia. Umožňuje uživatelům vybrat si, kam chtějí svá data uložit, a ovládat, kdo k nim může přistupovat prostřednictvím přístupu zvaného úložiště pro více uživatelů.

Pro vytvoření důvěry jsou všechna hotelová data kryptograficky podepsána samotným hotelem. Bez ohledu na to, kde jsou tato data uložena, lze jejich integritu ověřit pomocí veřejných klíčů spojených s identitou daného hotelu uloženými na blockchainu.

V případě Blockstacku jsou na blockchainu uloženy pouze informace o vaší identitě. Informace o tom, jak získat data každého uživatele, jsou uloženy v zónových souborech a distribuovány prostřednictvím sítě peer-to-peer pomocí uzlů. A znovu, nemusíte důvěřovat datům, které uzly poskytují, protože jejich pravost můžete ověřit porovnáním s hodnotami hash uloženými v blockchainu a ostatními uživateli.

Ve zjednodušené verzi systému budou hosté využívat peer-to-peer síť Blockstack k vyhledávání hotelů a získávání informací o svých pokojích. Autentičnost a integritu všech dat, která obdržíte, lze ověřit pomocí veřejných klíčů a hashů uložených v virtuální okruh Blockstack.

Tato architektura je složitější než první přístup a vyžaduje komplexnější infrastrukturu. Ve skutečnosti je to přesně místo, kde přichází Blockstack, který poskytuje všechny potřebné komponenty k vytvoření takového decentralizovaného systému.

Jak vytvořit decentralizovanou aplikaci, která se škáluje? Používejte méně blockchainu

S touto architekturou ukládáme na blockchain pouze data, která je skutečně potřeba distribuovat a ne přepisovat. V případě Blockstacku potřebujete pouze transakce na blockchainu, abyste se zaregistrovali a uvedli, kde mají být vaše data uložena. Pokud budete chtít některou z těchto informací změnit, možná budete muset provést více transakcí, ale nejedná se o opakující se událost.

Aplikační logika navíc na rozdíl od prvního přístupu běží na straně klienta a ne na smart kontraktech. To umožňuje vývojáři změnit tuto logiku bez nákladných nebo někdy dokonce nemožných aktualizací inteligentních smluv. A udržováním aplikačních dat a logiky mimo řetězec mohou decentralizované aplikace dosáhnout úrovně výkonu a škálovatelnosti tradičních centralizovaných systémů.

Závěr

Aplikace běžící na Blockstacku se mohou škálovat mnohem lépe než běžné blockchainové aplikace, ale jde o mladší přístup s vlastními problémy a nezodpovězenými otázkami.

Pokud například decentralizovaná aplikace neběží na chytrých smlouvách, snižuje to potřebu tokenů utility. To by mohlo způsobit problémy podnikům vzhledem k tomu, že ICO byly hlavním zdrojem financování decentralizovaných aplikací (včetně samotného Blockstacku)

I zde jsou technické problémy. Například je poměrně snadné implementovat funkci hotelové rezervace v chytré smlouvě, kde se v atomické operaci provádějí rezervace pokojů výměnou za tokeny. A není příliš zřejmé, jak bude rezervace fungovat v aplikaci Blockstack bez chytrých smluv.

Aplikace, které cílí na globální trhy s potenciálem pro miliony uživatelů, se musí velmi dobře škálovat, aby byly úspěšné. Je chybou spoléhat se pouze na blockchainy k dosažení této úrovně škálovatelnosti v blízké budoucnosti. Aby byli vývojáři decentralizovaných aplikací schopni konkurovat velkým centralizovaným hráčům na trhu, jako je Booking.com, měli by zvážit alternativní přístupy k navrhování svých aplikací, jako je ten, který nabízí Blockstack.

Zdroj: www.habr.com

Přidat komentář