تخطي إلى المحتوى الرئيسي
Change page

⁦Oracles⁩

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

إن منح العقود الذكية القدرة على التنفيذ باستخدام بيانات خارج السلسلة يوسع من فائدة وقيمة التطبيقات اللامركزية (dapps). على سبيل المثال، تعتمد أسواق التوقعات على السلسلة على الأوراكل لتوفير معلومات حول النتائج التي تستخدمها للتحقق من صحة توقعات المستخدمين. لنفترض أن أليس راهنت بـ 20 ETH على من سيصبح الرئيس الأمريكي القادم. في هذه الحالة، يحتاج التطبيق اللامركزي (dapp) لسوق التوقعات إلى أوراكل لتأكيد نتائج الانتخابات وتحديد ما إذا كانت أليس مؤهلة للحصول على العائد.

المتطلبات الأساسية

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

ما هو أوراكل البلوكتشين؟

الأوراكل هي تطبيقات تقوم بجلب المعلومات الخارجية (أي المعلومات المخزنة خارج السلسلة) والتحقق منها ونقلها إلى العقود الذكية التي تعمل على سلسلة الكتل. إلى جانب "سحب" البيانات خارج السلسلة وبثها على إيثيريوم، يمكن للأوراكل أيضًا "دفع" المعلومات من سلسلة الكتل إلى الأنظمة الخارجية، على سبيل المثال، فتح قفل ذكي بمجرد أن يرسل المستخدم رسومًا عبر معاملة إيثيريوم.

بدون أوراكل، سيكون العقد الذكي مقتصرًا بالكامل على البيانات على السلسلة.

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

لماذا تحتاج العقود الذكية إلى الأوراكل؟

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

لكن استخدام العقود الذكية لفرض الاتفاقيات بين الأشخاص ليس بالأمر السهل، نظرًا لأن إيثيريوم حتمية. النظام الحتمي (opens in a new tab) هو النظام الذي ينتج دائمًا نفس النتائج بالنظر إلى حالة أولية ومدخلات معينة، مما يعني عدم وجود عشوائية أو تباين في عملية حساب المخرجات من المدخلات.

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

  • "هل قام مالك الحساب (المحدد بواسطة مفتاح عام) بتوقيع هذه المعاملة باستخدام المفتاح الخاص المقترن؟"
  • "هل يمتلك هذا الحساب أموالاً كافية لتغطية المعاملة؟"
  • "هل هذه المعاملة صالحة في سياق هذا العقد الذكي؟"، إلخ.

إذا تلقت سلاسل الكتل معلومات من مصادر خارجية (أي من العالم الحقيقي)، فسيكون من المستحيل تحقيق الحتمية، مما يمنع العقد من الاتفاق على صحة التغييرات في حالة سلسلة الكتل. خذ على سبيل المثال عقدًا ذكيًا ينفذ معاملة بناءً على سعر صرف ETH-USD الحالي الذي تم الحصول عليه من واجهة برمجة تطبيقات (API) تقليدية للأسعار. من المرجح أن يتغير هذا الرقم بشكل متكرر (ناهيك عن أن الـ API قد يتم إيقافها أو اختراقها)، مما يعني أن العقد التي تنفذ نفس كود العقد ستصل إلى نتائج مختلفة.

بالنسبة لسلسلة كتل عامة مثل إيثيريوم، مع وجود آلاف العقد حول العالم التي تعالج المعاملات، فإن الحتمية أمر بالغ الأهمية. مع عدم وجود سلطة مركزية تعمل كمصدر للحقيقة، تحتاج العقد إلى آليات للوصول إلى نفس الحالة بعد تطبيق نفس المعاملات. الحالة التي تنفذ فيها العقدة أ كود عقد ذكي وتحصل على "3" كنتيجة، بينما تحصل العقدة ب على "7" بعد تشغيل نفس المعاملة، ستؤدي إلى انهيار الإجماع والقضاء على قيمة إيثيريوم كمنصة حوسبة لامركزية.

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

