Аналіз безпечних характеристик мови Move: створення більш безпечного середовища для розробки смартконтрактів

robot
Генерація анотацій у процесі

Аналіз безпеки Move: прорив нового покоління смартконтрактів

Мова Move – це мова смарт-контрактів, розроблена для блокчейн-середовищ з унікальними функціями безпеки. У цій статті обговорюється безпека мови Move з трьох аспектів: характеристики мови, механізм роботи та інструменти верифікації.

1. Безпекові особливості мови Move

Мова Move відмовилася від більш гнучких, але небезпечних функцій, таких як динамічний виклик і рекурсивні зовнішні виклики, натомість впроваджуючи концепції, такі як генерики, глобальне зберігання, ресурси тощо, для реалізації альтернативних моделей програмування. Ці дизайни допомагають уникнути поширених вразливостей, таких як повторний вхід.

Основний механізм безпеки Move включає:

  • Модуль: кожен модуль складається з типу структури та визначення процесу, може імпортувати визначення типів інших модулів і викликати їх процеси.

  • Структура: може бути визначена як тип ресурсу, зберігається в глобальному сховищі ключ-значення.

  • Процес: визначає функції та логіку смартконтракту.

  • Глобальне сховище: дозволяє постійно зберігати дані, доступ до яких може бути програмно зчитаний і записаний лише володарем модуля.

  • Перевірка незмінних: визначення консервності стану системи за допомогою мови специфікацій.

  • Верифікатор байт-коду: примусове виконання системи типів на рівні байт-коду, запобігання незаконним операціям з чутливими значеннями.

Аналіз безпеки Move: зміна правил гри для смартконтрактів

2. Механізм роботи Move

Програма Move виконується у віртуальній машині і не може безпосередньо отримати доступ до системної пам'яті. MoveVM використовує стековий інтерпретатор для виконання байт-коду, відокремлюючи управління сховищем даних і стеком викликів.

Стан програми Move складається з стеку викликів, пам'яті, глобальних змінних та масиву операцій. Під час виконання стек викликів зберігає контекстну інформацію, статичний перехід уникає динамічної диспетчеризації, що підсилює незмінність виклику функцій.

Цей дизайн відокремлює стан користувача ( ресурси ) і логіку програми, що підвищує безпеку та ефективність виконання.

Аналіз безпеки Move: смартконтракти - це зміна гри

3. Рух Ровер

Move Prover є інструментом формальної верифікації, який використовує алгоритми дедуктивної верифікації для перевірки того, чи відповідає програма очікуванням. Його робочий процес виглядає так:

  1. Отримайте вихідний файл Move та специфікацію
  2. Скомпілювати в байт-код і модель об'єкта валідатора
  3. Перетворити в проміжну мову Boogie
  4. Генерація умов верифікації
  5. Використовуйте Z3-решатель для перевірки задовільності формули
  6. Генерація діагностичного звіту

Move Specification Language використовується для опису специфікацій поведінки програми, може бути написана незалежно від бізнес-коду. Це надає додатковий шлях для верифікації третім сторонам безпеки.

Аналіз безпеки Move: зміна правил гри для мови смартконтрактів

Підсумок

Мова Move була спроектована з урахуванням безпеки, з повною оптимізацією характеристик мови, виконання віртуальної машини та інструментів перевірки. Вона може ефективно уникати поширених вразливостей, таких як повторні входи та переповнення, але все ще потрібно звертати увагу на питання безпеки, такі як аутентифікація та логіка.

Хоча Move забезпечує хорошу безпеку, рекомендується, щоб розробники все ж використовували послуги стороннього аудиту та розглянули можливість передати написання та перевірку стандартів професійній безпековій команді для подальшого підвищення безпеки смартконтрактів.

Аналіз безпеки Move: зміна правил гри для мови смартконтрактів

MOVE0.28%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
MEVHunterLuckyvip
· 07-20 19:12
Знову прийшли спекуляції щодо move
Переглянути оригіналвідповісти на0
MEVHunterBearishvip
· 07-20 19:11
переміщення все ще потрібно підніматися
Переглянути оригіналвідповісти на0
¯\_(ツ)_/¯vip
· 07-20 19:11
Тестування є тестуванням, безпека на першому місці
Переглянути оригіналвідповісти на0
LowCapGemHuntervip
· 07-20 19:07
Зник, зник. Аудит все ще найнадійніший.
Переглянути оригіналвідповісти на0
BankruptcyArtistvip
· 07-20 18:50
Коли move зможе перемогти sol
Переглянути оригіналвідповісти на0
  • Закріпити