لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.
الإجابة المباشرة
في منظومة EVM، معرّف السلسلة هو عدد صحيح مضبوط يُستخدم كمعلمة لنطاق منع إعادة التشغيل. يربطه EIP-155 بتوقيعات المعاملات القديمة المحمية، بينما تدرجه صيغ المعاملات النمطية مثل النوع 2 في الحمولة الموقعة الخاصة بها، وتكشف التعليمة CHAINID عنه أثناء تنفيذ EVM، ويبلّغ عنه eth_chainId عبر JSON-RPC. هذه واجهات مترابطة وليست شهادة هوية شاملة.
لا توجد ضمانة بأن تكون القيمة فريدة عالميًا أو دائمة. فقد تعيد الشبكات الخاصة والانقسامات الخلافية استخدامها، وقد يقدم RPC معلومة كاذبة، وقد يحمل العنوان نفسه شيفرة وحالة مختلفتين على سلسلتين. يتضمن EIP-712 حقلًا اختياريًا لمعرّف السلسلة ضمن النطاق، في حين تخضع الرسائل الخام والأنظمة غير التابعة لـ EVM لقواعد أخرى لمنع إعادة التشغيل وتحديد الشبكة. لذلك يتطلب الاستخدام الصحيح تثبيت مخطط التوقيع ونقطة الاتصال وكتلة التكوين أو نقطة التحقق ونطاق التطبيق بدقة.
آلية العمل
- حدّد أولًا المنظومة ودلالة المعرّف: عدد EIP-155 الصحيح في EVM، أو نطاق EIP-712، أو مرجع CAIP-2 المسبوق بمساحة اسم، أو معرّف سلسلة Cosmos النصي، أو تجزئة تكوين Solana، أو مخطط آخر. لا تقارن أبدًا رقمًا غير مؤهل بين منظومات مختلفة.
- ثبّت لقطة موثوقة للشبكة: رابط RPC، ومعرّف السلسلة المتوقع بالعشري والسداسي عشري، وكتلة التكوين أو نقطة تحقق نهائية، ورأس السلسلة، وإعداد العميل، و
codeHashللعقود الرئيسية، وطابع المصدر الزمني. اسم الشبكة وأيقونتها في المحفظة بيانات وصفية غير موثوقة. - استعلم عن
eth_chainIdلتوقيع EVM، وحلّل كمية JSON-RPC السداسية العشرية دون فقد الدقة. قارن العدد الصحيح الموحّد بالإعداد المتوقع وحالة مزود المحفظة، ولا تستبدله بـnet_version، وارفض أي عدم تطابق قبل إنشاء التوقيع. - أعد بناء نطاق التوقيع بدقة. ميّز بين المعاملات القديمة غير المحمية وترميز EIP-155 القديم المحمي والأغلفة النمطية؛ وفي EIP-712 تحقق من حقول النطاق و
verifyingContractوالعدد المتسلسل والموعد النهائي؛ وفي الأوامر المرحّلة أو أوامر الحسابات الذكية افحص تجزئة البروتوكول الداخلية. - تحقق من هدف التنفيذ على السلسلة النشطة: المستلم والقيمة وcalldata وعنوان الرمز وشيفرة العقد أو تنفيذ الوكيل والعدد المتسلسل للحساب والرسوم والحالة المحاكاة. يفصل معرّف السلسلة نطاقًا لكنه لا يثبت أصالة أي من هذه العناصر.
- تعامل مع حدث EIP-1193
chainChangedوتغيّر الحسابات والانقطاع كحدود صارمة للحالة. تخلص من السعر والموافقة والعدد المتسلسل والمحاكاة وطلبات التوقيع المخزنة، ثم أعد قراءة السلسلة والهدف، ولا تبث المعاملة الخام التي روجعت إلا إلى نقطة الاتصال المثبتة. - طابق المعاملة على السلسلة المقصودة: البايتات الخام الموقعة والتجزئة وقبول 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.
موضوعات ذات صلة
المصادر
- EIP-155: Simple replay attack protection - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- EIP-1344: ChainID opcode - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- EIP-1193: Ethereum Provider JavaScript API - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- EIP-3085: wallet_addEthereumChain RPC Method - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- CAIP-2: Blockchain ID Specification - Chain Agnostic Improvement Proposals (تاريخ الاطلاع: 2026-08-12)
- getGenesisHash RPC Method - Solana Documentation (تاريخ الاطلاع: 2026-08-12)