للقيام بذلك، يتكون الأوراكل عادةً من عقد ذكي يعمل على السلسلة وبعض المكونات خارج السلسلة. يتلقى العقد على السلسلة طلبات للحصول على بيانات من عقود ذكية أخرى، والتي يمررها إلى المكون خارج السلسلة (يسمى عقدة الأوراكل). يمكن لعقدة الأوراكل هذه الاستعلام عن مصادر البيانات - باستخدام واجهات برمجة التطبيقات (APIs)، على سبيل المثال - وإرسال معاملات لتخزين البيانات المطلوبة في مساحة تخزين العقد الذكي.

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

ما هي مشكلة الأوراكل؟

تحل الأوراكل مشكلة مهمة، ولكنها تقدم أيضًا بعض التعقيدات، على سبيل المثال:

  • كيف نتحقق من أن المعلومات المحقونة تم استخراجها من المصدر الصحيح أو لم يتم العبث بها؟

  • كيف نضمن أن هذه البيانات متاحة دائمًا ويتم تحديثها بانتظام؟

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

تقدم الأوراكل المختلفة حلولاً مختلفة لمشكلة الأوراكل، والتي نستكشفها لاحقًا. يتم تقييم الأوراكل عادةً بناءً على مدى قدرتها على التعامل مع التحديات التالية:

  1. الصحة: يجب ألا يتسبب الأوراكل في قيام العقود الذكية بإطلاق تغييرات في الحالة بناءً على بيانات غير صالحة خارج السلسلة. يجب أن يضمن الأوراكل أصالة و_سلامة_ البيانات. تعني الأصالة أن البيانات تم الحصول عليها من المصدر الصحيح، بينما تعني السلامة أن البيانات ظلت سليمة (أي لم يتم تغييرها) قبل إرسالها على السلسلة.

  2. التوافر: يجب ألا يؤخر الأوراكل أو يمنع العقود الذكية من تنفيذ الإجراءات وإطلاق تغييرات الحالة. هذا يعني أن البيانات الواردة من الأوراكل يجب أن تكون متاحة عند الطلب دون انقطاع.

  3. توافق الحوافز: يجب أن يحفز الأوراكل مزودي البيانات خارج السلسلة على تقديم معلومات صحيحة للعقود الذكية. يتضمن توافق الحوافز القدرة على الإسناد و_المساءلة_. تسمح القدرة على الإسناد بربط جزء من المعلومات الخارجية بمزودها، بينما تلزم المساءلة مزودي البيانات بالمعلومات التي يقدمونها، بحيث يمكن مكافأتهم أو معاقبتهم بناءً على جودة المعلومات المقدمة.

كيف تعمل خدمة أوراكل البلوكتشين؟

المستخدمون

المستخدمون هم كيانات (أي عقود ذكية) تحتاج إلى معلومات خارجية عن سلسلة الكتل لإكمال إجراءات محددة. يبدأ سير العمل الأساسي لخدمة الأوراكل بإرسال المستخدم طلب بيانات إلى عقد الأوراكل. عادةً ما تجيب طلبات البيانات على بعض أو كل الأسئلة التالية:

  1. ما هي المصادر التي يمكن للعقد خارج السلسلة الرجوع إليها للحصول على المعلومات المطلوبة؟

  2. كيف يعالج المراسلون المعلومات من مصادر البيانات ويستخرجون نقاط بيانات مفيدة؟

  3. كم عدد عقد الأوراكل التي يمكنها المشاركة في استرداد البيانات؟

  4. كيف ينبغي إدارة التناقضات في تقارير الأوراكل؟

  5. ما هي الطريقة التي يجب تنفيذها في تصفية التقديمات وتجميع التقارير في قيمة واحدة؟

عقد الأوراكل

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

