Kako stvoriti decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Ne, pokretanje decentralizirane aplikacije (dapp) na blockchainu neće dovesti do uspješnog poslovanja. Zapravo, većina korisnika niti ne razmišlja o tome radi li aplikacija na blockchainu - oni jednostavno izaberu proizvod koji je jeftiniji, brži i jednostavniji.

Nažalost, čak i ako blockchain ima svoje vlastite jedinstvene značajke i prednosti, većina aplikacija koje rade na njemu puno su skuplje, sporije i manje intuitivne od svojih centraliziranih konkurenata.

Kako stvoriti decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Vrlo često u whitepaperima aplikacija koje su izgrađene na blockchainu možete pronaći odlomak koji kaže: "Blockchain je skup i ne može podržati potreban broj transakcija u sekundi. Srećom, mnogi pametni ljudi rade na skaliranju blockchaina i do trenutka kad se naša aplikacija pokrene, postat će prilično skalabilna.”

U jednom jednostavnom odlomku, programer dappa može odustati od dublje rasprave o problemima skalabilnosti i alternativnim rješenjima problema. To često dovodi do neučinkovite arhitekture u kojoj pametni ugovori koji se izvode na blockchainu služe kao pozadina i jezgra aplikacije.

Međutim, još uvijek postoje neprovjereni pristupi decentraliziranoj arhitekturi aplikacija koji omogućuju mnogo bolju skalabilnost smanjenjem ovisnosti o blockchainu. Na primjer, Blockstack radi na arhitekturi u kojoj se većina podataka i logike aplikacije pohranjuje izvan lanca.

Pogledajmo najprije tradicionalniji pristup, koji koristi blockchain kao izravnog posrednika između korisnika aplikacije i koji se ne mjeri osobito dobro.

Pristup #1: Blockchain kao backend

Da stvar bude jasnija, uzmimo hotelsku industriju kao primjer. Ovo je velika industrija u kojoj posrednici poput Booking.com, naplaćuju veliku naknadu za povezivanje gostiju i hotela.

U svakoj situaciji u kojoj želimo poraziti takvog posrednika koristeći ovaj pristup, pokušat ćemo replicirati njegovu poslovnu logiku koristeći pametne ugovore na blockchainu kao što je Ethereum.

Pametni ugovori otvorenog koda koji se izvode na "svjetskom računalu" mogu povezati trgovce s potrošačima bez treće strane između, čime se u konačnici smanjuju naknade i provizije koje naplaćuje posrednik.

Kao što je prikazano na slici ispod, hoteli koriste decentraliziranu aplikaciju za objavljivanje na blockchainu informacija o sobama, njihovoj dostupnosti i cijenama radnim danima ili vikendima, a možda čak i opis soba sa svim drugim relevantnim informacijama.

Kako stvoriti decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Svatko tko želi rezervirati sobu koristi ovu aplikaciju za traženje hotela i soba hostiranih na blockchainu. Nakon što korisnik odabere sobu, rezervacija se vrši slanjem potrebne količine tokena u hotel kao polog. I kao odgovor, pametni ugovor ažurira informaciju u blockchainu da broj više nije dostupan.

Postoje dvije strane problema skalabilnosti kod ovog pristupa. Prvo, najveći broj transakcija u sekundi. Drugo, količina podataka koja se može pohraniti na blockchain.

Napravimo grube izračune. Booking.com kaže da kod njih ima registrirano gotovo 2 milijuna hotela. Recimo da prosječan hotel ima 10 soba i svaka je rezervirana samo 20 puta godišnje - to nam daje prosječno 13 rezervacija u sekundi.

Da bismo ovu brojku stavili u perspektivu, vrijedno je napomenuti da Ethereum može obraditi približno 15 transakcija u sekundi.

Istodobno, vrijedi uzeti u obzir da će naša aplikacija također sadržavati transakcije iz hotela - za preuzimanje i stalno ažuriranje informacija o njihovim sobama. Hoteli ažuriraju cijene soba vrlo često, ponekad čak i svakodnevno, a svaka promjena cijene ili opisa zahtijeva transakciju na blockchainu.

Ovdje također postoje problemi s veličinom - težina Ethereum blockchaina nedavno je prešla granicu od 2TB. Kad bi aplikacije s ovim pristupom postale doista popularne, Ethereum mreža bi postala iznimno nestabilna.

Takav sustav temeljen na blockchainu može isključiti autsajdere zbog svoje nepristranosti i nedostatka centralizacije, glavnih prednosti blockchain tehnologije. Ali blockchain ima i druge značajke - distribuira se i ne prepisuje, to su izvrsne karakteristike, ali za njih morate platiti brzinom i provizijom transakcija.

Stoga, programeri dappa moraju pažljivo procijeniti treba li svaka značajka koja koristi blockchain doista distribuciju i mogućnost pisanja.

Na primjer: koja je korist od distribucije podataka svakog hotela na stotine strojeva diljem svijeta i njihovog trajnog pohranjivanja? Je li doista važno da povijesni podaci o cijenama soba i dostupnosti uvijek budu uključeni u blockchain? Vjerojatno ne.

Ako počnemo postavljati pitanja poput ovih, počet ćemo uviđati da nam nisu nužno potrebne sve skupe značajke blockchaina za sve naše funkcije. Dakle, koja je alternativa?

Pristup #2: Arhitektura inspirirana Blockstackom

