Kaip sukurti decentralizuotą programą, kuri keičiasi? Naudokite mažiau „blockchain“.

Ne, decentralizuotos programos (dapp) paleidimas blokų grandinėje nesukels sėkmingo verslo. Tiesą sakant, dauguma vartotojų net nesusimąsto, ar programa veikia blokų grandinėje – jie tiesiog pasirenka pigesnį, greitesnį ir paprastesnį produktą.

Deja, net jei „blockchain“ turi savo unikalių savybių ir privalumų, dauguma joje veikiančių programų yra daug brangesnės, lėtesnės ir mažiau intuityvios nei jų centralizuoti konkurentai.

Kaip sukurti decentralizuotą programą, kuri keičiasi? Naudokite mažiau „blockchain“.

Gana dažnai „blockchain“ pagrindu sukurtų programų informaciniuose dokumentuose galite rasti pastraipą, kuri sako: „Blockchain yra brangi ir negali palaikyti reikiamo operacijų skaičiaus per sekundę. Laimei, daugelis protingų žmonių stengiasi padidinti blokų grandinės mastelį ir kai mūsų programa bus paleista, ji taps gana keičiama.

Vienoje paprastoje pastraipoje dapp kūrėjas gali atsisakyti gilesnės diskusijos apie mastelio keitimo problemas ir alternatyvius problemų sprendimus. Tai dažnai lemia neefektyvią architektūrą, kai išmaniosios sutartys, veikiančios blokų grandinėje, yra programos pagrindas ir šerdis.

Tačiau vis dar yra neišbandytų požiūrių į decentralizuotą programų architektūrą, leidžiančią daug geriau keisti mastelį, nes sumažėja priklausomybė nuo blokų grandinės. Pavyzdžiui, „Blockstack“ dirba su architektūra, kurioje dauguma taikomųjų programų duomenų ir logikos saugomi ne grandinėje.

Pirmiausia pažvelkime į labiau tradicinį metodą, kuris naudoja blokų grandinę kaip tiesioginį tarpininką tarp programų vartotojų ir kuris nėra ypač tinkamas.

1 metodas: Blockchain kaip užpakalinė programa

Kad viskas būtų aiškiau, paimkime viešbučių pramonę kaip pavyzdį. Tai didžiulė pramonė, kurioje tarpininkai, tokie kaip Booking.com, jie ima didelį mokestį svečiams ir viešbučiams sujungti.

Bet kokioje situacijoje, kai norime nugalėti tokį tarpininką naudodami šį metodą, bandysime atkartoti jo verslo logiką naudodami išmaniąsias sutartis blokų grandinėje, pvz., Ethereum.

Atvirojo kodo išmaniosios sutartys, veikiančios „pasaulio kompiuteryje“, gali sujungti prekybininkus su vartotojais be trečiosios šalies, galiausiai sumažindamos tarpininko taikomus mokesčius ir komisinius.

Kaip parodyta paveikslėlyje žemiau, viešbučiai naudoja decentralizuotą programą, kad „blockchain“ sistemoje paskelbtų informaciją apie kambarius, jų prieinamumą ir kainas darbo dienomis ar savaitgaliais ir galbūt net kambarių aprašymą su visa kita svarbia informacija.

Kaip sukurti decentralizuotą programą, kuri keičiasi? Naudokite mažiau „blockchain“.

Kiekvienas, norintis užsisakyti kambarį, naudoja šią programą ieškodamas viešbučių ir kambarių, esančių blokų grandinėje. Vartotojui išsirinkus kambarį, rezervacija atliekama išsiuntus reikiamą sumą žetonų viešbučiui kaip užstatą. Ir reaguodama į tai, išmanioji sutartis atnaujina „blockchain“ informaciją, kad numeris nebepasiekiamas.

Taikant šį metodą yra dvi mastelio problemos pusės. Pirma, maksimalus operacijų skaičius per sekundę. Antra, duomenų kiekis, kurį galima saugoti blokų grandinėje.

Atlikime apytikslius skaičiavimus. Booking.com teigia, kad pas juos yra užregistruoti beveik 2 milijonai viešbučių. Tarkime, kad vidutiniame viešbutyje yra 10 kambarių ir kiekvienas jų užsakomas tik 20 kartų per metus – tai duoda vidutiniškai 13 užsakymų per sekundę.

