135 subscribers
join
Rating
Login
Logout

Что такое язык программирования Move?

Russian

Table of Contents

Понимание программного обеспечения Diem

В прошлом месяце Meta объявила о продаже своей стабильной монеты Diem Silvergate, ведущему банку в сфере криптовалют. (Для подробного ознакомления с этой продажей и Silvergate ознакомьтесь с нашим недавним отчетом.) Silvergate управляет сетью биржи Silvergate (SEN), круглосуточной системой передачи активов, используемой многими ведущими криптобиржами. Silvergate планирует использовать приобретенную ими инфраструктуру Diem, чтобы представить стейблкоин, обеспеченный долларом, для SEN.

Ключевой частью пакета Diem, за который Silvergate заплатила почти 200 миллионов долларов, является язык программирования Move. Большая часть причин, по которым проект Diem (ранее Libra) занял так много времени в Meta, заключалась в создании проприетарного языка программирования для криптовалюты. В этой статье мы рассмотрим основные моменты Move и его будущее использование, поскольку Silvergate намечает будущее Diem.

Основные условия

Прежде чем мы пойдем дальше, нам нужно определить некоторые ключевые слова. Имейте в виду, что эта статья довольно техническая.

Что такое Move?

Move — это язык программирования, разработанный для Diem Blockchain. И Move, и Diem были созданы Diem Association, технологическим консорциумом, поддерживаемым Meta. Недавно проект Diem, включая язык Move, был продан Silvergate.

Исполняемый формат Move — это «байт-код более высокого уровня, чем ассемблер, но более низкий уровень, чем исходный язык. Байт-код проверяется в цепочке на безопасность ресурсов, типов и памяти с помощью верификатора байт-кода, а затем выполняется непосредственно интерпретатором байт-кода». Этот механизм был разработан для обеспечения максимальной безопасности без увеличения стоимости компиляции транзакций и минимизации платы за газ по сравнению с Ethereum. Это пример того, как Move пытается решить трилемму с помощью своего дизайна.

Ресурсы: что заставляет Move двигаться

Основным фактором, отличающим Move от других языков программирования, является использование ресурсов, основанное на математической идее линейной логики. В линейной логике формулы рассматриваются как фундаментальные ресурсы, которые можно использовать только один раз. После этого в Move «ресурс нельзя копировать или неявно отбрасывать, его можно только перемещать между местами хранения программ». Move позволяет разработчикам кодировать пользовательские типы ресурсов, которые рассматриваются как «первоклассные» и не могут быть продублированы или удалены.

Это обеспечивается статической системой типов Move. Это означает, что переменные в языке программирования должны быть определены как определенный тип (т.е. число или слово). В Move эта система защищает первоклассную природу ресурсов. Однако ресурсы по-прежнему можно использовать аналогично любому другому, менее защищенному элементу. Они могут быть сохранены в структурах данных или переданы в качестве аргументов процедурам (предоставлены как значения, которые будут использоваться для вычисления).

Все это означает, что ресурсы в Move обладают высоким уровнем безопасности и выразительности. Они защищены внутри кода, но также могут свободно использоваться для всех видов операций. Эта комбинация идеально подходит для программирования на блокчейне, поскольку она затрагивает как аспекты безопасности, так и аспекты масштабируемости трилеммы. В настоящее время «монета Diem, обработка транзакций и управление валидатором» кодируются как ресурсы с помощью Move.

Амбиции Move

Технический документ Move содержит четкий список мотивов для языка, которые легли в основу его дизайна. Они также отмечают проблемы создания общедоступных систем блокчейна, которые затрагивают не только Move, но и все языки программирования блокчейна.

В основном они отмечают, что Diem (Libra) должна быть «открытой системой», в которой каждый может просматривать состояние блокчейна и отправлять транзакции. Это радикально отличается от традиционного программного обеспечения для управления активами, такого как служба цифрового банкинга, поскольку это глубоко закрытые системы. Доступ возможен только при наличии специальных разрешений (которых существует много уровней), и прозрачность по отношению к другим пользователям крайне ограничена.

Но в блокчейне «все участники находятся в равных условиях». Это создает ряд проблем. Основной из них является предотвращение отправки недействительных транзакций, например, когда один пользователь пытается передать чужие активы. Кроме того, блокчейны должны охватывать два аспекта традиционной валюты, которые трудно реализовать в программном обеспечении. Во-первых, дефицит; дублирование активов должно быть запрещено, а создание новых активов должно быть привилегированным. (Реализация этой привилегии в эгалитарной открытой системе особенно сложна и сильно ограничивает децентрализацию такой системы.) Во-вторых, доступ; способность пользователя контролировать и защищать свои активы имеет первостепенное значение. Использование защищенных первоклассных ресурсов в Move в значительной степени является попыткой решить эти проблемы нехватки и доступа.

Команда инженеров перечислила три ключевые проблемы, которые они обнаружили с существующими языками блокчейна, в частности с биткойн-скриптом и виртуальной машиной Ethereum (основные языки программирования для биткойнов и эфириума соответственно).

1. Косвенное кодирование активов

Поскольку программирование выполняется математически, многие различные элементы представляются как целые числа. Сюда входят активы блокчейна, такие как криптовалюта, как в случае с биткойнами и эфириумом. Инженеры Move считают, что это делает «неудобным и подверженным ошибкам» написание программ на основе криптоактивов. Вот почему Move представляет Diem как ресурс.

2. Непреодолимый дефицит

Биткойн и язык Ethereum хорошо справляются с защитой дефицита их основной криптовалюты. Однако языки плохо приспособлены для создания новых ресурсов с недостаточными качествами. Это особая проблема для виртуальной машины Ethereum, которая позволяет создавать токены ERC-20 на основе блокчейна Ethereum. В этих случаях разработчики должны создавать дефицит самостоятельно без поддержки языков. Move стремился изменить это.

3. Негибкий контроль доступа

Как и в случае с дефицитом, Биткойн и Эфириум жестко контролируют доступ к своим основным криптовалютам, поэтому право собственности и передача не могут быть изменены. Однако это нелегко расширить на другие элементы, а также нельзя настроить уровень или средства доступа. Как и в случае с дефицитом, инженеры Move стремились сделать эти функции более расширяемыми и настраиваемыми, чтобы сделать язык более универсальным и масштабируемым.

Присоединяйтесь к Pontem Network в Telegram, Twitter или Discord.

Install our wallet and try DEX

Related posts

chto-takoe-yazyk-programmirovaniya-move
62fcd8419d5102dc19343d43
amb-chto-takoe-yazyk-programmirovaniya-move