الانتقال إلى المحتوى

معرّف السلسلة

دليل يبدأ بالتحقق من معرّفات سلاسل EVM، ونطاقات منع إعادة التشغيل للمعاملات القديمة وفق EIP-155، والمعاملات النمطية، وCHAINID، وفحوص المحفظة وRPC، ونطاقات EIP-712 ومعرّفات الشبكات غير التابعة لـ EVM.

آخر تحديث

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

الإجابة المباشرة

في منظومة EVM، معرّف السلسلة هو عدد صحيح مضبوط يُستخدم كمعلمة لنطاق منع إعادة التشغيل. يربطه EIP-155 بتوقيعات المعاملات القديمة المحمية، بينما تدرجه صيغ المعاملات النمطية مثل النوع 2 في الحمولة الموقعة الخاصة بها، وتكشف التعليمة CHAINID عنه أثناء تنفيذ EVM، ويبلّغ عنه eth_chainId عبر JSON-RPC. هذه واجهات مترابطة وليست شهادة هوية شاملة.

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

آلية العمل

  1. حدّد أولًا المنظومة ودلالة المعرّف: عدد EIP-155 الصحيح في EVM، أو نطاق EIP-712، أو مرجع CAIP-2 المسبوق بمساحة اسم، أو معرّف سلسلة Cosmos النصي، أو تجزئة تكوين Solana، أو مخطط آخر. لا تقارن أبدًا رقمًا غير مؤهل بين منظومات مختلفة.
  2. ثبّت لقطة موثوقة للشبكة: رابط RPC، ومعرّف السلسلة المتوقع بالعشري والسداسي عشري، وكتلة التكوين أو نقطة تحقق نهائية، ورأس السلسلة، وإعداد العميل، وcodeHash للعقود الرئيسية، وطابع المصدر الزمني. اسم الشبكة وأيقونتها في المحفظة بيانات وصفية غير موثوقة.
  3. استعلم عن eth_chainId لتوقيع EVM، وحلّل كمية JSON-RPC السداسية العشرية دون فقد الدقة. قارن العدد الصحيح الموحّد بالإعداد المتوقع وحالة مزود المحفظة، ولا تستبدله بـ net_version، وارفض أي عدم تطابق قبل إنشاء التوقيع.
  4. أعد بناء نطاق التوقيع بدقة. ميّز بين المعاملات القديمة غير المحمية وترميز EIP-155 القديم المحمي والأغلفة النمطية؛ وفي EIP-712 تحقق من حقول النطاق وverifyingContract والعدد المتسلسل والموعد النهائي؛ وفي الأوامر المرحّلة أو أوامر الحسابات الذكية افحص تجزئة البروتوكول الداخلية.
  5. تحقق من هدف التنفيذ على السلسلة النشطة: المستلم والقيمة وcalldata وعنوان الرمز وشيفرة العقد أو تنفيذ الوكيل والعدد المتسلسل للحساب والرسوم والحالة المحاكاة. يفصل معرّف السلسلة نطاقًا لكنه لا يثبت أصالة أي من هذه العناصر.
  6. تعامل مع حدث EIP-1193 chainChanged وتغيّر الحسابات والانقطاع كحدود صارمة للحالة. تخلص من السعر والموافقة والعدد المتسلسل والمحاكاة وطلبات التوقيع المخزنة، ثم أعد قراءة السلسلة والهدف، ولا تبث المعاملة الخام التي روجعت إلا إلى نقطة الاتصال المثبتة.
  7. طابق المعاملة على السلسلة المقصودة: البايتات الخام الموقعة والتجزئة وقبول RPC وحالة الإيصال ورقم الكتلة وتجزئتها واستخدام العدد المتسلسل وتغيّرات الحالة والنهائية المطلوبة. راقب انقسامات السلسلة وتغيّر المعرّف والخلط بين نطاقي L1 وL2 وانحراف المزود، وارفض التنفيذ عند أي فرق غير مفسر.

