Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Používajte menej blockchainu

Nie, spustenie decentralizovanej aplikácie (dapp) na blockchaine nepovedie k úspešnému biznisu. V skutočnosti väčšina používateľov ani nepremýšľa o tom, či aplikácia beží na blockchaine – jednoducho si vyberú produkt, ktorý je lacnejší, rýchlejší a jednoduchší.

Bohužiaľ, aj keď má blockchain svoje jedinečné vlastnosti a výhody, väčšina aplikácií, ktoré na ňom bežia, je oveľa drahšia, pomalšia a menej intuitívna ako ich centralizovaní konkurenti.

Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Používajte menej blockchainu

Pomerne často v whitepaperoch aplikácií, ktoré sú postavené na blockchaine, môžete nájsť odsek, ktorý hovorí: "Blockchain je drahý a nedokáže podporovať požadovaný počet transakcií za sekundu. Našťastie veľa šikovných ľudí pracuje na škálovaní blockchainu a kým sa naša aplikácia spustí, bude celkom škálovateľná.“

V jednom jednoduchom odseku sa vývojár dapp môže vzdať hlbšej diskusie o problémoch so škálovateľnosťou a alternatívnych riešeniach problémov. To často vedie k neefektívnej architektúre, kde inteligentné zmluvy bežiace na blockchaine slúžia ako backend a jadro aplikácie.

Stále však existujú neotestované prístupy k architektúre decentralizovaných aplikácií, ktoré umožňujú oveľa lepšiu škálovateľnosť znížením závislosti na blockchaine. Napríklad Blockstack pracuje na architektúre, kde je väčšina aplikačných dát a logiky uložená mimo reťazec.

Pozrime sa najprv na tradičnejší prístup, ktorý využíva blockchain ako priameho sprostredkovateľa medzi používateľmi aplikácie a ktorý nie je zvlášť dobre škálovateľný.

Prístup č. 1: Blockchain ako backend

Aby to bolo jasnejšie, zoberme si ako príklad hotelový priemysel. Ide o obrovský priemysel, v ktorom sprostredkovatelia ako Booking.com, účtujú obrovský poplatok na spojenie hostí a hotelov.

V každej situácii, keď chceme takéhoto sprostredkovateľa poraziť pomocou tohto prístupu, pokúsime sa replikovať jeho obchodnú logiku pomocou smart kontraktov na blockchaine, akým je Ethereum.

Inteligentné zmluvy s otvoreným zdrojom bežiace na „svetovom počítači“ môžu spojiť obchodníkov so spotrebiteľmi bez toho, aby medzi tým bola tretia strana, čo v konečnom dôsledku znižuje poplatky a provízie účtované sprostredkovateľom.

Ako je znázornené na obrázku nižšie, hotely používajú decentralizovanú aplikáciu na uverejňovanie informácií o izbách, ich dostupnosti a cenách počas pracovných dní alebo víkendov na blockchaine a možno aj popis izieb so všetkými ďalšími relevantnými informáciami.

Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Používajte menej blockchainu

Každý, kto si chce rezervovať izbu, používa túto aplikáciu na vyhľadávanie hotelov a izieb hostených na blockchaine. Keď si používateľ vyberie izbu, rezervácia sa uskutoční odoslaním požadovaného množstva žetónov do hotela ako zálohy. A v reakcii na to inteligentný kontrakt aktualizuje informácie v blockchaine, že číslo už nie je k dispozícii.

Tento prístup má dve strany problému škálovateľnosti. Po prvé, maximálny počet transakcií za sekundu. Po druhé, množstvo údajov, ktoré je možné uložiť na blockchain.

Urobme nejaké hrubé výpočty. Booking.com uvádza, že majú zaregistrovaných takmer 2 milióny hotelov. Povedzme, že priemerný hotel má 10 izieb a každá z nich je rezervovaná len 20-krát za rok – to nám dáva priemerne 13 rezervácií za sekundu.

