Kako ustvariti decentralizirano aplikacijo, ki se spreminja? Uporabite manj blockchaina

Ne, zagon decentralizirane aplikacije (dapp) na blockchainu ne bo vodil do uspešnega poslovanja. Pravzaprav večina uporabnikov niti ne razmišlja o tem, ali aplikacija deluje na blockchainu - preprosto izberejo izdelek, ki je cenejši, hitrejši in preprostejši.

Na žalost, čeprav ima blockchain svoje edinstvene funkcije in prednosti, je večina aplikacij, ki delujejo na njem, veliko dražja, počasnejša in manj intuitivna kot njihovi centralizirani konkurenti.

Kako ustvariti decentralizirano aplikacijo, ki se spreminja? Uporabite manj blockchaina

Precej pogosto v belih knjigah aplikacij, zgrajenih na blockchainu, najdete odstavek, ki pravi: "Blockchain je drag in ne more podpreti zahtevanega števila transakcij na sekundo. Na srečo veliko pametnih ljudi dela na povečanju blockchaina in do trenutka, ko bo naša aplikacija zagnana, bo postala precej razširljiva.«

V enem preprostem odstavku se lahko razvijalec dapp odpove globlji razpravi o težavah s skalabilnostjo in alternativnih rešitvah težav. To pogosto vodi v neučinkovito arhitekturo, kjer pametne pogodbe, ki se izvajajo v verigi blokov, služijo kot zaledje in jedro aplikacije.

Vendar še vedno obstajajo nepreizkušeni pristopi k decentralizirani arhitekturi aplikacij, ki omogočajo veliko boljšo razširljivost z zmanjšanjem odvisnosti od verige blokov. Na primer, Blockstack dela na arhitekturi, kjer je večina aplikacijskih podatkov in logike shranjenih izven verige.

Najprej si oglejmo bolj tradicionalen pristop, ki uporablja blockchain kot neposrednega posrednika med uporabniki aplikacije in ki se ne prilagaja posebej dobro.

Pristop #1: Blockchain kot zaledje

Da bo stvar bolj jasna, vzemimo za primer hotelirstvo. To je ogromna industrija, v kateri posredniki, kot je Booking.com, zaračunajo ogromno pristojbino za povezovanje gostov in hotelov.

V vsaki situaciji, ko želimo premagati takega posrednika s tem pristopom, bomo poskušali posnemati njegovo poslovno logiko z uporabo pametnih pogodb v verigi blokov, kot je Ethereum.

Odprtokodne pametne pogodbe, ki se izvajajo na "svetovnem računalniku", lahko povežejo trgovce s potrošniki brez vmesne tretje osebe, kar na koncu zmanjša pristojbine in provizije, ki jih zaračunava posrednik.

Kot je prikazano na spodnji sliki, hoteli uporabljajo decentralizirano aplikacijo za objavo v blockchainu podatkov o sobah, njihovi razpoložljivosti in cenah ob delavnikih ali vikendih ter morda celo opis sob z vsemi drugimi relevantnimi informacijami.

Kako ustvariti decentralizirano aplikacijo, ki se spreminja? Uporabite manj blockchaina

Vsakdo, ki želi rezervirati sobo, uporablja to aplikacijo za iskanje hotelov in sob, ki gostujejo v verigi blokov. Ko uporabnik izbere sobo, se rezervacija izvede tako, da se zahtevana količina žetonov pošlje hotelu kot depozit. In kot odgovor pametna pogodba posodobi informacijo v verigi blokov, da številka ni več na voljo.

Pri tem pristopu obstajata dve plati problema razširljivosti. Prvič, največje število transakcij na sekundo. Drugič, količina podatkov, ki jih je mogoče shraniti v verigi blokov.

Naredimo nekaj grobih izračunov. Booking.com pravi, da imajo pri njih registriranih skoraj 2 milijona hotelov. Recimo, da ima povprečen hotel 10 sob in vsaka je rezervirana samo 20-krat na leto – to nam daje povprečno 13 rezervacij na sekundo.