يعرض عقد الأوراكل بعض الوظائف التي تستدعيها عقود العملاء عند تقديم طلب بيانات. عند تلقي استعلام جديد، سيصدر العقد الذكي حدث سجل بتفاصيل طلب البيانات. يُعلم هذا العقد خارج السلسلة المشتركة في السجل (عادةً باستخدام شيء مثل أمر JSON-RPC eth_subscribe)، والتي تشرع في استرداد البيانات المحددة في حدث السجل.

يوجد أدناه مثال لعقد أوراكل (opens in a new tab) بواسطة بيدرو كوستا. هذه خدمة أوراكل بسيطة يمكنها الاستعلام عن واجهات برمجة التطبيقات (APIs) خارج السلسلة بناءً على طلب من عقود ذكية أخرى وتخزين المعلومات المطلوبة على سلسلة الكتل:

عقد الأوراكل

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

تتمثل المهمة الشائعة لعقد الأوراكل في إرسال طلب HTTP GET (opens in a new tab) إلى خدمة API، وتحليل الاستجابة لاستخراج البيانات ذات الصلة، وتنسيقها في مخرجات قابلة للقراءة بواسطة سلسلة الكتل، وإرسالها على السلسلة من خلال تضمينها في معاملة إلى عقد الأوراكل. قد يُطلب من عقدة الأوراكل أيضًا التصديق على صحة وسلامة المعلومات المقدمة باستخدام "إثباتات الأصالة"، والتي نستكشفها لاحقًا.

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

أنماط تصميم الأوراكل

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

أوراكل النشر والاشتراك

يعرض هذا النوع من الأوراكل "تغذية بيانات" يمكن للعقود الأخرى قراءتها بانتظام للحصول على المعلومات. من المتوقع أن تتغير البيانات في هذه الحالة بشكل متكرر، لذلك يجب أن تستمع عقود العملاء إلى التحديثات على البيانات في مساحة تخزين الأوراكل. مثال على ذلك هو الأوراكل الذي يوفر أحدث معلومات أسعار ETH-USD للمستخدمين.

أوراكل الطلب والاستجابة

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

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

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

الأوراكل المركزية مقابل اللامركزية

الأوراكل المركزية

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

ضمانات صحة منخفضة

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

ضعف التوافر

لا يُضمن أن تجعل الأوراكل المركزية البيانات خارج السلسلة متاحة دائمًا للعقود الذكية الأخرى. إذا قرر المزود إيقاف تشغيل الخدمة أو قام متسلل باختطاف المكون خارج السلسلة للأوراكل، فإن عقدك الذكي معرض لخطر هجوم حجب الخدمة (DoS).

ضعف توافق الحوافز

غالبًا ما يكون لدى الأوراكل المركزية حوافز مصممة بشكل سيئ أو غير موجودة لمزود البيانات لإرسال معلومات دقيقة/غير معدلة. الدفع للأوراكل مقابل الصحة لا يضمن الصدق. تتفاقم هذه المشكلة مع زيادة مقدار القيمة التي تتحكم فيها العقود الذكية.

الأوراكل اللامركزية

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

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

يأتي استخدام الأوراكل اللامركزية مع الفوائد التالية:

ضمانات صحة عالية

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

إثباتات الأصالة

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

تشمل أمثلة إثباتات الأصالة ما يلي:

إثباتات أمان طبقة النقل (TLS): غالبًا ما تسترد عقد الأوراكل البيانات من مصادر خارجية باستخدام اتصال HTTP آمن يعتمد على بروتوكول أمان طبقة النقل (TLS). تستخدم بعض الأوراكل اللامركزية إثباتات الأصالة للتحقق من جلسات TLS (أي تأكيد تبادل المعلومات بين عقدة وخادم معين) وتأكيد عدم تغيير محتويات الجلسة.

