Як стварыць дэцэнтралізаваны дадатак, якое маштабуецца? Выкарыстоўвайце менш блокчейна

Не, запуск дэцэнтралізаванага прыкладання (dapp) на блокчейне не прывядзе да паспяховага бізнэсу. На самай справе, большасць карыстальнікаў нават не задумваецца ці працуе прыкладанне на блокчейне - яны проста выбіраюць прадукт, які танней, хутчэй і прасцей.

Нажаль, нават калі ў блокчейна ёсць свае ўнікальныя асаблівасці і перавагі, большасць прыкладанняў, якія працуюць на ім, значна даражэй, павольней і меней зразумелыя, чым іх цэнтралізаваныя канкурэнты.

Як стварыць дэцэнтралізаваны дадатак, якое маштабуецца? Выкарыстоўвайце менш блокчейна

Даволі часта ў whitepaper'ах прыкладанняў, якія пабудаваны на блокчейне, можна знайсці параграф, у якім сказана: "блокчейн дарагі і не здольны падтрымліваць патрабаваную колькасць транзакцый у секунду. На шчасце, шмат разумных людзей працуе над маштабаваннем блокчейна і да моманту запуску нашага прыкладання ён стане дастаткова маштабуецца".

У адным простым параграфе, распрацоўшчык dapp’а можа адмовіцца ад глыбейшага абмеркавання праблем маштабаванасці і альтэрнатыўных рашэнняў праблем. Гэта часта прыводзіць да неэфектыўнай архітэктуры, дзе бэкэндам і ядром прыкладання служаць смарт-кантракты, якія працуюць на блокчейне.

Аднак, існуюць яшчэ неапрабаваныя падыходы ў архітэктуры дэцэнтралізаваных прыкладанняў, якія дазваляюць значна лепш маштабавацца, дзякуючы памяншэнню залежнасці ад блокчейна. Напрыклад, Blockstack працуе над архітэктурай, дзе большасць дадзеных і логікі прыкладання захоўваецца за межамі блокчейна.

Давайце спачатку зірнем на больш традыцыйны падыход, у якім блокчейн выкарыстоўваецца, як прамы пасярэднік паміж карыстальнікамі прыкладання, і які не асабліва добра маштабуецца.

Падыход #1: Блокчейн як бэкенд

Каб было навочней, давайце возьмем гасцінічную індустрыю ў якасці прыкладу. Гэта вялізная індустрыя, у якой пасярэднікі накшталт Booking.com, бяруць велізарную плату за злучэнне гасцей і атэляў.

У любой сітуацыі, калі мы жадаем адолець такога пасярэдніка, выкарыстоўваючы гэты падыход, мы будзем спрабаваць паўтарыць яго бізнэс логіку, выкарыстаючы смарт-кантракты на такім блокчейне, як, напрыклад, Ethereum.

Смарт-кантракты з адкрытым зыходным кодам, запушчаныя на "сусветным кампутары", могуць злучаць прадаўцоў са спажыўцамі без іншай кампаніі паміж імі, у канчатковым выніку памяншаючы поплатак і камісію, спаганяемую пасярэднікам.

Як паказана на малюнку ніжэй, гатэлі выкарыстоўваюць дэцэнтралізаванае прыкладанне для размяшчэння ў блокчейне інфармацыі аб нумарах, іх даступнасці і коштах у буднія ці выходныя дні, і магчыма нават апісанне нумароў з усёй астатняй прыдатнай інфармацыяй.

Як стварыць дэцэнтралізаваны дадатак, якое маштабуецца? Выкарыстоўвайце менш блокчейна

Любы, хто хоча забраніраваць нумар, выкарыстоўвае гэта дадатак для пошуку гатэляў і нумароў, размешчаных на блокчейне. Як толькі карыстач выбірае нумар, браніраванне адбываецца адпраўкай патрэбнай сумы токенаў гатэлю ў якасці закладу. А ў адказ, смарт-кантракт абнаўляе інфармацыю ў блокчейне, што нумар больш недаступны.

У гэтым падыходзе ёсць два бакі праблемы маштабаванасці. Па-першае, максімальная колькасць транзакцый за секунду. Па-другое, аб'ём дадзеных, які можа захоўвацца ў блокчейне.

Давайце зробім прыкладныя разлікі. Booking.com заяўляе, што ў іх зарэгістравана амаль 2 мільёны гатэляў. Выкажам здагадку, што ў сярэднім у гатэля ёсць 10 нумароў і кожны браніруецца ўсяго 20 разоў у годзе - гэта дае нам у сярэднім 13 браніраванняў у секунду.

