Cum să creezi o aplicație descentralizată care se scalează? Folosește mai puțin blockchain

Nu, lansarea unei aplicații descentralizate (dapp) pe blockchain nu va duce la un business de succes. De fapt, majoritatea utilizatorilor nici nu se gândesc dacă aplicația funcționează pe blockchain — ei pur și simplu aleg un produs care este mai ieftin, mai rapid și mai simplu.

Din păcate, chiar dacă blockchain-ul are propriile sale caracteristici și avantaje unice, majoritatea aplicațiilor care funcționează pe el sunt mult mai scumpe, mai lente și mai puțin intuitive decât concurenții lor centralizați.

Cum să creezi o aplicație descentralizată care se scalează? Folosește mai puțin blockchain

Adesea, în whitepaper-urile aplicațiilor construite pe blockchain, se poate găsi un paragraf în care se afirmă: "blockchain-ul este scump și nu poate susține numărul necesar de tranzacții pe secundă. Din fericire, mulți oameni deștepți lucrează la scalarea blockchain-ului, astfel încât la momentul lansării aplicației noastre, acesta va fi suficient de scalabil."

Într-un singur paragraf simplu, dezvoltatorul dapp-ului poate renunța la o discuție mai profundă despre problemele de scalabilitate și soluțiile alternative. Aceasta duce adesea la o arhitectură ineficientă, în care backend-ul și nucleul aplicației sunt formate din smart contracts care funcționează pe blockchain.

Cu toate acestea, există încă abordări neîncercate în arhitectura aplicațiilor descentralizate, care permit o scalabilitate mult mai bună, datorită reducerii dependenței de blockchain. De exemplu, Blockstack lucrează la o arhitectură în care majoritatea datelor și logica aplicației sunt stocate în afara blockchain-ului.

Să ne uităm mai întâi la o abordare mai tradițională, în care blockchain-ul este folosit ca intermediar direct între utilizatorii aplicației și care nu scalabilizează foarte bine.

Abordarea #1: Blockchain ca backend

Pentru a fi mai clar, să luăm industria hotelieră ca exemplu. Aceasta este o industrie uriașă, în care intermediari precum Booking.com, coboră taxe uriașe pentru a conecta oaspeții cu hotelurile.

În orice situație în care dorim să depășim un astfel de intermediar, folosind această abordare, vom încerca să reprodusăm logica de afaceri a acestuia, utilizând smart contracts pe un blockchain precum Ethereum.

Contractele inteligente cu sursă deschisă, desfășurate pe "computerul mondial", pot conecta vânzătorii cu consumatorii fără a implica o terță parte, reducând în cele din urmă tarifele și comisioanele percepute de intermediari.

După cum se arată în imaginea de mai jos, hotelurile utilizează o aplicație descentralizată pentru a găzdui în blockchain informațiile despre camere, disponibilitatea acestora și prețurile în zilele lucrătoare sau în weekenduri, și posibil chiar descrierea camerelor cu informațiile relevante.

Cum să creezi o aplicație descentralizată care se scalează? Folosește mai puțin blockchain

Oricine dorește să rezerveze o cameră folosește această aplicație pentru a căuta hoteluri și camere listate în blockchain. Odată ce utilizatorul selectează o cameră, rezervarea se face prin trimiterea sumei necesare de tokenuri hotelului ca garanție. În răspuns, contractul inteligent actualizează informațiile în blockchain, marcând camera ca fiind indisponibilă.

Această abordare implică două aspecte ale problemei scalabilității. În primul rând, numărul maxim de tranzacții pe secundă. În al doilea rând, volumul de date care pot fi stocate în blockchain.

Să facem calcule aproximative. Booking.com declară că au aproape 2 milioane de hoteluri înregistrate. Să presupunem că, în medie, un hotel are 10 camere și fiecare este rezervată de 20 de ori pe an — aceasta ne oferă o medie de 13 rezervări pe secundă.

