أخبارالمطورينإدخالالمشروع Blockchain شرح الأحداث والمؤتمرات الصحافةالنشرات الإخبارية
اشترك في نشرتنا الإخبارية.
عنوان بريد الكتروني
نحن نحترم خصوصيتك
الرئيسية
إدخال Scribble بواسطة ConsenSys Diligence
by ConsenSys ديسمبر 8 ، 2020 نُشر في 8 ديسمبر 2020
لم يكن التأكد من أن العقود الذكية آمنة وخالية من الأخطاء أكثر أهمية من أي وقت مضى. لسوء الحظ ، تظل مهمة صعبة. في حين أن هناك أدوات مفيدة للاختبار التلقائي والتحقق الرسمي ، فإن ضمان صحة العقود الذكية لا يزال مهمة شاقة وتستغرق وقتًا طويلاً. لجعل الأمور أسوأ ، غالبًا ما يكون لكل أداة منحنى تعليمي حاد ، وغالبًا ما يكون من غير المؤكد ما إذا كانت مناسبة للوظيفة.
لهذا السبب قمنا بتطوير Scribble: لغة تحقق وأداة للتحقق من وقت التشغيل. بينما تم إنشاؤه في البداية لاختبار الملكية التلقائي أثناء عمليات التدقيق ، فقد قررنا مشاركة هذا المشروع مع المجتمع!
ما هو خربشة?
عندما نتحدث عن الخربشة ، فإننا نتحدث عن شيئين.
أولاً ، الخربشة هي لغة مواصفات لكتابة الخصائص.
ثانيًا ، يعد Scribble أداة للتحقق من وقت التشغيل باستخدام لغة مواصفات Scribble.
ملاحظة: لا يقوم الخربشة بأي تحقق من تلقاء نفسه. هو – هي يفعل تمكين الأدوات الأخرى من اختبار الخصائص والتحقق منها.
الخربشة لغة
يعرّف Scribble لغة خاصة بالمجال لكتابة الخصائص حول العقود الذكية. لقد بنينا اللغة فوق بنية الصلابة ، لتسهيل التعلم. تسمح لك لغة المواصفات هذه بتعليق عقد ذكي متين مع الخصائص.
ملاحظة: الخاصية هي عبارة منطقية تتوقع أن تكون صحيحة ، على سبيل المثال “كل السيارات حمراء”. في الصلابة ، غالبًا ما يكون لديك خصائص مثل: “يمكن للمالك فقط إجراء تغيير على X”. أو “Function sendToken () ، يجب ألا تغير رصيد الأثير لهذا العقد”.
يمكنك استخدام العديد من أنواع التعليقات التوضيحية لأنواع مختلفة من الخصائص. على سبيل المثال ، الثوابت أو الشروط اللاحقة.
هذا مثال على تعليق توضيحي خربش:
كما ترى ، تأخذ التعليقات التوضيحية شكل تعليق مضمن يوضع أعلى تعريف دالة. لقد أضفنا ما يسمى بعبارة if_succeeds ، والتي تتحقق مما إذا كان الشرط صالحًا بعد تنفيذ الوظيفة. في هذه الحالة ، نتحقق من أن نتيجة الدالة دائمًا ما تكون غير صفرية.
لقد أسسنا لغة الخربشة على مفاهيم مثبتة مثل الشروط اللاحقة والثوابت والمنطق الزمني. لكننا ننظر أيضًا في كيفية تقديم أفكار جديدة لتناسب المشكلات الخاصة بالمجال للعقود الذكية بشكل أفضل.
الخربشة هي أداة
يمكن أن يأخذ Scribble عقدًا مشروحًا بالخصائص ، ويجمعه في عقد جديد. في هذا العقد الجديد ، سيكون Scribble قد أضاف رمز Solidity الذي يثير تأكيدًا عند انتهاك خاصية ما. نسمي هذه العملية الأجهزة.
تسمى إضافة رمز قابل للتنفيذ يتحقق من الخصائص التحقق من وقت التشغيل ، ويسهل العمل مع الأدوات الحالية دون الحاجة إلى العديد من التعديلات. هذا هو الحال لأن معظم الأدوات ستفسر بالفعل رمز الصلابة وستكون قادرة على البحث عن انتهاكات الملكية على الفور!
لأنه يمكنك استخدام تقنيات الاختبار التلقائي الحالية (مثل الصمامات الخاصة بنا هارفي) ، ستتمكن من بدء الاختبار بعد كتابة خاصية واحدة فقط. نعتقد أن هذه فائدة كبيرة ؛ يمكنك الاستفادة من الاختبار التلقائي على الفور ، بدلاً من الاضطرار إلى قضاء الكثير من الوقت مقدمًا للحصول على قدر كبير من التعليقات التوضيحية. شيء عادة ما يكون ضروريًا مع مناهج التحقق التقليدية.
يمكنك البدء في اختبار العقد وتحليله بسرعة ، وحتى اتخاذ قرار لاحقًا ببذل جهد إضافي للتحقق من عقد ذكي تمامًا!
الأهداف
مراجعة
نستخدم الخربشة أثناء عمليات التدقيق لصياغة الخصائص. باستخدام تقنيات التحليل التلقائي مثل التشويش والتنفيذ الرمزي ، سنختبر تلقائيًا ونجد انتهاكات لهذه الخصائص.
اتصل بنا لمعرفة المزيد حول التشويش والاختبار القائم على الخصائص أثناء عمليات التدقيق
معيار
يهدف Scribble إلى العمل باستخدام أدوات وتقنيات مختلفة ؛ لا نريد فقط تمكين الاختبار المستند إلى الخاصية ، ولكن أيضًا التحقق الرسمي السهل. تتمثل فائدة استخدام لغة مواصفة عالمية واحدة في أنك تبذل جهد كتابة الخصائص مرة واحدة فقط ، لكنك تجني فائدة استخدام أدوات متعددة.
تبني
مع Scribble ، نأمل في خفض الحاجز أو الدخول للاختبار التلقائي والتحقق الرسمي. نريد أيضًا تقليل الوقت المستثمر اللازم لتطوير عقود ذكية صحيحة وآمنة ، مما يؤدي إلى نظام بيئي أكثر أمانًا.
أين يمكنك الحصول عليه?
لدينا Scribble مفتوح المصدر بالكامل ، وهو متوفر الآن على github.com/consensys/scribble.
ملاحظة: هذا إصدار تجريبي ، ستتغير جوانب اللغة ، وقد تواجه بعض الأخطاء.
يمكنك بسهولة تثبيت Scribble باستخدام npm:
اشترك في النشرة الإخبارية لدينا للحصول على أحدث أخبار Ethereum وحلول المؤسسات وموارد المطورين والمزيد.نقل
تقرير Ethereum Q3 2020 DeFi
نقل
تقرير Ethereum Q2 2020 DeFi
نقل
تقرير النظام البيئي لـ Ethereum 2.0 Staking
يرشد
الدليل الكامل لشبكات عمل Blockchain
ندوة عبر الإنترنت
كيفية بناء منتج Blockchain ناجح
ورق ابيض