كيف تجمع أوراكل DeFi الأسعار وتنشرها
تعرّف إلى تجميع ملاحظات السوق، ومحفزات التحديث، ووحدات السعر وفحص التقادم، وحالة مُسلسِل الطبقة الثانية وحدود هذه الضوابط.
في هذا الدليلالأوراكل ينشر مرجعاً لا سعراً قابلاً للتنفيذ
ملخص موجز
أوراكل السعر آلية تنقل مرجعاً خارج البلوك تشين إلى عقد ذكي. في تصميم شائع لتغذية الدفع، تُجمع عدة ملاحظات خارج السلسلة في تقرير موقّع، ثم يُنشر التقرير على السلسلة ويقرأ البروتوكول أحدث إجابة. تؤثر عتبة الانحراف وheartbeat في توقيت النشر؛ وعلى المستهلك فحص الكسور ووحدة التسعير ووقت التحديث، وحالة المُسلسِل على بعض شبكات الطبقة الثانية. تخفف هذه الضوابط مخاطر محددة لكنها لا تثبت أن السعر صحيح أو حديث بما يكفي لكل استخدام أو آمن لكل معاملة.
الأوراكل ينشر مرجعاً لا سعراً قابلاً للتنفيذ
يربط الأوراكل المعلومات خارج البلوك تشين بالكود الذي يعمل على السلسلة. قد يقرأ بروتوكول إقراض تغذية سعر لضمانات القرض، وقد يستخدم عقد مشتقات مرجعاً للتسوية أو اختبار حد للمخاطر. يستطيع العقد قراءة القيمة المنشورة في حالة الشبكة، لكنه لا يفحص مباشرة دفتر أوامر كل بورصة كي يقرر أي سعر خارجي عادل.
كلمة «السعر» قد تصف مقاييس مختلفة: أصلاً مقابل عملة تسعير، أو معدل استرداد يحدده بروتوكول، أو كمية أخرى. ولا تعني تلقائياً أن هذا هو السعر الذي يمكن بيع مركز كبير عنده. اطلع على دليل أثر السعر والانزلاق في مبادلات DEX وعلى الفرق بين سعر العلامة وآخر صفقة. يشرح هذا المقال تغذيات الدفع الشائعة على EVM، لا قاعدة موحدة لكل DeFi.
كيف تتحول الملاحظات إلى إجابة على السلسلة
في تصميم Offchain Reporting لدى Chainlink تتبادل عقد الأوراكل الملاحظات خارج السلسلة وتتفق على تقرير. يوقّع نصابٌ التقرير، ثم يرسله ناقل في معاملة؛ يتحقق المجمع من التوقيعات ويعرض الإجابة ومعرّف الجولة والطابع الزمني. يشرح توثيق Offchain Reporting كيف تعرض البنية الموثقة وسيط الملاحظات بعد التحقق من التقرير على السلسلة.
لا يعيد عقد المستهلك عادةً عملية الجمع كاملة، بل يستدعي latestRoundData() في عنوان الوكيل الخاص بالتغذية. قد يتغير المجمع خلف الوكيل، لذلك راجع دليل القراءة على EVM ومرجع الواجهة والعنوان الخاص بالشبكة. تعدد العقد لا يضمن تنوع مصادرها؛ فقد تعتمد على بورصات أو مزودي بيانات متداخلين.

