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

Nie, spustenie decentralizovanej aplikácie (dapp) na blockchainu neprinesie úspešný biznis. V skutočnosti si väčšina používateľov ani neuvedomuje, či aplikácia funguje na blockchaine – jednoducho si vyberajú produkt, ktorý je lacnejší, rýchlejší a jednoduchší.

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

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

Celkom často sa v whitepaper-och aplikácií postavených na blockchaine nachádza paragraf, ktorý hovorí: "blockchain je drahý a nie je schopný podporiť požadovaný počet transakcií za sekundu. Našťastie, veľa inteligentných ľudí pracuje na škálovaní blockchainu a do doby spustenia našej aplikácie bude dostatočne škálovateľný."

V jednom jednoduchom paragrafu sa môže vývojár dapp-u vzdať hĺbšieho diskusie o problémoch škálovateľnosti a alternatívnych riešeniach problémov. To často vedie k neefektívnej architektúre, kde backend a jadro aplikácie tvoria smart kontrakty bežiace na blockchaine.

Existujú však aj neoprávnené prístupy v architektúre decentralizovaných aplikácií, ktoré umožňujú oveľa lepšie škálovanie vďaka zníženiu závislosti od blockchainu. Napríklad Blockstack pracuje na architektúre, kde väčšina dát a logiky aplikácie je uložená mimo blockchain.

Pozrime sa najprv na tradičnejší prístup, kde sa blockchain používa ako priamy sprostredkovateľ medzi používateľmi aplikácie a ktorý sa nezvláda veľmi dobre škálovať.

Prístup č. 1: Blockchain ako backend

Aby sme to priblížili, vezmime si hotelový priemysel ako príklad. Je to obrovský priemysel, v ktorom sprostredkovatelia ako Booking.com, berú obrovské poplatky za spojenie hostí a hotelov.

V každej situácii, keď sa chceme zbaviť takého sprostredkovateľa, pomocou tohto prístupu sa budeme snažiť zopakovať jeho biznis logiku pomocou smart kontraktov na takom blockchaine, akým je napríklad Ethereum.

Open-source smart contracts launched on the "world computer" can connect sellers with consumers without an intermediary, ultimately reducing the fees and commissions charged by middlemen.

As shown in the image below, hotels use a decentralized application to store information about rooms, their availability, and prices on weekdays or weekends on the blockchain, and possibly even descriptions of the rooms along with all other relevant information.

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

Anyone wanting to book a room uses this application to search for hotels and rooms listed on the blockchain. Once the user selects a room, the booking occurs by sending the required amount of tokens to the hotel as a deposit. In response, the smart contract updates the information on the blockchain, marking the room as no longer available.

This approach has two sides to the scalability issue. First, the maximum number of transactions per second. Second, the volume of data that can be stored on the blockchain.

Let’s do some rough calculations. Booking.com claims to have nearly 2 million hotels listed. Let’s assume that, on average, each hotel has 10 rooms and each room is booked only 20 times a year — this gives us an average of 13 bookings per second.

To estimate this number, it’s worth noting that Ethereum can handle approximately 15 transactions per second.

At the same time, we must consider that our application will also have transactions from hotels — for loading and continuously updating information about their rooms. Hotels frequently update room prices, sometimes even daily, and every price or description change requires a transaction on the blockchain.

There’s also the size problem — the size of the Ethereum blockchain recently crossed the 2TB mark. If applications with this approach became truly popular, the Ethereum network would become extremely unstable.

Such a blockchain-based system can exclude outsiders due to its impartiality and lack of centralization — the main advantages of blockchain technology. However, the blockchain has other features as well — it is distributed and non-rewritable, which are great characteristics, but they come at the cost of speed and transaction fees.

Preto musia vývojári dappov starostlivo posúdiť, či je naozaj potrebné decentralizovať a zabezpečiť nezmeniteľnosť každej funkcie, ktorá využíva blockchain.

Napríklad: aké sú výhody rozloženia dát každého hotela po stovkách strojov po celom svete a ich neustáleho uchovávania? Je naozaj dôležité, aby historické dáta o cenách a dostupnosti izieb boli vždy zahrnuté v blockchaine? Asi nie.

Ak sa začneme pýtať na takéto otázky, začneme vidieť, že nemusíme mať všetky nákladné vlastnosti blockchainu pre všetky naše funkcie. Aké sú teda alternatívy?

Prístup #2: Architektúra inšpirovaná Blockstackom