Norint įvertinti šį skaičių, verta paminėti, kad „Ethereum“ gali apdoroti maždaug 15 operacijų per sekundę.

Tuo pačiu metu verta manyti, kad mūsų programoje taip pat bus sandorių iš viešbučių - norint atsisiųsti ir nuolat atnaujinti informaciją apie jų kambarius. Viešbučiai kambarių kainas atnaujina labai dažnai, kartais net kasdien, o kiekvienam kainos ar aprašymo pakeitimui reikalinga operacija blokų grandinėje.

Čia taip pat yra dydžio problemų – Ethereum blokų grandinės svoris neseniai peržengė 2 TB ribą. Jei programos su šiuo požiūriu taptų tikrai populiarios, Ethereum tinklas taptų itin nestabilus.

Tokia blokų grandinėmis paremta sistema gali atstumti pašalinius asmenis dėl savo nešališkumo ir centralizavimo stokos – pagrindinių blockchain technologijos privalumų. Tačiau „blockchain“ turi ir kitų ypatybių – ji platinama, o ne perrašoma, tai puikios savybės, tačiau už jas reikia mokėti operacijų greičiu ir komisiniais.

Todėl „dapp“ kūrėjai turi atidžiai įvertinti, ar kiekvienai „blockchain“ funkcijai tikrai reikia platinimo ir neįrašymo.

Pavyzdžiui: kokia nauda iš kiekvieno viešbučio duomenų paskirstymo šimtams mašinų visame pasaulyje ir nuolat juos saugojus? Ar tikrai svarbu, kad istoriniai duomenys apie kambarių kainas ir prieinamumą visada būtų įtraukti į blokų grandinę? Tikriausiai ne.

Jei pradėsime užduoti tokius klausimus, pamatysime, kad visoms mūsų funkcijoms nebūtinai reikalingos visos brangios „blockchain“ funkcijos. Taigi, kokia alternatyva?

2 metodas: „Blockstack“ įkvėpta architektūra

Nors pagrindinis akcentas Blockstack programose, kuriose vartotojai yra jų duomenų savininkai (pavyzdžiui, pvz Oro tekstas, BentenSound, Vaizdo optimizavimo priemonė arba grafitas), „blockstack“ taip pat vadovaujasi filosofija, kad „blockchain“ būtų naudojamas švelniai – tik tada, kai tai absoliučiai būtina. Pagrindinis jų argumentas yra tas, kad „blockchain“ yra lėta ir brangi, todėl turėtų būti naudojama tik vienkartinėms arba retoms operacijoms. Likusi sąveika su programomis turėtų vykti per peer-to-peer, t.y. decentralizuotų programų vartotojai turi dalytis duomenimis tiesiogiai vieni su kitais, o ne per blokų grandinę. Juk seniausios ir sėkmingiausios decentralizuotos programos, tokios kaip „BitTorrent“, el. paštas ir „Tor“, buvo sukurtos anksčiau nei pati „blockchain“ koncepcija.

Kaip sukurti decentralizuotą programą, kuri keičiasi? Naudokite mažiau „blockchain“.
Kairė: pirmasis metodas, kai vartotojai sąveikauja per blokų grandinę. Teisingai: vartotojai sąveikauja tiesiogiai vienas su kitu, o blokų grandinė naudojama tik identifikavimui ir panašiai.

Grįžkime prie viešbučio užsakymo pavyzdžio. Norime nešališko, nepriklausomo ir atviro protokolo svečių sujungimui su viešbučiais. Kitaip tariant, norime pašalinti centralizuotą tarpininką. Mums nereikia, pavyzdžiui, nuolat saugoti kambarių kainų bendroje paskirstytoje knygoje.

Kodėl mes tiesiog neleidžiame svečiams ir viešbučiams bendrauti tiesiogiai, o ne per blokų grandinę. Viešbučiai gali saugoti savo kainas, kambarių užimtumą ir bet kokią kitą informaciją kur nors, kur ji bus prieinama visiems – pavyzdžiui, IPFS, Amazon S3 ar net savo vietinį serverį. Blockstack decentralizuota saugojimo sistema būtent taip vadino Gaia. Tai leidžia vartotojams pasirinkti, kur jie nori saugoti savo duomenis, ir valdyti, kas gali juos pasiekti naudojant vadinamąjį metodą kelių vartotojų saugykla.

