هل أنت مطور Ethereum تعمل في مشروع تشفير؟ من المحتمل أنك تقوم بتطوير رمز جديد باستخدام معيار ERC20 ، ومع ذلك ، فأنت بحاجة إلى معرفة جهود التحسين. سيساعدك هذا في اتخاذ القرار الصحيح بشأن معيار رمز ERC المطلوب استخدامه ، ومن ثم سأشرح مقارنة ERC777 مقابل ERC223 مقابل ERC20 في هذه المقالة.
سأبدأ المقارنة بشرح لـ ERC 20 ، وسأشرح فيما بعد عيوبه. ثم سأشرح جهود التحسين التي قام بها مجتمع Ethereum ، عبر ERC 777 و ERC 223.
مقارنة بين ERC20 و ERC223 و ERC777
ما هو ERC 20?
قبل أن أقارن بين ERC 20 و ERC 223 و ERC 777 ، أحتاج إلى شرح ما هو ERC ، وما الذي يمثله ERC20. غالبًا ما يرسل مطورو Ethereum “مقترحات تحسين Ethreum” (EIPs). يقوم مجتمع Ethereum بمراجعة EIPs ، وإبداء التعليقات ، والتي قد تؤدي إلى بعض إعادة العمل.
بعد أن يقبل مجتمع Ethereum EIP ، يصبح معيارًا ، ثم أطلقنا عليه “طلب Ethereum للتعليقات” (ERC). ERC 20 هو أحد هذه المعايير لعملات Ethreum.
ERC 20 هو أشهر معيار رمزي لإيثريوم وقد استخدمته جميع ICO تقريبًا التي استخدمت منصة Ethereum. يستخدمه المطورون افتراضيًا لإنشاء رموز جديدة ، بينما تقبل المحافظ والتبادلات رموز ERC 20 بسهولة.
قبل ERC 20 ، كان على مطوري Ethereum تحديد القواعد التي ستتبعها الرموز المميزة الخاصة بهم ، وكان هذا النهج يفتقر إلى التوحيد القياسي. الآن مع ERC20 ، يعرف مطورو Ethereum أنهم سيضطرون فقط إلى استخدام معيار ERC 20. لعب هذا التوحيد القياسي دورًا كبيرًا في تأجيج جنون ICO الذي رأيناه منذ عام 2017.
اقرأ المزيد عن معيار ERC 20 في “دليل المبتدئين: ما هو ERC20؟”.
ما هي وظائف ERC 20 القياسية?
ينص معيار ERC 20 على الوظائف التالية عند تطوير رمز Ethereum:
- احصل على إجمالي المعروض من الرموز المميزة: أنت بحاجة إلى استخدام وظيفة “totalSupply”.
- استرداد الرصيد المميز لحسابات مالك آخر.
- إرسال الرموز إلى حساب مالك آخر: تحتاج إلى استخدام وظيفة “النقل”. هذه الحسابات هي حسابات EOA.
- إرسال الرموز المميزة من عنوان رمز إلى آخر. عناوين الرموز هي عناوين عقود ، وتحتاج إلى استخدام وظيفة “TransferFrom”.
- اسمح لحساب آخر بسحب الأموال من حسابك بشكل متكرر ، ضمن حد معين. يجب عليك استخدام وظيفة “الموافقة” لهذا الغرض.
- يستطيع المنفقون إعادة الرموز المميزة غير المستخدمة إلى المالكين ، باستخدام وظيفة “المخصصات”.
خطأ في ERC 20 يحرق الرموز المميزة
على الرغم من أن معيار ERC 20 موثق جيدًا ويتم تنفيذه بشكل عام ، إلا أنه يشتمل على خطأ ، وقد أدى هذا بالفعل إلى حرق الرموز التي تبلغ قيمتها ملايين الدولارات الأمريكية. تسمح لك وظيفة “النقل” فقط بإرسال الرموز إلى مالك آخر ، أي حساب EOA.
إذا كنت ترغب في إرسال الأموال إلى حساب عقد ذكي ، أي الشكل الآخر من حسابات Ethereum ، فأنت بحاجة إلى استخدام مزيج “الموافقة” و “التحويل من”. إذا قمت بإرسال الرموز المميزة إلى عقد ذكي باستخدام وظيفة “التحويل” ، فسترى معاملة ناجحة ، لكن العقد لن يتلقى الرموز المميزة أبدًا.
يؤدي هذا إلى حرق تلك الرموز المميزة إلى الأبد ، ولا يمكنك استردادها. استخدم العديد من المستخدمين الوظيفة الخاطئة لإرسال الرموز المميزة إلى العقود الذكية وفقدوا الرموز المميزة الخاصة بهم إلى الأبد!
تعرف مؤسسة Ethereum عن الخطأ ولكنها تواصل الترويج لمعيار ERC 20. لا أعرف أسبابهم لفعل ذلك. ربما لا يقدرون أهمية القضية ، أو أن هناك مقاومة للتغيير.
معيار الرمز المميز ERC223: قرار مقترح لخلل ERC 20
اقترح مطور Ethereum الذي يستخدم اسم مستخدم Reddit “Dexaran” EIP 223 مع حل لهذا الخطأ ERC 20. قبل مقارنة ERC 20 مقابل ERC 223 مقابل ERC 777 ، سأشرح اقتراحه أولاً.
لا يزال معيار الرمز المميز ERC223 مسودة ، ولم ينفذه مجتمع Ethereum حتى الآن. يقترح الحل التالي:
- تعتبر المعاملة على Ethereum blockchain حدثًا وتستخدم مفهوم “معالجة الحدث”.
- إذا استخدم المستخدمون وظيفة “النقل” لإرسال الرموز المميزة إلى عقد ذكي ، فسيؤدي ذلك إلى حدوث خطأ ، وبالتالي إلغاء المعاملة.
- يدفع المستخدم “سعر الغاز” في Ethereum ، لكنه لا يفقد أي رمز مميز.
- يضيف هذا الاقتراح معلمة إضافية لوظيفة “النقل” ، للتحقق مما إذا كان عنوان الاستلام هو حساب عقد.
- إذا وجدت أن عنوان المستلم هو حساب عقد وليس حساب EOA ، فإنه يفترض أن العقد قد نفذ “رمز استرداد الرمز المميز”.
- تسمح وظيفة “tokenFallback” بإعادة استدعاء الرمز المميز ، لذلك لا تقوم المعاملة بنسخ أي رمز مميز.
في حين أن ERC223 يحل خطأ ERC 20 إلى حد كبير ، هناك ضعف في هذا الاقتراح. إذا كان العقد الذكي للمستلم لا يحتوي على وظيفة “tokanFallback” ، فسيتم تشغيل وظيفة “الرجوع” ، مما يؤدي إلى فقدان الرموز المميزة.
فقط عدد قليل من المشاريع تستخدم ERC 223 ، ومثال على ذلك مشروع AmigoCoin. يمكنك قراءة المزيد من التفاصيل حول اقتراح ERC 223 في مستودع GitHub EIP 223. يسمى هذا المعيار أيضًا ERC 23.
معيار ERC777: اقتراح محسّن لحل خطأ ERC 20
اقتراح محسّن لمنع فقدان الرموز بسبب خطأ ERC 20 هو اقتراح ERC 777. وهي تشمل ما يلي:
- وظائف جديدة: “إرسال” بدلاً من “نقل” ، و “authoriseOperator” بدلاً من “موافقة” ، و “استلام الرموز المميزة” بدلاً من “tokenFallback”.
- لطالما كان لمنصة Ethereum عيبًا لأن المطورين لم يتمكنوا من تحديد الوظائف التي تنفذها العقود الذكية. قام ERC 820 ، أي معيار آخر ، بتنفيذ سجل مركزي للعقود على الشبكة ، وبالتالي أصبح من الممكن الآن معرفة الوظائف والواجهات التي يمتلكها العقد الذكي. يستخدمه ERC777 لتحديد الواجهات التي يستخدمها العقد الذكي. سيعرف المطورون الآن مسبقًا ما إذا كان العقد يحتوي على الوظائف المطلوبة لتلقي الرموز المميزة المرسلة عبر وظائف معينة.
- يتيح ERC 777 “إدراج المشغلين في القائمة البيضاء” ، لذلك سيكون لدى مستخدمي شبكة Ethereum الآن القدرة على رفض الدفع من العناوين المدرجة في القائمة السوداء. يمكن إدراج عنوان في القائمة السوداء لأسباب عديدة ، على سبيل المثال محاولة اختراق الشبكة وتاريخ الأنشطة غير القانونية.
يمكنك أن ترى في مقارنة ERC 777 مقابل ERC 20 مقابل ERC 223 كيف يوفر ERC777 خيارات متعددة للمطورين حتى يتمكنوا من منع فقدان الرموز. ومع ذلك ، فإن معيار ERC777 يأتي أيضًا مع بعض المخاطر ، على النحو التالي:
- يعتقد بعض مطوري Ethereum أن وظيفة “authoriseOperator” مهملة ، وبالتالي لا ينبغي للمطورين استخدامها. ستتطلب هذه الوظيفة أيضًا مزيدًا من “الغاز” وستضع ضغطًا إضافيًا على الشبكة.
- يعد استخدام السجل المركزي للعقود الذكية للبحث عن الواجهات التي يستخدمها العقد أمرًا محفوفًا بالمخاطر. قد يحتوي السجل المركزي على أخطاء ، وأي شيء يعتمد عليه سيكون له تأثير سلبي.
ERC777 لا يزال مسودة ، ومع ذلك ، فإن أوركا يستخدمه الرمز المميز. اقرأ الاقتراح في مستودع جيثب EIP 777.
ERC 777 vs ERC 20 vs ERC 223: حماية الأموال مهمة
في حين أن الوقت فقط سيحدد المعيار الذي يقبله نظام Ethereum البيئي باعتباره “المعيار الذهبي” ، فأنت كمطور بحاجة إلى أن تتذكر أنه من مسؤوليتك حماية أموال المتداولين والمستثمرين. إذا اتخذت مثل هذا الموقف المسؤول ، فربما توافق على أنه على الرغم من التعقيد ، يجب تنفيذ معيار ERC 777 واعتماده.
ملاحظة: إذا كنت تريد معرفة المزيد حول بعض معايير ERC الرئيسية ، فاقرأ “القائمة النهائية لمعايير ERC التي تحتاج إلى معرفتها”.