كيف تعمل العقود الذكية من الداخل؟ | How Smart Contracts Work Under the Hood

🎓 TheCrypTechAI Learn

تعلّم ببساطة، خطوة بخطوة

معلومة واضحة، ثم خطوة جديدة.

🎓 Learn Web3 والبلوكتشين العقود الذكية والبنية التحتية لـ Web3
الدرس 1 من 6

كيف تعمل العقود الذكية من الداخل؟

تقدم المسار 17%

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

كيف تعمل العقود الذكية من كتابة الكود وترجمته ونشره على البلوكتشين إلى تنفيذ المعاملات وتحديث حالة العقد

1. تبدأ العقود الذكية بالكود

يكتب المطور العقد الذكي باستخدام لغة مخصصة لهذا النوع من البرامج. على شبكات متوافقة مع Ethereum تُعد Solidity من أشهر اللغات المستخدمة.

يحتوي العقد عادةً على مجموعة من الوظائف Functions والبيانات State Variables والقواعد التي تحدد ما يمكن للمستخدمين أو العقود الأخرى القيام به.

2. ترجمة العقد Compile

قبل نشر العقد، يتم تحويل الكود إلى صيغة تستطيع البيئة التنفيذية للبلوكتشين التعامل معها.

في Ethereum ينتج عن عملية الترجمة Bytecode يمكن تنفيذه بواسطة Ethereum Virtual Machine أو EVM، بالإضافة إلى معلومات تساعد التطبيقات على معرفة الوظائف التي يوفرها العقد.

3. نشر العقد على البلوكتشين

بعد الترجمة يتم إرسال معاملة لنشر العقد على الشبكة.

عند نجاح عملية النشر يصبح للعقد عنوان Contract Address يمكن استخدامه للتفاعل معه.

نشر العقد واستخدام الوظائف التي تغير حالة الشبكة يتطلب موارد حسابية، ولذلك ترتبط هذه العمليات برسوم Gas.

4. ماذا يوجد داخل العقد الذكي؟

لفهم كيف تعمل العقود الذكية، من المفيد معرفة بعض مكوناتها الأساسية:

Variables: بيانات يحتفظ بها العقد، مثل الأرصدة أو العناوين أو الإعدادات.

Functions: وظائف تحدد العمليات التي يستطيع العقد تنفيذها.

Events: سجلات يمكن للعقد إصدارها عندما تحدث عمليات معينة، وتستطيع التطبيقات مراقبتها.

Modifiers وشروط الوصول: قواعد يمكن استخدامها لتحديد من يستطيع تنفيذ وظيفة معينة وتحت أي شروط.

5. كيف يتفاعل المستخدم مع العقد؟

عادةً لا يتعامل المستخدم مع الكود مباشرة. تطبيق dApp يعرض واجهة سهلة مثل زر Swap أو Deposit أو Mint.

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

تظهر المعاملة في المحفظة حتى يستطيع المستخدم مراجعتها وتوقيعها قبل إرسالها إلى الشبكة.

6. ماذا يحدث بعد إرسال المعاملة؟

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

إذا استوفت المعاملة شروط العقد وتم تنفيذها بنجاح، يمكن أن تتغير حالة العقد، مثل تحديث رصيد أو تسجيل ملكية أو تنفيذ عملية داخل بروتوكول DeFi.

القراءة تختلف عن الكتابة

ليست كل عملية تفاعل مع العقد معاملة تغير البلوكتشين.

يمكن قراءة بعض البيانات مثل رصيد أو قيمة مخزنة دون تغيير حالة العقد. أما تنفيذ وظيفة تقوم بتغيير البيانات على الشبكة فيحتاج عادةً إلى معاملة.

ما هي حالة العقد State؟

State هي البيانات الدائمة التي يحتفظ بها العقد على البلوكتشين.

على سبيل المثال، قد يحتفظ عقد توكن بأرصدة العناوين، بينما يحتفظ عقد آخر بمعلومات ملكية أصل رقمي أو بيانات بروتوكول معين.

عندما تنفذ معاملة وظيفة تغير هذه البيانات، يتم تحديث حالة العقد بعد نجاح التنفيذ.

ما هي Events؟

يمكن للعقد إصدار Events لتسجيل أن حدثًا معينًا وقع.

على سبيل المثال، قد يصدر عقد توكن حدث Transfer عند انتقال التوكنات من عنوان إلى آخر، ويمكن لواجهات التطبيقات والخدمات متابعة هذه الأحداث والاستجابة لها.

أين تدخل رسوم Gas؟

تنفيذ العمليات على Ethereum يحتاج إلى موارد حسابية، ويتم قياس هذا العمل باستخدام Gas.

العمليات الأكثر تعقيدًا أو التي تتطلب كتابة بيانات أكبر على الشبكة يمكن أن تستهلك Gas أكثر من العمليات الأبسط.

لهذا السبب يجب مراجعة رسوم الشبكة التي تظهر في المحفظة قبل تأكيد المعاملة.

هل يمكن تغيير العقد بعد نشره؟

كود العقد المنشور نفسه مصمم ليكون غير قابل للتعديل مباشرة. لكن توجد أنماط تطوير متقدمة مثل Upgradeable Contracts تستخدم عدة عقود وآليات مثل Proxy لتسمح للمشروع بتوجيه التفاعل إلى منطق جديد.

لذلك عبارة “العقد لا يمكن تغييره” تحتاج إلى فهم بنية المشروع كاملة، وليس النظر إلى عنوان واحد فقط.

لماذا يجب فهم العقد قبل التفاعل معه؟

توقيع معاملة قد يؤدي إلى تنفيذ وظيفة داخل عقد ذكي وتغيير حالة البلوكتشين، ولذلك من المهم معرفة العقد الذي تتفاعل معه والصلاحيات التي تمنحها.

إذا كنت تتعامل مع توكن غير معروف، يمكنك استخدام

Token Security Checker من TheCrypTechAI

كإحدى خطوات البحث الأولية قبل التفاعل معه.

وإذا وصلك رابط dApp غير معروف، يمكنك فحصه أولًا باستخدام

Suspicious Link Checker
.

مصدر إضافي

للتعمق أكثر في الوظائف والمتغيرات والأحداث وطريقة بناء العقود، يمكنك قراءة

دليل Ethereum الرسمي لبنية العقود الذكية
.

الخلاصة

لفهم كيف تعمل العقود الذكية من الداخل، تذكر التسلسل الأساسي:

كتابة الكود ← Compile ← نشر العقد ← عنوان العقد ← معاملة المستخدم ← تنفيذ الوظيفة ← تحديث الحالة ← تسجيل الأحداث.

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

في الدرس التالي سنتعرف على Oracles، ولماذا تحتاج العقود الذكية أحيانًا إلى طريقة للحصول على معلومات من خارج البلوكتشين.

🧠

اختبر فهمك

سؤالان سريعان لتثبيت أهم ما تعلمته.

السؤال 1 من 2
ما الخطوة التي تجعل العقد الذكي متاحًا للتفاعل معه على البلوكتشين؟
السؤال 2 من 2
ماذا يحدث عادةً عند تنفيذ وظيفة تغيّر بيانات العقد الذكي؟