تصديقات بيئة التنفيذ الموثوقة (TEE): بيئة التنفيذ الموثوقة (opens in a new tab) (TEE) هي بيئة حسابية معزولة (sandboxed) عن العمليات التشغيلية لنظامها المضيف. تضمن TEEs أن أي كود تطبيق أو بيانات مخزنة/مستخدمة في بيئة الحوسبة تحتفظ بالسلامة والسرية وعدم القابلية للتغيير. يمكن للمستخدمين أيضًا إنشاء تصديق لإثبات أن مثيل التطبيق يعمل داخل بيئة التنفيذ الموثوقة.

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

التحقق من صحة المعلومات القائم على الإجماع

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

ومع ذلك، يجب أن تتعامل الأوراكل اللامركزية مع التناقضات في المعلومات المستردة من مصادر متعددة خارج السلسلة. لتقليل الاختلافات في المعلومات والتأكد من أن البيانات التي تم تمريرها إلى عقد الأوراكل تعكس الرأي الجماعي لعقد الأوراكل، تستخدم الأوراكل اللامركزية الآليات التالية:

التصويت/التخزين على دقة البيانات

تتطلب بعض شبكات الأوراكل اللامركزية من المشاركين التصويت أو التخزين على دقة الإجابات على استعلامات البيانات (على سبيل المثال، "من فاز في الانتخابات الأمريكية لعام 2020؟") باستخدام الرمز المميز الأصلي للشبكة. يقوم بروتوكول التجميع بعد ذلك بتجميع الأصوات وحصص التخزين ويأخذ الإجابة التي تدعمها الأغلبية على أنها الإجابة الصالحة.

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

يحمي التخزين/التصويت أيضًا الأوراكل اللامركزية من حيث ينشئ الفاعلون الخبيثون هويات متعددة للتلاعب بنظام الإجماع. ومع ذلك، لا يمكن للتخزين أن يمنع "الاستغلال المجاني" (عقد الأوراكل التي تنسخ المعلومات من الآخرين) و"التحقق الكسول" (عقد الأوراكل التي تتبع الأغلبية دون التحقق من المعلومات بأنفسهم).

آليات نقطة شيلينغ (Schelling point)

نقطة شيلينغ (opens in a new tab) هي مفهوم في نظرية الألعاب يفترض أن كيانات متعددة ستلجأ دائمًا إلى حل مشترك لمشكلة ما في غياب أي اتصال. غالبًا ما تُستخدم آليات نقطة شيلينغ في شبكات الأوراكل اللامركزية لتمكين العقد من الوصول إلى إجماع حول الإجابات على طلبات البيانات.

كانت الفكرة المبكرة لذلك هي SchellingCoin (opens in a new tab)، وهي تغذية بيانات مقترحة حيث يقدم المشاركون إجابات على أسئلة "عددية" (الأسئلة التي توصف إجاباتها بالحجم، على سبيل المثال، "ما هو سعر ETH؟")، إلى جانب إيداع. يُكافأ المستخدمون الذين يقدمون قيمًا بين النسبة المئوية (opens in a new tab) 25 و 75، بينما يُعاقب أولئك الذين تنحرف قيمهم بشكل كبير عن القيمة المتوسطة.

في حين أن SchellingCoin غير موجودة اليوم، فإن عددًا من الأوراكل اللامركزية - ولا سيما أوراكل بروتوكول Maker (opens in a new tab) - تستخدم آلية نقطة شيلينغ لتحسين دقة بيانات الأوراكل. يتكون كل أوراكل Maker من شبكة نظير إلى نظير (P2P) خارج السلسلة من العقد ("المرحلات" و"التغذيات") التي تقدم أسعار السوق للأصول الضامنة وعقد "Medianizer" على السلسلة الذي يحسب متوسط جميع القيم المقدمة. بمجرد انتهاء فترة التأخير المحددة، تصبح هذه القيمة المتوسطة السعر المرجعي الجديد للأصل المرتبط.