أمثلة محلولة

  • بوابة RPC بين السداسي العشري والعشري. معرّف سلسلة Base العشري هو 8453، ويعرضه eth_chainId بالقيمة 0x2105: أي 2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453. معرّف شبكة Ethereum الرئيسية هو 1 = 0x1، ومعرّف Arbitrum One هو 42161 = 0xa4b1. إذا كانت المحفظة تتوقع 8453 وتلقت 0x1، فعليها الإلغاء قبل التوقيع بدل الثقة باسم الشبكة المعروض.
  • قيمة v للمعاملة القديمة المحمية. في معاملات EIP-155 القديمة تكون v = 35 + 2 * chainId + yParity. عند معرّف السلسلة 1 تكون القيمتان 37 أو 38، وعند المعرّف 61 تكونان 157 أو 158. وبالعكس، floor((37 - 35) / 2) = 1. لا تنطبق هذه العملية الحسابية على حقل تكافؤ y في المعاملات النمطية، ولا على التوقيعات القديمة غير المحمية التي تستخدم 27 أو 28.
  • معاملة نمطية ورفض السلسلة الخاطئة. ترتبط حمولة من النوع 2 بـ chain_id=8453. مع 21,000 gas ورسوم أساسية 20 gwei وحد أقصى لإكرامية الأولوية 2 gwei وحد أقصى للرسوم 30 gwei، يكون سعر الغاز الفعلي min(30, 20 + 2) = 22 gwei وتكون الرسوم 21,000 * 22 gwei = 0.000462 ETH. ترفض سلسلة تطبق القواعد بصورة صحيحة ومضبوطة على المعرّف 1 هذه الحمولة الموقعة بسبب اختلاف النطاق، ولذلك لا يستهلك الرفض نفسه غازًا على تلك السلسلة؛ ومع ذلك قد تفشل المعاملة لأسباب أخرى على السلسلة 8453.
  • الأنظمة غير التابعة لـ EVM والمعرّفات المزدوجة. قد يستخدم نشر Cosmos EVM معرّف Cosmos SDK النصي local-1 ومعرّف EVM الصحيح المستقل 262144 = 0x40000. يستخدم توقيع Cosmos الأصلي النص مع رقم الحساب وتسلسله، بينما يستخدم توقيع معاملات EVM النطاق العددي. أما Solana فتعرّف الشبكة بتجزئة التكوين وتستخدم تجزئة كتلة حديثة أو عددًا متسلسلًا دائمًا في رسائل المعاملات، لا عدد EIP-155 الصحيح.

المخاطر

  • الاتصال بنقطة RPC خاطئة أو بسلسلة محفظة نشطة غير مقصودة.
  • الثقة في RPC خبيث يكذب بشأن معرّف السلسلة أو الحالة أو نتيجة البث.
  • الخلط بين تمثيلي معرّف السلسلة السداسي العشري والعشري.
  • فقد الدقة عند تحليل معرّف سلسلة كبير بنوع عددي غير آمن.
  • استخدام net_version كما لو كان مساويًا دائمًا لـ eth_chainId.
  • تفويت حدث EIP-1193 chainChanged أو سباق تبديل الشبكة.
  • إعادة استخدام أعداد متسلسلة أو أسعار أو موافقات أو محاكاة مخزنة بعد التبديل.
  • افتراض أن معرّفات السلاسل مسجلة عالميًا وخالية من التصادم.
  • التوقيع عبر شبكات خاصة أو انقسامات تستخدم معرّف السلسلة نفسه.
  • عدم تحديد السلوك إذا غيّر الانقسام المعرّف أو أبقاه.
  • قبول معاملة قديمة غير محمية لا تحمل نطاق EIP-155.
  • تطبيق صيغة v القديمة على المعاملات النمطية أو التوقيعات الأخرى.
  • افتراض أن الرسالة الخام أو طلب personal_sign يتضمن نطاق السلسلة.
  • حذف معرّف السلسلة من نطاق EIP-712 أو ترميزه خطأ.
  • حذف verifyingContract أو العدد المتسلسل للتطبيق أو الموعد النهائي أو الغرض.
  • الثقة في عناوين عقود متطابقة دون مقارنة الشيفرة والحالة.
  • الخلط بين نطاقات توقيع L1 وL2 ومنشأ الجسر ووجهته.
  • تجاهل النطاق الداخلي لأمر مرحّل أو permit أو عملية حساب ذكي.
  • اعتبار بيانات إضافة الشبكة في المحفظة أو ملصقات المستكشف أو الأيقونات مصادقة للشبكة.
  • إسقاط دلالات EVM على Cosmos أو Solana أو Bitcoin أو بروتوكول آخر.

مفاهيم خاطئة شائعة

  • معرّف السلسلة رقم تسجيل رسمي فريد عالميًا ودائم.
  • معرّف السلسلة الصحيح يثبت أصالة نقطة RPC والشبكة والعقود.
  • كل توقيع Ethereum يلتزم تلقائيًا بمعرّف السلسلة.
  • اختلاف معرّفات السلاسل يمنع إعادة تشغيل كل رسالة موقعة وكل أمر تطبيقي.
  • كل سلسلة كتل تستخدم معرّف سلسلة صحيحًا بأسلوب EIP-155.

موضوعات ذات صلة

المصادر

التنقل

ابحث في الويكي...