Pre predstavu tohto čísla stojí za zmienku, že Ethereum dokáže spracovať približne 15 transakcií za sekundu.

Zároveň stojí za zváženie, že naša aplikácia bude obsahovať aj transakcie z hotelov – na sťahovanie a neustálu aktualizáciu informácií o ich izbách. Hotely aktualizujú ceny izieb veľmi často, niekedy dokonca denne, a každá zmena ceny alebo popisu vyžaduje transakciu na blockchaine.

Aj tu sú problémy s veľkosťou – váha blockchainu Ethereum nedávno prekročila hranicu 2 TB. Ak by sa aplikácie s týmto prístupom stali skutočne populárnymi, sieť Ethereum by sa stala extrémne nestabilnou.

Takýto systém založený na blockchaine môže vylúčiť outsiderov kvôli svojej nestrannosti a nedostatku centralizácie, čo sú hlavné výhody technológie blockchain. Blockchain má však aj iné vlastnosti - je distribuovaný a nie prepísaný, to sú vynikajúce vlastnosti, ale musíte za ne zaplatiť v rýchlosti a provízii transakcií.

Preto musia vývojári dapp starostlivo vyhodnotiť, či každá funkcia využívajúca blockchain skutočne potrebuje distribúciu a nezapisovateľnosť.

Napríklad: aká je výhoda distribúcie údajov každého hotela na stovky počítačov po celom svete a ich trvalého uchovávania? Je naozaj dôležité, aby historické údaje o cenách izieb a dostupnosti boli vždy zahrnuté v blockchaine? Pravdepodobne nie.

Ak si začneme klásť otázky, ako sú tieto, začneme vidieť, že pre všetky naše funkcie nevyhnutne nepotrebujeme všetky drahé funkcie blockchainu. Takže, aká je alternatíva?

Prístup č. 2: Architektúra inšpirovaná blockstackom

Aj keď hlavný dôraz Blockstack v aplikáciách, v ktorých sú používatelia vlastníkmi svojich údajov (napríklad napr vzduchový text, BentenSound, Image Optimizer alebo grafit), blockstack má tiež filozofiu používať blockchain zľahka – iba keď je to absolútne nevyhnutné. Ich hlavným argumentom je, že blockchain je pomalý a drahý, a preto by sa mal používať len na jednotlivé alebo zriedkavé transakcie. Zvyšok interakcie s aplikáciami by mal prebiehať prostredníctvom peer-to-peer, t.j. používatelia decentralizovaných aplikácií musia zdieľať údaje priamo medzi sebou, a nie prostredníctvom blockchainu. Veď najstaršie a najúspešnejšie decentralizované aplikácie ako BitTorrent, email a Tor vznikli ešte pred samotným konceptom blockchainu.

Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Používajte menej blockchainu
Vľavo: Prvý prístup, v ktorom používatelia interagujú prostredníctvom blockchainu. Vpravo: Používatelia interagujú priamo medzi sebou a blockchain sa používa iba na identifikáciu a podobne.

Vráťme sa k príkladu rezervácie hotela. Chceme nestranný, nezávislý a otvorený protokol na prepojenie hostí s hotelmi. Inými slovami, chceme odstrániť centralizovaného sprostredkovateľa. Nepotrebujeme napríklad neustále ukladať ceny izieb do spoločnej distribuovanej účtovnej knihy.

Prečo jednoducho neumožníme hosťom a hotelom interakciu priamo a nie prostredníctvom blockchainu. Hotely môžu ukladať svoje ceny, dostupnosť izieb a akékoľvek ďalšie informácie niekde, kde budú dostupné pre každého – napríklad IPFS, Amazon S3 alebo dokonca vlastný lokálny server. Presne tak nazval decentralizovaný úložný systém Blockstack Gaia. Umožňuje používateľom vybrať si, kde chcú svoje údaje uložiť, a kontrolovať, kto k nim môže pristupovať prostredníctvom prístupu tzv úložisko pre viacerých používateľov.

