سيلا وأمبير. فايبير

شهد ظهور blockchain والعقود الذكية اهتمامًا واسعًا ببناء dapps والاستفادة من العقود الذكية لأغراض عملية. Solidity – لغة العقد الذكي في Ethereum – هي لغة البرمجة الأساسية المستخدمة لشبكة blockchain العامة في Ethereum ولا تزال لغة العقود الذكية الأكثر شيوعًا..

على الرغم من نجاحها واستخدامها على نطاق واسع لكتابة عقود ذكية على Ethereum ، فإن Solidity هي لغة برمجة جديدة نسبيًا ، وهي عرضة بشكل طبيعي للأخطاء وبعض الأخطاء المنطقية عالية المستوى. من بين الطلب على إنشاء العقود الذكية وأساليب الأمان المحسّنة لكتابتها ، ظهرت لغات البرمجة Vyper و Scilla.

سيلا وأمبير. فايبير

صلابة & العقود الذكية

تم اقتراح صلابة من قبل جافين وود في عام 2014 وهي لغة البرمجة السائدة لكتابة العقود الذكية. إنه مصمم خصيصًا لجهاز Ethereum Virtual Machine (EVM) ويتميز ببعض الميزات المفيدة توثيق على ما هو عليه وكيفية استخدامه.

Solidity هي لغة برمجة عالية المستوى يتم تجميعها وصولاً إلى كود ثنائي متوافق مع EVM يعمل على عقد Ethereum. والجدير بالذكر أن Solidity هي لغة برمجة بسيطة نسبيًا (مقارنة بالآخرين) مع بناء جملة مألوف جدًا يشبه JavaScript. تم بناء Solidity أيضًا مع بعض الاعتبارات المهمة كلغة عقد ذكية للتنفيذ على blockchain ، بما في ذلك الحاجة إلى أن تكون العقود الذكية حاسمة.

دليل الصلابة

اقرأ: ما هي الصلابة؟ دليلنا للغة عقود إيثريوم الذكية

يتوفر Solidity للتعرف على العديد من المنصات التعليمية عبر الإنترنت – بما في ذلك Udemy – ولها عدة واسعة الكتب كتب عنها. عززت تأثيرات الشبكات من Solidity كلغة برمجة الانتقال للعقود الذكية و dapps المبنية على Ethereum.

على الرغم من شعبيتها الواسعة ، فإن وجود Solidity كلغة برمجة خاصة بـ EVM يحد من استخدامها لمنصات blockchain الأخرى. علاوة على ذلك ، أدت المخاوف الأمنية المتعلقة باللغات عالية المستوى ومشكلاتها المحتملة إلى التركيز على تدقيق العقود الذكي واللغات الأبسط والأكثر أمانًا. رقيقة الخارقة و البحث دراسات أدى الكشف عن الحجم الهائل للثغرات الأمنية حتماً إلى الحاجة الملحة إلى ممارسات تعاقد ذكية أفضل.

فايبير

Vyper هي لغة برمجة تجريبية تشبه Solidity من حيث أنها مصممة أيضًا خصيصًا لـ EVM. يشبه Vyper من الناحية التركيبية Python وهو موجه نحو العقد مثل Solidity.

ومع ذلك ، تم تصميم Vyper بأهداف محددة تتعلق بالأمان والبساطة وقابلية التدقيق. يرجع هذا إلى حد كبير إلى مشكلات الأمان في التكرارات المبكرة للعقود الذكية. كنتيجة لمبادئ وأهداف Vyper ، فإن الأمثلة الواضحة للميزات التي تقوم بها بشكل هادف ليس دينا هي موجز مثل:

  • الصفات التعريفية
  • الميراث الطبقي
  • وظيفة & زيادة الحمولة على المشغل
  • نداء متكرر
  • حلقات لانهائية

والجدير بالذكر أن الاتصال المتكرر يجعل من المستحيل تعيين حد أعلى لحدود الغاز ويمكن أن يؤدي إلى هجمات حد الغاز. بالإضافة إلى ذلك ، تم إزالة المُعدِّلات مع وضع القابلية للتدقيق في الاعتبار ، لأنها يمكن أن تجعل الكود مضللًا ويصعب تفسيره من منظور يمكن للبشر قراءته.

