Kako kreirati decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Ne, pokretanje decentralizirane aplikacije (dapp) na blockchainu neće dovesti do uspješnog poslovanja. U stvari, većina korisnika uopće ne razmišlja o tome radi li aplikacija na blockchainu – jednostavno biraju proizvod koji je jeftiniji, brži i jednostavniji.

Nažalost, čak i ako blockchain ima svoje jedinstvene karakteristike i prednosti, većina aplikacija koje se pokreću na njemu su mnogo skuplje, sporije i manje intuitivne od njihovih centraliziranih konkurenata.

Kako kreirati decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Vrlo često u bijelim knjigama aplikacija koje su izgrađene na blockchainu možete pronaći paragraf koji kaže: "Blockchain je skup i ne može podržati potreban broj transakcija u sekundi. Na sreću, mnogi pametni ljudi rade na skaliranju blockchaina i do trenutka kada se naša aplikacija pokrene, ona će postati prilično skalabilna.”

U jednom jednostavnom paragrafu, dapp programer može odustati od dublje rasprave o problemima skalabilnosti i alternativnim rješenjima problema. Ovo često dovodi do neefikasne arhitekture u kojoj pametni ugovori koji rade na blockchainu služe kao pozadina i jezgra aplikacije.

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

Pogledajmo najprije tradicionalniji pristup, koji koristi blockchain kao direktnog posrednika između korisnika aplikacije i koji nije posebno dobro skaliran.

Pristup #1: Blockchain kao backend

Da stvari budu jasnije, uzmimo hotelsku industriju kao primjer. Ovo je ogromna industrija u kojoj posrednici kao što je Booking.com, naplaćuju ogromnu naknadu za povezivanje gostiju i hotela.

U svakoj situaciji u kojoj želimo pobijediti 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 rade na "svjetskom kompjuteru" mogu povezati trgovce s potrošačima bez treće strane između, što u konačnici smanjuje naknade i provizije koje naplaćuje posrednik.

Kao što je prikazano na donjoj slici, hoteli koriste decentraliziranu aplikaciju za postavljanje na blockchain informacija o sobama, njihovoj dostupnosti i cijenama radnim danima ili vikendom, a možda čak i opis soba sa svim ostalim relevantnim informacijama.

Kako kreirati decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Svi koji žele rezervirati sobu koriste ovu aplikaciju za traženje hotela i soba smještenih na blockchainu. Nakon što korisnik odabere sobu, rezervacija se vrši slanjem potrebne količine tokena u hotel kao depozit. 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, maksimalan broj transakcija u sekundi. Drugo, količina podataka koja se može pohraniti na blockchain.

Uradimo neke grube proračune. Booking.com kaže da imaju skoro 2 miliona registrovanih hotela. Recimo da prosječan hotel ima 10 soba i svaka je rezervisana samo 20 puta godišnje - to nam daje u prosjeku 13 rezervacija u sekundi.

Da bi se ovaj broj stavio u perspektivu, vrijedi napomenuti da Ethereum može obraditi otprilike 15 transakcija u sekundi.

Istovremeno, vrijedi uzeti u obzir da će naša aplikacija sadržavati i 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 je nedavno prešla oznaku od 2TB. Kada bi aplikacije s ovim pristupom postale zaista popularne, Ethereum mreža bi postala izuzetno nestabilna.

Takav sistem zasnovan na blockchain-u može isključiti autsajdere zbog svoje nepristrasnosti i nedostatka centralizacije, glavne prednosti blockchain tehnologije. Ali blockchain ima i druge karakteristike - distribuira se i ne prepisuje, to su odlične karakteristike, ali za njih morate platiti u brzini i proviziji transakcija.

Stoga programeri dapp-a moraju pažljivo procijeniti da li je svakoj osobini koja koristi blockchain zaista potrebna distribucija i nemogućnost pisanja.

Na primjer: koja je korist od distribucije podataka svakog hotela na stotine mašina širom svijeta i njihovog trajnog pohranjivanja? Je li zaista važno da istorijski podaci o cijenama soba i dostupnosti uvijek budu uključeni u blockchain? Vjerovatno ne.

Ako počnemo postavljati ovakva pitanja, vidjet ćemo da nam ne trebaju nužno sve skupe blockchain značajke za sve naše funkcije. Dakle, koja je alternativa?

Pristup #2: Arhitektura inspirirana blokovima

Iako je glavni naglasak Blockstack na aplikacije u kojima su korisnici vlasnici njihovih podataka (na primjer, kao npr zračni tekst, BentenSound, Image Optimizer ili Grafit), blockstack također ima filozofiju laganog korištenja blockchaina – samo kada je to apsolutno neophodno. Njihov glavni argument je da je blockchain spor i skup, te ga stoga treba koristiti samo za pojedinačne ili rijetke transakcije. Ostatak interakcije sa aplikacijama trebao bi se odvijati kroz peer-to-peer, tj. korisnici decentraliziranih aplikacija moraju dijeliti podatke direktno jedni s drugima, a ne putem blockchaina. Uostalom, najstarije i najuspješnije decentralizirane aplikacije poput BitTorrenta, e-pošte i Tor stvorene su prije samog koncepta blockchaina.

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