تشمل الأمثلة الأخرى للأوراكل التي تستخدم آليات نقطة شيلينغ تقارير تشين لينك خارج السلسلة (opens in a new tab) وWitnet (opens in a new tab). في كلا النظامين، يتم تجميع الاستجابات من عقد الأوراكل في شبكة نظير إلى نظير في قيمة مجمعة واحدة، مثل المتوسط أو الوسيط. تُكافأ العقد أو تُعاقب وفقًا لمدى توافق استجاباتها مع القيمة المجمعة أو انحرافها عنها.

آليات نقطة شيلينغ جذابة لأنها تقلل من البصمة على السلسلة (يجب إرسال معاملة واحدة فقط) مع ضمان اللامركزية. هذا الأخير ممكن لأن العقد يجب أن توقع على قائمة الاستجابات المقدمة قبل إدخالها في الخوارزمية التي تنتج القيمة المتوسطة/الوسيطة.

التوافر

تضمن خدمات الأوراكل اللامركزية توافرًا عاليًا للبيانات خارج السلسلة للعقود الذكية. يتحقق ذلك من خلال لامركزية كل من مصدر المعلومات خارج السلسلة والعقد المسؤولة عن نقل المعلومات على السلسلة.

يضمن هذا التسامح مع الأخطاء حيث يمكن لعقد الأوراكل الاعتماد على عقد متعددة (والتي تعتمد أيضًا على مصادر بيانات متعددة) لتنفيذ الاستعلامات من العقود الأخرى. اللامركزية في المصدر و مستوى مشغل العقدة أمر بالغ الأهمية - شبكة من عقد الأوراكل التي تخدم المعلومات المستردة من نفس المصدر ستواجه نفس مشكلة الأوراكل المركزي.

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

توافق حوافز جيد

تنفذ الأوراكل اللامركزية تصميمات حوافز مختلفة لمنع السلوك البيزنطي (opens in a new tab) بين عقد الأوراكل. على وجه التحديد، فإنها تحقق القدرة على الإسناد و_المساءلة_:

  1. غالبًا ما يُطلب من عقد الأوراكل اللامركزية توقيع البيانات التي تقدمها استجابة لطلبات البيانات. تساعد هذه المعلومات في تقييم الأداء التاريخي لعقد الأوراكل، بحيث يمكن للمستخدمين تصفية عقد الأوراكل غير الموثوقة عند تقديم طلبات البيانات. مثال على ذلك هو نظام السمعة الخوارزمي (opens in a new tab) الخاص بـ Witnet.

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

تطبيقات الأوراكل في العقود الذكية

فيما يلي حالات الاستخدام الشائعة للأوراكل في إيثيريوم:

استرداد البيانات المالية

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

يحتاج بروتوكول إقراض التمويل اللامركزي (DeFi)، على سبيل المثال، إلى الاستعلام عن أسعار السوق الحالية للأصول (مثل ETH) المودعة كضمان. يتيح هذا للعقد تحديد قيمة الأصول الضامنة وتحديد مقدار ما يمكنه اقتراضه من النظام.

تشمل "أوراكل الأسعار" الشائعة (كما يطلق عليها غالبًا) في التمويل اللامركزي (DeFi) تغذيات أسعار تشين لينك، وتغذية الأسعار المفتوحة (opens in a new tab) لبروتوكول Compound، ومتوسط الأسعار المرجح بالوقت (TWAPs) (opens in a new tab) ليونيسواب، وأوراكل Maker (opens in a new tab).

يجب على البناة فهم المحاذير التي تأتي مع أوراكل الأسعار هذه قبل دمجها في مشروعهم. تقدم هذه المقالة (opens in a new tab) تحليلاً مفصلاً لما يجب مراعاته عند التخطيط لاستخدام أي من أوراكل الأسعار المذكورة.

يوجد أدناه مثال على كيفية استرداد أحدث سعر لـ ETH في عقدك الذكي باستخدام تغذية أسعار تشين لينك:

توليد عشوائية يمكن التحقق منها

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

