شراء العملات المشفرة
الأسواق
العقود الفورية
العقود الآجلةBTC
مدخرات
مركز الأحداث
مركز المكافآت
المزيد
مهرجان صفر رسوم
النشر الحتمي (CREATE2): ما النشر الحتمي (CREATE2)؟النشر الحتمي (CREATE2) طريقة في آلة Ethereum الافتراضية تتيح للمطورين حساب عنوان عقد ذكي قبل نشره.تستخدم هذه الطريقة تعليمة EVM البرمجية CREATE2، التي يحمل رمزها 0xf5.يحصل الالنشر الحتمي (CREATE2): ما النشر الحتمي (CREATE2)؟النشر الحتمي (CREATE2) طريقة في آلة Ethereum الافتراضية تتيح للمطورين حساب عنوان عقد ذكي قبل نشره.تستخدم هذه الطريقة تعليمة EVM البرمجية CREATE2، التي يحمل رمزها 0xf5.يحصل ال

النشر الحتمي (CREATE2)

2026/10/13 15:27
#Advanced
Humanity
H$0.05454-2.60%
PX
PX$0.0126-1.56%
INIT
INIT$0.12645+2.66%
PUBLIC
PUBLIC$0.007698-3.02%
AINFT
NFT$0.0000002368-0.08%

ما النشر الحتمي (CREATE2)؟

النشر الحتمي (CREATE2) طريقة في آلة Ethereum الافتراضية تتيح للمطورين حساب عنوان عقد ذكي قبل نشره.

تستخدم هذه الطريقة تعليمة EVM البرمجية

CREATE2
، التي يحمل رمزها
0xf5
.

يحصل العقد المنشور باستخدام CREATE2 على عنوان مشتق من العقد الناشر وSalt يختاره المطور وهاش الشيفرة الأولية للعقد.

ويختلف ذلك عن نشر العقود الاعتيادي، إذ يعتمد العنوان الناتج عادةً على عنوان الناشر وقيمة nonce.

لأن CREATE2 لا يستخدم nonce النشر المتغير للناشر، يستطيع المطورون توقع العنوان نفسه حتى إذا أنشأ المصنع عقوداً أخرى في هذه الأثناء.

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

يحدد المعيار النهائي EIP-1014 الخاص بـ CREATE2 التعليمة وصيغة العنوان ومعالجة رسوم الغاز وسلوك التصادم والدافع الأصلي للنشر الافتراضي.

لا يجعل CREATE2 العقد آمناً أو دائماً أو لامركزياً أو متطابقاً تلقائياً على كل بلوكشين.

إنما يوفر طريقة حتمية لاشتقاق عنوان النشر من مدخلات محددة.

لماذا يُسمى CREATE2 حتمياً؟

تكون العملية حتمية عندما تنتج المدخلات نفسها المخرجات نفسها دائماً.

المخرج المعني في CREATE2 هو عنوان العقد الذكي.

أما المدخلات المعنية فهي عنوان ناشر CREATE2 وSalt من 32 بايت وهاش الشيفرة الأولية.

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

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

ويؤدي تغيير أي مدخل في صيغة العنوان إلى عنوان متوقع مختلف.

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

صيغة عنوان CREATE2

يُحسب عنوان CREATE2 باستخدام الصيغة التالية.

address = last20bytes(keccak256(0xff ++ deployer ++ salt ++ keccak256(init_code)))

القيمة

0xff
بادئة من بايت واحد، وتُستخدم لفصل عناوين CREATE2 عن العناوين المنشأة عبر صيغة CREATE الاعتيادية.

يشير

deployer
إلى عنوان العقد من 20 بايت الذي ينفذ مباشرةً تعليمة CREATE2.

أما

salt
فهو قيمة من 32 بايت تُمرر إلى عملية CREATE2.

وتشير

init_code
إلى الشيفرة الأولية التي تُنفذ أثناء إنشاء العقد.

يُحسب هاش الشيفرة الأولية قبل إدراجها في مدخل هاش CREATE2 النهائي، المؤلف من 85 بايت.

تصبح آخر 20 بايتاً من هاش Keccak-256 النهائي عنوان العقد.

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

ما ناشر CREATE2؟

ناشر CREATE2 هو العقد الذكي الذي يستدعي تعليمة CREATE2 مباشرةً.

يُطلق عليه غالباً اسم المصنع أو عقد النشر أو وكيل النشر الحتمي أو المصنع الأحادي.

ولا يكون حساب المستخدم الخارجي الذي يرسل معاملة إلى المصنع تلقائياً هو العنوان المستخدم في صيغة CREATE2.

عادةً ما يكون عنوان المصنع هو عنوان الناشر المعني، لأنه هو الذي ينفذ التعليمة.

يؤدي استخدام مصنع مختلف إلى عنوان عقد متوقع مختلف، حتى إذا تطابق الـSalt والشيفرة الأولية.

وهذا أحد أسباب ضرورة تحقق المطورين من عنوان المصنع المحدد، بدلاً من حساب النتيجة انطلاقاً من المحفظة التي ترسل المعاملة.

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

وقد تؤثر صلاحيات المصنع وآلية تنفيذه في إمكانية نشر العقد المتوقع فعلياً.

ما Salt في CREATE2؟

Salt في CREATE2 قيمة عشوائية من 32 بايت تدخل في حساب العنوان الحتمي.

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

وقد يُشتق Salt من معرّف مستخدم أو عنوان محفظة أو رقم حساب أو معرّف توكن أو إصدار تطبيق أو قيمة عشوائية أو مزيج من عدة حقول.

ولا يلزم أن يكون Salt سرياً.

يمكن لأي شخص يعرف المصنع وSalt والشيفرة الأولية حساب العنوان نفسه.