Vratimo se na primjer rezervacije hotela. Želimo nepristrasan, nezavisan i otvoren protokol za povezivanje gostiju sa hotelima. Drugim riječima, želimo ukloniti centraliziranog posrednika. Ne trebamo, na primjer, stalno čuvati cijene soba u zajedničkoj distribuiranoj knjizi.

Zašto jednostavno ne dozvolimo gostima i hotelima da komuniciraju direktno, a ne putem blockchaina. Hoteli mogu pohraniti svoje cijene, raspoloživost soba i sve druge informacije negdje gdje će biti dostupne svima - na primjer, IPFS, Amazon S3, ili čak njihov vlastiti lokalni server. To je upravo ono što je Blockstack-ov decentralizovani sistem skladištenja nazvao gaia. Omogućava korisnicima da odaberu gdje žele da se njihovi podaci pohranjuju i kontroliraju ko im može pristupiti kroz pristup tzv višekorisnička pohrana.

Kako bi se uspostavilo povjerenje, sve hotelske podatke kriptografski potpisuje sam hotel. Bez obzira na to gdje se ti podaci pohranjuju, njihov integritet se može provjeriti korištenjem javnih ključeva povezanih s identitetom tog hotela pohranjenih na blockchainu.

U slučaju Blockstack-a, samo informacije o vašem identitetu se pohranjuju na blockchain-u. Informacije o tome kako doći do podataka svakog korisnika pohranjuju se u datoteke zona i distribuiraju kroz peer-to-peer mrežu koristeći čvorove. I još jednom, ne morate vjerovati podacima koje daju čvorovi, jer možete provjeriti njihovu autentičnost upoređujući ih s hashovima koji su pohranjeni u blockchainu i drugim korisnicima.

U pojednostavljenoj verziji sistema, gosti će koristiti Blockstack peer-to-peer mrežu za traženje hotela i dobijanje informacija o svojim sobama. A autentičnost i integritet svih podataka koje primite može se provjeriti korištenjem javnih ključeva i hashova pohranjenih u virtuelno kolo Blockstack.

Ova arhitektura je složenija od prvog pristupa i zahtijeva sveobuhvatniju infrastrukturu. U stvari, upravo tu dolazi Blockstack, koji pruža sve potrebne komponente za kreiranje takvog decentralizovanog sistema.

Kako kreirati decentraliziranu aplikaciju koja se skalira? Koristite manje blockchaina

Sa ovom arhitekturom, na blockchain pohranjujemo samo podatke koji zaista trebaju biti distribuirani, a ne prepisani. U slučaju Blockstack-a, potrebne su vam samo transakcije na blockchainu da biste se registrirali i naznačili 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. Ovo omogućava programeru da promijeni ovu logiku bez skupih ili ponekad čak nemogućih ažuriranja pametnih ugovora. A zadržavanjem podataka aplikacije i logike van lanca, decentralizovane aplikacije mogu postići performanse i nivoe skalabilnosti tradicionalnih centralizovanih sistema.

zaključak

Aplikacije koje se pokreću na Blockstacku mogu se skalirati mnogo bolje od konvencionalnih blockchain aplikacija, ali to je mlađi pristup sa svojim problemima i pitanjima bez odgovora.

Na primjer, ako decentralizirana aplikacija ne radi na pametnim ugovorima, onda to smanjuje potrebu za pomoćnim tokenima. Ovo bi moglo uzrokovati probleme preduzećima s obzirom na to da su ICO-i bili glavni izvor financiranja za decentralizirane aplikacije (uključujući i sam Blockstack)

Ovdje postoje i tehnički problemi. Na primjer, relativno je lako implementirati funkciju rezervacije hotela u pametnom ugovoru, gdje se u atomskoj operaciji rezerviraju sobe u zamjenu za tokene. I nije baš očigledno kako će rezervacija funkcionirati u Blockstack aplikaciji bez pametnih ugovora.

Aplikacije koje ciljaju na globalna tržišta s potencijalom za milione korisnika moraju se vrlo dobro skalirati da bi bile uspješne. Pogrešno je oslanjati se isključivo na blockchaine da bi se postigao ovaj nivo skalabilnosti u bliskoj budućnosti. Da bi se mogli takmičiti s velikim centraliziranim tržišnim igračima kao što je Booking.com, programeri decentraliziranih aplikacija trebali bi razmotriti alternativne pristupe dizajniranju svojih aplikacija, kao što je onaj koji nudi Blockstack.

izvor: www.habr.com

Dodajte komentar