محفظة عقود ذكية آمنة ونموذجية وقابلة للترقية تتيح الاعتماد الشامل لـ Web3
________ ________ ________ ________
| __ | __ | __ \ _____
| / | | | ___/ / |
__ __ _ _ / / /
| \ | / /_/__
_ ______ _ _ _ _ _ _ \ _ \ ________
| _______ | | __ | | __ | | __ | | __ | _______ |
تعد الوحدة أحد المبادئ الأساسية في هندسة البرمجيات. تتيح البنية المعيارية والتعليمات البرمجية إمكانية إعادة الاستخدام بدرجة عالية، وسهولة الصيانة والاختبار، واعتمادًا متبادلًا أقل بين المكونات، والأهم من ذلك توفير غرض ووظيفة مباشرة تقلل من أخطاء التعليمات البرمجية ومشكلات الأمان.
يعتبر بارز أيضًا أن النمطية هي المبدأ الأساسي عبر البنية الشاملة وعلى مستوى الكود.
بالنسبة للنمطية، فإننا نفرض معيار EIP-2535 Diamond، الوكيل متعدد الأوجه ونوفر كل مجموعة ميزات في جانب واحد متصل بـ Diamond(Barz). تشمل هذه الوحدات ما يلي:
يمكن للمالك إرفاق كل وحدة من هذه الوحدات وفصلها متى أراد ذلك.
يقوم Barz بفصل مساحة تخزين كل وحدة من خلال FacetStorage
، وستصل وحدات Barz فقط إلى FacetStorage
الذي تحتاجه الوحدة. وهذا يقلل من فرصة الوصول إلى مساحة التخزين غير الضرورية والتعديل غير المرغوب فيه للتخزين من الوحدات، خاصة أثناء ترقية التنفيذ. من خلال بنية فصل وحدة التخزين التي تستخدمها كل وحدة، يساعد Barz على منع كل وحدة من تصادمات التخزين مما يقلل من ظهور نقاط الضعف المحتملة في نمط الوكيل.
توفر بنية Barz أيضًا فوائد للترقيات. في حين أن نمط الوكيل التقليدي يتطلب ترقية التنفيذ المنطقي بالكامل لترقية جزء منه، فإن Barz يحتاج فقط إلى استبدال الوحدات ذات الصلة وفقًا لذلك، مما يقدم إمكانية الترقية المعيارية للحسابات.
تساعد البنية المعيارية على تقسيم التعليمات البرمجية إلى وحدات أصغر، مما يساهم في عزل وظائف كل وحدة والحد منها. ويساعد ذلك في تقليل سطح الهجوم والحد من الأضرار المحتملة الناجمة عن الاختراق الأمني في الوحدة النمطية. يتم تعظيم ذلك جنبًا إلى جنب مع بنية Barz المتمثلة في الوصول فقط إلى مساحة التخزين التي تحتاجها الوحدة.
على عكس البنية الأخرى القابلة للترقية والتي تحتاج إلى ترقية العقد المنطقي بأكمله أو الوحدة بأكملها التي تحتوي على مجموعة الميزات، تدعم بنية Barz إمكانية الترقية المعيارية لكل وظيفة، مما يسمح بأقصى قدر من الوحدات النمطية وقابلية الترقية في عقد المحفظة.
وكشكل من أشكال ذلك، يدعم عقد الحساب الخاص بنا "Barz" نظام التوقيع المتعدد. سيتمكن المستخدمون من تغيير نظام التوقيع بسلاسة تامة من خلال استدعاءات الوظائف في عقد الحساب. يتيح ذلك للمستخدمين خيارات متعددة لمحفظة UX، على سبيل المثال:
المستخدمون يريدون تفاعلًا سلسًا، وعدم الحاجة إلى النسخ الاحتياطي للمفتاح الخاص. يمكنهم استخدام ECDSA في نظام التوقيع Secp256r1 واستخدام مفتاح المرور ("WebAuthn") لحماية مفتاحهم الخاص بشكل آمن في مدير كلمات المرور (على سبيل المثال، سلسلة مفاتيح iCloud).
قد يرغب المستخدمون الذين يرغبون في استخدام نمط المحفظة التقليدية أو محافظ الأجهزة في استخدام نظام التوقيع ECDSA("Secp256k1") للتحقق من التوقيع.
حاليًا، ندعم نظامي توقيع (ECDSA on Secp256k1 & Secp256r1 Curve)، ومع ذلك، سنستمر في توسيع دعمنا للعديد من أنظمة التوقيع المختلفة بما في ذلك BLS وPQC، وما إلى ذلك
يتم تمكين ذلك من خلال بنية معيارية تتمثل في ربط جوانب التوقيع وفصلها عن واجهة الحساب وفقًا لتفضيلات المستخدم فيما يتعلق بتجربة المستخدم التي يمكن أن يوفرها كل نظام توقيع.
أثناء تحديث نظام التوقيع، يجب أن تتحقق وظيفة التحديث مما يلي:
yarn
yarn compile
yarn test
yarn size
forge test