ينبغي للمطورين تحديد طريقة واضحة لترميز Salt، لأن اختلاف الترميز قد يؤدي إلى عناوين غير متوقعة.

فعلى سبيل المثال، قد تتعامل البرمجيات مع الرقم

1
والنص الذي يحتوي على
1
وقيمة من 32 بايتاً تنتهي بـ
01
بطرق مختلفة.

وقد يحسب المشروع هاشاً للبيانات المنظمة لإنشاء Salt ثابت من 32 بايتاً وتجنب الترميز الملتبس.

ما الشيفرة الأولية؟

الشيفرة الأولية، التي يُختصر اسمها عادةً إلى init code، هي شيفرة EVM مؤقتة تُنفذ عند إنشاء عقد ذكي.

وتتمثل مهمتها في تنفيذ منطق المُنشئ وإرجاع شيفرة التشغيل التي ستبقى في العنوان الجديد.

لا تُخزّن الشيفرة الأولية عادةً بوصفها الشيفرة الدائمة للعقد.

تعتمد صيغة CREATE2 على هاش هذه الشيفرة الأولية.

في Solidity، تشمل الشيفرة الأولية الكاملة عموماً شيفرة إنشاء العقد ووسائط المُنشئ المشفرة وفق ABI.

يؤكد توثيق Solidity الحالي لإنشاء العقود باستخدام Salt أن العنوان يعتمد على شيفرة الإنشاء ووسائط المُنشئ.

يؤدي تغيير وسيط في المُنشئ إلى تغيير هاش الشيفرة الأولية، وبالتالي يتغير العنوان المتوقع.

يجب على المطورين استخدام مخرجات المترجم الدقيقة وترميز المُنشئ المقصود للنشر عند حساب عنوان CREATE2.

الشيفرة الأولية مقابل شيفرة التشغيل

الشيفرة الأولية وشيفرة التشغيل مرتبطتان، لكنهما مختلفتان.

تعمل الشيفرة الأولية مرة واحدة أثناء النشر.

أما شيفرة التشغيل فهي الشيفرة المخزنة في عنوان العقد بعد اكتمال النشر.

تعتمد صيغة عنوان CREATE2 مباشرةً على هاش الشيفرة الأولية، لا على هاش شيفرة التشغيل النهائية.

وينشأ عن هذا الفرق اعتبار أمني مهم.

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

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

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

وسائط المُنشئ وCREATE2

تشكل وسائط المُنشئ جزءاً من الشيفرة الأولية المستخدمة في عمليات نشر Solidity.

يكون عادةً للعقد الذي يُنشأ بعنوان مالك

0x111...
عنوان CREATE2 مختلف عن عنوان العقد نفسه إذا أُنشئ بعنوان مالك
0x222...
.

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

يجب على المطورين ترميز وسائط المُنشئ بالترتيب والتنسيق نفسيهما اللذين تتوقعهما ABI الخاصة بالعقد.

سيحسب متنبئ العنوان الذي يستبعد وسائط المُنشئ نتيجة خاطئة.

لا تؤثر دوال التهيئة التي تُستدعى بعد النشر في صيغة CREATE2، ما لم يكن استدعاء التهيئة نفسه مدرجاً في عملية المُنشئ أو المصنع.

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

الفرق بين CREATE وCREATE2

CREATE وCREATE2 عمليتان في EVM لإنشاء العقود الذكية.

يشتق CREATE الاعتيادي العنوان الجديد أساساً من الحساب المنشئ وقيمة nonce الخاصة بالنشر.

تزداد قيمة nonce كلما أنشأ الناشر عقوداً إضافية.

لذلك يحتاج المطور الذي يتوقع عنوان CREATE إلى معرفة تسلسل النشر الصحيح.

يستبدل CREATE2 صيغة العنوان المعتمدة على nonce بصيغة تعتمد على عنوان المصنع وSalt وهاش الشيفرة الأولية.

ولا يغير CREATE2 التنفيذ الأساسي لشيفرة المُنشئ أو تخزين شيفرة التشغيل المُعادة.

إنما يغير طريقة اشتقاق عنوان الوجهة ويضيف تكلفة هاش للشيفرة الأولية.

تفشل العمليتان إذا خالف العنوان المستهدف قواعد تصادم إنشاء العقود في EVM.

متى استُحدث CREATE2؟

حُدد CREATE2 في EIP-1014 عام 2018.

وأُدرج في ترقية Constantinople لشبكة Ethereum.

يسرد مواصفات ترقية Constantinople المعيار EIP-1014 ضمن تغييرات البروتوكول التي شملتها الترقية.

أصبح CREATE2 منذ ذلك الحين جزءاً راسخاً من EVM، وتدعمه Solidity وأدوات التطوير الشائعة.

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

ينبغي للمطورين التحقق من توافق الشبكة بدلاً من افتراض أن كل بلوكشين تستخدم بيئة شبيهة بـ EVM تطبق القواعد نفسها.

CREATE2 في Solidity

توفر Solidity صياغة عالية المستوى لنشر العقود عبر CREATE2.

يمكن للمصنع استخدام الصياغة

new ContractName{salt: saltValue}(constructorArguments)
.

يجهز مترجم Solidity شيفرة الإنشاء ويرمز وسائط المُنشئ وينشئ عملية CREATE2.

يمكن للمُنشئ الذي يقبل الدفع أيضاً تلقي العملة الأصلية للبلوكشين أثناء النشر عبر الخيار

value
.

ينبغي للمصنع التحقق من أن النشر أعاد العنوان المتوقع غير الصفري.

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

يزيد التجميع المضمن مخاطر التنفيذ وينبغي اختباره بعناية.

مثال مبسط على CREATE2 في Solidity

contract Child {

address public owner;

constructor(address initialOwner) {

owner = initialOwner;

}

}

