محافظ ذكية مُصممة خصيصًا لـ TRON

محافظ عقود TRON الذكية

Image

تعرّف على كيفية نشر وإدارة المحافظ الذكية على TRON

المقدمة

تهدف المحافظ الذكية في Web3 إلى معالجة بعض المشاكل طويلة الأمد في بيئة Web3:

تعقيد إدارة المفاتيح: في إعدادات Web3 التقليدية يُدير المستخدمون المفاتيح الخاصة أو العبارات الأولية للوصول إلى محافظ العملات المشفرة الخاصة بهم. يصعب تذكر هذه المفاتيح ويسهل فقدانها وتُشكل كابوسًا في حال سرقتها. تستفيد المحافظ الذكية من العقود الذكية (“محافظ العقود”) لتجاوز هذا التعقيد. فهي تُتيح ميزات مثل الاسترداد الاجتماعي (حيث يُمكن لجهات الاتصال الموثوقة المساعدة في استعادة الوصول) أو المصادقة متعددة التوقيعات، مما يُخفف العبىء على المستخدمين في حماية السلاسل المشفرة.

صعوبة تجربة المستخدم: يُعدّ إعداد Web3 أمرًا صعبًا للغاية – فتثبيت ملحقات المتصفح، وتوقيع المعاملات يدويًا، والتعامل مع رسوم الوقود تُربك المستخدمين الجدد. تهدف المحافظ الذكية إلى تبسيط هذا الأمر من خلال دمج تجريد الحسابات (مثل معيار ERC-4337 الخاص بإيثريوم). يتيح هذا للمستخدمين التفاعل مع التطبيقات اللامركزية بسلاسة أكبر وإجراء المعاملات المجمعة أو حتى دفع رسوم الوقود بعملات رمزية غير ETH مما يجعل التجربة أقرب إلى بساطة Web2.

الثغرات الأمنية: المحافظ التقليدية تُعدّ نقاط ضعف وحيدة – إذا فقدت مفتاحك وأموالك، أو تعرضت للتصيد الاحتيالي، فستنتهي اللعبة. تُقدّم المحافظ الذكية طبقات أمان قابلة للبرمجة. على سبيل المثال، يُمكنها فرض حدود للإنفاق، وطلب موافقات متعددة للمعاملات المهمة، أو تجميد الأصول في حال اكتشاف نشاط مشبوه، وكل ذلك مُبرمج في منطق العقد الذكي للمحفظة.

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

التكلفة وسهولة الوصول: قد تؤدي رسوم الوقود وازدحام الشبكة إلى استبعاد المستخدمين وخاصة في المناطق النامية. يمكن للمحافظ الذكية تحسين المعاملات (على سبيل المثال عبر المعاملات الفوقية حيث يدفع شخص آخر تكلفة الوقود) أو دمج حلول الطبقة الثانية مما يخفض التكاليف ويجعل Web3 أكثر شمولاً.

شرح المفهوم

لنبدأ بمقارنة بين نموذجي حسابات TRON و EVM.

في Ethereum وسلاسل EVM الأخرى ، لا تُفعّل الحسابات المملوكة خارجيًا (EOA) ميزتي التوقيع المتعدد وحسابات الدفع افتراضيًا. يجب على المطورين إيجاد طرق مبتكرة لتمكين هذه الميزات من خلال تجريد الحساب، ومن أشهرها ERC-4337.

في TRON تُضمّن ميزتا التوقيع المتعدد وحساب الدفع افتراضيًا كجزء من حسابات EOA؛ مع ذلك لا تزال هناك بعض حالات الاستخدام المثيرة للاهتمام للمحافظ الذكية، خاصةً للمحافظ ومنصات الدفع والتجارة الإلكترونية وتداول العملات الرقمية.

فلماذا قد تحتاج إلى محفظة ذكية إذا كان بإمكان حساب EOA في TRON أن يتضمن إمكانيات التوقيع المتعدد افتراضيًا؟

◽️رعاية الغاز (وراثة موارد TRON): في TRON يمكن لمُنشئ العقد تعيين نفسه كمسؤول دفع مع نسبة رعاية قابلة للتخصيص (من 0% إلى 100%).
◽️إلغاء تكلفة تفعيل الحساب الثابتة: في TRON تحتاج إلى 1.1 TRX لتفعيل حساب EOA ؛ ويمكن إنشاء المحافظ الذكية مجانًا، شريطة أن يكون لدى مُنشئ العقد طاقة كافية.
◽️تبسيط تفويض الطاقة للمدفوعات: بدلاً من تفويض الموارد ديناميكيًا إلى محافظ فردية لسحب الأصول حيث يمكنك تفويض الطاقة إلى محفظة واحدة (حساب المُنشئ) والاستمتاع بالمعاملات المدعومة للجميع مما يقلل من تكاليف النطاق الترددي وتعقيد البنية التحتية.

التنفيذ خطوة بخطوة

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

الإعداد والتهيئة

لنستنسخ المشروع باستخدام git ونثبت تبعياته. يُنصح باستخدام مفتاح خاص يمكن التخلص منه فقط لأغراض التطوير والاختبار.

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

يُرجى فتح بيئة التطوير المتكاملة (IDE) المفضلة لديك ونافذة طرفية. لنبدأ!

تحذير: لا تستخدم مفتاح المحفظة الرئيسي الخاص بك لأغراض التطوير خاصةً إذا كنت تشارك الكود على الإنترنت! قد يحدث تسريب لملف .env أثناء عمليات دفع الكود.

git clone https://github.com/simbadMarino/tron-smartWallets.git # استنساخ هذا المستودع
cd tron-smartWallets # فتح مستودع المشروع في الطرفية

cp .env.sample .env # أنشئ ملف .env الخاص بك واملأه لتكوين بيئة النشر
yarn install | npm install # تثبيت التبعيات

مراجعة SC ونشرها

بعد تثبيت التبعيات نكون جاهزين لاستكشاف بنية مشروعنا:

Image

يحتوي مجلد العقود على ثلاثة عقود مختلفة تختلف ميزات كل منها. صُممت العقود المختلفة لكل محفظة ذكية لتناسب كل حالة استخدام.

دعونا نصف كل منها:
عقد محفظة ذكية بسيط (SSWC)

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

تكلفة النشر:
159 ألف طاقة (يمكن تحسينها من خلال تطبيق “مصنع العقود” وتغيير متغير التخزين العام للمالك إلى داخلي).

حالات الاستخدام:
◽️محافظ قابلة للاستبدال للمدفوعات
◽️محافظ USDT / TRC20 الحاضنة

المحفظة الذكية TRC20 TRX (SWTRXC)

الهدف:
استبدال نموذج عقود EOA الحالي لمنصات المدفوعات لتقليل تفويض الطاقة وتعقيد نقل الرموز بما في ذلك ميزة سحب TRX لزيادة الأمان (في حالة إيداع TRX عن طريق الخطأ) وتحسين الأداء.

تكلفة النشر: 219 ألف طاقة (يمكن تحسينها من خلال تطبيق “مصنع العقود” وتغيير متغير التخزين العام للمالك إلى داخلي)

حالات الاستخدام:

◽️محافظ USDT / TRC20 / TRX الحاضنة
◽️استبدال EOA لحالات الاستخدام غير الفردية ويقتصر على التحويلات البسيطة

ميزة المحفظة الذكية (SWFEAT)

الهدف:
استبدال نموذج EOA لإدارة المحافظ، مما يقلل من تفويض الطاقة وتعقيد نقل الرموز. في نهاية المطاف، يمكن تحسين هذا الحل لدعم ميزات ERC-4337.

تكلفة النشر:
250 ألف طاقة غير موصى بها لحالات الاستخدام الفردية.

حالات الاستخدام:
حلول إدارة محافظ USDT / TRC20 / TRX الحاضنة وغير الحاضنة.

حل تجريد حساب TRON (لا يزال بحاجة إلى إضافة ميزات إضافية)

يحتوي مجلد الترحيلات على تعليمات الترحيل/النشر لكل محفظة ذكية.

يحتوي مجلد الاختبار على أمثلة أساسية لاختبارات “Happy Path” لتتمكن من تجربة اختبار Mocha للعقود الذكية.

يحتوي ملف tronbox.js على معلومات الشبكة وتكوين مُجمّع Solidity. يُنصح بفتحه ومراجعته قبل نشر أي عقد.

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

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

ملاحظة: يُفترض أن لديك رموز TRX لشبكة الاختبار. إذا لم يكن الأمر كذلك يُرجى زيارة Nile Faucet أو Shasta Faucet.

بعد نجاح التجميع الخطوة التالية هي نشر عقودنا. افتراضيًا سيتم نشر جميع العقود الموجودة في مجلد العقود. إذا كنت ترغب في تخطي عملية نشر معينة في SmartWallet، يُرجى التعليق على سطر deployer.deploy(***); أو تعديل نص الترحيل بما يتناسب مع احتياجاتك.

راجع الأوامر التالية للتجميع والنشر:
tronbox compile # ترجم عقودك الذكية باستخدام tronbox

tronbox migrate — network nile # انشر العقود النشطة ضمن مجلد الترحيلات وعدّل شبكة النشر المفضلة حسب الحاجة

بعد النشر يمكنك استخدام:
https://nile.tronscan.org/#/
أو
https://shasta.tronscan.org/#/
أو
https://tronscan.org/#/

ابحث عن محفظتك الذكية التي أنشأتها حديثًا بناءً على الشبكة التي نشرتها!

الاختبار

باستخدام Chai، يمكنك اختبار عقودك الذكية المنشورة بسرعة. حاليًا تم إنشاء مجموعة اختبار لكل عقد.

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

ملاحظة: يُنصح بتوسيع نطاق حالات الاختبار إذا كنت تنشر هذه المحافظ الذكية في بيئة الإنتاج.

npx mocha test/simpleSmartWallet.test.js #شغّل مجموعة اختبارات عقود simpleSmartWallet
npx mocha test/smartWalletTRC20TRX.test.js #شغّل مجموعة اختبارات عقود smartWalletTRC20TRX
npx mocha test/smartWalletFeatured.test.js #شغّل مجموعة اختبارات عقود smartWalletFeatured

استكشاف الأخطاء وإصلاحها وأفضل الممارسات

◽️الأمان: لا تستخدم محفظة العملات المشفرة الرئيسية لديك لنشر العقود. يُفضل تفويض أو تأجير الطاقة لنشر الشبكة الرئيسية.
◽️أعطال الشبكة: قد تُسبب مشاكل الشبكة أحيانًا أخطاءً مؤقتة (مثل “خطأ: لا يوجد عقد أو عقد ذكي غير صالح”). ما عليك سوى إعادة تشغيل الاختبار في حال حدوث مثل هذه الأخطاء.
◽️التحقق: بعد النشر يمكنك التحقق من المعاملات على مستكشف كتل النيل للتأكد من أن عقودك نشطة.

النقاط الرئيسية:
◾️تتمتع حسابات ترون بإمكانية التوقيع المتعدد افتراضيًا لكن المحافظ الذكية تُقدم ميزات إضافية مثل:
◽️مشاركة طاقة مُنشئ العقد
◽️إلغاء تكاليف تفعيل الحساب
◽️تبسيط إدارة الموارد لمنصات الدفع

◾️توفر المحفظة الذكية ثلاثة عقود مختلفة كل منها مُصمم خصيصًا لحالات استخدام مُحددة.
◽️عقد المحفظة الذكية البسيط مناسب للمحافظ التي تُستخدم لمرة واحدة وخدمات المحافظ الحفظية.
◽️تتضمن المحفظة الذكية TRC20-TRX (SWTRXC) ميزة سحب TRX لزيادة الأمان والوظائف.
◽️تدعم المحفظة الذكية المميزة (SWFEAT) ميزات أكثر تعقيدًا ويمكن استخدامها لحلول إدارة المحافظ الحفظية وغير الحفظية.

◾️تأكد من وجود ما يكفي من رموز TRX التجريبية قبل نشر العقود.
◾️بعد هذا البرنامج التعليمي ستتمكن من البناء على العقود الذكية المُقدمة وإضافة المزيد من الميزات إليها.

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

إذا كنت ترغب بمراجعة الكود النهائي يمكنك زيارة مستودعنا على GitHub.

برمجة ممتعة!


المصدر