تعتبر لغة Move كلغة عقود ذكية من الجيل الجديد، حيث تم أخذ مسألة الأمان بعين الاعتبار في التصميم. ستقوم هذه المقالة بتحليل أمان لغة Move من ثلاثة جوانب: خصائص اللغة، آلية التشغيل، وأدوات التحقق.
1. ميزات الأمان في لغة Move
تمتلك لغة Move تصميم أمان على النحو التالي:
التخلي عن منطق غير الخطي مثل التخصيص الديناميكي واستدعاءات خارجية متكررة، وتجنب ثغرات مثل إعادة الإدخال.
استخدام نوع الموارد وآلية التخزين العالمية لتحقيق إدارة أمان الأصول
من خلال تقليل المتغيرات الثابتة ومحقق بايت الكود ، يتم تحقيق التحقق المزدوج للسلامة في وقت الترجمة
إليك مثال بسيط على كود Move:
تحرك
الوحدة 0x1::TestCoin {
استخدم 0x1::signer;
هيكل Coin يحتوي على مفتاح {
القيمة: u64
}
هيكل المعلومات يحتوي على مفتاح {
إجمالي العرض: u64
}
const ADMIN: العنوان = @0x1;
// الثوابت لفحص السكون
وحدة المواصفات {
غير متغير لجميع العناوين: عنوان حيث يوجد<coin>(addr):
(ADMIN).total_supply > العالمية<info>= العالمية<coin>(addr).value;
}
initialize(account المرح العام: &signer) {
assert!(signer::address_of(account) == ADMIN, 0);
نقل إلى ( الحساب، معلومات { إجمالي العرض: 0 } );
}
mint(account المرح العام: & الموقع, المبلغ: u64): عملة {
assert!(signer::address_of(account) == ADMIN, 0);
دع المعلومات = borrow_global_mut<info>(ADMIN) ؛
info.total_supply = info.total_supply + المبلغ ؛
عملة { القيمة: المبلغ }
}
value_mut(coin المرح العام: & Coin): &MUT U64 {
&MUT coin.value
}
}
تقوم Move بتحقيق إدارة أمان الأصول من خلال التخزين العالمي وأنواع الموارد. تمتلك الوحدة حق الوصول الحصري إلى أنواع الموارد التي أعلنت عنها، ويمكنها فرض القيود على إنشاء الموارد وعملياتها.
تقدم تقنيات اختصار الثوابت ومحقق الشيفرات الثنائية فحصين أمان مزدوجين في وقت الترجمة، مما يضمن سلامة الشيفرة وأمان النوع.
2. آلية تشغيل Move
تعمل برامج Move في بيئة افتراضية ولا يمكنها الوصول مباشرة إلى ذاكرة النظام. تتكون حالتها من مكدس الاستدعاء والذاكرة والمتغيرات العالمية ومصفوفات العمليات.
يعمل MoveVM على فصل تخزين البيانات وذاكرة الاستدعاء، مما يساعد على تحسين الأمان وكفاءة التنفيذ:
حالة المستخدم ( الموارد ) مخزنة بشكل مستقل تحت عنوان الحساب
يجب أن تتوافق استدعاءات البرنامج مع قواعد الأذونات والموارد
مكدس استدعاء العملية متجاور، مما يتجنب إعادة الدخول
يتماشى هذا التصميم بشكل أفضل مع احتياجات إدارة أمان الأصول في blockchain.
3. نقل المدقق
Move Prover هو أداة تحقق رسمية، يمكنها أتمتة فحص صحة العقود الذكية. هيكلها كما يلي:
استلام ملف Move المصدر والمواصفات كمدخلات
تحويل الشيفرة المصدرية إلى بايت كود
تحويل إلى نموذج كائن المدقق
ترجمة إلى لغة Boogie الوسطى
إنشاء شروط التحقق
استخدام محلل Z3 للتحقق
إنشاء تقرير تشخيصي
تستخدم Move Prover لغة مواصفات Move لوصف مواصفات البرنامج ، ويمكن أن تكون مستقلة عن كود العمل. وهذا يوفر سهولة في التدقيق الأمني من قبل الأطراف الثالثة.
ملخص
تم تصميم لغة Move بشكل شامل من حيث ميزات اللغة، وتنفيذ الآلة الافتراضية، وأدوات الأمان. يمكنها تجنب الثغرات الشائعة مثل إعادة الدخول، والتجاوز بشكل فعال، ولكن لا يزال من الضروري الانتباه إلى التحكم في الأذونات، والأخطاء المنطقية، وغيرها من المشاكل.
نوصي مطوري العقود الذكية Move:
استخدام خدمات تدقيق الشركات الأمنية التابعة لطرف ثالث
يتم تكليف شركة الأمن بكتابة وتحقق التعليمات البرمجية وفقًا للمعايير
لا توجد لغات وبرامج آمنة بشكل مطلق، يجب على المطورين أن يظلوا يقظين واتخاذ تدابير أمان شاملة.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 14
أعجبني
14
7
مشاركة
تعليق
0/400
SchrodingerWallet
· منذ 37 د
هل أحتاج إلى استخدام move لاستغلال الحمقى؟
شاهد النسخة الأصليةرد0
ForkLibertarian
· منذ 13 س
ما فائدة الحماية من إعادة الدخول؟ أليس من الممكن أن يتم استغلالها؟
شاهد النسخة الأصليةرد0
LadderToolGuy
· منذ 21 س
سيكون دعم الأخ ليو في حدث Move له قيمة كبيرة
شاهد النسخة الأصليةرد0
LiquidityWitch
· 07-28 10:26
السحر الأسود للحركة... تحضير أكثر جرعة أمانًا في دي فاي rn fr
شاهد النسخة الأصليةرد0
SerumDegen
· 07-28 10:22
بصراحة، التحرك يبدو صاعدًا للغاية بالنسبة للدي فاي ألفا... قد يكون هذا هو الكوبيا الذي أحتاجه الآن
تحليل أمان لغة Move: ميزات وآليات وأدوات التحقق الشاملة
تحليل أمان لغة Move
تعتبر لغة Move كلغة عقود ذكية من الجيل الجديد، حيث تم أخذ مسألة الأمان بعين الاعتبار في التصميم. ستقوم هذه المقالة بتحليل أمان لغة Move من ثلاثة جوانب: خصائص اللغة، آلية التشغيل، وأدوات التحقق.
1. ميزات الأمان في لغة Move
تمتلك لغة Move تصميم أمان على النحو التالي:
إليك مثال بسيط على كود Move:
تحرك الوحدة 0x1::TestCoin { استخدم 0x1::signer;
}
تقوم Move بتحقيق إدارة أمان الأصول من خلال التخزين العالمي وأنواع الموارد. تمتلك الوحدة حق الوصول الحصري إلى أنواع الموارد التي أعلنت عنها، ويمكنها فرض القيود على إنشاء الموارد وعملياتها.
تقدم تقنيات اختصار الثوابت ومحقق الشيفرات الثنائية فحصين أمان مزدوجين في وقت الترجمة، مما يضمن سلامة الشيفرة وأمان النوع.
2. آلية تشغيل Move
تعمل برامج Move في بيئة افتراضية ولا يمكنها الوصول مباشرة إلى ذاكرة النظام. تتكون حالتها من مكدس الاستدعاء والذاكرة والمتغيرات العالمية ومصفوفات العمليات.
يعمل MoveVM على فصل تخزين البيانات وذاكرة الاستدعاء، مما يساعد على تحسين الأمان وكفاءة التنفيذ:
يتماشى هذا التصميم بشكل أفضل مع احتياجات إدارة أمان الأصول في blockchain.
3. نقل المدقق
Move Prover هو أداة تحقق رسمية، يمكنها أتمتة فحص صحة العقود الذكية. هيكلها كما يلي:
تستخدم Move Prover لغة مواصفات Move لوصف مواصفات البرنامج ، ويمكن أن تكون مستقلة عن كود العمل. وهذا يوفر سهولة في التدقيق الأمني من قبل الأطراف الثالثة.
ملخص
تم تصميم لغة Move بشكل شامل من حيث ميزات اللغة، وتنفيذ الآلة الافتراضية، وأدوات الأمان. يمكنها تجنب الثغرات الشائعة مثل إعادة الدخول، والتجاوز بشكل فعال، ولكن لا يزال من الضروري الانتباه إلى التحكم في الأذونات، والأخطاء المنطقية، وغيرها من المشاكل.
نوصي مطوري العقود الذكية Move:
لا توجد لغات وبرامج آمنة بشكل مطلق، يجب على المطورين أن يظلوا يقظين واتخاذ تدابير أمان شاملة.