Jak vytvořit škálovatelnou decentralizovanou aplikaci? Použijte 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 funguje na blockchainu — jednoduše vybírají produkt, který je levnější, rychlejší a jednodušší.

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

Jak vytvořit škálovatelnou decentralizovanou aplikaci? Použijte méně blockchainu

Poměrně často se v bílých knihách aplikací postavených na blockchainu nachází odstavec, ve kterém se uvádí: "blockchain je drahý a není schopen podporovat požadovaný počet transakcí za sekundu. Naštěstí se na škálování blockchainu podílí mnoho chytrých lidí a v okamžiku spuštění naší aplikace bude dostatečně škálovatelný."

V jednom jednoduchém odstavci může vývojář dappu odmítnout hlouběji diskutovat o problémech škálovatelnosti a alternativních řešeních problémů. To často vede k neefektivní architektuře, kde backendem a jádrem aplikace jsou chytré kontrakty běžící na blockchainu.

Existují však i nevyzkoušené přístupy v architektuře decentralizovaných aplikací, které umožňují mnohem lepší škálovatelnost díky snížené závislosti na blockchainu. Například Blockstack pracuje na architektuře, kde většina dat a logiky aplikace je uložena mimo blockchain.

Nejprve se podívejme na tradičnější přístup, kde se blockchain používá jako přímý prostředník mezi uživateli aplikace a který se příliš dobře škálovat nedá.

Přístup č. 1: Blockchain jako backend

Abychom to lépe ilustrovali, vezměme si hotelový průmysl jako příklad. Je to obrovský průmysl, kde zprostředkovatelé jako Booking.com si účtují obrovské poplatky za spojení hostů a hotelů.

V jakékoli situaci, kdy chceme překonat takového zprostředkovatele pomocí tohoto přístupu, se pokusíme zopakovat jeho obchodní logiku pomocí chytrých kontraktů na takovém blockchainu, jako je například Ethereum.

Smart kontrakty s otevřeným zdrojovým kódem, spuštěné na "celosvětovém počítači", mohou spojit prodejce s zákazníky bez třetí společnosti mezi nimi, což v konečném důsledku snižuje poplatky a provize, které si účtuje zprostředkovatel.

Jak je znázorněno na obrázku níže, hotely používají decentralizovanou aplikaci k umístění informací o pokojích, jejich dostupnosti a cenách v pracovních dnech nebo o víkendech na blockchainu, a možná i popis pokojů spolu se všemi dalšími relevantními informacemi.

Jak vytvořit škálovatelnou decentralizovanou aplikaci? Použijte méně blockchainu

Každý, kdo si chce rezervovat pokoj, používá tuto aplikaci k vyhledání hotelů a pokojů umístěných na blockchainu. Jakmile si uživatel vybere pokoj, rezervace probíhá odesláním požadované částky tokenů hotelu jako zálohu. A jako reakci smart kontrakt aktualizuje informace na blockchainu, že pokoj již není k dispozici.

Tento přístup má dvě strany problémů se škálovatelností. Za prvé, maximální počet transakcí za sekundu. Za druhé, objem dat, který lze uchovávat na blockchainu.

Pojďme udělat přibližné výpočty. Booking.com uvádí, že mají zaregistrováno téměř 2 miliony hotelů. Předpokládejme, že průměrný hotel má 10 pokojů a každý je rezervován pouze 20krát ročně — to nám dává v průměru 13 rezervací za sekundu.

Pro odhad této číslice stojí za to poznamenat, že Ethereum může zpracovat přibližně 15 transakcí za sekundu.

Je také třeba vzít v úvahu, že v naší aplikaci budou také transakce od hotelů — pro nahrávání a neustálé aktualizování informací o jejich pokojích. Hotely velmi často aktualizují ceny pokojů, někdy dokonce každý den, a každá změna ceny nebo popisu vyžaduje transakci na blockchainu.

Zde také existují problémy s velikostí — váha blockchainu Ethereum nedávno překročila značku 2TB. Pokud by aplikace s podobným přístupem skutečně získaly na popularitě, stala by se síť Ethereum extrémně nestabilní.

Takový systém založený na blockchainu může vyloučit cizí subjekty díky své nestrannosti a nepřítomnosti centralizace — hlavní výhody technologie blockchainu. Ale blockchain má také další charakteristiky — je distribuovaný a nezapisovatelný, což jsou skvělé vlastnosti, ale za které se musí platit rychlostí a poplatky za transakce.

Protože vývojáři dappů by měli pečlivě zhodnotit, zda každá funkce používající blockchain skutečně potřebuje decentralizaci a nezměnitelnost.

Například: jaký je přínos distribuce dat každého hotelu po stovkách počítačů po celém světě a jejich trvalého uchovávání tam? Je opravdu důležité, aby historická data o cenách a dostupnosti pokojů byla vždy součástí blockchainu? Pravděpodobně ne.

Pokud začneme klást takové otázky, začneme vidět, že všechny nákladné vlastnosti blockchainu nejsou nutné pro všechny naše funkce. Jaká je tedy alternativa?

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

