Перейти к содержимому

Почему Move?

Язык программирования Move был изначально создан командой инженеров в Facebook для платежной сети Diem. Move разработан как платформо-агностичный язык для обеспечения общих библиотек, инструментов и сообществ разработчиков в различных блокчейнах с кардинально разными моделями данных и выполнения. В Aptos мы верим в построение сильного сообщества разработчиков в Move и приглашаем их строить на стеке Move on Aptos и вносить вклад в программное обеспечение с открытым исходным кодом.

Move построен на следующих принципах:

ПринципОбъяснение
Безопасен по умолчаниюФинансовые системы построены для обеспечения того, чтобы пользователи не теряли средства. Move был разработан для предотвращения целых классов атак и ошибок, таких как атаки реентерабельности, двойные расходы и арифметические переполнения. Безопасность типов и проверки времени компиляции находятся в авангарде безопасности.
Верификация времени выполненияБайт-код может быть проверен во время выполнения, чтобы убедиться, что ничего не пошло не так, обеспечивая дополнительную безопасность и предотвращая злонамеренных актеров.
Формальная верификацияMove on Aptos предоставляет язык спецификации для формальной верификации контрактов. Это позволяет доказывать инварианты и помогает в аудите кода.
ПростотаКоманды и байт-код намеренно просты. Это позволяет легкую декомпиляцию, верификацию времени выполнения и инспекцию кода. Использование обычных языков программирования для блокчейнов часто требует игнорирования большой части языка, чтобы сделать их подходящими для смарт-контрактов (например, Rust).

Move on Aptos поддерживает полный язык, построенный командой в Facebook, с дополнительными расширениями, построенными для улучшения безопасности и опыта разработчика.

ПреимуществаОбъяснение
Формальная верификацияФреймворк Aptos полностью специфицирован и формально проверен с помощью Move Prover. Это включает основные контракты, касающиеся управления, NFT и токенов.
Покрытие газаMove VM имеет 100% покрытие газа. Газ взимается на основе фактического использования в системе (CPU, память, хранилище, I/O). Другими словами, никаких эксплойтов газа.
Избыточность безопасностиИзбыточность безопасности обеспечивается проверками безопасности времени выполнения.
Контроль разрешенийКонтроль разрешений может быть гибко построен на различных уровнях. Например, контроль разрешений на уровне токенов существует по умолчанию для обеспечения токенизации RWA.
ПреимуществаОбъяснение
Инструменты разработки Move- Модульное тестирование: Move имеет встроенное модульное тестирование для всех контрактов. Aptos дополнительно предоставляет функциональность тестирования во фреймворке для тестирования различных сценариев.
- Покрытие: Инструменты покрытия позволяют отчеты о покрытии как на уровне исходного кода, так и на уровне байт-кода.
- Декомпилятор: Для лучшей безопасности on-chain байт-код может быть дизассемблирован или декомпилирован для обеспечения видимости в фактические контракты.
- IDE плагины: Aptos имеет поддержку для всех основных IDE: VSCode, Cursor и т.д. и IntelliJ.
Модель данныхAptos имеет доступную модель данных с определением данных, хранящимся on-chain. Объекты и аккаунты могут иметь несколько различных структур в легко парсируемом формате.
ОбновляемостьОбновляемость гарантирует, что интерфейсы приложений не могут быть сломаны и не требует явного принятия от нижестоящих приложений. Контракты могут быть просто обновлены на месте для исправления ошибок.
Кросс-взаимодействиеMove позволяет взаимодействие между контрактами, используя типобезопасные структуры.
Хранение кодаAptos хранит исходный код on-chain, улучшая способность к аудиту и обеспечению корректности контракта к байт-коду.
Спонсируемые транзакцииНативная поддержка спонсируемых транзакций позволяет иметь транзакции, оплачиваемые другими пользователями, без необходимости в специальных сервисах или специфичном для контракта коде.
Надежные стандарты токеновСтандарты Digital Asset и Fungible Asset обеспечивают гибкость и единый стандарт для разнообразных типов токенов и цифровых активов on-chain. Они были вдохновлены существующими стандартами, такими как ERC-20, ERC-721, ERC-1155 и Token-2022.
On-chain случайностьНативная on-chain непредвзятая случайность обеспечивает безопасный и последовательный способ получения случайных чисел с дополнительными проверками безопасности во время компиляции.