Для адзнакі гэтага ліку варта адзначыць, што Ethereum можа апрацоўваць прыкладна 15 транзакцый у секунду.

Пры гэтым, варта ўлічваць, што ў нашым дадатку будуць таксама транзакцыі ад гатэляў - для загрузкі і пастаяннага абнаўлення інфармацыі аб іх нумарах. Гатэлі абнаўляюць кошт нумароў вельмі часта, часам нават штодня, і кожнае змяненне цаны або апісання патрабуе транзакцыю ў блокчейне.

Тут таксама праблем памеру – вага блокчейна Ethereum нядаўна перайшоў адзнаку ў 2TB. Калі б прыкладанні з падобным падыходам сталі б сапраўды папулярныя, то сетка Ethereum стала б вельмі нестабільнай.

Такая сістэма, заснаваная на блокчейне, можа выключыць старонніх з-за яе бесстароннасці і адсутнасці цэнтралізацыі – галоўных пераваг тэхналогіі блокчейна. Але ў блокчейна ёсць таксама і іншыя асаблівасці - ён размеркаваны і не перазапісвальны, гэта выдатныя характарыстыкі, але за іх трэба плаціць хуткасцю і камісіяй транзакцый.

Таму распрацоўшчыкі dapp'аў павінны старанна ацаніць ці сапраўды кожнай фічы, якая выкарыстоўвае блокчейн, патрэбна размеркаванасць і неперазапісвальнасць.

Напрыклад: у чым перавага размеркавання дадзеных кожнага гатэля па сотнях машын па ўсім свеце і сталага захоўвання іх там? Ці сапраўды важна, каб гістарычныя дадзеныя па коштах і даступнасці нумароў заўсёды былі ўключаны ў блокчейн? Мусіць, не.

Калі мы пачнем задаваць такія пытанні, то пачнем бачыць, што нам не абавязкова патрэбныя ўсе дарагія характарыстыкі блокчейна для ўсіх нашых функцый. Дык, якая ж альтэрнатыва?

Падыход #2: Архітэктура, натхнёная Blockstack’ам

Хаця асноўны ўпор Blockstack на прыкладаннях, у якіх карыстальнікі з'яўляюцца ўладальнікамі сваіх дадзеных (напрыклад, такіх як Эфірны тэкст, BentenSound, Аптымізатар выявы або графітавых), у blockstack таксама ёсць філасофія малога выкарыстання блокчейна - толькі тады, калі гэта абсалютна неабходна. Іх асноўны аргумент у тым, што блокчейн павольны і дарагі, а значыць павінен выкарыстоўвацца толькі для адзіночных ці нячастых аперацый. Астатняе ўзаемадзеянне з прыкладаннямі павінна адбывацца праз peer-to-peer, г.зн. карыстачы дэцэнтралізаваных прыкладанняў павінны дзяліцца дадзенымі напроста адзін з адным, а не праз блокчейн. У рэшце рэшт, самыя старыя і паспяховыя дэцэнтралізаваныя прыкладанні, такія як BitTorrent, емейл і Tor былі створаны яшчэ да стварэння самага канцэпта блокчейна.

Як стварыць дэцэнтралізаваны дадатак, якое маштабуецца? Выкарыстоўвайце менш блокчейна
Злева: першы падыход, у якім карыстачы ўзаемадзейнічаюць праз блокчейн. Справа: карыстачы ўзаемадзейнічаюць напроста сябар з сябрам, а блокчейн выкарыстоўваецца толькі для ідэнтыфікацыі і падобнага.

Давайце вернемся да прыкладу з браніраваннем гатэляў. Мы хочам бесстаронні, незалежны і адкрыты пратакол для звязвання гасцей з гатэлямі. Іншымі словамі, мы жадаем прыбраць цэнтралізаванага пасярэдніка. У нас няма неабходнасці, напрыклад, увесь час захоўваць кошты нумароў у агульным размеркаваным рэестры.

Чаму б нам проста не дазволіць гасцям і гатэлям узаемадзейнічаць напрамую, а не праз блокчейн. Гатэлі могуць захоўваць іх кошты, даступнасць нумароў і любую іншую інфармацыю дзе-небудзь, дзе яны будуць даступныя для ўсіх - напрыклад, IPFS, Amazon S3, ці нават іх уласны лакальны сервер. Гэта якраз тое, што дае дэцэнтралізаваная сістэма захоўвання ад Blockstack пад назвай Гайя. Яна дазваляе карыстальнікам выбраць, дзе яны хочуць захоўваць іх дадзеныя і кантраляваць, у каго можа быць доступ да іх праз падыход, званы шматкарыстальніцкім сховішчам.