Na vytvorenie dôvery sú všetky údaje hotela kryptograficky podpísané samotným hotelom. Bez ohľadu na to, kde sú tieto údaje uložené, ich integritu možno overiť pomocou verejných kľúčov spojených s identitou daného hotela uloženou v blockchaine.

V prípade Blockstacku sú na blockchaine uložené iba informácie o vašej identite. Informácie o tom, ako získať údaje každého používateľa, sú uložené v zónových súboroch a distribuované prostredníctvom siete typu peer-to-peer pomocou uzlov. A ešte raz, nemusíte dôverovať údajom, ktoré uzly poskytujú, pretože ich pravosť môžete overiť porovnaním s hodnotami hash uloženými v blockchaine a inými používateľmi.

V zjednodušenej verzii systému budú hostia využívať peer-to-peer sieť Blockstack na vyhľadávanie hotelov a získavanie informácií o svojich izbách. Autentickosť a integritu všetkých údajov, ktoré dostanete, je možné overiť pomocou verejných kľúčov a hash uložených v virtuálny okruh Blockstack.

Táto architektúra je zložitejšia ako prvý prístup a vyžaduje si komplexnejšiu infraštruktúru. V skutočnosti presne tu prichádza Blockstack, ktorý poskytuje všetky potrebné komponenty na vytvorenie takéhoto decentralizovaného systému.

Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Používajte menej blockchainu

S touto architektúrou ukladáme na blockchaine len dáta, ktoré je skutočne potrebné distribuovať a nie prepisovať. V prípade Blockstacku potrebujete iba transakcie na blockchaine, aby ste sa zaregistrovali a uviedli, kde majú byť vaše údaje uložené. Ak chcete zmeniť niektorú z týchto informácií, možno budete musieť vykonať viac transakcií, nejde však o opakujúcu sa udalosť.

Navyše aplikačná logika na rozdiel od prvého prístupu beží na strane klienta a nie na smart kontraktoch. To umožňuje vývojárom zmeniť túto logiku bez nákladných alebo niekedy dokonca nemožných aktualizácií inteligentných zmlúv. A udržiavaním aplikačných dát a logiky mimo reťazca môžu decentralizované aplikácie dosiahnuť úroveň výkonu a škálovateľnosti tradičných centralizovaných systémov.

Záver

Aplikácie bežiace na Blockstack sa môžu škálovať oveľa lepšie ako bežné blockchainové aplikácie, ale ide o mladší prístup s vlastnými problémami a nezodpovedanými otázkami.

Ak napríklad decentralizovaná aplikácia nebeží na inteligentných zmluvách, znižuje sa tým potreba tokenov. To by mohlo spôsobiť problémy podnikom vzhľadom na to, že ICO boli hlavným zdrojom financovania decentralizovaných aplikácií (vrátane samotného Blockstacku)

Vyskytujú sa tu aj technické problémy. Napríklad je pomerne jednoduché implementovať funkciu rezervácie hotela v inteligentnom kontrakte, kde sa v atómovej operácii rezervujú izby výmenou za tokeny. A nie je veľmi zrejmé, ako bude rezervácia fungovať v aplikácii Blockstack bez inteligentných zmlúv.

Aplikácie, ktoré sa zameriavajú na globálne trhy s potenciálom pre milióny používateľov, sa musia veľmi dobre škálovať, aby boli úspešné. Je chybou spoliehať sa výlučne na blockchainy na dosiahnutie tejto úrovne škálovateľnosti v blízkej budúcnosti. Aby boli vývojári decentralizovaných aplikácií schopní konkurovať veľkým centralizovaným hráčom na trhu, ako je Booking.com, mali by zvážiť alternatívne prístupy k navrhovaniu svojich aplikácií, ako napríklad ten, ktorý ponúka Blockstack.

Zdroj: hab.com

Pridať komentár