Heartbeat والانحراف يحددان محفزات النشر
تجمع تغذيات الدفع الشائعة بين عتبة انحراف ومحفز زمني. قد يطلب الانحراف تقريراً جديداً إذا تحرك السعر بنسبة محددة عن آخر قيمة منشورة؛ وقد يطلب heartbeat التحديث بعد مدة حتى من دون تجاوز العتبة. تعرض قائمة Data Feeds الحالية وصفحة عناوين التغذية الشبكة والزوج والإعدادات الخاصة بكل تغذية.
هذه الإعدادات تخص كل تغذية، وليست وعداً عاماً بالتحديث كل عدد ثابت من الثواني. حركة صغيرة قد لا تطلق تحديث الانحراف، وقد يصل التحديث بعد جمع البيانات وإرسال المعاملة وإدراجها في كتلة. لذلك لا يضمن heartbeat أن القيمة لا تصبح قديمة، ولا أن النشر يصل في لحظة معينة. يحدد التطبيق بنفسه العمر المقبول استناداً إلى سرعة الأصل ووظيفة العقد.
فسّر الإجابة والكسور ووحدة التسعير
تعيد latestRoundData() رقم الجولة وanswer ووقتي بدء الجولة وتحديثها وansweredInRound. ويصنف مرجع API الحقل الأخير على أنه مهجور. الإجابة عدد صحيح بتنسيق ثابت؛ اقرأ decimals() ووصف التغذية كي تفهم وحدتها. إذا أعادت تغذية BTC/USD افتراضية 6,725,000,000,000 مع 8 كسور، فالقيمة المقروءة هي 67,250 دولاراً لكل BTC.
كسور السعر تختلف عن كسور الرمز. قد يمثل مقدار ERC-20 ثماني عشرة خانة بينما تستخدم إجابة السعر ثماني خانات. اضبط كل قيمة وفق وحدتها قبل الضرب. كذلك يعني BTC/USD دولارات لكل بيتكوين، بينما USD/BTC هو المقلوب. عند اشتقاق زوج، صحح كسور التغذيتين واقسم بترتيب يحافظ على الوحدات؛ يوضح مثال تحويل وحدة التسعير اشتقاق BTC/EUR من BTC/USD وEUR/USD.
فحص التقادم قاعدة يضعها التطبيق
يشير updatedAt إلى وقت تحديث الجولة الأخيرة. يستطيع المستهلك مقارنته بوقت الكتلة الحالية ورفض إجابة تجاوزت الحد العمري الذي اختاره التطبيق. يمكنه أيضاً فحص وقت تحديث غير صفري وإجابة موجبة لتغذية سعر أصل موجب وحدود معقولة. يجب أن تناسب الحدود المنتج؛ فحد ثابت ضيق قد يرفض حركة مشروعة، وحد واسع قد لا يمنع مخاطرة.
لنفترض سوق إقراض افتراضياً يقبل أربع وحدات ضمان ويحتسب 75% منها. كانت الإجابة 200,000,000,000 مع 8 كسور، أي 2,000 دولار للوحدة، فيكون حد الاقتراض 4 × $2,000 × 75% = $6,000. إذا انخفض السوق إلى 1,820 دولاراً وكانت الإعدادات المفترضة 10% للانحراف و60 دقيقة للـheartbeat، فقد لا يكون أي محفز قد طلب تقريراً بعد. الحساب بالسعر المنخفض يعطي 5,460 دولاراً، أي أقل بـ540 دولاراً.
إذا رفض التطبيق سعراً عمره أكثر من خمس دقائق وكانت الجولة الحالية أقدم بعشرين دقيقة، يمكنه منع اقتراض جديد بدلاً من استخدام 2,000 دولار. لا يحدّث ذلك التغذية؛ بل يغيّر العمليات المسموحة أثناء قدم البيانات. وقد تكون استجابة السحب أو التصفية أو السداد مختلفة لأن إيقاف كل العمليات يخلق ضرراً أيضاً. الأرقام والإعدادات هنا افتراضية للتوضيح، وليست إعدادات حالية أو توصية.
فحوص مُسلسِل L2 تعالج خطراً مختلفاً
يرسل المستخدمون في كثير من شبكات الطبقة الثانية معاملاتهم عبر مُسلسِل. عند توقفه أو عودته قد تتأخر المعاملات، أو يصعب التداول المعتاد، وقد تنفذ الأوامر لاحقاً بعد تغير السوق. لا تثبت إجابة سعر تبدو حديثة أن مسار التنفيذ يعمل أو أن الجميع استطاعوا التصرف في الوقت نفسه.
توثق Chainlink تغذية مستقلة لحالة مُسلسِل L2: answer == 0 يعني أنه يعمل وanswer == 1 يعني أنه متوقف. يسجل startedAt وقت تغير الحالة. ويفحص المثال حالة التشغيل وينتظر فترة سماح يحددها التطبيق بعد التعافي قبل قراءة السعر. تحقق من عنوان التغذية وسلوك الشبكة الفعلي في دليل تغذيات حالة مُسلسِل L2. فترة السماح ليست ضماناً لتحديث السعر أو اكتمال المعاملات المؤجلة.
هذه الضوابط لا تضمن سعراً صحيحاً أو نتيجة عادلة
النصاب والوسيط والانحراف وheartbeat وحد العمر وحالة المُسلسِل تجيب عن أسئلة محددة فقط. لا تضمن سيولة الأسواق، أو صحة هوية الأصل، أو استقلال مزودي البيانات، أو سعراً قابلاً للتنفيذ لحجم معاملة معين. قد يصاحب الطابع الزمني الحديث قيمة خاطئة أو متلاعباً بها، وقد يبقى السعر القديم قريباً من السوق خلال فترة هادئة.
لا يلغي أي محفز فجوات السعر أو ازدحام الشبكة أو أخطاء العقد في الوحدات أو اختيار الزوج أو شروط التقادم والتصفية. توصي إرشادات اختيار التغذيات وتقييم مخاطرها بفحص السيولة والتبعيات والاستعداد للبيانات القديمة أو المتأخرة أو المفقودة أو غير المتوقعة. ولا تزيل الضوابط مخاطر العقود والحوكمة والجسور والضمانات والسيولة. كما أن سعر أوراكل العملة المستقرة لا يثبت إمكانية استردادها بالقيمة الاسمية؛ راجع دليل فك ارتباط العملات المستقرة.
تتبّع مسار السعر كاملاً قبل الاعتماد عليه
حدد الشبكة وعنوان وكيل التغذية والزوج وعملة التسعير وكسور الإجابة. طابق وصف التغذية مع الأصل المقصود ولا تنسخ عنوان شبكة أخرى. راجع نموذج المصادر وتاريخ التحديث إن كان الاستخدام يتطلب مراقبة أدق. تشير Chainlink إلى اختلاف المجمعات بين الشبكات وإلى ضرورة مراجعة الشيفرة والإعدادات الخاصة بالتغذية.
بعدها اتبع استخدام الإجابة: تحويل الكمية والوحدات، وفحص updatedAt، وتحديد الحد الأقصى للعمر، واختيار الإجراء عند قيمة غير صالحة. في L2 تحقق من تغذية التشغيل ووقت التعافي وفترة السماح وطريقة معالجة المعاملات المؤجلة. اختبر حالة التغذية القديمة وحالة التوقف والتعافي على منطق العقد الفعلي. وللمقارنة السعرية، راجع ما الفرق بين أسعار السوق والعلامة؟.
أسئلة شائعة
Q1هل يعني heartbeat أن السعر لن يصبح أقدم من تلك المدة؟
لا. إنه محفز زمني في تصميم تحديث التغذية، وليس ضماناً لوصول النشر وإدراجه في كتلة في لحظة دقيقة أو لمطابقة السوق دائماً. افحص updatedAt وضع سياسة عمر تناسب الاستخدام.
Q2هل يمكن أن يكون وسيط الأوراكل خاطئاً؟
نعم. قد يخفف الوسيط أثر بعض القيم الشاذة، لكنه لا يصلح مشكلة مصدر مشترك أو سوقاً ضعيف السيولة أو زوجاً خاطئاً أو خطأ في منطق المستهلك.
Q3هل تغذية حالة مُسلسِل L2 هي نفسها فحص قدم السعر؟
لا. الأولى تعلن حالة المُسلسِل ووقت تغيرها؛ والثاني يقارن updatedAt للسعر بالوقت الحالي. وقد يحتاج التطبيق إلى الاثنين وفترة سماح بعد التعافي.
المصادر والقراءة الإضافية
الإبلاغ عن مشكلة
سنُعدّ رسالة تتضمن رابط هذا المقال. لن يصل البلاغ إلى Mark إلا بعد إرسالها
تحقق سريع
بعد قراءة الدليل، اختبر نفسك في 3 أسئلة
السؤال 01
أعادت تغذية BTC/USD القيمة `6,725,000,000,000` مع 8 كسور. ما السعر المقروء؟
اختر إجابة لرؤية الشرح