Da bi to številko predstavili v perspektivi, je treba omeniti, da lahko Ethereum obdela približno 15 transakcij na sekundo.

Hkrati je vredno razmisliti, da bo naša aplikacija vsebovala tudi transakcije iz hotelov - za prenos in stalno posodabljanje informacij o njihovih sobah. Hoteli cene sob posodabljajo zelo pogosto, včasih celo dnevno, vsaka sprememba cene ali opisa pa zahteva transakcijo v verigi blokov.

Tu so tudi težave z velikostjo - teža blokovne verige Ethereum je nedavno presegla mejo 2TB. Če bi aplikacije s tem pristopom postale resnično priljubljene, bi postalo omrežje Ethereum izjemno nestabilno.

Tak sistem, ki temelji na verigi blokov, lahko izključi tujce zaradi svoje nepristranskosti in pomanjkanja centralizacije, kar sta glavni prednosti tehnologije veriženja blokov. Toda blockchain ima tudi druge lastnosti - je distribuiran in ne prepisan, to so odlične lastnosti, vendar jih morate plačati v hitrosti in proviziji transakcij.

Zato morajo razvijalci dapp skrbno oceniti, ali vsaka funkcija, ki uporablja verigo blokov, res potrebuje distribucijo in nezapisljivost.

Na primer: kakšna je korist od distribucije podatkov vsakega hotela na stotine strojev po vsem svetu in njihovega trajnega shranjevanja? Ali je res pomembno, da so pretekli podatki o cenah sob in razpoložljivosti vedno vključeni v verigo blokov? Verjetno ne.

Če začnemo postavljati taka vprašanja, bomo začeli ugotavljati, da ne potrebujemo nujno vseh dragih funkcij verige blokov za vse naše funkcije. Torej, kakšna je alternativa?

Pristop št. 2: Arhitektura, ki jo navdihuje Blockstack

Čeprav je glavni poudarek Blockstack na aplikacijah, v katerih so uporabniki lastniki svojih podatkov (npr Zračno besedilo, BentenSound, Optimizator slike ali grafit), ima blockstack tudi filozofijo rahlega ravnanja z verigo blokov – le kadar je to nujno potrebno. Njihov glavni argument je, da je blockchain počasen in drag, zato ga je treba uporabljati le za enkratne ali redke transakcije. Preostala interakcija z aplikacijami bi morala potekati prek enakovrednega, tj. uporabniki decentraliziranih aplikacij morajo podatke deliti neposredno drug z drugim, ne pa prek verige blokov. Navsezadnje so bile najstarejše in najuspešnejše decentralizirane aplikacije, kot so BitTorrent, e-pošta in Tor, ustvarjene pred samim konceptom blockchain.

Kako ustvariti decentralizirano aplikacijo, ki se spreminja? Uporabite manj blockchaina
Levo: prvi pristop, pri katerem uporabniki komunicirajo prek verige blokov. Desno: uporabniki komunicirajo neposredno med seboj, blockchain pa se uporablja le za identifikacijo in podobno.

Vrnimo se k primeru rezervacije hotela. Želimo nepristranski, neodvisen in odprt protokol povezovanja gostov s hoteli. Z drugimi besedami, želimo odstraniti centraliziranega posrednika. Ni nam treba na primer nenehno shranjevati cen sob v skupni porazdeljeni knjigi.

Zakaj gostom in hotelom preprosto ne omogočimo neposredne interakcije namesto prek verige blokov. Hoteli lahko shranijo svoje cene, razpoložljivost sob in vse druge podatke nekje, kjer bodo dostopni vsem – na primer IPFS, Amazon S3 ali celo svoj lokalni strežnik. Točno to je imenoval decentraliziran sistem za shranjevanje Blockstack Gaia. Uporabnikom omogoča, da izberejo, kje želijo shraniti svoje podatke, in nadzorujejo, kdo lahko dostopa do njih, s pristopom, imenovanim shranjevanje za več uporabnikov.