contract Factory {

function deploy(bytes32 salt, address initialOwner)

external

returns (address deployed)

{

Child child = new Child{salt: salt}(initialOwner);

deployed = address(child);

}

}

في هذا المثال، يعتمد عنوان العقد الفرعي المتوقع على عنوان المصنع وSalt وشيفرة إنشاء Child ووسيط

initialOwner
المشفر.

لا يؤدي تغيير المستدعي الخارجي، من دون تغيير هذه المدخلات، بالضرورة إلى تغيير العنوان.

أما تغيير

initialOwner
فيغير العنوان لأن وسيط المُنشئ جزء من الشيفرة الأولية.

توقع عنوان CREATE2

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

يجب أن يستخدم الحساب عنوان المصنع الدقيق الذي سينفذ CREATE2.

كما يجب استخدام Salt بصيغته النهائية من 32 بايتاً.

ويجب أن يتضمن هاش الشيفرة الأولية شيفرة الإنشاء الدقيقة ووسائط المُنشئ المشفرة.

ينبغي مقارنة النتيجة بالعنوان الذي يعيده المصنع بعد النشر.

ينبغي لأدوات النشر رفض العملية إذا اختلف العنوان المتوقع عن العنوان الفعلي.

ومن الأسباب الشائعة للتوقع الخاطئ استخدام شيفرة التشغيل بدلاً من شيفرة الإنشاء أو استبعاد وسائط المُنشئ أو اختيار مصنع غير صحيح أو ترميز Salt بطريقة خاطئة.

ما النشر الافتراضي؟

يشير النشر الافتراضي إلى التعامل مع عنوان عقد ذكي مستقبلي على أنه ذو معنى قبل نشر الشيفرة فيه.

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

وقد يرسلون أصولاً إلى العنوان أو يدرجونه في عقد آخر أو ينشئون تفويضات موقعة مرتبطة به.

ولا يُنشر العقد إلا عندما يصبح التنفيذ ضرورياً.

وقد يجنب ذلك معاملة نشر فورية ويخفض تكاليف بدء الاستخدام.

ركز EIP-1014 في الأصل على التفاعلات الافتراضية لأنظمة قنوات الحالة، التي قد لا تحتاج إلى العقد إلا إذا دخل المشاركون في نزاع.

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

حسابات العقود الذكية الافتراضية

يمكن توقع عنوان حساب عقد ذكي باستخدام CREATE2 قبل نشر عقد الحساب.

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

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

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

تدعم مواصفات تجريد الحساب ERC-4337 إنشاء حساب عقد ذكي مرسل انطلاقاً من بيانات تهيئة المصنع، عندما لا يكون الحساب موجوداً بعد.

تستخدم مصانع الحسابات CREATE2 عادةً لضمان إمكانية حساب عنوان المرسل قبل النشر.

لكن ليس مطلوباً من كل تصميم لتجريد الحساب استخدام CREATE2، لأن نماذج الحسابات والتفويضات الأحدث قد تعتمد آليات مختلفة.

إرسال العملات المشفرة إلى عنوان غير منشور

يمكن لعنوان CREATE2 غير المنشور تلقي العملة الأصلية للبلوكشين، لأن العنوان لا يحتاج إلى شيفرة تشغيل للاحتفاظ برصيد.

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

تبقى الأصول مرتبطة بالعنوان رغم عدم وجود شيفرة عقد فيه بعد.

وقد تصبح الأصول قابلة للاستخدام بعد نشر العقد المقصود بنجاح.

يمكن لهذا السلوك تبسيط إعداد المحافظ وتصميم التطبيقات الافتراضية.

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

ينبغي للمستخدمين التحقق من إمكانية النشر فعلياً قبل إرسال قيمة معتبرة إلى عنوان افتراضي.

هل يمكن لعنوان CREATE2 فارغ الاحتفاظ بالأموال؟

نعم، يمكن لعنوان لا يحتوي على شيفرة أن يمتلك رصيداً من العملة المشفرة الأصلية وأرصدة توكنات.

لا يمنع وجود رصيد موجب وحده نشر CREATE2 في العنوان.

تركز قاعدة التصادم في EVM على ما إذا كان للوجهة nonce غير صفري أو شيفرة غير فارغة.

هذا التصميم ضروري للحسابات الافتراضية التي تتلقى الأموال قبل النشر.

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

قواعد تصادم CREATE2

يفشل نشر CREATE2 إذا كان في عنوان الوجهة شيفرة غير فارغة أو قيمة nonce غير صفرية.

يمنع ذلك المصنع من استبدال عقد موجود في العنوان نفسه.

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

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

ينبغي للمصانع التعامل مع النتيجة الصفرية من تعليمة CREATE2 وإرجاع خطأ واضح متى أمكن.

لا يعني التصادم أن دالة الهاش Keccak قد كُسرت تشفيرياً.

بل يعني عادةً أن الوجهة الحتمية مشغولة بالفعل وفق قواعد الحسابات في EVM.

هل يمكن لنشرين مختلفين إنتاج عنوان CREATE2 نفسه؟

تنتج محاولتا النشر العنوان المحسوب نفسه عندما تستخدمان عنوان المصنع وSalt وهاش الشيفرة الأولية نفسها.

ومن الناحية النظرية، قد تنتج شيفرتان أوليتان مختلفتان الهاش نفسه، لكن إيجاد تصادم عملي في Keccak-256 يُعد غير ممكن حسابياً في ظل افتراضات الأمن الحالية.

ويعني استخدام آخر 20 بايتاً فقط من الهاش أن التصادمات العشوائية للعناوين ممكنة نظرياً، كما هو الحال مع عناوين Ethereum الأخرى.

لكن إنشاء تصادم مقصود يظل غير عملي بالقدرات الحاسوبية الحالية.

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

إعادة استخدام Salt