Каб усталяваць давер, усе дадзеныя гатэля крыптаграфічна падпісваюцца самім гатэлем. Незалежна ад таго, дзе захоўваюцца гэтыя дадзеныя, іх цэласнасць можа быць праверана з выкарыстаннем адкрытых ключоў, звязаных з ідэнтыфікацыйнай інфармацыяй гэтага гатэля, якая захоўваецца ў блокчейне.

У выпадку з Blockstack, у блокчейне захоўваецца толькі ваша ідэнтыфікацыйная інфармацыя. Інфармацыя аб тым, як атрымаць дадзеныя кожнага карыстальніка, захоўваецца ў файлах зоны (zone files) і распаўсюджваецца праз пірынгавую сетку з дапамогай нод. І яшчэ раз – вам не трэба верыць дадзеным, якія аддаюць ноды, таму што вы можаце праверыць іх сапраўднасць, параўнаўшы іх з хэшамі, якія захоўваюцца ў блокчейне і ў іншых карыстачоў.

У спрошчанай версіі сістэмы, госці будуць выкарыстоўваць пірынгавую сетку Blockstack для пошуку гатэляў і атрымання інфармацыі аб іх нумарах. А сапраўднасць і цэласнасць усіх дадзеных, якія вы атрымаеце, можа быць праверана выкарыстоўваючы публічныя ключы і хешы, якія захоўваюцца ў віртуальнага ланцуга Blockstack.

Гэтая архітэктура больш складаная, чым першы падыход, і патрабуе больш комплекснай інфраструктуры. Насамрэч, гэта як раз тое, дзе прыходзіць Blockstack, падаючы ўсе неабходныя кампаненты для стварэння такой дэцэнтралізаванай сістэмы.

Як стварыць дэцэнтралізаваны дадатак, якое маштабуецца? Выкарыстоўвайце менш блокчейна

Пры такой архітэктуры, мы захоўваем у блокчейне толькі дадзеныя, якія сапраўды павінны быць размеркаванымі і не перазапісвальныя. У выпадку з Blockstack, вам патрэбныя транзакцыі ў блокчейне толькі, каб зарэгістравацца і пазначыць, дзе павінны захоўвацца вашыя дадзеныя. Вам можа спатрэбіцца больш транзакцый, калі вы захочаце змяніць нешта з гэтай інфармацыі, але гэта не падзея, якая паўтараецца.

Больш за тое, логіка прыкладання, у супрацьлегласць першаму падыходу, працуе на баку кліента, а не на смарт-кантрактах. Гэта дазваляе распрацоўніку змяняць гэтую логіку без дарагіх ці часам нават немагчымых абнаўленняў смарт-кантракта. А трымаючы дадзеныя і логіку прыкладання не ў блокчейне, дэцэнтралізаваныя прыкладанні могуць дасягнуць узроўня прадукцыйнасці і маштабаванасці традыцыйных цэнтралізаваных сістэм.

Заключэнне

Прыкладанні, якія працуюць на Blockstack, могуць маштабавацца значна лепш звычайных блокчейн прыкладанняў, але гэта маладзейшы падыход з уласнымі праблемамі і неадказнымі пытаннямі.

Напрыклад, калі дэцэнтралізаванае прыкладанне працуе не на смарт-кантрактах, тое гэта памяншае неабходнасць ва ўтыліты-токенах. Гэта можа выклікаць праблемы для бізнэсу, калі ўлічваць, што ICO былі асноўнай крыніцай фінансавання для дэцэнтралізаваных прыкладанняў (уключаючы сам Blockstack)

Тут таксама ёсьць тэхнічныя праблемы. Напрыклад, адносна проста рэалізаваць функцыю браніравання гатэляў у смарт-кантракце, дзе пры атамарнай аперацыі браніраванне нумароў вырабляецца ў абмен на токены. І не вельмі відавочна, як браніраванне будзе працаваць у Blockstack дадатку без смарт-кантрактаў.

Прыкладанні, якія цэляцца ў глабальныя рынкі з патэнцыялам у мільёны карыстальнікаў павінны вельмі добра маштабавацца, каб стаць паспяховымі. Памылкова спадзявацца выключна на блокчэйны для дасягнення такога ўзроўню маштабаванасці ў найбліжэйшай будучыні. Каб мець магчымасць канкурыраваць з буйнымі цэнтралізаванымі гульцамі рынку, такімі як Booking.com, распрацоўшчыкі дэцэнтралізаваных прыкладанняў павінны разгледзець альтэрнатыўныя падыходы да праектавання сваіх прыкладанняў, напрыклад, такія як той, які прапануе Blockstack.

Крыніца: habr.com

Дадаць каментар