يقوم Vyper بتجريد نفسه من الميزات المعرضة للأمان ولكنه يضيف أيضًا بعض الوظائف الرئيسية بما في ذلك الحدود والتحقق من تجاوز التدفق والقدرة على اتخاذ القرار والكتابة القوية. فيما يتعلق بحدود الغاز ، تسمح قابلية التحديد للمطور بحساب حد أعلى دقيق لاستهلاك الغاز لاستدعاء الوظيفة.

يتمثل أحد الاختلافات الرئيسية بين Vyper و Solidity في أنه – على الرغم من تشابههما – يزيل Vyper الكثير من النماذج الأولية الموجهة للكائنات الموجودة في Solidity. إن التركيز على البساطة في Vyper يمكّنها أيضًا من أن تكون أكثر قابلية للقراءة في الحالات التي تكون فيها المراجعة من قبل أطراف ليست على دراية بالبرمجة ضرورية. وبالتالي ، فإن الاستخدام المحتمل لـ Vyper يجذب العديد من تطبيقات الأعمال العملية التي يمكن كتابتها في Vyper.

من المهم أخذ اعتبارات الأمان على مستوى لغة البرمجة في الاعتبار. غالبًا ما تؤدي البساطة إلى تعقيد منطقي أقل مطلوبًا ويمكن أن توفر بطبيعتها أمانًا أفضل. لم يتم تصميم Vyper بالضرورة ليحل محل Solidity ، بل إنه مصمم لتوفير لغة أبسط وأكثر أمانًا كخيار بديل عندما يكون ذلك ضروريًا.

يتضمن Vyper ملف بروتوكول تحسين Vyper (VIP) ولديه أيضًا محرر نصوص عبر الإنترنت مترجم للتلاعب برمز Vyper. إيثريوم كاسبر اف اف جي التنفيذ مكتوب أيضًا في Vyper.

سيلا

سيلا هي لغة عقد ذكية متوسطة المستوى تستخدمها زليقة. تم تصميم Scilla بشكل صريح مع وضع الأمان وسلامة العقود الذكية في الاعتبار. الأهم من ذلك ، أنه يركز على تقديم التحقق الرسمي من العقود الذكية.

دليل زليقة

قراءة: دليل المبتدئين إلى Zilliqa

التحقق الرسمي تم تصميمه لتوفير ضمانات ثابتة للعقود الذكية قبل أن تلتزم بشكل ثابت بـ blockchain. أصبح التحقق الرسمي من العقود الذكية أكثر انتشارًا في هذا المجال ويتم متابعته وتطبيقه بنشاط من قبل العديد من المنصات بما في ذلك Tezos و Cardano. يجب أن يقلل استخدام التحقق الرسمي بشكل كبير من حالات رمز عربات التي تجرها الدواب الملتزمة بشبكات البلوك تشين وبالتالي تقليل الحاجة إلى تدقيق العقود الذكية المكثف من قبل أطراف ثالثة.

تم تصميم Scilla بعناية ليكون معبرًا بدرجة كافية لإنشاء dapps مفيدة ، مع ضمان التفكير الرسمي حول سلوك العقد. على غرار Vyper ، فإن المبدأ الأساسي هو البساطة والأمان على التعبير. هناك تمييز مهم يجب إجراؤه حول Scilla على الرغم من أنه ملف لغة متوسطة المستوى, مما يعني أنه من المفترض أن يكون هدفًا للترجمة للغات عالية المستوى ثم يتم تجميعه لاحقًا في رمز ثانوي قابل للتنفيذ. نتيجة لذلك ، تعتبر اللغة أكثر صعوبة في الفهم من لغة عالية المستوى مثل Solidity.

يفصل Scilla الاتصال والحساب ، مما له عواقب كبيرة على كيفية تنفيذ العقود. يتم تنظيم العقود على النحو التالي التواصل الآلي حيث يتم تنفيذ الحسابات في العقد كتحولات ذرية بدون التي تنطوي على أي أطراف أخرى. علاوة على ذلك ، تؤدي حالة المشاركة المطلوبة من قبل طرف آخر إلى الإبلاغ صراحةً عن نهاية الانتقال. يمكن بعد ذلك فصل التأثيرات الخاصة بالعقد مثل التحولات عن تفاعلات blockchain مثل الرسائل وإرسال / تلقي الأموال.

