Што такое мова праграмавання "Move"?
Разуменне праграмнага забеспячэння, які ляжыць у аснове Diem
У мінулым месяцы кампанія Meta абвясціла аб продажы свайго стейблкоина Diem кампаніі Silvergate, вядучаму банку ў криптовалютном прасторы. (Падрабязны аналіз гэтай продажу і Silvergate чытайце ў нашым нядаўнім справаздачы). Silvergate кіруе Silvergate Exchange Network (SEN), кругласутачнай сістэмай перадачы актываў, якая выкарыстоўваецца многімі лідзіруючымі криптовалютными біржамі. Silvergate плануе выкарыстаць набытую інфраструктуру Diem для стварэння стейблкоина забяспечанага далярамі ў рамках SEN.
Найважнейшай часткай набытага пакета Diem, за які Silvergate заплаціў 200 мільёнаў даляраў, з'яўляецца мова праграмавання Move. Шмат у чым прычынай таго, што праект Diem (раней Libra) займаў велізарную колькасць часу ў Meta, стала стварэнне ўласнага мовы праграмавання для криптовалюты. У гэтым артыкуле мы разгледзім асноўныя моманты Move і яго будучыню выкарыстанне, паколькі Silvergate плануе ўжо будучыню Diem.
Асноўныя тэрміны
Перш чым мы працягнем, неабходна вызначыць некаторыя ключавыя тэрміны. Майце на ўвазе, што артыкул будзе даволі тэхнічнай.
- Мова праграмавання - "набор каманд, інструкцый і іншага сінтаксісу, якія выкарыстоўваюцца для стварэння праграмы". Move-гэта мова праграмавання для Diem, які забяспечвае як базавую функцыянальнасць криптовалюты, так і стварэнне будучых прыкладанняў для Diem
- Блокчейн - "лічбавая база дадзеных, якая змяшчае інфармацыю (напрыклад, запісы аб фінансавых аперацыях), якая можа адначасова выкарыстоўвацца і перадавацца ў рамках вялікай дэцэнтралізаванай, агульнадаступнай сеткі". Блокчейн забяспечвае працу криптовалют, ствараючы нязменлівыя запісы аб адбываюцца транзакцыях. Перш чым транзакцыі будуць ўнесены ў рэестр, павінен быць дасягнуты кансэнсус.
- Трилемма блокчейна-складанасць дасягнення бяспекі (ўстойлівасць да нападаў), маштабаванасці (здольнасць да росту) і дэцэнтралізацыі (размеркаванне па геаграфіі і карыстальнікам) для сетак блокчейна. Да гэтага часу блокчейн з цяжкасцю дасягаў ўсіх трох гэтых мэтаў. Многія з вядучых блокчейнов, такія як Ethereum, з'яўляюцца бяспечнымі і дэцэнтралізаванай. Аднак гэта прыводзіць да нізкай хуткасці і высокім камісіям за транзакцыі, што негатыўна адбіваецца на іх маштабаванасці. Diem, як і большасць блокчейнов, імкнецца вырашыць гэтую трилемму. Move з'яўляецца значнай часткай гэтага рашэння.
- Лінейная логіка-сістэма матэматычнай логікі, створаная Жан-Івам Жырадам у 1987 годзе, у якой асаблівая ўвага надаецца формулах як рэсурсаў, а не поўным ісцінам або неабходнасці поўных пацверджанняў. Ключавым змяненнем з'яўляецца тое, што рэсурсы могуць быць выкарыстаны толькі адзін раз, а не разглядаюцца як пастаянна сапраўдныя (напрыклад, "калі вы дасце мне A адзін раз, я дам вам B адзін раз "замест" A можна абмяняць на B"). Гэта робіць лінейную логіку карыснай у інфарматыцы, дзе абмежаванне формулы рэсурсам замест таго, каб разглядаць яе як універсальную сістэму.
- Рэсурс-базавая адзінка лінейных лагічных сістэм. У Move "рэсурс ніколі не можа быць скапіяваны ці ўскосна выкінуты, яго можна толькі перамяшчаць паміж месцамі захоўвання праграмы". Патрэба ў тым, каб токены і іншыя элементы блокчейна былі сталымі, - вось чаму лінейная логіка, у прыватнасці рэсурсы, была выкарыстаная для стварэння мовы Move.
Што такое Move?
Move-гэта мова праграмавання, распрацаваны для блокчейна Diem. І Move, і Diem былі створаны Diem Association, тэхналагічным аб'яднаннем, падтрымоўваным кампаніяй Meta. Нядаўна праект Diem, уключаючы мова Move, быў прададзены кампаніі Silvergate
Выкананы фармат Move - гэта " байткод, які з'яўляецца больш высокаўзроўневым, чым асэмблер, але больш нізкаўзроўневым, чым зыходны мову. Байт код правяраецца на ланцужку на бяспеку рэсурсаў, тыпаў і памяці верификатором байт кода, а затым выконваецца непасрэдна інтэрпрэтатарам байткода". Гэты механізм быў распрацаваны для забеспячэння максімальнай бяспекі, без дадання кошту кампілявання да транзакцыях, мінімізуючы плату за газ у параўнанні з Ethereum. Гэта прыклад таго, як Move спрабуе вырашыць дылему дапамогай сваёй распрацоўкі.
Рэсурсы: Што дапамагае працаваць Move
Асноўным фактарам, які адрознівае Move ад іншых моў праграмавання, з'яўляецца выкарыстанне рэсурсаў, якое ўзята з матэматычнай ідэі лінейнай логікі. У лінейнай логіцы формулы разглядаюцца як фундаментальныя рэсурсы, якія могуць быць выкарыстаны толькі адзін раз. Услед за гэтым у Move "рэсурс ніколі не можа быць скапіяваны ці ўскосна выкінуты, яго можна толькі перамяшчаць паміж месцамі захоўвання праграмы". Move дазваляе распрацоўнікам кадзіраваць прыстасаваныя тыпы рэсурсаў, якія разглядаюцца як "першакласныя" і не могуць быць скапіяваныя або выдаленыя.
Гэта магчыма дзякуючы сістэме статычных тыпаў Move. Гэта азначае, што зменныя у мове праграмавання павінны быць вызначаны як канкрэтны тып (напрыклад, колькасць або слова). У Move гэтая сістэма абараняе першакласную структуру рэсурсаў. Аднак рэсурсы можна выкарыстоўваць таксама, як і любы іншы, менш абаронены элемент. Іх могуць захоўваць у структурах дадзеных або перадаваць у якасці аргументаў працэдурах (у якасці значэнняў для вылічэнні).
Усё гэта азначае, што рэсурсы ў Move маюць высокі ўзровень як бяспекі, так і выразнасці. Яны абаронены ўнутры кода, але пры гэтым могуць свабодна выкарыстоўвацца для разнастайных аперацый. Такая камбінацыя ідэальна падыходзіць для праграмавання блокчейна, паколькі яна вырашае як праблемы бяспекі, так і праблемы маштабаванасці трылемы. У цяперашні час "манета Diem, апрацоўка транзакцый і кіраванне валідатарамі" закадаваны як рэсурсы з Move.
Амбіцыі Move
У Whitepaper Move прыводзіцца выразны спіс матываў мовы, якія ляглі ў аснову яго распрацоўкі. Яны таксама адзначаюць праблемы стварэння публічных сістэм блокчейн, якія закранаюць не толькі Move, але і ўсе мовы праграмавання блокчейн.
У першую чаргу яны адзначаюць, што Diem (Libra) павінна быць "адкрытай сістэмай", дзе кожны можа праглядаць стан блокчейна і адпраўляць транзакцыі. Гэта кардынальна адрозніваецца ад традыцыйнага праграмнага забеспячэння для кіравання актывамі, такога як лічбавыя банкаўскія сэрвісы, паколькі яны з'яўляюцца глыбока зачыненымі сістэмамі. Доступ да іх магчымы толькі пры наяўнасці спецыяльных дазволаў (якіх існуе мноства), а празрыстасць у адносінах да іншых карыстальнікам вельмі абмежаваная.
Але ў блокчейне "усе ўдзельнікі знаходзяцца ў роўных умовах". Гэта стварае шэраг праблем. Галоўная з іх-прадухіленне несапраўдных транзакцый, напрыклад, калі адзін карыстальнік спрабуе перавесці актывы іншага. Акрамя таго, блокчейн павінен улічваць два аспекты традыцыйнай валюты, якія цяжка рэалізаваць у праграмным забеспячэнні. Па-першае, гэта дэфіцыт; дубляванне актываў павінна быць забаронена, а стварэнне новых актываў павінна быць прывілеяваным. (Рэалізаваць гэтую прывілей ў адкрытай сістэме асабліва складана, і гэта моцна абмяжоўвае дэцэнтралізацыю такой сістэмы). Другое-гэта доступ; здольнасць карыстальніка кантраляваць і абараняць свае актывы мае першараднае значэнне. Выкарыстанне абароненых, першакласных рэсурсаў у Move ў значнай ступені з'яўляецца спробай вырашыць гэтыя праблемы дэфіцыту і доступу.
Каманда інжынераў пералічыла тры асноўныя праблемы, якія яны выявілі ў існуючых мовах блокчейна, у прыватнасці ў Bitcoin Script і Ethereum Virtual Machine (асноўныя мовы праграмавання для Bitcoin і Ethereum адпаведна).
- Непрамое кадаваньне актываў
Паколькі праграмаванне выконваецца матэматычна, многія элементы прадстаўлены ў выглядзе цэлых лікаў. Гэта адносіцца і да актываў блокчейна, такім як криптовалюта, што характэрна для Bitcoin і Ethereum. Інжынеры Move палічылі, што гэта робіць напісанне праграм на аснове криптоактивов "нязручным і схільным памылак". Менавіта таму Move ўяўляе Diem ў якасці рэсурсу.
- Невычэрпны дэфіцыт
Мовы Bitcoin і Ethereum добра спраўляюцца з абаронай дэфіцыту сваёй асноўнай криптовалюты. Аднак гэтыя мовы дрэнна прыстасаваныя для стварэння новых актываў з дэфіцытнымі ўласцівасцямі. Гэта асабліва актуальна для віртуальнай машыны Ethereum, якая дазваляе ствараць токены ERC-20 на аснове блокчейна Ethereum. У такіх выпадках распрацоўнікам даводзіцца самастойна ствараць дэфіцытныя актывы без падтрымкі мовы. Move імкнецца змяніць гэтую сітуацыю.
- Строгі кантроль доступу
Як і ў выпадку з дэфіцытам, Bitcoin і Ethereum строга кантралююць доступ да сваіх асноўных криптовалютам, каб валоданне і перадача не маглі быць падробленыя. Аднак гэта нялёгка распаўсюджваецца на іншыя элементы, а ўзровень або спосабы доступу не наладжваюцца. Як і ў выпадку з дэфіцытам, Інжынеры Move імкнуліся зрабіць гэтыя функцыі больш пашыраюцца і наладжвальнымі, каб зрабіць мову больш універсальным і маштабуюцца.