كان النهج الأصلي هو استخدام وظائف التشفير شبه العشوائية، مثل blockhash، ولكن يمكن التلاعب بها من قبل المعدنين (opens in a new tab) الذين يحلون خوارزمية إثبات العمل (PoW). أيضًا، يعني انتقال إيثيريوم إلى إثبات الحصة (PoS) أنه لم يعد بإمكان المطورين الاعتماد على blockhash للعشوائية على السلسلة. توفر آلية RANDAO (opens in a new tab) الخاصة بسلسلة المنارة مصدرًا بديلاً للعشوائية بدلاً من ذلك.

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

تحل الأوراكل المصممة للحوسبة خارج السلسلة هذه المشكلة عن طريق إنشاء نتائج عشوائية بشكل آمن خارج السلسلة والتي تبثها على السلسلة جنبًا إلى جنب مع إثباتات التشفير التي تشهد على عدم القدرة على التنبؤ بالعملية. مثال على ذلك هو Chainlink VRF (opens in a new tab) (وظيفة عشوائية يمكن التحقق منها)، وهو منشئ أرقام عشوائية (RNG) عادل ومقاوم للعبث يمكن إثباته ومفيد لبناء عقود ذكية موثوقة للتطبيقات التي تعتمد على نتائج غير متوقعة.

الحصول على نتائج للأحداث

مع الأوراكل، يعد إنشاء عقود ذكية تستجيب لأحداث العالم الحقيقي أمرًا سهلاً. تجعل خدمات الأوراكل هذا ممكنًا من خلال السماح للعقود بالاتصال بواجهات برمجة التطبيقات (APIs) الخارجية من خلال مكونات خارج السلسلة واستهلاك المعلومات من مصادر البيانات تلك. على سبيل المثال، قد يطلب التطبيق اللامركزي (dapp) للتوقعات المذكور سابقًا من أوراكل إرجاع نتائج الانتخابات من مصدر موثوق خارج السلسلة (على سبيل المثال، وكالة أسوشيتد برس).

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

أتمتة العقود الذكية

لا تعمل العقود الذكية تلقائيًا؛ بل يجب أن يقوم حساب مملوك خارجيًا (EOA)، أو حساب عقد آخر، بتشغيل الوظائف الصحيحة لتنفيذ كود العقد. في معظم الحالات، يكون الجزء الأكبر من وظائف العقد عامًا ويمكن استدعاؤه بواسطة الحسابات المملوكة خارجيًا (EOAs) والعقود الأخرى.

ولكن هناك أيضًا وظائف خاصة داخل العقد لا يمكن للآخرين الوصول إليها؛ ولكنها ضرورية للوظائف العامة للتطبيق اللامركزي (dapp). تشمل الأمثلة وظيفة mintERC721Token() التي تقوم بشكل دوري بسك رموز غير قابلة للاستبدال (NFTs) جديدة للمستخدمين، أو وظيفة لمنح العوائد في سوق التوقعات، أو وظيفة لفتح الرموز المميزة المخزنة في منصة تداول لامركزية (DEX).

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

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

توفر شبكة Keeper (opens in a new tab) الخاصة بتشين لينك خيارات للعقود الذكية للاستعانة بمصادر خارجية لمهام الصيانة الدورية بطريقة لامركزية وبأقل قدر من الثقة. اقرأ وثائق Keeper (opens in a new tab) الرسمية للحصول على معلومات حول جعل عقدك متوافقًا مع Keeper واستخدام خدمة Upkeep.

كيفية استخدام أوراكل البلوكتشين

هناك العديد من تطبيقات الأوراكل التي يمكنك دمجها في تطبيقك اللامركزي (dapp) على إيثيريوم:

تشين لينك (opens in a new tab) - توفر شبكات أوراكل تشين لينك اللامركزية مدخلات ومخرجات وحسابات مقاومة للعبث لدعم العقود الذكية المتقدمة على أي سلسلة كتل.