بالإضافة إلى ذلك ، يوفر Scilla الفصل بين فعال و نقي الحسابات مع الفصل بين استدعاء و استمرار. فيما يتعلق بالحسابات الفعالة والنقية ، يستمد Scilla الإلهام من البرمجة الوظيفية مستشهداً بما يلي:

“من خلال تصميم دلالات التفاعل بين جوانب اللغة النقية وغير النقية بعناية ، نضمن عددًا من الخصائص الأساسية حول انتقالات العقد ، مثل التقدم وحفظ النوع ، مع جعلها أيضًا قابلة للتفاعل التفاعلي و / أو التحقق التلقائي باستخدام أدوات قائمة بذاتها”

يشير فصل الاحتجاج والاستمرار إلى هيكلة العقود على أنها اتصالات آلية لتوفير أ CPS نموذج حسابي. باستخدام هذا النموذج مع استمرارية واضحة ، يمكن ترجمة لغات مثل Solidity مباشرة إلى Scilla دون المساس بسلامة بنية الأوتوماتا.

يتم تمكين مكون التحقق الرسمي لـ Scilla من خلال تضمينه في مساعد إثبات Coq, نظام إدارة إثبات رسمي مصمم لتوفير أدلة تم التحقق منها ميكانيكيًا للعقود الذكية والتطبيقات الموزعة. والنتيجة هي التحقق الرسمي من العقود التي تدل على خصائص كل من سلامة و الحياة. الصواب في الأنظمة الموزعة يمكن فصلها إلى السلامة والحيوية. وبحسب زليقة:

سلامة عندما “لا شيء يسير على ما يرام“- هذا ضمان أن هناك شيئًا سيئًا أبدا يحدث. بالإجماع ، يحدث هذا عندما لا تقرر عمليتان قيمًا مختلفة. مثال آخر هو أنه لا يوجد طريق مسدود في أنظمة المعاملات الموزعة. للسلامة عواقب مهمة على السلامة العامة للعقود الذكية على المدى الطويل.

الحياة حيث “قد تحدث أشياء معينة في النهاية“- ضمان حسن النية في النهاية يحدث. كلمة “في النهاية” لا تعني أيضًا أن النظام محدد زمنيًا ولكن إذا كان النظام يعمل لفترة كافية ، فعندئذٍ تكون الحياة مضمونة. على سبيل المثال ، بالإجماع ، ستقرر جميع العمليات في النهاية قيمة ما. مثال آخر هو اكتمال أجهزة كشف الأعطال التي ستكتشف في النهاية العمليات المعيبة.

يجب أن يثبت تطوير Zilliqa لـ Scilla بالتوازي مع إضفاء الطابع الرسمي وإدراجه في Coq قرارًا قيمًا للسلامة المستقبلية للعقود الذكية التي تعمل على blockchain عالية الإنتاجية.

أخيرًا ، يعد Scilla حياديًا في blockchain ويمكن استخدامه في blockchain أخرى. ومع ذلك ، لا يزال قيد البحث والتطوير النشط ، بشكل أساسي مع فريق Zilliqa. سيلا موقع الكتروني يوفر أيضًا برنامجًا تعليميًا و IDE عبر الإنترنت لتجربة اللغة.

خاتمة

من المؤكد أن الابتكار المستمر في تطوير العقود الذكية سيشهد ظهور المزيد من لغات البرمجة القائمة على العقود والحلول لمعالجة أمنها. تعد الحاجة إلى أمان dapps والعقود الذكية ذات أهمية قصوى بالنظر إلى كميات القيمة التي يتم تحويلها عبر شبكات العملات المشفرة الكبيرة مثل Ethereum.

أظهرت التكرارات الأولية للعقود الذكية إمكانات كبيرة في قدراتها المستقبلية. الآن ، تركز فئة جديدة من التطورات على تحسين أمانها على مستوى لغة البرمجة لضمان استدامتها.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me