ما واجهة ERC-721؟
واجهة ERC-721 مجموعة معيارية من دوال العقود الذكية وأحداثها، تُستخدم لتمثيل التوكنات غير القابلة للاستبدال ونقلها على Ethereum وشبكات البلوكشين المتوافقة معها.يمثل التوكن غير القابل للاستبدال (NFT) توكنًا محددًا وفريدًا، لا كمية قابلة للاستبدال من وحدات متماثلة.تحدد مواصفات ERC-721 الرسمية كيفية تحقق المحافظ والتطبيقات والعقود الذكية وأدوات البلوكشين من ملكية NFT وإجراء تحويلات معيارية.
لا تحدد الواجهة ما الذي يمثله NFT، أو قيمته، أو ما إذا كان المحتوى المرتبط به أصليًا.بل تحدد لغة تقنية مشتركة يمكن لتطبيقات العملات المشفرة المختلفة استخدامها عند التعامل مع عقود NFT.وصل معيار ERC-721 إلى الحالة النهائية ضمن عملية مقترحات تحسين Ethereum، وما زال أحد المعايير الرئيسية للأصول الفريدة على البلوكشين.يمكن استخدام ERC-721 للمقتنيات الرقمية، وعناصر الألعاب، وبيانات العضوية، والأراضي الافتراضية، وتذاكر الفعاليات، والأصول الشبيهة بالنطاقات، والمراكز المالية، والسجلات المرمزة.لماذا تُعد الواجهة مهمة؟
تصف واجهة العقد الذكي الدوال والأحداث الخارجية التي تتوقع البرامج المتوافقة أن يوفرها العقد.من دون واجهة مشتركة، قد يستخدم كل مشروع NFT أسماء دوال وقواعد تحويل مختلفة.وعندها ستحتاج المحافظ والتطبيقات اللامركزية إلى تعليمات برمجية مخصصة لكل مجموعة.تتيح واجهة ERC-721 للبرامج استدعاء دوال مألوفة مثل
ما الذي يجعل توكن ERC-721 غير قابل للاستبدال؟
يملك كل توكن ERC-721 رقمًا صحيحًا غير موقّع وفريدًا يسمى معرّف التوكن.يُحدد التوكن بالكامل من خلال الجمع بين شبكة البلوكشين وعنوان العقد ومعرّف التوكن.لا صلة لمعرّف التوكن 100 في عقد ما بمعرّف التوكن 100 في عقد آخر.لا يشترط المعيار أن تبدأ معرّفات التوكنات من الصفر، أو أن تزيد بالتتابع، أو أن تتبع نمطًا متوقعًا.ينبغي للتطبيقات التعامل مع كل معرّف توكن بوصفه معرّفًا غير تفسيري، بدلًا من تخمين معرّفات التوكنات الموجودة.لكل معرّف توكن صالح مالك واحد في كل مرة وفق نموذج الملكية الأساسي في ERC-721.يمكن نقل NFT كاملًا كوحدة واحدة، أما الملكية الجزئية فتتطلب عقدًا أو بنية توكن منفصلة خارج الواجهة الأساسية.معرّف واجهة ERC-721 الأساسية
يُعرّف ERC-165 واجهة ERC-721 الأساسية بالقيمة
ينبغي للعقد المتوافق أن يعيد
يحسب معيار كشف الواجهات ERC-165 معرّف الواجهة عبر تطبيق عملية XOR على محددات الدوال المضمنة في تلك الواجهة.
يتيح ERC-165 للتطبيق سؤال العقد عن الواجهات المعيارية التي يزعم دعمها قبل محاولة التفاعل معه.تفيد الاستجابة الإيجابية في التحقق من التوافق، لكنها لا تثبت بصورة مستقلة أن كل دالة منفذة على نحو صحيح.قد تحتاج التطبيقات التي تتعامل مع أصول ذات قيمة أيضًا إلى مراجعة التعليمات البرمجية والاختبار ومحاكاة المعاملات.الدوال الأساسية لواجهة ERC-721
تتضمن واجهة ERC-721 المطلوبة استعلامات الملكية ودوال التحويل وإدارة الموافقات.تشمل الدوال الرئيسية
دالة balanceOf
تعيد الدالة
دالة ownerOf
تعيد الدالة
دالة transferFrom
تنقل الدالة
يجب أن يطابق عنوان
قد يصبح NFT المرسل باستخدام
دوال safeTransferFrom
يحدد ERC-721 نسختين محملتين فوقيًا من
إذا كان المستلم عقدًا ذكيًا، تستدعي عملية التحويل
ما IERC721Receiver؟
الدالة المطلوبة فيها هي
يعيد المستلم الناجح محدد دالته، والذي يُمثّل عادةً بالقيمة
يتضمن توثيق تنفيذ ERC-721 الحالي واجهة للمستلم وأداة أساسية للاحتفاظ بالتوكنات، للعقود التي تحتاج إلى قبول التحويلات الآمنة.
ينبغي للمستلم التحقق من عقد NFT الذي استدعاه قبل استخدام الاستدعاء الراجع لتحديث محاسبة مهمة.مخاطر الاستدعاء الراجع لمستلم ERC-721
ينشئ التحويل الآمن إلى عقد استدعاءً خارجيًا لذلك المستلم.يمكن للمستلم تنفيذ تعليمات برمجية إضافية قبل اكتمال المعاملة الأصلية.يؤدي ذلك إلى احتمال إعادة الدخول إذا لم يكن التطبيق المرسل قد أكمل تحديثاته الداخلية للحالة.قد يحاول مستلم خبيث استدعاء دالة أخرى في العقد الأصلي أثناء الاستدعاء الراجع.يوصي دليل أمن العقود الذكية في Solidity بإكمال عمليات التحقق والتغييرات المهمة في الحالة قبل التفاعلات الخارجية، عندما يسمح التصميم المقصود بذلك.
ينبغي للمطورين اختبار تحويلات NFT الآمنة باستخدام عقود مستلمة خبيثة بدلًا من افتراض أن الاستدعاء الراجع غير ضار.دالة approve
تمنح الدالة
يمكن أن يؤدي استدعاء
دالة getApproved
تعيد الدالة
ينبغي للتطبيقات أيضًا التحقق من
دالة setApprovalForAll
تفوض الدالة
دالة isApprovedForAll
تعرض الدالة
أحداث ERC-721
تحدد واجهة ERC-721 الأساسية أحداث
حدث Transfer
يسجل حدث
حدث Approval
يسجل حدث
حدث ApprovalForAll
يسجل حدث
واجهة البيانات الوصفية الاختيارية في ERC-721
يضيف امتداد البيانات الوصفية الدوال
معرّف واجهته في ERC-165 هو
تعيد الدالة
تعيد الدالة
تعيد الدالة
كيف تعمل tokenURI
تشير الدالة
يشير دليل تطوير ERC-721 الحالي إلى أن الطرف الذي يتحكم في موقع التخزين قد يغير البيانات الوصفية خارج السلسلة.
لا تضمن ملكية التوكن تلقائيًا استمرار توفر صورة أو ملف خارجي إلى الأبد.واجهة التعداد الاختيارية في ERC-721
يتيح امتداد التعداد للتطبيقات اكتشاف معرّفات التوكنات عبر استعلامات على السلسلة.معرّف واجهته في ERC-165 هو
ويضيف الدوال
تعيد الدالة
تعيد تطبيقات كثيرة بناء حيازات NFT بدلًا من ذلك من أحداث
السك والحرق
لا تشترط واجهة ERC-721 الأساسية توفير دالة سك عامة.يحدد كل مشروع ما إذا كان السك مفتوحًا أو مقيدًا أو مجدولًا أو محددًا بسقف أو معطلًا نهائيًا.كما لا يشترط المعيار توفير دالة حرق عامة.يزيل الحرق التوكن من سجلات الملكية الصالحة وفقًا لتنفيذ العقد.ينبغي للمستخدمين التحقق ممن يستطيع سك NFTs أو حرقها، وما إذا كان بإمكان المسؤول التأثير في التوكنات التي تحتفظ بها حسابات أخرى.لا يثبت توافق واجهة التحويل أن معروض التوكن ثابت.واجهة ERC-721 مقارنةً بتنفيذ ERC-721
تحدد الواجهة السلوك الخارجي اللازم للتوافق.أما التنفيذ فيتضمن منطق التخزين والتفويض والتحويل والسك والبيانات الوصفية والإدارة الفعلي.يمكن لعقدين دعم واجهة ERC-721 نفسها مع استخدام تصميمين داخليين مختلفين تمامًا.قد يكون أحد التنفيذات غير قابل للتغيير، فيما قد يعمل آخر عبر وكيل قابل للترقية.قد يكون لأحدهما معروض ثابت، فيما يسمح آخر للمسؤول بالسك بلا حد.قد يخزّن أحدهما البيانات الوصفية على السلسلة، فيما يشير آخر إلى خادم قابل للتغيير.ينبغي للمستخدمين مراجعة التنفيذ بدلًا من اعتبار دعم الواجهة تقييمًا أمنيًا كاملًا.ERC-721 مقارنةً بـ ERC-20
يمثل ERC-20 أرصدة قابلة للاستبدال، بينما يمثل ERC-721 توكنات محددة كلٌّ منها على حدة.يمكن لحساب ERC-20 امتلاك كمية قابلة للتجزئة مثل 250 وحدة.أما حساب ERC-721 فيمتلك عددًا من معرّفات التوكنات المميزة.تعرض الدالة
ERC-721 مقارنةً بـ ERC-1155
يركز ERC-721 على التوكنات غير القابلة للاستبدال ذات المعرّفات الفردية.يتيح ERC-1155 لعقد واحد إدارة معرّفات توكنات متعددة، بما يشمل الأصول القابلة للاستبدال وشبه القابلة للاستبدال وغير القابلة للاستبدال.يمكن لحساب ERC-1155 امتلاك عدة وحدات من معرّف توكن واحد.لمعرّف توكن ERC-721 مالك واحد، ولا يحتفظ العقد برصيد كمي لكل حساب.يعتمد اختيار المعيار الأنسب على نموذج الأصل وأنماط التحويل والحاجة إلى العمليات الدفعية ومتطلبات التطبيق.الإتاوات وواجهة ERC-721
لا تحدد واجهة ERC-721 الأساسية إتاوات منشئي المحتوى.يمكن لواجهة منفصلة للإتاوات الإشارة إلى مستلم دفع مقترح ومبلغه.لا تفرض معلومات الإتاوات تلقائيًا على كل نظام تحويل إجراء الدفع.ينبغي للمجموعة التي تعلن عن إتاوات توضيح طريقة حسابها وإمكانية تغييرها.ينبغي ألا يفترض المستخدمون أن NFT وفق ERC-721 يتضمن حقوق إتاوات دائمة أو قابلة للإنفاذ.المخاطر الأمنية لموافقات ERC-721
يُعد التصيد الاحتيالي للموافقات أحد أهم المخاطر التي تواجه حاملي NFTs.قد يطلب موقع خبيث تنفيذ
مخاطر التحويل غير الآمن
يمكن لدالة
لهذا السبب يُفضّل استخدام
مخاطر البيانات الوصفية والأصالة
يمكن لأي شخص نشر عقد ERC-721 يستخدم اسم مجموعة مألوفًا أو رمزًا شائعًا.يُعد عنوان العقد أهم معرّف تقني للمجموعة.كما قد تتضمن البيانات الوصفية أسماء مضللة أو أعمالًا فنية منسوخة أو روابط خارجية غير آمنة أو ملفات غير متاحة.قد يشير URI للتوكن، الذي يتحكم فيه مسؤول المشروع، إلى محتوى مختلف لاحقًا.لا تتحقق الملكية على السلسلة بصورة مستقلة من هوية المنشئ أو حقوق الملكية الفكرية.ينبغي للمستخدمين تأكيد عنوان المجموعة ومعلومات المشروع عبر مصادر موثوقة.مخاطر العقود القابلة للترقية
قد يعمل تنفيذ ERC-721 خلف وكيل قابل للترقية.قد يتمكن مسؤول مخوّل من تغيير قواعد التحويل أو منطق البيانات الوصفية أو صلاحيات السك أو سلوك آخر بعد اقتناء المستخدمين للـ NFTs.قد تصلح الترقيات الأخطاء، لكنها قد تنشئ أيضًا مخاطر تتعلق بالحوكمة أو اختراق المفاتيح.ينبغي للمستخدمين فحص صلاحيات الترقية والتأخيرات الزمنية وضوابط التوقيع المتعدد وأدوار المسؤولين.لا يكشف دعم واجهة ERC-721 عن كل الدوال ذات الصلاحيات الخاصة في التنفيذ.كيفية تطبيق ERC-721 للمطورين
ينبغي للمطورين البدء بتنفيذ خضع للمراجعة ويحظى بصيانة نشطة، بدلًا من إعادة كتابة منطق الملكية الحساس دون سبب قوي.يوفر مرجع OpenZeppelin ERC-721 API الحالي مكونات أساسية ومكونات للبيانات الوصفية والتعداد والإيقاف والحرق والإتاوات والتصويت والاستقبال.
ينبغي تقييد صلاحية السك بما يتفق مع سياسة المعروض المعلنة للمجموعة.ينبغي النظر في السك الآمن عندما يمكن سك NFTs مباشرةً إلى عقود ذكية.ينبغي التعامل مع الاستدعاءات الراجعة للمستلم بوصفها استدعاءات خارجية قد تنطوي على سلوك إعادة الدخول.ينبغي أن تغطي الاختبارات الملكية والموافقات وصلاحيات المشغّلين والمستلمين الآمنين والمستلمين الخبيثين والحرق ومعرّفات التوكنات غير الصالحة والتحويلات غير المصرح بها.ينبغي للمطورين أيضًا اختبار ما إذا كان كشف الواجهات يعيد القيم الصحيحة لكل امتداد مطبق.كيف تكتشف التطبيقات دعم ERC-721
يمكن للتطبيق استدعاء
تشير القيمة المعادة
مثال على تحويل ERC-721
لنفترض أن Alice تملك التوكن ذي المعرّف 42 في عقد ERC-721.تعيد دالة العقد
تستدعي محفظتها
يحدّث العقد الملكية ويستدعي
إذا أعاد المستلم المحدد الصحيح، يكتمل التحويل ويصدر حدث
أخطاء شائعة في واجهة ERC-721
من الأخطاء الشائعة افتراض أن اسم المجموعة يحدد عقد NFT على نحو فريد.ومنها أيضًا اعتبار
والخطأ الثالث استخدام
الأسئلة الشائعة
ما واجهة ERC-721؟
واجهة ERC-721 مجموعة معيارية من الدوال والأحداث لتتبع ملكية التوكنات غير القابلة للاستبدال والموافقات عليها وتحويلاتها.ما معرّف واجهة ERC-721؟
معرّف واجهة ERC-721 الأساسية هو
ماذا تعيد balanceOf في عقد ERC-721؟
تعيد عدد NFTs المميزة من ذلك العقد التي يملكها عنوان ما.ما وظيفة ownerOf؟
تعيد المالك الحالي لمعرّف توكن صالح.ما الفرق بين transferFrom وsafeTransferFrom؟
تتحقق
ما onERC721Received؟
هو الاستدعاء الراجع الذي يطبقه العقد الذكي لتأكيد قدرته على قبول NFT عبر تحويل آمن.هل يمكن أن يفشل تحويل NFT الآمن؟
نعم، يفشل إذا لم تنجح عمليات التحقق من التفويض أو إذا لم يُعد العقد المستلم محدد الاستدعاء الراجع المتوقع.ما وظيفة approve؟
تفوض عنوانًا واحدًا بنقل NFT محدد.ما وظيفة setApprovalForAll؟
تمنح مشغّلًا صلاحية التصرف في كل NFTs التي يملكها المستدعي في عقد ERC-721 ذاك.هل تنتهي موافقة المشغّل تلقائيًا؟
لا، تظل الموافقة المعيارية على مستوى المجموعة نشطة إلى أن يلغيها المالك أو يطبق العقد قواعد مخصصة إضافية.هل يؤدي نقل NFT إلى إلغاء الموافقة الخاصة بالتوكن؟
نعم، يلغي تنفيذ ERC-721 الاعتيادي الموافقة المرتبطة بذلك التوكن أثناء نقله.هل البيانات الوصفية مطلوبة في ERC-721؟
لا، واجهة البيانات الوصفية اختيارية، رغم أن معظم مجموعات NFT تطبقها.ما معرّف واجهة البيانات الوصفية في ERC-721؟
يستخدم امتداد البيانات الوصفية معرّف الواجهة
ما معرّف واجهة التعداد في ERC-721؟
يستخدم امتداد التعداد معرّف الواجهة
هل يدعم كل عقد ERC-721 دالة totalSupply؟
لا، تنتمي
هل يشترط ERC-721 وجود دالة سك؟
لا، لا تحدد الواجهة الأساسية كيفية سك المستخدمين أو المسؤولين لـ NFTs.هل يشترط ERC-721 وجود دالة حرق؟
لا، فالحرق ميزة في التنفيذ وليس دالة أساسية مطلوبة.هل يفرض ERC-721 الإتاوات؟
لا، فالإتاوات خارج نطاق واجهة ERC-721 الأساسية وتتطلب منطقًا أو معايير منفصلة.هل يمكن تغيير بيانات ERC-721 الوصفية؟
نعم، يسمح المعيار بتغيير URI التوكن ما لم يوفر التنفيذ ضمانات أقوى لعدم القابلية للتغيير.هل يثبت الامتثال لـ ERC-721 أصالة NFT؟
لا، إذ يمكن لأي شخص نشر عقد متوافق، لذا يجب على المستخدمين التحقق من عنوان العقد والجهة المصدرة بصورة مستقلة.الخاتمة
توفر واجهة ERC-721 القواعد المشتركة للملكية والموافقة والتحويل والأحداث المستخدمة في التوكنات غير القابلة للاستبدال عبر التطبيقات المتوافقة مع Ethereum.معرّف الواجهة الأساسية هو
قد يعجبك أيضاً
WhatsMiner M30S++
نطاقات Web3
مشاريع Web3
رائج
العملات المشفرة الرائجة حاليًا والتي تحظى باهتمام كبير في السوق
الأعلى حجماً
العملات المشفرة ذات أعلى حجم تداول
مضاف حديثا
العملات المشفرة المدرجة مؤخرًا والمتاحة للتداول