Iako je glavni naglasak Blockstack na aplikacijama u kojima su korisnici vlasnici svojih podataka (npr Zračni tekst, BentenSound, Optimizator slike ili Grafit), blockstack također ima filozofiju olakog korištenja blockchaina - samo kada je to apsolutno neophodno. Njihov glavni argument je da je blockchain spor i skup, te bi se stoga trebao koristiti samo za pojedinačne ili rijetke transakcije. Ostatak interakcije s aplikacijama trebao bi se odvijati kroz peer-to-peer, tj. korisnici decentraliziranih aplikacija moraju dijeliti podatke izravno jedni s drugima, a ne kroz blockchain. Uostalom, najstarije i najuspješnije decentralizirane aplikacije kao što su BitTorrent, email i Tor nastale su prije samog koncepta blockchaina.

Kako stvoriti decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina
Lijevo: prvi pristup, u kojem korisnici komuniciraju putem blockchaina. Desno: Korisnici izravno komuniciraju jedni s drugima, a blockchain se koristi samo za identifikaciju i slično.

Vratimo se primjeru rezervacije hotela. Želimo nepristran, neovisan i otvoren protokol za povezivanje gostiju s hotelima. Drugim riječima, želimo ukloniti centraliziranog posrednika. Ne trebamo, na primjer, stalno pohranjivati ​​cijene soba u zajedničkoj distribuiranoj knjizi.

Zašto jednostavno ne bismo omogućili gostima i hotelima izravnu interakciju umjesto putem blockchaina. Hoteli mogu pohraniti svoje cijene, raspoloživost soba i bilo koje druge podatke negdje gdje će biti dostupni svima - na primjer, IPFS, Amazon S3 ili čak vlastiti lokalni poslužitelj. To je upravo ono što je Blockstackov decentralizirani sustav pohrane nazvao Gaia. Korisnicima omogućuje da odaberu gdje žele pohraniti svoje podatke i kontroliraju tko im može pristupiti putem pristupa tzv višekorisnička pohrana.

Kako bi se uspostavilo povjerenje, sve hotelske podatke kriptografski potpisuje sam hotel. Bez obzira na to gdje su ti podaci pohranjeni, njihov se integritet može provjeriti pomoću javnih ključeva povezanih s identitetom tog hotela koji su pohranjeni na blockchainu.

U slučaju Blockstacka, samo su vaši podaci o identitetu pohranjeni na blockchainu. Informacije o tome kako dobiti podatke svakog korisnika pohranjuju se u zonskim datotekama i distribuiraju kroz peer-to-peer mrežu pomoću čvorova. I još jednom, ne morate vjerovati podacima koje čvorovi daju, jer možete provjeriti njihovu autentičnost uspoređujući ih s hashovima koji su pohranjeni u blockchainu i drugim korisnicima.

U pojednostavljenoj verziji sustava, gosti će koristiti Blockstack peer-to-peer mrežu za traženje hotela i dobivanje informacija o njihovim sobama. Autentičnost i integritet svih podataka koje primite može se provjeriti korištenjem javnih ključeva i hashova pohranjenih u virtualni krug Blockstack.

Ova je arhitektura složenija od prvog pristupa i zahtijeva sveobuhvatniju infrastrukturu. Zapravo, upravo tu nastupa Blockstack, koji osigurava sve potrebne komponente za stvaranje takvog decentraliziranog sustava.

Kako stvoriti decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

S ovom arhitekturom pohranjujemo samo podatke na blockchainu koji se zapravo trebaju distribuirati, a ne prebrisati. U slučaju Blockstacka, potrebne su vam samo transakcije na blockchainu da biste se registrirali i odredili gdje bi vaši podaci trebali biti pohranjeni. Možda ćete morati izvršiti više transakcija ako želite promijeniti bilo koju od ovih informacija, ali ovo se ne ponavlja.

Štoviše, logika aplikacije, za razliku od prvog pristupa, radi na strani klijenta, a ne na pametnim ugovorima. To razvojnom programeru omogućuje promjenu ove logike bez skupih ili ponekad čak nemogućih ažuriranja pametnih ugovora. A držanjem podataka aplikacije i logike izvan lanca, decentralizirane aplikacije mogu postići razinu performansi i skalabilnosti tradicionalnih centraliziranih sustava.

Zaključak

Aplikacije koje rade na Blockstacku mogu se skalirati puno bolje od konvencionalnih blockchain aplikacija, ali to je mlađi pristup sa svojim problemima i neodgovorenim pitanjima.

Na primjer, ako decentralizirana aplikacija ne radi na pametnim ugovorima, to smanjuje potrebu za uslužnim tokenima. To bi moglo uzrokovati probleme tvrtkama s obzirom na to da su ICO glavni izvor financiranja za decentralizirane aplikacije (uključujući sam Blockstack)

Ovdje ima i tehničkih problema. Na primjer, relativno je jednostavno implementirati funkciju hotelske rezervacije u pametnom ugovoru, gdje se u atomarnoj operaciji vrše rezervacije soba u zamjenu za tokene. I nije baš očito kako će rezerviranje funkcionirati u Blockstack aplikaciji bez pametnih ugovora.

Aplikacije koje ciljaju na globalna tržišta s potencijalom za milijune korisnika moraju se jako dobro skalirati da bi bile uspješne. Pogrešno je oslanjati se isključivo na lance blokova za postizanje ove razine skalabilnosti u bliskoj budućnosti. Kako bi se mogli natjecati s velikim centraliziranim tržišnim igračima kao što je Booking.com, programeri decentraliziranih aplikacija trebali bi razmotriti alternativne pristupe dizajniranju svojih aplikacija, poput onog koji nudi Blockstack.

Izvor: www.habr.com

Dodajte komentar