Ačkoli je hlavní důraz Blockstacku na aplikacích, kde uživatelé vlastní svá data (například takových jako Airtext, BentenSound, ImageOptimizer nebo Graphite), Blockstack má také filosofii malého využití blockchainu — pouze tehdy, když je to naprosto nezbytné. Jejich hlavní argument spočívá v tom, že blockchain je pomalý a drahý, takže by měl být používán pouze pro jednotlivé nebo vzácné operace. Ostatní interakce s aplikacemi by měly probíhat prostřednictvím peer-to-peer, tedy uživatelé decentralizovaných aplikací by měli sdílet data přímo mezi sebou, nikoli prostřednictvím blockchainu. Nakonec nejstarší a nejúspěšnější decentralizované aplikace, jako je BitTorrent, e-mail a Tor, byly vytvořeny ještě před vznikem samotného konceptu blockchainu.

Jak vytvořit škálovatelnou decentralizovanou aplikaci? Použijte méně blockchainu
Vlevo: první přístup, kde uživatelé interagují přes blockchain. Vpravo: uživatelé interagují přímo mezi sebou, přičemž blockchain je využíván pouze pro identifikaci a podobně..

Vrátíme se k příkladu s rezervací hotelů. Chceme nestranný, nezávislý a otevřený protokol pro spojení hostů s hotely. Jinými slovy, chceme odstranit centralizovaného zprostředkovatele. Nemáme potřebu například stále uchovávat ceny pokojů ve společném distribuovaném registru.

Proč bychom měli jen umožnit hostům a hotelům komunikovat přímo, a ne prostřednictvím blockchainu? Hotely mohou uchovávat své ceny, dostupnost pokojů a další informace kdekoli, kde budou přístupné pro všechny — například na IPFS, Amazon S3 nebo dokonce na jejich vlastním místním serveru. To je přesně to, co poskytuje decentralizovaný systém úložiště od Blockstacku nazvaný Gaia. Umožňuje uživatelům vybrat si, kde chtějí uchovávat svá data a kontrolovat, kdo k nim může mít přístup prostřednictvím přístupu nazvaného multihostitelského úložiště.

Aby se vybudovala důvěra, všechna data hotelu jsou kryptograficky podepsána samotným hotelem. Bez ohledu na to, kde jsou tato data uchovávána, jejich integritu lze ověřit pomocí veřejných klíčů spojených s identifikačními informacemi tohoto hotelu uloženými v blockchainu.

V případě Blockstacku je v blockchainu uchovávána pouze vaše identifikační informace. Informace o tom, jak získat data každého uživatele, jsou uchovávány v tzv. zónových souborech a distribuovány prostřednictvím P2P sítě pomocí uzlů. A opět — nemusíte věřit datům, která poskytují uzly, protože můžete zkontrolovat jejich pravost porovnáním s hashmi, které jsou uloženy v blockchainu a u dalších uživatelů.

V zjednodušené verzi systému budou hosté používat P2P síť Blockstack k vyhledávání hotelů a získávání informací o jejich pokojích. A pravost a integritu všech dat, která obdržíte, lze ověřit pomocí veřejných klíčů a hashů uložených v virtuálním řetězci Blockstacku.

Tato architektura je složitější než první přístup a vyžaduje komplexnější infrastrukturu. Ve skutečnosti je to právě to, co Blockstack poskytuje, a to všechny potřebné komponenty pro vytvoření takového decentralizovaného systému.

Jak vytvořit škálovatelnou decentralizovanou aplikaci? Použijte méně blockchainu

Při této architektuře uchováváme v blockchainu pouze data, která skutečně musí být distribuovaná a ne přepisovatelná. V případě Blockstacku potřebujete transakce v blockchainu pouze k registraci a určení, kde by měla být vaše data uchovávána. Můžete potřebovat více transakcí, pokud chcete změnit něco z těchto informací, ale to není opakující se událost.

Navíc logika aplikace, na rozdíl od prvního přístupu, funguje na straně klienta, a ne na chytrých kontraktech. To umožňuje vývojáři měnit tuto logiku bez nákladných nebo někdy dokonce nemožných aktualizací chytrého kontraktu. A tím, že jsou data a logika aplikace mimo blockchain, 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 nevyřešenými otázkami.

Například pokud decentralizovaná aplikace nepracuje na chytrých kontraktech, snižuje to potřebu utilitních tokenů. To může způsobit problémy pro podnikání, pokud zohledníme, že ICO byla hlavním zdrojem financování pro decentralizované aplikace (včetně samotného Blockstacku).

Existují také technické problémy. Například poměrně jednoduché je implementovat funkci rezervace hotelů v chytrém kontraktu, kde se při atomární operaci rezervují pokoje výměnou za tokeny. A není moc zřejmé, jak by rezervace fungovala v aplikaci Blockstack bez chytrých kontraktů.

Aplikace, které cílí na globální trhy s potenciálem na miliony uživatelů, by měly být velmi dobře škálovatelné, aby byly úspěšné. Je chybou spoléhat se výhradně na blockchainy pro dosažení takové úrovně škálovatelnosti v nejbližší budoucnosti. Aby mohly soutěžit s velkými centralizovanými hráči na trhu, jako je Booking.com, musí vývojáři decentralizovaných aplikací zvážit alternativní přístupy k designu svých aplikací, například k tomu, co nabízí Blockstack.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster