تحليل الأمان لعقد ERC 1155 الذكي NFT

تحليل الأمان لعقد ERC 1155 الذكي NFT

التحليل الأمني ​​لذكاء بيانات PlatoBlockchain للعقد الذكي ERC 1155 NFT. البحث العمودي. منظمة العفو الدولية.

وقت القراءة: 5 دقائق

يجب أن تكون قد سمعت عن الرموز المميزة للعملات المشفرة. تلعب الرموز المميزة المختلفة دورًا حيويًا في النظام البيئي web3. تمثل هذه الرموز الملكية والثروة والمصداقية والسلطة في العملة المشفرة. الجزء الممتع هو أنه يمكنك أيضًا إنشاء رمز مميز للعملات المشفرة. 

هذه الرموز هي عقود ذكية تتضمن وظائف مختلفة لإجراءات مختلفة مثل التحويل والتحقق من الرصيد وما إلى ذلك. يمكنك إنشاء رمز مميز عن طريق إنشاء عقد ذكي له. ومع ذلك ، للتأكد من أن الرمز المميز الخاص بك آمن وإرفاق شعور بالثقة به ، فإن ERC 20 هو معيار العقد الذكي يُنصح باتباعها لإنشاء رموز قابلة للاستبدال ، و ERC 721 هو معيار العقد الذكي المستخدم لإنشاء رموز غير قابلة للاستبدال (NFTs).

يعتبر ERC 20 و ERC 721 من بروتوكولات العقود الذكية المقبولة على نطاق واسع لإنشاء الرموز. أنها توفر بيئة آمنة وجديرة بالثقة للرموز. وتستمر هذه البروتوكولات في التحسن وتستمر في التحسن. تؤدي خطوة في هذا الاتجاه إلى إنشاء بروتوكول عقد ذكي جديد لـ ERC 1155 للرموز المميزة. دعونا نرى ما هو عليه.

1. ما هو ERC 1155؟

جميع ERCs ، مثل 20 و 721 ، هي مجرد معايير لإنشاء عقود ذكية تناسب ظروفًا مختلفة لـ NFTs. لدينا ERC 721 ، وتتبع الرموز المميزة مثل USDT و DAI معايير ERC 20. ERC 1155 هو معيار واحد يتضمن وظائف وخصائص ERC 20 و ERC 721.

لنفترض أنك تريد إنشاء برنامج حيث تقوم بإنشاء سلع متعددة. على سبيل المثال ، تريد إنشاء رمز مميز باسم الذهب ، ورمز آخر يسمى الفضة وملك واحد ، والمنطق يقول أن الشخص الذي يحتوي على المزيد من الذهب والفضة سيكون هو الملك. يمكن أن يكون هناك ملك واحد فقط. إنه بروتوكول بسيط ، ولكن لإنشاء هذا ، سيتعين عليك نشر 3 عقود للأصول فقط ، أحدهما لرمز ذهبي والآخر للفضة والآخر للملك ، والذي سيكون ERC 721. ولكن ماذا لو كان بإمكانك نشرها فقط عقد واحد يسرد كل تلك الرموز المختلفة؟

هذه إحدى هذه المشكلات التي يحلها ERC 1155. لا تحتاج إلى نشر عقد لكل رمز تريده على blockchain. كان هذا أحد الأمثلة على عقد ERC 1155. خمن أين نحتاج إلى هذا النوع من النظام بأصول متعددة ، بعضها قابل للتبديل ، وبعضها غير قابل للاستبدال. الجواب هو ألعاب web3. يعمل ERC 1155 على تمكين مطوري ألعاب Web3 من قابلية التوسع والتطوير السلس للمعاملات على السلسلة.

1.1 معرفات الرمز المميز في ERC 1155

يجب أن تكون على دراية بكيفية التحقق من الرصيد في توكنات ERC 20 المختلفة ، يمكنك فقط الاتصال BalanceOf (العنوان _ المالك) ، ويمكنك الحصول على عدد الرموز المميزة التي يحملها العنوان. لكن ERC 1155 يتعامل مع رموز مختلفة ، لذلك نحتاج إلى توفير معرفات مختلفة لرموز مختلفة. تأخذ كل وظيفة مرتبطة بالرموز المميزة تقريبًا معاملين على الأقل هما tokenId (الأصل الذي تريد الاستفسار عنه) والعنوان الذي تريد معرفته.

على سبيل المثال ، لنفترض أن العقد يحتوي على 3 رموز وهي الذهب والفضة والملك. لمعرفة مقدار الذهب الذي يحتويه عنوان معين في هذا البروتوكول ، يمكنك الاتصال بميزان الوظيفة (العنوان _مالك، uint256 _id) على العقد الذكي. افترض أن الرمز المميز للذهب محدد ليكون 1. ثم يمكنك الاتصال balnceOf (0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096، 1).

2 إرشادات تدقيق العقود الذكية ERC 1155

كان ERC 1155 موجودًا منذ بعض الوقت ، وبعض الميزات غير متوفرة في بروتوكول ERC 20 أو ERC 721 العادي ، مثل نقل الدُفعات. أيضًا ، يعد ERC 1155 أقل انتشارًا في مساحة السوق ، مما يجعل هذه المنطقة أقل استكشافًا للعديد من المطورين. تشارك QuillAudits رؤى مهمة للبروتوكولات التي تتطلع إلى BUIDL على ERC 1155 ، حتى يتمكنوا من المساعدة في إنشاء نظام ويب 3 أكثر أمانًا من خلال حماية أنفسهم. 