أوراكل RedStone (opens in a new tab) - RedStone هو أوراكل معياري لامركزي يوفر تغذيات بيانات محسنة للغاز. وهو متخصص في تقديم تغذيات الأسعار للأصول الناشئة، مثل رمز التخزين السائل (LST)، ورموز إعادة التخزين السائلة (LRTs)، ومشتقات تخزين بيتكوين.

Chronicle (opens in a new tab) - تتغلب Chronicle على القيود الحالية لنقل البيانات على السلسلة من خلال تطوير أوراكل قابلة للتطوير حقًا وفعالة من حيث التكلفة ولامركزية ويمكن التحقق منها.

Witnet (opens in a new tab) - Witnet هو أوراكل غير مقيد بإذن ولامركزي ومقاوم للرقابة يساعد العقود الذكية على التفاعل مع أحداث العالم الحقيقي بضمانات اقتصادية مشفرة قوية.

أوراكل UMA (opens in a new tab) - يسمح أوراكل UMA المتفائل للعقود الذكية بتلقي أي نوع من البيانات بسرعة لتطبيقات مختلفة، بما في ذلك التأمين والمشتقات المالية وأسواق التوقعات.

تيلور (opens in a new tab) - تيلور هو بروتوكول أوراكل شفاف وغير مقيد بإذن لعقدك الذكي للحصول بسهولة على أي بيانات متى احتاج إليها.

بروتوكول Band (opens in a new tab) - بروتوكول Band هو منصة أوراكل بيانات عبر السلاسل تقوم بتجميع وربط بيانات العالم الحقيقي وواجهات برمجة التطبيقات (APIs) بالعقود الذكية.

شبكة Pyth (opens in a new tab) - شبكة Pyth هي شبكة أوراكل مالية من الطرف الأول مصممة لنشر بيانات العالم الحقيقي المستمرة على السلسلة في بيئة مقاومة للعبث ولامركزية ومستدامة ذاتيًا.

API3 DAO (opens in a new tab) - تقدم API3 DAO حلول أوراكل من الطرف الأول توفر شفافية أكبر للمصدر وأمانًا وقابلية للتطوير في حل لامركزي للعقود الذكية

Supra (opens in a new tab) - مجموعة أدوات متكاملة رأسيًا من الحلول عبر السلاسل التي تربط جميع سلاسل الكتل، العامة (L1s و L2s) أو الخاصة (الشركات)، مما يوفر تغذيات أسعار أوراكل لامركزية يمكن استخدامها لحالات الاستخدام على السلسلة وخارج السلسلة.

شبكة Gas (opens in a new tab) - منصة أوراكل موزعة توفر بيانات سعر الغاز في الوقت الفعلي عبر سلسلة الكتل. من خلال جلب البيانات من مزودي بيانات سعر الغاز الرائدين على السلسلة، تساعد شبكة Gas في دفع قابلية التشغيل البيني. تدعم شبكة Gas البيانات لأكثر من 35 سلسلة، بما في ذلك شبكة إيثيريوم الرئيسية والعديد من شبكات الطبقة الثانية (L2s) الرائدة.

DIA (opens in a new tab) - شبكة أوراكل عبر السلاسل تقدم تغذيات بيانات يمكن التحقق منها لأكثر من 20,000 أصل عبر جميع فئات الأصول الرئيسية. تستمد DIA بيانات التداول الأولية مباشرة من أكثر من 100 سوق أولي وتحسبها على السلسلة، مما يضمن شفافية البيانات الكاملة وقابلية التحقق مع تكوينات مخصصة لأي حالة استخدام.

Stork (opens in a new tab) - تقدم Stork بيانات الأسعار بزمن انتقال منخفض للغاية، مما يدعم مجموعة واسعة من حالات الاستخدام بما في ذلك أسواق العقود الدائمة، وبروتوكولات الإقراض، وأنظمة التمويل اللامركزي (DeFi) البيئية، مع دعم الأصول الجديدة بسرعة عند الإدراج.

قراءة إضافية

مقالات

مقاطع فيديو

برامج تعليمية

مشاريع أمثلة