Мова Move, як мова смарт-контрактів нового покоління, має безпеку як основну характеристику. У цій статті аналізується безпека мови Move з трьох аспектів: мовні характеристики, механізм виконання та інструменти верифікації.
1. Безпекові характеристики мови Move
Мова Move була розроблена з урахуванням питань безпеки блокчейну та смарт-контрактів, спираючись на безпечний дизайн мови Rust. На відміну від багатьох існуючих мов програмування, Move відмовляється від нелінійної логіки, заснованої на гнучкості, не підтримує динамічну диспетчеризацію та рекурсивні зовнішні виклики, а використовує концепції, такі як узагальнені типи, глобальне зберігання, ресурси тощо, для реалізації альтернативних програмних моделей.
Основні функції безпеки Move включають:
Модуль (: складається з типу структури та визначення процесу, може імпортувати визначення типів та процесів з інших модулів.
Структура )Structs(: може бути визначена як тип ресурсу, що зберігається у глобальному сховищі ключів/значень.
процес)Функція(: визначає ініціалізацію, безпечний процес та небезпечний процес.
Глобальне сховище: дозволяє зберігати постійні дані, які можуть бути прочитані та записані програмно лише модулем, що їх має.
Перевірка інваріантів: можна визначити статичну перевірку інваріантів, щоб забезпечити збереження стану системи.
Віртуальна машина байт-коду: забезпечує дотримання системи типів на рівні байт-коду, запобігає незаконним операціям.
![Аналіз безпеки Move: ігрова зміна мови смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-419437619d55298077789e6eca578b48.webp(
2. Механізм роботи Move
Програма Move виконується у віртуальній машині, не маючи прямого доступу до системної пам'яті. Програма виконується на стеку, глобальне зберігання ділиться на пам'ять ) купу ( та глобальні змінні ) стек (.
Байтові команди Move виконуються в стековому інтерпретаторі. Стан програми складається з виклику стеку, пам'яті, глобальних змінних та масиву операцій. Значення ресурсів можуть бути переміщені лише руйнівно, деякі значення ), такі як цілі числа (, можуть бути скопійовані.
MoveVM розділяє зберігання даних та стек викликів, на відміну від EVM. Цей дизайн істотно підвищує безпеку та ефективність виконання, але жертвує певною гнучкістю.
![Аналіз безпеки Move: зміна правил гри для мов смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-69101617731b12c40620802eecf76caf.webp(
3. Рух Ровер
Move Prover є інструментом формальної верифікації, що використовує алгоритми дедуктивної верифікації для перевірки, чи відповідає програма очікуванням. Його робочий процес виглядає наступним чином:
Приймати вихідні файли Move та специфікації як вхідні дані
Витягування специфікацій, компіляція вихідних файлів у байт-код
Перетворити на модель об'єкта валідатора
Перекласти на проміжну мову Boogie
Генерація умов верифікації
Використання Z3-решателя для перевірки SMT-формули
Генерація діагностичного звіту
Move Specification Language використовується для опису специфікацій, є підмножиною мови Move. Специфікації можуть бути написані незалежно, не впливаючи на виробничий код.
![Аналіз безпеки Move: зміна правил гри для мов смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-372ff914a241634ca57784dc9685a03d.webp(
4. Підсумок
Мова Move має відмінний дизайн безпеки, враховуючи мовні особливості, виконання віртуальної машини та інструменти безпеки. Вона може ефективно уникати вразливостей, таких як повторні виклики та переповнення, які часто зустрічаються в EVM, але все ще потрібно звертати увагу на проблеми автентифікації та логіки.
Хоча Move має великі переваги в безпеці, але немає повністю безпечних мов і програм. Рекомендується, щоб розробники все ще використовували сторонній аудит безпеки та забезпечували написання та перевірку стандартного коду професійною командою безпеки.
![Move безпеки аналіз: ігровий змінник мови смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-f7cd11fef1c66709b219e1a1e8d2e4da.webp(
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
13 лайків
Нагородити
13
7
Поділіться
Прокоментувати
0/400
MEVSupportGroup
· 07-11 05:45
Ей, це безпечніше за Rust. Тепер не буду невдахою.
Переглянути оригіналвідповісти на0
SnapshotBot
· 07-11 05:45
Move зовсім не зрозуміло, де стало простіше.
Переглянути оригіналвідповісти на0
liquidation_watcher
· 07-11 05:45
rust вже скопіювали? Чи не можна створити щось нове?
Переглянути оригіналвідповісти на0
AllTalkLongTrader
· 07-11 05:45
rust вже скопійовано, що тут ще можна сказати?
Переглянути оригіналвідповісти на0
¯\_(ツ)_/¯
· 07-11 05:39
Ера rust закінчилася, зараз царює move!
Переглянути оригіналвідповісти на0
HashBrownies
· 07-11 05:28
Я визнаю, що Rust дійсно потужний!
Переглянути оригіналвідповісти на0
LonelyAnchorman
· 07-11 05:18
Не можу зрозуміти, чи це імітація Rust, чи необхідно інновувати...
Повний аналіз безпеки Move мови: особливості, механізми та інструменти перевірки
Аналіз безпеки мови Move
Мова Move, як мова смарт-контрактів нового покоління, має безпеку як основну характеристику. У цій статті аналізується безпека мови Move з трьох аспектів: мовні характеристики, механізм виконання та інструменти верифікації.
1. Безпекові характеристики мови Move
Мова Move була розроблена з урахуванням питань безпеки блокчейну та смарт-контрактів, спираючись на безпечний дизайн мови Rust. На відміну від багатьох існуючих мов програмування, Move відмовляється від нелінійної логіки, заснованої на гнучкості, не підтримує динамічну диспетчеризацію та рекурсивні зовнішні виклики, а використовує концепції, такі як узагальнені типи, глобальне зберігання, ресурси тощо, для реалізації альтернативних програмних моделей.
Основні функції безпеки Move включають:
Модуль (: складається з типу структури та визначення процесу, може імпортувати визначення типів та процесів з інших модулів.
Структура )Structs(: може бути визначена як тип ресурсу, що зберігається у глобальному сховищі ключів/значень.
процес)Функція(: визначає ініціалізацію, безпечний процес та небезпечний процес.
Глобальне сховище: дозволяє зберігати постійні дані, які можуть бути прочитані та записані програмно лише модулем, що їх має.
Перевірка інваріантів: можна визначити статичну перевірку інваріантів, щоб забезпечити збереження стану системи.
Віртуальна машина байт-коду: забезпечує дотримання системи типів на рівні байт-коду, запобігає незаконним операціям.
![Аналіз безпеки Move: ігрова зміна мови смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-419437619d55298077789e6eca578b48.webp(
2. Механізм роботи Move
Програма Move виконується у віртуальній машині, не маючи прямого доступу до системної пам'яті. Програма виконується на стеку, глобальне зберігання ділиться на пам'ять ) купу ( та глобальні змінні ) стек (.
Байтові команди Move виконуються в стековому інтерпретаторі. Стан програми складається з виклику стеку, пам'яті, глобальних змінних та масиву операцій. Значення ресурсів можуть бути переміщені лише руйнівно, деякі значення ), такі як цілі числа (, можуть бути скопійовані.
MoveVM розділяє зберігання даних та стек викликів, на відміну від EVM. Цей дизайн істотно підвищує безпеку та ефективність виконання, але жертвує певною гнучкістю.
![Аналіз безпеки Move: зміна правил гри для мов смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-69101617731b12c40620802eecf76caf.webp(
3. Рух Ровер
Move Prover є інструментом формальної верифікації, що використовує алгоритми дедуктивної верифікації для перевірки, чи відповідає програма очікуванням. Його робочий процес виглядає наступним чином:
Move Specification Language використовується для опису специфікацій, є підмножиною мови Move. Специфікації можуть бути написані незалежно, не впливаючи на виробничий код.
![Аналіз безпеки Move: зміна правил гри для мов смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-372ff914a241634ca57784dc9685a03d.webp(
4. Підсумок
Мова Move має відмінний дизайн безпеки, враховуючи мовні особливості, виконання віртуальної машини та інструменти безпеки. Вона може ефективно уникати вразливостей, таких як повторні виклики та переповнення, які часто зустрічаються в EVM, але все ще потрібно звертати увагу на проблеми автентифікації та логіки.
Хоча Move має великі переваги в безпеці, але немає повністю безпечних мов і програм. Рекомендується, щоб розробники все ще використовували сторонній аудит безпеки та забезпечували написання та перевірку стандартного коду професійною командою безпеки.
![Move безпеки аналіз: ігровий змінник мови смарт-контрактів])https://img-cdn.gateio.im/webp-social/moments-f7cd11fef1c66709b219e1a1e8d2e4da.webp(