Za vzpostavitev zaupanja so vsi hotelski podatki kriptografsko podpisani s strani hotela samega. Ne glede na to, kje so ti podatki shranjeni, je njihovo celovitost mogoče preveriti z uporabo javnih ključev, povezanih z identiteto tega hotela, shranjenih v verigi blokov.

V primeru Blockstacka so v verigi blokov shranjeni samo vaši podatki o identiteti. Informacije o tem, kako pridobiti podatke vsakega uporabnika, so shranjene v conskih datotekah in distribuirane prek omrežja enakovrednih z uporabo vozlišč. In še enkrat, ni vam treba zaupati podatkom, ki jih dajejo vozlišča, saj lahko preverite njihovo pristnost tako, da jih primerjate z zgoščenimi vrednostmi, ki so shranjene v verigi blokov in drugih uporabnikov.

V poenostavljeni različici sistema bodo gostje uporabljali Blockstack peer-to-peer omrežje za iskanje hotelov in pridobivanje informacij o njihovih sobah. Pristnost in celovitost vseh podatkov, ki jih prejmete, je mogoče preveriti z uporabo javnih ključev in zgoščenih vrednosti, shranjenih v virtualno vezje Blockstack.

Ta arhitektura je bolj zapletena kot prvi pristop in zahteva bolj celovito infrastrukturo. Pravzaprav je natanko tu nastop Blockstack, ki zagotavlja vse potrebne komponente za ustvarjanje takega decentraliziranega sistema.

Kako ustvariti decentralizirano aplikacijo, ki se spreminja? Uporabite manj blockchaina

S to arhitekturo v verigi blokov shranjujemo samo podatke, ki jih je resnično treba distribuirati in ne prepisati. V primeru Blockstacka potrebujete le transakcije v verigi blokov, da se registrirate in označite, kje naj bodo vaši podatki shranjeni. Morda boste morali opraviti več transakcij, če želite spremeniti katerega od teh podatkov, vendar to ni ponavljajoči se dogodek.

Poleg tega logika aplikacije v nasprotju s prvim pristopom teče na strani odjemalca in ne na pametnih pogodbah. To omogoča razvijalcu, da spremeni to logiko brez dragih ali včasih celo nemogočih posodobitev pametnih pogodb. Z ohranjanjem aplikacijskih podatkov in logike zunaj verige lahko decentralizirane aplikacije dosežejo raven zmogljivosti in razširljivosti tradicionalnih centraliziranih sistemov.

Zaključek

Aplikacije, ki se izvajajo na Blockstacku, se lahko veliko bolje prilagajajo kot običajne aplikacije blockchain, vendar je to mlajši pristop z lastnimi težavami in vprašanji brez odgovorov.

Na primer, če decentralizirana aplikacija ne deluje na podlagi pametnih pogodb, potem to zmanjša potrebo po uporabnih žetonih. To bi lahko povzročilo težave podjetjem, saj so bili ICO glavni vir financiranja za decentralizirane aplikacije (vključno s samim Blockstackom).

Tu so tudi tehnične težave. Na primer, relativno enostavno je implementirati funkcijo hotelske rezervacije v pametni pogodbi, kjer se v atomski operaciji rezervirajo sobe v zameno za žetone. In ni zelo očitno, kako bo rezervacija delovala v aplikaciji Blockstack brez pametnih pogodb.

Aplikacije, ki ciljajo na svetovne trge s potencialom za milijone uporabnikov, se morajo zelo dobro prilagajati, da bodo uspešne. Napačno je zanašati se samo na verige blokov, da bi dosegli to raven razširljivosti v bližnji prihodnosti. Da bi lahko konkurirali velikim centraliziranim tržnim akterjem, kot je Booking.com, bi morali razvijalci decentraliziranih aplikacij razmisliti o alternativnih pristopih k oblikovanju svojih aplikacij, kot je tisti, ki ga ponuja Blockstack.

Vir: www.habr.com

Dodaj komentar