Pentru a evalua acest număr, merită menționat că Ethereum poate procesa aproximativ 15 tranzacții pe secundă.

De asemenea, trebuie să luăm în considerare că aplicația noastră va avea și tranzacții din partea hotelurilor — pentru încărcarea și actualizarea constantă a informațiilor despre camerele lor. Hotelurile își actualizează foarte frecvent prețurile camerelor, uneori chiar zilnic, iar fiecare modificare a prețului sau descrierii necesită o tranzacție în blockchain.

Aici apare și problema dimensiunii — greutatea blockchain-ului Ethereum a depășit recent 2 TB. Dacă aplicațiile cu o abordare similară ar deveni cu adevărat populare, rețeaua Ethereum ar deveni extrem de instabilă.

Un astfel de sistem, bazat pe blockchain, poate exclude terții datorită imparțialității sale și a lipsei de centralizare — principalele avantaje ale tehnologiei blockchain. Dar blockchain-ul are și alte caracteristici — este distribuit și nu poate fi rescris, acestea fiind trăsături excelente, dar care se plătesc prin viteză și comisioane de tranzacție.

De aceea, dezvoltatorii de dapp-uri trebuie să evalueze cu atenție dacă fiecare caracteristică care utilizează blockchain-ul necesită cu adevărat distribuție și inexprimabilitate.

De exemplu: care este avantajul distribuirii datelor fiecărui hotel pe sute de mașini din întreaga lume și stocării lor permanente acolo? Este cu adevărat important ca datele istorice despre prețuri și disponibilitatea camerelor să fie întotdeauna incluse în blockchain? Probabil că nu.

Dacă începem să ne punem astfel de întrebări, vom începe să vedem că nu avem nevoie de toate caracteristicile costisitoare ale blockchain-ului pentru toate funcțiile noastre. Atunci, care este alternativa?

Abordare #2: Arhitectură inspirată de Blockstack

Deși accentul principal Blockstack este pe aplicații în care utilizatorii sunt proprietarii propriilor date (de exemplu, cum ar fi Airtext, BentenSound, ImageOptimizer sau Graphite), Blockstack are, de asemenea, o filozofie de utilizare limitată a blockchain-ului - doar atunci când este absolut necesar. Principala lor argumentare este că blockchain-ul este lent și costisitor, așa că ar trebui să fie folosit doar pentru operațiuni unice sau rare. Restul interacțiunii cu aplicațiile ar trebui să aibă loc prin peer-to-peer, adică utilizatorii aplicațiilor descentralizate ar trebui să împărtășească date direct între ei, nu prin intermediul blockchain-ului. La urma urmei, cele mai vechi și de succes aplicații descentralizate, cum ar fi BitTorrent, email-ul și Tor, au fost create înainte de apariția conceptului de blockchain.

Cum să creezi o aplicație descentralizată care se scalează? Folosește mai puțin blockchain
Stânga: prima abordare, în care utilizatorii interacționează prin blockchain. Dreapta: utilizatorii interacționează direct între ei, iar blockchain-ul este folosit doar pentru identificare și similare..

Să ne întoarcem la exemplul cu rezervarea hotelurilor. Vrem un protocol imparțial, independent și deschis pentru a lega oaspeții de hoteluri. Cu alte cuvinte, vrem să eliminăm intermediarul centralizat. Nu avem nevoie, de exemplu, să stocăm constant prețurile camerelor într-un registru distribuit comun.

De ce să nu permitem pur și simplu oaspeților și hotelurilor să interacționeze direct, fără intermediari blockchain? Hotelurile pot stoca prețurile lor, disponibilitatea camerelor și orice alte informații într-un loc accesibil tuturor — de exemplu, IPFS, Amazon S3 sau chiar serverul lor local. Aceasta este exact ceea ce oferă sistemul de stocare descentralizat de la Blockstack numit Gaia. Acesta le permite utilizatorilor să-și aleagă locul unde doresc să își stocheze datele și să controleze cine poate avea acces la acestea printr-o abordare numită stocare multiplă.