يمكن للمصنع إعادة استخدام Salt نفسه عند اختلاف الشيفرة الأولية، إذ ينتج هاش الشيفرة الأولية عنواناً مختلفاً.

ولا يستطيع المصنع نفسه نشر الشيفرة الأولية ذاتها باستخدام Salt نفسه مرتين بنجاح ما دامت الوجهة الأصلية مشغولة.

قد يمنع المشروع إعادة استخدام Salt على مستوى التطبيق لتسهيل تتبع غرض النشر.

وقد يسمح مصنع عام لأي شخص بإرسال Salt مستخدم سابقاً، لأن الصيغة الكاملة تتضمن أيضاً هاش الشيفرة الأولية.

ولا يمثل تفرد Salt وحده خاصية أمنية مكتملة.

بل يجب فحص توليفة المصنع وSalt والشيفرة الأولية كاملةً.

الاستباق في نشر CREATE2

قد تكون معاملة CREATE2 معلقة ومرئية قبل إدراجها في كتلة.

وقد ينسخ مستخدم آخر استدعاء المصنع ويحاول نشر العقد أولاً.

إذا استخدم مصنع مفتوح للجميع Salt نفسه والشيفرة الأولية نفسها، فمن المفترض أن ينشئ النشر المنسوخ التزام الشيفرة نفسه عند العنوان المتوقع نفسه.

وقد تفشل المعاملة الأصلية بعد ذلك لأن الوجهة أصبحت مشغولة.

ومع ذلك، قد يؤدي ذلك إلى مشكلات في التوقيت أو هدر الغاز أو تعطيل سير عمل التطبيق.

ويزداد الخطر عند قراءة سلوك المُنشئ معلومات بيئية متغيرة، مثل بيانات الكتلة أو مصدر المعاملة أو حالة عقد خارجي أو معلمات المصنع المرتبطة بالمستدعي.

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

خطر الاستباق في المُنشئ

يلتزم عنوان CREATE2 بالشيفرة الأولية، لكنه لا يثبت كل الحالة الخارجية التي قد يقرأها المُنشئ.

وقد يتسبب مهاجم يتحكم بتوقيت النشر في أن يقرأ المُنشئ سعراً أو قيمة كتلة أو إدخالاً في سجل أو حالة عقد خارجي مختلفة.

وقد تختلف شيفرة التشغيل الناتجة أو قيم التخزين الأولية عما توقعه المستخدم الأصلي.

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

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

خطر دوال التهيئة غير المحمية

غالباً ما تستخدم العقود الوكيلة والنسخ البسيطة دوال التهيئة بدلاً من المُنشئات.

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

لا يحمي توقع عنوان CREATE2 دالة التهيئة تلقائياً.

إذا جرى النشر والتهيئة في معاملتين منفصلتين، فقد يستدعي المهاجم دالة التهيئة أولاً.

ينبغي للمصنع تهيئة العقد ذرياً ضمن معاملة النشر أو فرض تفويض صارم.

لا يعوض العنوان الحتمي عن تصميم تهيئة غير محمي.

مصانع CREATE2

مصنع CREATE2 عقد ذكي قابل لإعادة الاستخدام، يتلقى Salt والشيفرة الأولية وينفذ تعليمة CREATE2.

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

قد يقبل المصنع البسيط أي شيفرة من دون اشتراط إذن.

وقد لا ينشر المصنع المتخصص إلا تطبيقات حسابات أو وحدات تطبيق معتمدة.

ينبغي للمطورين فحص شيفرة التشغيل للمصنع وسجل النشر والصلاحيات ومعالجة الإخفاقات وسلوك تحويل القيمة.

قد يغير المصنع الضار المدخلات أو يقيد النشر أو يحتفظ بالأموال أو ينفذ شيفرة غير متوقعة.

المصانع الأحادية

المصنع الأحادي مصنع حتمي يُقصد أن يوجد في العنوان نفسه على عدة شبكات متوافقة مع EVM.

يساعد عنوان المصنع المشترك المطورين على اشتقاق عنوان العقد الفرعي نفسه على كل شبكة مدعومة.

اقترح ERC-2470 مصنع CREATE2 أحادياً مفتوحاً للجميع للنشر الحتمي.

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

اعتباراً من يوليو 2026، صُنّف ERC-2470 بأنه «راكد» في مستودع EIP، رغم استمرار أهمية المفهوم الأوسع للمصانع الحتمية.

تُعد حالة المقترح في المستودع وحالة نشر العقد في الواقع مسألتين منفصلتين.

النشر الحتمي متعدد الشبكات

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

ويتطلب الوصول إلى النتيجة نفسها عنوان مصنع CREATE2 وSalt وهاش الشيفرة الأولية نفسها على كل شبكة.

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

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

لا يُدرج معرّف السلسلة مباشرةً في صيغة CREATE2 الأساسية.

لكن المُنشئ أو أداة النشر قد يدرجان بيانات خاصة بالسلسلة، ما يغير الشيفرة الأولية أو حالة العقد المنشور.

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

فائدة النشر متعدد الشبكات في العنوان نفسه

يقلل تطابق عناوين العقود عدد العناوين التي يجب على المحافظ والواجهات ومكتبات البرمجيات والعقود الأخرى تخزينها.

ويمكن للمطور استخدام ثابت عنوان واحد عبر عدة شبكات مدعومة.

ويقل احتمال أن ينسخ المستخدم عنوان العقد من شبكة غير صحيحة.

كما يمكن لحسابات العقود الذكية استخدام عنوان موحد على عدة سلاسل.

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

ينبغي دائماً تقييم العنوان مع معرّف السلسلة والشيفرة الثنائية المتحقق منها.

المقترحات الحالية للمصانع الحتمية

تتواصل عملية تطوير البنية التحتية للمصانع الحتمية مع إنشاء المزيد من شبكات EVM وRollups.

اعتباراً من يوليو 2026، لا يزال EIP-7997 قيد المراجعة، ويقترح إلزام سلاسل EVM بوجود مصنع حتمي شائع الاستخدام في عنوان محدد.

لم يُعتمد المقترح نهائياً، ولا ينبغي اعتباره ضماناً عاماً لكل شبكة.

ولا يزال ERC-7955 مسودةً لمقترح يتيح إنشاء مصنع CREATE2 عالمي مفتوح للجميع عبر إمكانات EIP-7702.

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

ينبغي للمطورين التحقق من الحالة الحالية للمقترح وحالة الشبكة الفعلية قبل الاعتماد على مصنع عالمي.

CREATE2 وتجريد الحساب

يتيح تجريد الحساب لحسابات العقود الذكية استخدام قواعد مبرمجة للتحقق والتنفيذ.

قد تدعم المحفظة عدة موقّعين ومفاتيح مرور وجهات استرداد موثوقة وحدود إنفاق وعمليات مجمعة ورعاية الرسوم.

يتيح CREATE2 لمصنع المحفظة حساب عنوان الحساب قبل نشر عقد المحفظة.

ويمكن للمستخدم تلقي الأموال في العنوان ونشر الحساب عند معالجة العملية الأولى.

يمكن أن تتضمن ERC-4337 بيانات المصنع التي تنشئ حساباً عندما لا يكون المرسل موجوداً بعد.

يجب أن يتطابق عنوان الحساب الافتراضي مع العنوان الذي ينتجه استدعاء المصنع.

إذا نشر المصنع الشيفرة في مكان آخر، تفشل عملية الحساب وفق مسار التحقق في المعيار.

CREATE2 والتوقيعات السابقة للنشر

قد يحتاج حساب عقد افتراضي إلى توقيع رسالة مصادقة قبل نشره.

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

يحدد ERC-6492 صيغة تغليف للتحقق من التوقيعات الصادرة نيابةً عن حسابات العقود السابقة للنشر.

يمكن لعملية التحقق محاكاة نشر المصنع المطلوب أو تنفيذه قبل فحص منطق توقيع العقد.

يوصي المعيار بعقود CREATE2 لأن عناوينها قابلة للتوقع.

ينبغي التحقق من توقيع صادر عن حساب افتراضي وفق معيار توقيع العقود المعمول به، لا التعامل معه كتوقيع اعتيادي لحساب مملوك خارجياً.

CREATE2 والحسابات المرتبطة بالتوكنات

الحساب المرتبط بتوكن هو حساب عقد ذكي مرتبط بتوكن غير قابل للاستبدال.

يمكن للحساب الاحتفاظ بالعملات المشفرة والتوكنات وNFTs وأصول أخرى على السلسلة.

يستخدم ERC-6551 تقنية CREATE2 كي توجد عناوين الحسابات المرتبطة بالتوكنات افتراضياً قبل نشرها.

ويتيح ذلك تحويل الأصول إلى حساب التوكن قبل دفع تكلفة نشر عقد الحساب.

يعتمد عنوان الحساب، وفق قواعد المعيار، على السجل والتنفيذ وSalt ومعرّف البلوكشين وعقد التوكن ومعرّف التوكن.

وتحدد ملكية NFT المتحكم عادةً من يمكنه تنفيذ الإجراءات عبر الحساب المرتبط بالتوكن.

CREATE2 وقنوات الحالة

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

وقد يتفق المشاركون مسبقاً على شيفرة عقد النزاع وعنوانه.

يتيح CREATE2 لهم حساب هذا العنوان من دون نشر العقد فوراً.

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

ولا يلزم نشر العقد إلا عندما يصبح التنفيذ ضرورياً.

كان ذلك أحد الاستخدامات الأصلية التي وصفها EIP-1014.

CREATE2 وعقود الوكيل البسيطة

الوكيل البسيط عقد صغير يفوض الاستدعاءات إلى عقد تنفيذ.

يمكن للمصنع الجمع بين الوكلاء البسيطة وCREATE2 لإنشاء عناوين متوقعة للحسابات أو التطبيقات.

وقد يكون عنوان عقد التنفيذ جزءاً من الشيفرة الأولية للوكيل.

لذلك قد يؤدي تغيير عنوان التنفيذ إلى تغيير عنوان الوكيل المتوقع.

وتضع بعض المصانع معلمات التهيئة في مساحة تخزين الوكيل المنشور ضمن المعاملة نفسها.

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

CREATE2 والعقود القابلة للترقية

لا يُعد CREATE2 نظاماً للترقية بحد ذاته.

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

في هذا التصميم، يبقى الوكيل في العنوان الحتمي، بينما قد يتغير مرجع التنفيذ الخاص به.

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

لا يضمن عنوان الوكيل الحتمي ثبات سلوكه.

ينبغي للمستخدمين فحص صلاحيات الترقية بدلاً من افتراض أن العنوان المتوقع يعني شيفرة دائمة.

CREATE2 وSELFDESTRUCT وإعادة النشر

استخدمت بعض التصاميم الأقدم لـ CREATE2 التعليمة

SELFDESTRUCT
لإزالة عقد ثم نشر سلوك مختلف في العنوان نفسه لاحقاً.

وكانت هذه التصاميم تُسمى غالباً العقود المتحولة.

تمنع قواعد EIP-6780 الحالية لـ SELFDESTRUCT عموماً عقداً طويل الأمد من حذف شيفرته ومساحة تخزينه.

عند استدعاء SELFDESTRUCT من عقد لم يُنشأ في المعاملة نفسها، تُحوّل الأرصدة، لكن الشيفرة والتخزين والحساب لا تُحذف.

لذلك لم تعد أنماط الترقية الاعتيادية التي تعتمد على تدمير عقد منشور وإعادة إنشائه في عنوان CREATE2 نفسه تعمل.

توصي EIP-6780 صراحةً باستخدام تصاميم ترقية راسخة قائمة على الوكلاء بدلاً من إعادة النشر عبر CREATE2 بغرض الترقية.

ما زالت SELFDESTRUCT مهملة، ولا ينبغي للأنظمة الجديدة الاعتماد على بقاء سلوكها من دون تغيير إلى الأبد.

مخاطر العقود المتحولة

يُقصد بالعقد المتحول تغيير الشيفرة العاملة في عنوان ثابت عبر التدمير وإعادة النشر.

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

فقد يتحقق المستخدم من إصدار للشيفرة ثم يتفاعل لاحقاً مع شيفرة مختلفة في العنوان نفسه.

أوقفت قواعد Ethereum الحالية نمط إعادة النشر العام للعقود طويلة الأمد، لكن قد تختلف قواعد SELFDESTRUCT في الشبكات الأقدم أو بيئات EVM الأخرى.

ينبغي لأدوات الأمن تقييم قواعد البلوكشين والفترة التي تُحللها تحديداً.

وينبغي تفسير المعاملة التاريخية وفق قواعد البروتوكول السارية وقت حدوثها.

تكاليف الغاز في CREATE2

يستخدم CREATE2 بنية غاز شبيهة بـ CREATE الاعتيادي، ويضيف تكلفة حساب هاش الشيفرة الأولية.

يحدد EIP-1014 تكلفة الهاش الإضافية وفق عدد وحدات 32 بايتاً في الشيفرة الأولية.

لذلك تتطلب الشيفرة الأولية الأكبر غازاً أكثر لاشتقاق العنوان، فضلاً عن الغاز اللازم للذاكرة وتنفيذ المُنشئ.

كما يتطلب النشر دفع الغاز لتخزين شيفرة التشغيل الناتجة وتنفيذ عمليات المُنشئ.

قد تتغير جداول رسوم الغاز في الشبكة عبر ترقيات البروتوكول، لذا لا ينبغي اعتبار تقديرات الغاز الثابتة دائمة.

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

حدود حجم الشيفرة الأولية

تطبق Ethereum حدوداً واحتساباً للغاز على مستوى البروتوكول على الشيفرة الأولية للعقود.

قدمت EIP-3860 احتساباً إضافياً لغاز الشيفرة الأولية وحداً أقصى لحجمها.

تسري القواعد على عمليات النشر عبر CREATE وCREATE2.

ينبغي للمصانع الكبيرة ألا تفترض إمكانية إرسال منطق مُنشئ بحجم غير محدود بنجاح.

ينبغي لأدوات التطوير اختبار الشيفرة الأولية النهائية بعد التجميع وفق الحدود الحالية للشبكة.

عناوين العقود المميزة

يمكن للمطورين البحث عبر قيم Salt عديدة حتى يتضمن عنوان CREATE2 المتوقع بادئة أو نمطاً معيناً.

تُعرف هذه العملية باسم تعدين عنوان عقد مميز.

قد تجعل البادئة القصيرة سهلة التمييز العنوان أسهل للتعرف بصرياً.

لكنها لا تعزز أمن العقد الذكي أو صلاحياته.

ينبغي للمستخدمين التحقق من العنوان كاملاً، إذ يستطيع المحتالون إنشاء عناوين تتشابه في بادئاتها ولواحقها.

يجب ألا يحل العنوان المميز محل التحقق من الشيفرة وسجلات النشر الموثوقة.

CREATE2 وتسميم العناوين

تحاول هجمات تسميم العناوين إظهار عنوان مضلل في سجل معاملات المستخدم أو واجهة المحفظة.

وقد ينشئ المهاجم عنواناً تتشابه أحرفه مع عنوان موثوق.

يمكن أن يساعد CREATE2 على البحث عن عناوين عقود ذات أنماط بصرية محددة عبر تغيير Salt.

ولا يتطلب الهجوم كسر CREATE2 أو Keccak-256.

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

ينبغي للمستخدمين التحقق من العنوان كاملاً أو استخدام دفتر عناوين موثوق قبل إرسال العملات المشفرة.

الالتباس بين العناوين عبر السلاسل

قد يوجد عنوان سداسي عشري واحد على عدة شبكات متوافقة مع EVM.

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

قد تؤدي خطة النشر الحتمي إلى إنشاء عناوين متطابقة، لكن يظل معرّف البلوكشين أساسياً.

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

ينبغي للمحافظ والواجهات عرض عنوان العقد والشبكة المحددة بوضوح.

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

مخاطر الثقة بالمصنع

يفترض حساب العنوان الحتمي أن المصنع المحدد يعمل كما هو متوقع.

قد يغير المصنع Salt أو يعدل الشيفرة الأولية أو يفرض ضوابط وصول أو يفرض رسوماً أو يحول قيمة النشر على نحو غير متوقع.

وقد يتغير المصنع القابل للترقية بعد المراجعة الأولية التي يجريها المطور.

قد يصبح المصنع الذي يتحكم به مفتاح خاص واحد غير متاح أو ضاراً إذا فُقد المفتاح أو تعرض للاختراق.

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

ينبغي للمطورين التحقق من شيفرة المصنع وآلية نشره قبل الاعتماد على العناوين المتوقعة.

مخاطر المترجم والبيانات الوصفية

قد تنتج إصدارات مترجم Solidity المختلفة شيفرة إنشاء مختلفة من المصدر نفسه.

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

يؤدي اختلاف بسيط في الشيفرة إلى هاش شيفرة أولية وعنوان CREATE2 مختلفين.

ينبغي للمطورين تثبيت إصدار المترجم وإعدادات البناء المستخدمة للنشر الحتمي.

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

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

ربط المكتبات

قد يحتوي عقد Solidity على عناصر نائبة يجب استبدالها بعناوين مكتبات منشورة قبل الإنشاء.

تصبح شيفرة الإنشاء المرتبطة جزءاً من الشيفرة الأولية لـ CREATE2.

يؤدي تغيير عنوان مكتبة إلى تغيير عنوان العقد المتوقع.

لذلك قد يفشل النشر عبر الشبكات في إنتاج عناوين متطابقة إذا اختلفت عناوين المكتبات المرتبطة.

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

قائمة التحقق من CREATE2

تحقق من البلوكشين وعنوان المصنع قبل حساب الوجهة المتوقعة.

تأكد من الترميز الدقيق لـ Salt، الذي يجب أن يكون 32 بايتاً.

استخدم شيفرة الإنشاء بدلاً من شيفرة التشغيل.

أدرج وسائط المُنشئ المشفرة وفق ABI في الشيفرة الأولية.

ثبّت إصدار المترجم وإعدادات التحسين والمكتبات المرتبطة وإعدادات البيانات الوصفية.

تحقق مما إذا كان العنوان المتوقع يحتوي بالفعل على شيفرة أو قيمة nonce غير صفرية.

حاكِ استدعاء المصنع وراجع أي اعتماد للمُنشئ على حالة خارجية.

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

مزايا CREATE2

يتيح CREATE2 معرفة عنوان العقد قبل نشره.

ويدعم المحافظ والعقود الافتراضية التي يمكنها تلقي الأصول قبل إنشاء الشيفرة.

كما يلغي الاعتماد على nonce النشر المتغير للمصنع.

ويمكنه إنشاء عناوين تطبيقات متسقة عبر شبكات EVM المتوافقة عند تطابق جميع المدخلات المطلوبة.

ويدعم تصاميم قنوات الحالة وعقود النزاع بكفاءة.

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

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

قيود CREATE2

لا يضمن CREATE2 نشر العقد فعلياً.

ولا يضمن موثوقية المصنع أو توفره على كل شبكة.

ولا يضمن احتواء العناوين المتطابقة على شيفرة تشغيل أو حالة متطابقة عبر السلاسل.

ولا يحمي وكيلاً غير مهيأ أو مُنشئاً غير آمن أو مسؤولاً مخترقاً أو عقداً ذكياً معرضاً للثغرات.

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

تمنع قواعد SELFDESTRUCT الحالية أنماط الترقية العامة القائمة على تدمير عقد طويل الأمد ثم إعادة نشره.

كما ينطوي على مخاطر تشغيلية عندما يرسل المستخدمون الأموال إلى عنوان متوقع قبل التحقق الكامل من مدخلات النشر.

الأسئلة الشائعة

ما CREATE2 ببساطة؟

CREATE2 تعليمة في EVM تتيح للمطورين حساب عنوان عقد ذكي قبل نشره.

ماذا يعني النشر الحتمي؟

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

أي EIP قدم CREATE2؟

قُدم CREATE2 عبر EIP-1014.

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

تعليمة CREATE2 هي

0xf5
.

ما المدخلات التي تحدد عنوان CREATE2؟

يعتمد العنوان على عنوان مصنع CREATE2 وSalt من 32 بايتاً وهاش الشيفرة الأولية.

هل يستخدم CREATE2 قيمة nonce؟

لا يستخدم CREATE2 قيمة nonce المتغيرة لإنشاء العقود لدى المصنع في صيغة العنوان.

هل يُدرج مرسل المعاملة في صيغة CREATE2؟

يُدرج العقد الذي ينفذ CREATE2 مباشرةً، وهو المصنع عادةً، لا المحفظة الخارجية التي تستدعيه.

ما Salt في CREATE2؟

Salt قيمة من 32 بايتاً تُستخدم للتمييز بين عمليات النشر الحتمية وإنشاء عناوين مختلفة.

هل يجب أن يكون Salt في CREATE2 سرياً؟

لا، لا يلزم عادةً إبقاء Salt سرياً.

ما init code؟

init code شيفرة إنشاء مؤقتة تنفذ المُنشئ وتعيد شيفرة التشغيل التي تُخزن في العنوان الجديد.

هل يحسب CREATE2 هاش شيفرة التشغيل؟

تحسب صيغة العنوان هاش الشيفرة الأولية، لا هاش شيفرة التشغيل النهائية وحدها مباشرةً.

هل تغير وسائط المُنشئ عنوان CREATE2؟

نعم، تُدرج وسائط مُنشئ Solidity في الشيفرة الأولية، وتغير عادةً العنوان المتوقع.

هل يمكن توقع عنوان CREATE2 خارج السلسلة؟

نعم، يمكن حساب العنوان محلياً من دون إرسال معاملة إلى البلوكشين.

هل يمكن لعنوان CREATE2 غير المنشور تلقي العملات المشفرة؟

نعم، يمكن للعنوان المتوقع تلقي العملة المشفرة الأصلية والتوكنات المتوافقة قبل نشر العقد.

هل إرسال الأموال إلى عنوان غير منشور آمن؟

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

هل يمكن لـ CREATE2 النشر فوق عقد موجود؟

لا، يفشل النشر إذا كان في العنوان المستهدف شيفرة غير فارغة أو قيمة nonce غير صفرية.

هل يمكن لـ CREATE2 نشر العقد نفسه مرتين؟

لا يمكن للمصنع وSalt والشيفرة الأولية نفسها إتمام النشر مرتين بنجاح ما دامت الوجهة الأصلية مشغولة.

هل يمكن إعادة استخدام Salt نفسه؟

نعم، قد ينتج Salt نفسه عناوين مختلفة إذا اختلف المصنع أو هاش الشيفرة الأولية.

هل يستطيع شخص الاستباق في نشر CREATE2؟

قد ينسخ شخص ما استدعاء مصنع عام وينشر أولاً، ما قد يعطل التوقيت وقد يكون خطراً عندما يعتمد سلوك المُنشئ على بيانات خارجية متغيرة.

هل يضمن CREATE2 تطابق الشيفرة عبر السلاسل؟

لا، يتطلب تطابق العناوين مدخلات متطابقة، لكن بيئة المُنشئ والتهيئة والإعدادات وحالة الشبكة قد تظل سبباً لاختلافات مهمة.

كيف يمكن لـ CREATE2 إنشاء العنوان نفسه على عدة شبكات؟

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

هل يدخل معرّف السلسلة في صيغة CREATE2؟

لا تتضمن الصيغة الأساسية معرّف السلسلة مباشرةً، لكن قد تتضمن شيفرة النشر أو وسائط المُنشئ معلومات خاصة بالسلسلة.

ما مصنع CREATE2؟

مصنع CREATE2 عقد ذكي ينفذ عمليات نشر حتمية للمستخدمين أو العقود الأخرى.

ما المصنع الأحادي؟

المصنع الأحادي ناشر CREATE2 يُقصد أن يوجد في عنوان موحد معروف على عدة شبكات.

ما النشر الافتراضي؟

يعني النشر الافتراضي استخدام عنوان عقد متوقع أو الإشارة إليه قبل نشر العقد.

كيف يساعد CREATE2 محافظ العقود الذكية؟

يتيح حساب عنوان المحفظة وتمويله قبل إنشاء عقد المحفظة.

ما علاقة CREATE2 بـ ERC-4337؟

تستخدم مصانع حسابات ERC-4337 عادةً CREATE2 لاشتقاق عناوين حسابات العقود الذكية المتوقعة ونشرها.

هل يمكن لعقد غير منشور توقيع الرسائل؟

يوفر ERC-6492 طريقة للتحقق من التوقيعات المرتبطة ببعض حسابات العقود الافتراضية قبل نشرها.

هل CREATE2 آلية للترقية؟

لا، تتطلب قابلية الترقية تصميماً منفصلاً قائماً على الوكيل أو الحوكمة.

هل تستطيع SELFDESTRUCT إخلاء عقد لإعادة نشره عبر CREATE2؟

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

ما العقد المتحول؟

العقد المتحول تصميم أقدم يهدف إلى تغيير الشيفرة في عنوان واحد عبر التدمير وإعادة النشر الحتمي.

هل يكلف CREATE2 غازاً أكثر من CREATE؟

يضيف CREATE2 تكلفة حساب هاش الشيفرة الأولية إلى تكاليف الإنشاء والذاكرة والمُنشئ وتخزين الشيفرة الاعتيادية.

هل يمكن لـ CREATE2 إنشاء عنوان مميز؟

نعم، يمكن للمطورين اختبار قيم Salt عديدة حتى يتضمن العنوان المتوقع نمطاً بصرياً مرغوباً.

هل يعزز عنوان CREATE2 المميز الأمن؟

لا، فالبادئة أو اللاحقة سهلة التعرف لا تثبت أمان الشيفرة أو الملكية أو الأصالة.

لماذا اختلف عنوان CREATE2 المتوقع عن العنوان بعد النشر؟

تشمل الأسباب الشائعة اختيار مصنع غير صحيح أو ترميز Salt أو مخرجات المترجم أو مكتبة مرتبطة أو وسائط المُنشئ بصورة خاطئة، أو الخلط بين شيفرة الإنشاء وشيفرة التشغيل.

كيف أتحقق من نشر CREATE2؟

أعد حساب العنوان باستخدام المدخلات الدقيقة، وقارن شيفرة التشغيل المنشورة والتخزين والمالك والتنفيذ والأحداث بالقيم المتوقعة.

الخلاصة

يتيح النشر الحتمي عبر CREATE2 حساب عنوان عقد ذكي متوافق مع Ethereum قبل وجود العقد على السلسلة.

يُشتق العنوان من بادئة ثابتة وعنوان مصنع CREATE2 وSalt من 32 بايتاً وهاش الشيفرة الأولية.

قد تغير وسائط المُنشئ ومخرجات المترجم والمكتبات المرتبطة وإعدادات البناء الشيفرة الأولية، وبالتالي تغير العنوان.

يدعم CREATE2 حسابات العقود الافتراضية وقنوات الحالة والحسابات المرتبطة بالتوكنات ومكونات التطبيقات المتوقعة وعمليات النشر متعددة الشبكات في العنوان نفسه.

يمكن للعنوان المتوقع تلقي العملات المشفرة قبل النشر، لكن قد يتعذر الوصول إلى تلك الأصول إذا تعذر إنشاء العقد المقصود.

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

كما يجب على المطورين حماية دوال التهيئة وتجنب المُنشئات المعتمدة على البيئة والتحقق من سلوك المصنع ومراعاة مخاطر الاستباق.

تمنع قواعد SELFDESTRUCT الحالية في Ethereum أنظمة الترقية العامة القائمة على تدمير عقد طويل الأمد وإعادة إنشائه في العنوان نفسه.

لذلك ينبغي التعامل مع CREATE2 بوصفه أداة لاشتقاق العناوين والنشر، لا حلاً تلقائياً للأمن أو الترقية.

عند التحقق بعناية من المدخلات والمصنع والشيفرة وعملية التهيئة، يوفر CREATE2 أساساً قوياً لتطبيقات العملات المشفرة المتوقعة وسهلة الاستخدام.
تراجع أم فرصة؟
تراجع أم فرصة؟تراجع أم فرصة؟
تدفق 2.4 مليار دولار إلى ETF BTC وسط التصفية