2.1 واجهة جهاز الاستقبال ERC 1155

عندما يقوم عقد ERC 1155 الخاص بنا بنقل الأصول إلى بعض العقود الأخرى التي تعد بشكل عام متطلبًا في بروتوكول لعبة الويب 3 ، فمن المهم أن يكون لديك واجهة ERC1155Receiver في عقد الاستلام لمعاملة الرموز المميزة بنجاح.

وظيفتان تندرجان ضمن واجهة جهاز الاستقبال ERC 1155 هما: -

  • تم استلام onERC1155 (عامل ، من ، معرف ، قيمة ، بيانات)
  • onERC1155BatchR Received (عامل ، من ، معرفات ، قيم ، بيانات)

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

يجب عدم استدعاء هذه الوظيفة خارج عملية السك أو عملية النقل. لقبول النقل ، يجب إرجاع بايت 4 (keccak256 ("تم استلام onERC1155 (العنوان ، العنوان ، uint256 ، uint256 ، بايت)")) إذا كان النقل مسموحًا به.

النظر في المعلمات: -

  1. عامل التشغيل: - العنوان الذي بدأ التحويل (مثل المرسل msg) 
  2. من: - العنوان الذي كان يمتلك الرمز المميز سابقًا
  3. المعرّف: - معرّف الرمز المميز الذي يتم نقله 
  4. القيمة: - عدد التوكنات التي يتم تحويلها 
  5. البيانات: - بيانات إضافية بدون تنسيق محدد 

2.2 لا يوجد وظيفة الموافقة ()؟

إذا سبق لك العمل مع ERC 20 أو ERC 721 ، فستصادف وظيفة الموافقة () ، التي تسمح لبعض العناوين بأخذ الرموز المميزة المعتمدة من رصيد المالك. على سبيل المثال ، إذا أراد "أ" الموافقة على "ب" لأخذ 100 رمز مميز من DAI ، فيمكن لـ "أ" استدعاء وظيفة الموافقة ، قائلاً إن "ب" يحق لها الحصول على 100 رمز DAI ، وبعد ذلك ، يمكن لـ "ب" إجراء معاملة بهذا المبلغ.

لكن ERC 1155 لا يحتوي على ملف الموافقة على وظيفة لرمز واحد. لدينا setApprovalForAll (عامل العنوان ، معتمد منطقي) الوظيفة ، التي يستدعيها المالك وتأخذ عامل معامل العنوان ، وهو عنوان المنفق أو الذي نريد الموافقة على الرموز المميزة لدينا. لذلك ، لا يمكننا استدعاء الموافقة على وظيفة أو منح الموافقة لرمز واحد من قائمة الرموز المميزة ERC 1155 الخاصة بنا ، ولكن بدلاً من ذلك ، ستتم الموافقة على الوصول إلى الرمز المميز مرة واحدة. يجب أن يكون فريق التطوير على دراية بهذا. إذا تم تجاهله ، فقد يؤدي ذلك إلى خسائر فادحة وتعريض البروتوكول للخطر.

2.3 بعض الشيكات المنتظمة

استكشف القسمان أعلاه اثنين من عمليات التحقق الفريدة ذات الصلة بـ ERC 1155. في هذا القسم ، سوف نجري بعض الفحوصات المنتظمة التي لا تحتاج إلى شرح عميق للغاية.

  1. ضع في اعتبارك المعرفات: - كل وظيفة أو واجهة خارجية تعمل مع ERC 1155 تحتاج إلى معرف الرمز المميز المحدد لأخذ ذلك كمدخل.
  2. Burn / Mint: - عندما يتم استدعاء هذه الوظائف ، يجب عليهم فقط تغيير الرصيد وإجمالي العرض لمعرف الرمز المميز المحدد.
  3. تشابه ERC 20: - العديد من الخصائص مثل معيار الرمز المميز ERC 20. سيساعد اتباع الإرشادات الأمنية لـ ERC 20 أيضًا في هذا الأمر.
  4. إعادة الدخول: - كما تمت مناقشته ، يتحقق ERC 1155 من الواجهة المدعومة في منطق النقل. وبالتالي يمكن أن يكون هناك سيناريوهات مختلفة قد تؤدي إلى ضعف إعادة الدخول. يُنصح بالاحتفاظ بمعدلات الحراسة non-reentrancy في الوظائف القابلة للتطبيق.

3. اختتام

يرى النظام البيئي Web3 تطورًا مستمرًا في المعايير العادية لتعزيز الأمان والوظائف. يعتبر ERC 1155 خطوة في هذا الاتجاه. ولكن عندما يتم إصدار المعايير الجديدة ، فإنها تخلق فجوة معرفية تتضمن معايير غير شائعة جدًا في البروتوكولات وتأتي مع خطر مساحة عينة أصغر للتدابير الأمنية. هذا عندما يأتي QuillAudits إلى الصورة مع فريق من الخبراء. نحن نعالج ونحلل ونجد طرقًا مختلفة يمكن من خلالها اختراق البروتوكول وتأمين بروتوكول عملائنا بنتائج لا تصدق. قم بزيارة موقعنا على الإنترنت واحصل على مشروع Web3 الخاص بك آمنًا!

17 المشاهدات

الطابع الزمني:

اكثر من كويلهاش