Pentru a stabili încrederea, toate datele hotelului sunt semnate criptografic de către hotelul însuși. Indiferent de locul unde sunt stocate aceste date, integritatea lor poate fi verificată folosind chei publice asociate cu informațiile de identificare ale acestui hotel, stocate în blockchain.

În cazul Blockstack, în blockchain este stocată doar informația de identificare. Informațiile despre cum să obțineți datele fiecărui utilizator sunt stocate în fișierele zonei (zone files) și sunt distribuite printr-o rețea P2P folosind noduri. Și din nou — nu trebuie să aveți încredere în datele pe care le oferă nodurile, deoarece puteți verifica autenticitatea acestora comparându-le cu hash-urile stocate în blockchain și la alți utilizatori.

Într-o versiune simplificată a sistemului, oaspeții vor utiliza rețeaua P2P Blockstack pentru a căuta hoteluri și a obține informații despre camerele lor. Iar autenticitatea și integritatea tuturor datelor pe care le veți primi pot fi verificate folosind cheile publice și hash-urile stocate în lanțul virtual Blockstack.

Această arhitectură este mai complexă decât prima abordare și necesită o infrastructură mai amplă. De fapt, acesta este exact motivul pentru care apare Blockstack, oferind toate componentele necesare pentru a crea un astfel de sistem descentralizat.

Cum să creezi o aplicație descentralizată care se scalează? Folosește mai puțin blockchain

Într-o astfel de arhitectură, stocăm în blockchain doar datele care trebuie cu adevărat să fie distribuite și nerevizuibile. În cazul Blockstack, aveți nevoie de tranzacții în blockchain doar pentru a vă înregistra și a indica unde ar trebui să fie stocate datele dvs. Este posibil să aveți nevoie de mai multe tranzacții dacă doriți să schimbați ceva din aceste informații, dar aceasta nu este o situație frecvent întâlnită.

În plus, logica aplicației, spre deosebire de prima abordare, funcționează pe partea clientului, nu pe contracte inteligente. Acest lucru permite dezvoltatorului să modifice această logică fără actualizări costisitoare sau, uneori, chiar imposibile ale contractului inteligent. Iar păstrând datele și logica aplicației în afara blockchain-ului, aplicațiile descentralizate pot atinge niveluri de performanță și scalabilitate comparabile cu sistemele centralizate tradiționale.

Concluzie

Aplicațiile care funcționează pe Blockstack pot scala mult mai bine decât aplicațiile blockchain obișnuite, dar aceasta este o abordare mai tânără care vine cu propriile probleme și întrebări fără răspuns.

De exemplu, dacă aplicația descentralizată nu funcționează pe contracte inteligente, aceasta reduce necesitatea utilizării token-urilor de utilitate. Acest lucru poate genera probleme pentru afaceri, având în vedere că ICO-urile au fost principalul sursă de finanțare pentru aplicațiile descentralizate (inclusiv Blockstack în sine).

Aici există și probleme tehnice. De exemplu, este relativ simplu să implementezi o funcție de rezervare a hotelurilor într-un contract inteligent, unde, printr-o operațiune atomică, rezervarea camerelor este realizată în schimbul token-urilor. Nu este foarte evident cum va funcționa rezervarea într-o aplicație Blockstack fără contracte inteligente.

Aplicațiile care vizează piețele globale cu potențial de milioane de utilizatori trebuie să scaleze foarte bine pentru a deveni de succes. Este o greșeală să contezi exclusiv pe blockchain-uri pentru a atinge un astfel de nivel de scalabilitate în viitorul apropiat. Pentru a putea concura cu marii jucători centralizați de pe piață, cum ar fi Booking.com, dezvoltatorii de aplicații descentralizate trebuie să ia în considerare abordări alternative în proiectarea aplicațiilor lor, așa cum este cea propusă de Blockstack.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster