Paano lumikha ng isang desentralisadong aplikasyon na nagsusukat? Gumamit ng mas kaunting blockchain

Hindi, ang paglulunsad ng isang desentralisadong aplikasyon (dapp) sa blockchain ay hindi hahantong sa isang matagumpay na negosyo. Sa katunayan, karamihan sa mga user ay hindi man lang iniisip kung ang application ay tumatakbo sa blockchain - pumipili lang sila ng isang produkto na mas mura, mas mabilis at mas simple.

Sa kasamaang palad, kahit na ang blockchain ay may sarili nitong natatanging mga tampok at benepisyo, karamihan sa mga application na tumatakbo dito ay mas mahal, mas mabagal, at hindi gaanong intuitive kaysa sa kanilang mga sentralisadong kakumpitensya.

Paano lumikha ng isang desentralisadong aplikasyon na nagsusukat? Gumamit ng mas kaunting blockchain

Kadalasan sa mga whitepaper ng mga application na binuo sa blockchain, makakahanap ka ng isang talata na nagsasabing: "Ang blockchain ay mahal at hindi kayang suportahan ang kinakailangang bilang ng mga transaksyon sa bawat segundo. Sa kabutihang palad, maraming matatalinong tao ang nagtatrabaho sa pag-scale ng blockchain at sa oras na ilulunsad ang aming application ay magiging medyo scalable na ito."

Sa isang simpleng talata, maaaring iwanan ng developer ng dapp ang mas malalim na talakayan tungkol sa mga isyu sa scalability at mga alternatibong solusyon sa mga problema. Madalas itong humahantong sa isang hindi mahusay na arkitektura kung saan ang mga matalinong kontrata na tumatakbo sa blockchain ay nagsisilbing backend at core ng application.

Gayunpaman, mayroon pa ring mga hindi pa nasusubukang diskarte sa desentralisadong arkitektura ng application na nagbibigay-daan para sa mas mahusay na scalability sa pamamagitan ng pagbabawas ng pag-asa sa blockchain. Halimbawa, gumagana ang Blockstack sa isang arkitektura kung saan ang karamihan sa data ng application at lohika ay naka-imbak sa labas ng chain.

Tingnan muna natin ang isang mas tradisyunal na diskarte, na gumagamit ng blockchain bilang isang direktang tagapamagitan sa pagitan ng mga gumagamit ng application, at hindi partikular na nasusukat.

Diskarte #1: Blockchain bilang Backend

Upang gawing mas malinaw ang mga bagay, kunin natin ang industriya ng hotel bilang isang halimbawa. Ito ay isang malaking industriya kung saan ang mga tagapamagitan tulad ng Booking.com, naniningil sila ng malaking bayad para sa pagkonekta ng mga bisita at hotel.

Sa anumang sitwasyon kung saan gusto naming talunin ang naturang tagapamagitan gamit ang diskarteng ito, susubukan naming kopyahin ang lohika ng negosyo nito gamit ang mga matalinong kontrata sa isang blockchain tulad ng Ethereum.

Ang mga open source na smart contract na tumatakbo sa "world computer" ay maaaring magkonekta ng mga merchant sa mga consumer na walang third party sa pagitan, sa huli ay binabawasan ang mga bayarin at komisyon na sinisingil ng tagapamagitan.

Tulad ng ipinapakita sa larawan sa ibaba, ang mga hotel ay gumagamit ng isang desentralisadong aplikasyon upang mag-post sa blockchain ng impormasyon tungkol sa mga kuwarto, ang kanilang kakayahang magamit at mga presyo sa mga karaniwang araw o katapusan ng linggo, at marahil kahit isang paglalarawan ng mga silid kasama ang lahat ng iba pang nauugnay na impormasyon.

Paano lumikha ng isang desentralisadong aplikasyon na nagsusukat? Gumamit ng mas kaunting blockchain

Ang sinumang gustong mag-book ng kwarto ay gumagamit ng application na ito para maghanap ng mga hotel at kuwartong naka-host sa blockchain. Kapag nakapili na ng kwarto ang user, gagawin ang reservation sa pamamagitan ng pagpapadala ng kinakailangang halaga ng mga token sa hotel bilang deposito. At bilang tugon, ina-update ng matalinong kontrata ang impormasyon sa blockchain na ang numero ay hindi na magagamit.

Mayroong dalawang panig sa problema sa scalability sa diskarteng ito. Una, ang maximum na bilang ng mga transaksyon sa bawat segundo. Pangalawa, ang dami ng data na maiimbak sa blockchain.

Gumawa tayo ng ilang magaspang na kalkulasyon. Sinasabi ng Booking.com na mayroon silang halos 2 milyong hotel na nakarehistro sa kanila. Sabihin nating ang average na hotel ay may 10 kuwarto at bawat isa ay naka-book lamang ng 20 beses sa isang taon - na nagbibigay sa amin ng average na 13 booking bawat segundo.