Hoci je dôraz Blockstack na aplikáciách, v ktorých sú užívatelia vlastníkmi svojich dát (napríklad ako sú Airtext, BentenSound, ImageOptimizer alebo Graphite), Blockstack má tiež filozofiu obmedzeného využívania blockchainu — len keď je to absolútne nevyhnutné. Ich hlavný argument spočíva v tom, že blockchain je pomalý a drahý, a preto by sa mal používať len pre ojedinelé alebo zriedkavé operácie. Ostatná interakcia s aplikáciami by mala prebiehať prostredníctvom peer-to-peer, t.j. používatelia decentralizovaných aplikácií by mali zdieľať dáta priamo medzi sebou, a nie prostredníctvom blockchainu. Napokon, najstaršie a najúspešnejšie decentralizované aplikácie, ako BitTorrent, email a Tor, boli vytvorené ešte predtým, ako bol samotný koncept blockchainu.

Ako vytvoriť decentralizovanú aplikáciu, ktorá sa škáluje? Použite menej blockchainu
Vľavo: prvý prístup, kde používatelia interagujú prostredníctvom blockchainu. Vpravo: používatelia interagujú priamo medzi sebou, pričom blockchain sa používa len pre identifikáciu a podobne.

Vráťme sa k príkladu s rezerváciou hotelov. Chceme nestranný, nezávislý a otvorený protokol na spojenie hostí s hotelmi. Inými slovami, chceme odstrániť centralizovaného sprostredkovateľa. Nemáme potrebu, napríklad, neustále uchovávať ceny izieb v spoločnom decentralizovanom registre.

Prečo by sme nemohli jednoducho umožniť hosťom a hotelom komunikovať priamo, bez blockchainu? Hotely môžu uchovávať svoje ceny, dostupnosť izieb a akékoľvek ďalšie informácie niekde, kde budú prístupné pre všetkých — napríklad na IPFS, Amazon S3, alebo dokonca na vlastnom lokálnom serveri. To presne ponúka decentralizovaný systém ukladania od Blockstack s názvom Gaia. Umožňuje používateľom vybrať si, kde chcú uchovávať svoje údaje a kontrolovať, kto k nim môže mať prístup prostredníctvom prístupu nazývaného multiužívateľské úložisko.

Aby sa vytvorila dôvera, všetky údaje hotela sú 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 identifikačnými informáciami tohto hotela, ktoré sú uložené v blockchaine.

V prípade Blockstacku je v blockchaine uložená iba vaša identifikačná informácia. Informácie o tom, ako získať údaje každého používateľa, sú uchovávané v zónových súboroch a distribuované cez peer-to-peer sieť pomocou uzlov. A znovu — nemusíte veriť údajom, ktoré poskytujú uzly, pretože môžete overiť ich pravosť porovnaním ich s hashmi, ktoré sú uložené v blockchaine a u iných používateľov.

V zjednodušenej verzii systému budú hostia používať peer-to-peer sieť Blockstack na vyhľadávanie hotelov a získavanie informácií o ich izbách. A pravosť a integritu všetkých údajov, ktoré získate, môžete overiť pomocou verejných kľúčov a hashov, ktoré sú uložené v virtuálnom reťazci Blockstack.

Táto architektúra je zložitejšia ako prvý prístup a vyžaduje komplexnejšiu infraštruktúru. V skutočnosti, to je presne to, kde prichádza Blockstack, poskytujúci všetky potrebné komponenty na vytvorenie takej decentralizovanej sústavy.

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

Pri takej architektúre uchovávame v blockchaine iba údaje, ktoré naozaj musia byť distribuované a nemôžu byť prepisované. V prípade Blockstacku potrebujete transakcie v blockchaine len na registráciu a určenie, kde by sa mali uložiť vaše údaje. Môžete potrebovať viac transakcií, ak chcete zmeniť niečo z týchto informácií, ale to nie je opakujúca sa udalosť.

Navyše, logika aplikácie v kontraste s prvým prístupom funguje na strane klienta, nie na smart kontraktoch. To umožňuje vývojárovi meniť túto logiku bez nákladných alebo niekedy dokonca nemožných aktualizácií smart kontraktu. A keďže dáta a logika aplikácie nie sú na blockchaine, decentralizované aplikácie môžu 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é blockchain aplikácie, ale je to mladší prístup s vlastnými problémami a nezodpovedanými otázkami.

Napríklad, ak decentralizovaná aplikácia nefunguje na smart kontraktoch, znižuje to potrebu utilitných tokenov. To môže spôsobiť problémy pre podniky, ak vezmeme do úvahy, že ICO boli hlavným zdrojom financovania pre decentralizované aplikácie (vrátane samotného Blockstacku).

Existujú tu aj technické problémy. Napríklad, relatívne jednoducho sa dá implementovať funkcia rezervácie hotelov v smart kontrakte, kde sa pri atomickej operácii rezervujú izby výmenou za tokeny. A nie je veľmi jasné, ako bude rezervácia fungovať v aplikácii Blockstack bez smart kontraktov.

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

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster