---
title: "تسمية العقود الذكية"
description: "أفضل الممارسات لتسمية العقود الذكية على إيثيريوم باستخدام ⁦ENS⁩"
lang: ar
---

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

تؤدي تسمية العقود الذكية باستخدام [خدمة أسماء إيثيريوم (ENS)](https://ens.domains/) إلى تحسين تجربة المستخدم من خلال التخلص من عناوين العقود السداسية العشرية وتقليل المخاطر الناجمة عن الهجمات مثل تسميم العناوين وهجمات الانتحال. يشرح هذا الدليل أهمية تسمية العقود الذكية، وكيفية تنفيذها، والأدوات المتاحة مثل [Enscribe](https://www.enscribe.xyz) لتبسيط العملية ومساعدة المطورين على تبني هذه الممارسة.

## لماذا يجب تسمية العقود الذكية؟ {#why-name-contracts}

### معرفات قابلة للقراءة من قبل البشر {#human-readable-identifiers}

بدلاً من التفاعل مع عناوين عقود مبهمة مثل `0x8f8e...f9e3`، يمكن للمطورين والمستخدمين استخدام أسماء قابلة للقراءة من قبل البشر مثل `v2.myapp.eth`. هذا يبسط التفاعلات مع العقود الذكية.

أصبح هذا ممكنًا بفضل [خدمة أسماء إيثيريوم](https://ens.domains/) التي توفر خدمة تسمية لامركزية لعناوين إيثيريوم. هذا مشابه لكيفية تمكين نظام أسماء النطاقات (<span dir="ltr">DNS</span>) لمستخدمي الإنترنت من الوصول إلى عناوين الشبكة باستخدام اسم مثل <span dir="ltr">ethereum.org</span> بدلاً من عنوان <span dir="ltr">IP</span> مثل `104.18.176.152`.

### تحسين الأمان والثقة {#improved-security-and-trust}

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

نظرًا لأن طول عنوان إيثيريوم يبلغ <span dir="ltr">42</span> حرفًا، فمن الصعب جدًا على المستخدمين تحديد التغييرات الصغيرة في العناوين، حيث يتم تعديل بضعة أحرف. على سبيل المثال، عادةً ما يتم اقتطاع عنوان مثل `0x58068646C148E313CB414E85d2Fe89dDc3426870` إلى `0x580...870` بواسطة التطبيقات التي تواجه المستخدم مثل المحافظ. من غير المرجح أن يلاحظ المستخدم عنوانًا ضارًا تم فيه تغيير بضعة أحرف.

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

تحمي أسماء <span dir="ltr">ENS</span> للمحافظ والعقود من هذه الأنواع من الهجمات. ومثل هجمات انتحال <span dir="ltr">DNS</span>، يمكن أيضًا إيواء هجمات انتحال <span dir="ltr">ENS</span>، ومع ذلك، فمن المرجح أن يلاحظ المستخدم خطأ إملائيًا في اسم <span dir="ltr">ENS</span> أكثر من ملاحظته لتعديل صغير في عنوان سداسي عشري.

### تجربة مستخدم أفضل للمحافظ والمستكشفات {#better-ux}

عندما يتم تكوين عقد ذكي باسم <span dir="ltr">ENS</span>، يصبح من الممكن للتطبيقات مثل المحافظ ومستكشفات سلسلة الكتل عرض أسماء <span dir="ltr">ENS</span> للعقود الذكية، بدلاً من العناوين السداسية العشرية. يوفر هذا تحسينًا كبيرًا في تجربة المستخدم (<span dir="ltr">UX</span>).

على سبيل المثال، عند التفاعل مع تطبيق مثل يونيسواب، سيرى المستخدمون عادةً أن التطبيق الذي يتفاعلون معه مستضاف على الموقع الإلكتروني `uniswap.org`، ولكن سيتم تقديم عنوان عقد سداسي عشري لهم إذا لم تقم يونيسواب بتسمية عقودها الذكية باستخدام <span dir="ltr">ENS</span>. إذا تم تسمية العقد، فبدلاً من ذلك يمكنهم رؤية `v4.contracts.uniswap.eth` وهو أمر أكثر فائدة بكثير.

## التسمية عند النشر مقابل ما بعد النشر {#when-to-name}

هناك نقطتان يمكن فيهما تسمية العقود الذكية:

- **في وقت النشر**: تعيين اسم <span dir="ltr">ENS</span> للعقد أثناء نشره.
- **بعد النشر**: ربط عنوان عقد موجود باسم <span dir="ltr">ENS</span> جديد.

يعتمد كلا النهجين على امتلاك وصول المالك أو المدير إلى نطاق <span dir="ltr">ENS</span> حتى يتمكنوا من إنشاء وتعيين سجلات <span dir="ltr">ENS</span>.

## كيف تعمل تسمية ENS للعقود {#how-ens-naming-works}

يتم تخزين أسماء <span dir="ltr">ENS</span> على السلسلة وتُترجم إلى عناوين إيثيريوم عبر محللات <span dir="ltr">ENS</span>. لتسمية عقد ذكي:

1. تسجيل أو التحكم في نطاق <span dir="ltr">ENS</span> أصلي (مثل `myapp.eth`)
2. إنشاء نطاق فرعي (مثل `v1.myapp.eth`)
3. تعيين سجل `address` للنطاق الفرعي إلى عنوان العقد
4. تعيين السجل العكسي للعقد إلى <span dir="ltr">ENS</span> للسماح بالعثور على الاسم عبر عنوانه

أسماء <span dir="ltr">ENS</span> هرمية وتدعم أسماء فرعية غير محدودة. يتضمن تعيين هذه السجلات عادةً التفاعل مع سجل <span dir="ltr">ENS</span> وعقود المحلل العام.

## أدوات لتسمية العقود {#tools}

هناك نهجان لتسمية العقود الذكية. إما باستخدام [تطبيق ENS](https://app.ens.domains) مع بعض الخطوات اليدوية، أو باستخدام [Enscribe](https://www.enscribe.xyz). تم توضيح هذه الأساليب أدناه.

### إعداد ENS اليدوي {#manual-ens-setup}

باستخدام [تطبيق ENS](https://app.ens.domains/)، يمكن للمطورين إنشاء أسماء فرعية يدويًا وتعيين سجلات العناوين الأمامية. ومع ذلك، لا يمكنهم تعيين اسم أساسي لعقد ذكي عن طريق تعيين السجل العكسي للاسم عبر تطبيق <span dir="ltr">ENS</span>. يجب اتخاذ خطوات يدوية والتي يتم تغطيتها في [مستندات ENS](https://docs.ens.domains/web/naming-contracts/).

### Enscribe {#enscribe}

يبسط [Enscribe](https://www.enscribe.xyz) تسمية العقود الذكية باستخدام <span dir="ltr">ENS</span>، ويعزز ثقة المستخدم في العقود الذكية. وهو يوفر:

- **النشر والتسمية الذرية**: تعيين اسم <span dir="ltr">ENS</span> عند نشر عقد جديد
- **التسمية بعد النشر**: إرفاق أسماء بالعقود المنشورة بالفعل
- **دعم السلاسل المتعددة**: يعمل عبر شبكات إيثيريوم وطبقة 2 (<span dir="ltr">L2</span>) حيث يتم دعم <span dir="ltr">ENS</span>
- **بيانات التحقق من العقد**: يتضمن بيانات التحقق من العقد المسحوبة من مصادر متعددة لزيادة الثقة للمستخدمين

يدعم <span dir="ltr">Enscribe</span> أسماء <span dir="ltr">ENS</span> المقدمة من قبل المستخدمين، أو نطاقاته الخاصة إذا لم يكن لدى المستخدم اسم <span dir="ltr">ENS</span>.

يمكنك الوصول إلى [تطبيق Enscribe](https://app.enscribe.xyz) للبدء في تسمية العقود الذكية وعرضها.

## أفضل الممارسات {#best-practices}

- **استخدم أسماء واضحة ومحددة الإصدار** مثل `v1.myapp.eth` لجعل ترقيات العقد شفافة
- **قم بتعيين السجلات العكسية** لربط العقود بأسماء <span dir="ltr">ENS</span> للرؤية في التطبيقات مثل المحافظ ومستكشفات سلسلة الكتل.
- **راقب تواريخ انتهاء الصلاحية عن كثب** إذا كنت ترغب في منع التغييرات العرضية في الملكية
- **تحقق من مصدر العقد** حتى يتمكن المستخدمون من الوثوق بأن العقد المسمى يتصرف كما هو متوقع

## المخاطر {#risks}

توفر تسمية العقود الذكية فوائد كبيرة لمستخدمي إيثيريوم، ومع ذلك، يجب أن يكون مالكو نطاقات <span dir="ltr">ENS</span> يقظين فيما يتعلق بإدارتها. تشمل المخاطر البارزة ما يلي:

- **انتهاء الصلاحية**: تمامًا مثل أسماء <span dir="ltr">DNS</span>، تكون تسجيلات أسماء <span dir="ltr">ENS</span> ذات مدة محدودة. ومن ثم فمن الضروري أن يراقب المالكون تواريخ انتهاء صلاحية نطاقاتهم وتجديدها قبل وقت طويل من انتهائها. يوفر كل من تطبيق <span dir="ltr">ENS</span> و <span dir="ltr">Enscribe</span> مؤشرات مرئية لمالكي النطاقات عند اقتراب انتهاء الصلاحية.
- **تغيير الملكية**: يتم تمثيل سجلات <span dir="ltr">ENS</span> كرموز غير قابلة للاستبدال (<span dir="ltr">NFTs</span>) على إيثيريوم، حيث يمتلك مالك نطاق `.eth` المحدد الرمز غير القابل للاستبدال المرتبط به. ومن ثم، إذا تولى حساب مختلف ملكية هذا الرمز، يمكن للمالك الجديد تعديل أي سجلات <span dir="ltr">ENS</span> كما يراه مناسبًا.

للتخفيف من هذه المخاطر، يجب تأمين حساب المالك لنطاقات المستوى الثاني (<span dir="ltr">2LD</span>) `.eth` عبر محفظة متعددة التوقيعات مع إنشاء نطاقات فرعية لإدارة تسمية العقود. بهذه الطريقة، في حالة حدوث أي تغييرات عرضية أو ضارة في الملكية على مستوى النطاق الفرعي، يمكن تجاوزها من قبل مالك <span dir="ltr">2LD</span>.

## مستقبل تسمية العقود {#future}

أصبحت تسمية العقود من أفضل الممارسات لتطوير التطبيقات اللامركزية (<span dir="ltr">dapp</span>)، على غرار الطريقة التي حلت بها أسماء النطاقات محل عناوين <span dir="ltr">IP</span> على الويب. مع قيام المزيد من البنية التحتية مثل المحافظ والمستكشفات ولوحات المعلومات بدمج تحليل <span dir="ltr">ENS</span> للعقود، ستعمل العقود المسماة على تحسين الأمان وتقليل الأخطاء عبر النظام البيئي.

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

## قراءة إضافية {#further-reading}

- [تسمية العقود الذكية باستخدام ENS](https://docs.ens.domains/web/naming-contracts/)
- [تسمية العقود الذكية باستخدام Enscribe](https://www.enscribe.xyz/docs).