Upang ilagay ang numerong ito sa perspektibo, ito ay nagkakahalaga ng pagpuna na ang Ethereum ay maaaring magproseso ng humigit-kumulang 15 mga transaksyon sa bawat segundo.

Kasabay nito, ito ay nagkakahalaga ng pagsasaalang-alang na ang aming application ay maglalaman din ng mga transaksyon mula sa mga hotel - para sa pag-download at patuloy na pag-update ng impormasyon tungkol sa kanilang mga silid. Ang mga hotel ay nag-a-update ng mga presyo ng kuwarto nang napakadalas, minsan kahit araw-araw, at bawat pagbabago ng presyo o paglalarawan ay nangangailangan ng isang transaksyon sa blockchain.

Mayroon ding mga isyu sa laki dito - ang bigat ng Ethereum blockchain kamakailan ay pumasa sa markang 2TB. Kung ang mga application na may ganitong paraan ay naging tunay na sikat, ang Ethereum network ay magiging lubhang hindi matatag.

Ang ganitong sistemang nakabatay sa blockchain ay maaaring magbukod ng mga tagalabas dahil sa pagiging walang kinikilingan nito at kawalan ng sentralisasyon, ang mga pangunahing bentahe ng teknolohiya ng blockchain. Ngunit ang blockchain ay mayroon ding iba pang mga tampok - ito ay ipinamamahagi at hindi muling isinulat, ito ay mahusay na mga katangian, ngunit kailangan mong bayaran ang mga ito sa bilis at komisyon ng mga transaksyon.

Samakatuwid, ang mga developer ng dapp ay dapat na maingat na suriin kung ang bawat tampok na gumagamit ng blockchain ay talagang nangangailangan ng pamamahagi at hindi pagkakasulat.

Halimbawa: ano ang pakinabang ng pamamahagi ng data ng bawat hotel sa daan-daang machine sa buong mundo at permanenteng iimbak ito doon? Talagang mahalaga na ang makasaysayang data sa mga rate ng kuwarto at availability ay palaging kasama sa blockchain? Hindi siguro.

Kung magsisimula kaming magtanong ng mga ito, magsisimula kaming makita na hindi namin kailangan ang lahat ng mga mamahaling tampok ng blockchain para sa lahat ng aming mga function. Kaya, ano ang kahalili?

Diskarte #2: Blockstack Inspired Architecture

Bagaman ang pangunahing diin Blockstack sa mga application kung saan ang mga user ang may-ari ng kanilang data (halimbawa, tulad ng teksto ng hangin, BentenSound, Image Optimizer o grapayt), ang blockstack ay mayroon ding pilosopiya ng paggamit ng blockchain nang basta-bastaβ€”kung talagang kinakailangan. Ang kanilang pangunahing argumento ay ang blockchain ay mabagal at mahal, at samakatuwid ay dapat lamang gamitin para sa isa o madalang na mga transaksyon. Ang natitirang pakikipag-ugnayan sa mga application ay dapat mangyari sa pamamagitan ng peer-to-peer, i.e. Ang mga gumagamit ng mga desentralisadong aplikasyon ay dapat magbahagi ng data nang direkta sa isa't isa, sa halip na sa pamamagitan ng blockchain. Pagkatapos ng lahat, ang pinakaluma at pinakamatagumpay na desentralisadong mga aplikasyon tulad ng BitTorrent, email at Tor ay nilikha bago ang konsepto ng blockchain mismo.

Paano lumikha ng isang desentralisadong aplikasyon na nagsusukat? Gumamit ng mas kaunting blockchain
Kaliwa: Ang unang diskarte, kung saan nakikipag-ugnayan ang mga user sa pamamagitan ng blockchain. Kanan: Ang mga gumagamit ay direktang nakikipag-ugnayan sa isa't isa, at ang blockchain ay ginagamit lamang para sa pagkakakilanlan at mga katulad nito.

Bumalik tayo sa halimbawa ng pag-book ng hotel. Gusto namin ng walang kinikilingan, independyente at bukas na protocol para sa pagkonekta ng mga bisita sa mga hotel. Sa madaling salita, gusto naming tanggalin ang sentralisadong middleman. Hindi namin kailangan, halimbawa, na patuloy na mag-imbak ng mga presyo ng kuwarto sa isang karaniwang ipinamamahaging ledger.

Bakit hindi na lang natin payagan ang mga bisita at hotel na direktang makipag-ugnayan sa halip na sa pamamagitan ng blockchain. Ang mga hotel ay maaaring mag-imbak ng kanilang mga presyo, pagkakaroon ng silid at anumang iba pang impormasyon sa isang lugar kung saan ito ay maa-access ng lahat - halimbawa, IPFS, Amazon S3, o kahit na ang kanilang sariling lokal na server. Ito mismo ang tinatawag ng desentralisadong storage system ng Blockstack Gaia. Nagbibigay-daan ito sa mga user na pumili kung saan nila gustong iimbak ang kanilang data at kontrolin kung sino ang makaka-access nito sa pamamagitan ng tinatawag na diskarte imbakan ng maraming gumagamit.