Norint sukurti pasitikėjimą, visi viešbučio duomenys yra kriptografiškai pasirašomi paties viešbučio. Nepriklausomai nuo to, kur šie duomenys yra saugomi, jų vientisumą galima patikrinti naudojant viešuosius raktus, susietus su to viešbučio tapatybe, saugomais blokų grandinėje.

„Blockstack“ atveju „blockchain“ saugoma tik jūsų tapatybės informacija. Informacija apie tai, kaip gauti kiekvieno vartotojo duomenis, saugoma zonų failuose ir platinama per peer-to-peer tinklą naudojant mazgus. Ir dar kartą, jums nereikia pasitikėti duomenimis, kuriuos pateikia mazgai, nes galite patikrinti jų autentiškumą, palygindami juos su maišomis, saugomomis blokų grandinėje ir kituose naudotojuose.

Supaprastintoje sistemos versijoje svečiai naudosis „Blockstack peer-to-peer“ tinklu viešbučių paieškai ir informacijai apie savo kambarius gauti. Visų gaunamų duomenų autentiškumas ir vientisumas gali būti patikrintas naudojant saugomus viešuosius raktus ir maišą virtuali grandinė Blockstack.

Ši architektūra yra sudėtingesnė nei pirmasis metodas ir reikalauja išsamesnės infrastruktūros. Tiesą sakant, būtent čia atsiranda „Blockstack“, aprūpinantis visus reikiamus komponentus tokiai decentralizuotai sistemai sukurti.

Kaip sukurti decentralizuotą programą, kuri keičiasi? Naudokite mažiau „blockchain“.

Naudodami šią architektūrą blokų grandinėje saugome tik tuos duomenis, kuriuos tikrai reikia platinti, o ne perrašyti. „Blockstack“ atveju jums reikia tik operacijų „blockchain“, kad galėtumėte užsiregistruoti ir nurodyti, kur turėtų būti saugomi jūsų duomenys. Jei norite pakeisti kurią nors šią informaciją, gali tekti atlikti daugiau operacijų, tačiau tai nėra pasikartojantis įvykis.

Be to, programos logika, priešingai nei pirmasis metodas, veikia kliento pusėje, o ne išmaniosiose sutartyse. Tai leidžia kūrėjui pakeisti šią logiką be brangių ar kartais net neįmanomų išmaniųjų sutarties atnaujinimų. Ir išlaikant programų duomenis ir logiką nuo grandinės, decentralizuotos programos gali pasiekti tradicinių centralizuotų sistemų našumo ir mastelio keitimo lygį.

išvada

Programos, veikiančios „Blockstack“, gali išsiplėsti daug geriau nei įprastos „blockchain“ programos, tačiau tai yra jaunesnis požiūris, turintis savo problemų ir neatsakytų klausimų.

Pavyzdžiui, jei decentralizuota programa neveikia pagal išmaniąsias sutartis, tai sumažina paslaugų prieigos raktų poreikį. Tai gali sukelti problemų įmonėms, nes ICO buvo pagrindinis decentralizuotų programų (įskaitant patį Blockstack) finansavimo šaltinis.

Čia taip pat yra techninių problemų. Pavyzdžiui, išmaniojoje sutartyje gana paprasta įdiegti viešbučių užsakymo funkciją, kai atominėje operacijoje kambarių rezervavimas atliekamas mainais į žetonus. Ir nėra labai akivaizdu, kaip užsakymas veiks „Blockstack“ programoje be išmaniųjų sutarčių.

Kad būtų sėkmingos, programos, skirtos pasaulinei rinkai, galinčios pasiekti milijonus vartotojų, turi būti labai gerai išplėstos. Klaidinga pasikliauti vien blokų grandinėmis, kad artimiausiu metu būtų pasiektas toks mastelio keitimo lygis. Kad galėtų konkuruoti su dideliais centralizuotos rinkos žaidėjais, tokiais kaip Booking.com, decentralizuotų programų kūrėjai turėtų apsvarstyti alternatyvius savo programų kūrimo būdus, pvz., Blockstack siūlomą.

Šaltinis: www.habr.com

Добавить комментарий