Upang magtatag ng tiwala, lahat ng data ng hotel ay pinirmahan ng mismong hotel sa cryptographically. Saan man nakaimbak ang data na ito, mabe-verify ang integridad nito gamit ang mga pampublikong key na nauugnay sa pagkakakilanlan ng hotel na iyon na nakaimbak sa blockchain.

Sa kaso ng Blockstack, tanging ang iyong impormasyon ng pagkakakilanlan ang nakaimbak sa blockchain. Ang impormasyon sa kung paano makuha ang data ng bawat user ay iniimbak sa mga zone file at ipinamamahagi sa pamamagitan ng isang peer-to-peer na network gamit ang mga node. At muli, hindi mo kailangang magtiwala sa data na ibinibigay ng mga node, dahil maaari mong i-verify ang pagiging tunay nito sa pamamagitan ng paghahambing nito sa mga hash na nakaimbak sa blockchain at iba pang mga user.

Sa isang pinasimpleng bersyon ng system, gagamitin ng mga bisita ang Blockstack peer-to-peer network upang maghanap ng mga hotel at makakuha ng impormasyon tungkol sa kanilang mga kuwarto. At ang pagiging tunay at integridad ng lahat ng data na iyong natatanggap ay maaaring ma-verify gamit ang mga pampublikong key at hash na nakaimbak sa Virtual Circuit Blockstack.

Ang arkitektura na ito ay mas kumplikado kaysa sa unang diskarte at nangangailangan ng isang mas komprehensibong imprastraktura. Sa katunayan, ito mismo kung saan pumapasok ang Blockstack, na nagbibigay ng lahat ng kinakailangang bahagi upang lumikha ng gayong desentralisadong sistema.

Paano lumikha ng isang desentralisadong aplikasyon na nagsusukat? Gumamit ng mas kaunting blockchain

Sa ganitong arkitektura, nag-iimbak lamang kami ng data sa blockchain na talagang kailangang ipamahagi at hindi ma-overwrite. Sa kaso ng Blockstack, kailangan mo lamang ng mga transaksyon sa blockchain upang magparehistro at ipahiwatig kung saan dapat iimbak ang iyong data. Maaaring kailanganin mong gumawa ng higit pang mga transaksyon kung gusto mong baguhin ang alinman sa impormasyong ito, ngunit hindi ito isang umuulit na kaganapan.

Bukod dito, ang lohika ng aplikasyon, sa kaibahan sa unang diskarte, ay tumatakbo sa panig ng kliyente at hindi sa mga matalinong kontrata. Nagbibigay-daan ito sa developer na baguhin ang lohika na ito nang walang magastos o minsan imposibleng mga update sa smart contract. At sa pamamagitan ng pagpapanatiling off-chain ng data ng application at logic, makakamit ng mga desentralisadong aplikasyon ang mga antas ng pagganap at scalability ng mga tradisyonal na sentralisadong sistema.

Konklusyon

Ang mga application na tumatakbo sa Blockstack ay maaaring mas mahusay kaysa sa maginoo na mga application ng blockchain, ngunit ito ay isang mas batang diskarte na may sarili nitong mga problema at hindi nasagot na mga tanong.

Halimbawa, kung ang isang desentralisadong aplikasyon ay hindi tumatakbo sa mga matalinong kontrata, binabawasan nito ang pangangailangan para sa mga token ng utility. Maaari itong magdulot ng mga problema para sa mga negosyo kung isasaalang-alang na ang mga ICO ang naging pangunahing pinagmumulan ng pagpopondo para sa mga desentralisadong aplikasyon (kabilang ang Blockstack mismo)

Mayroon ding mga teknikal na problema dito. Halimbawa, medyo madaling magpatupad ng function ng pagpapa-book ng hotel sa isang matalinong kontrata, kung saan sa isang atomic na operasyon, ang mga pagpapareserba ng kuwarto ay ginagawa bilang kapalit ng mga token. At hindi masyadong halata kung paano gagana ang booking sa isang Blockstack application na walang mga smart contract.

Ang mga app na nagta-target sa mga pandaigdigang merkado na may potensyal para sa milyun-milyong user ay dapat na napakahusay na sukat upang maging matagumpay. Isang pagkakamali na umasa lamang sa mga blockchain upang makamit ang antas ng scalability na ito sa malapit na hinaharap. Upang magawang makipagkumpitensya sa malalaking sentralisadong manlalaro ng merkado tulad ng Booking.com, dapat isaalang-alang ng mga desentralisadong application developer ang mga alternatibong diskarte sa pagdidisenyo ng kanilang mga application, tulad ng inaalok ng Blockstack.

Pinagmulan: www.habr.com

Magdagdag ng komento