مراجعة داخلية · صفر ثغرات حرجةBNB Smart Chain (BEP-20)وكيل UUPS (ERC-1967)Solidity 0.8.24

التقييم الأمني والتقني للعقد الذكي J1USD

تقرير تحليلي شامل للهندسة المعمارية والتحقق من نظام رمز J1USD على BNB Smart Chain. تمت مراجعته لضمان أمان الترقية، وضوابط الوصول غير القابلة للتغيير، وثوابت المعروض، وفصل السيولة بين المنصات.

إخلاء مسؤولية التقييم: تم إجراء هذا التقييم الأمني والتقني داخلياً بواسطة فريق التطوير والأمان في AirJIT. وهو ليس تدقيقاً مستقلاً للعقود الذكية من طرف ثالث.

صفر ثغرات حرجة

0 Critical

0 ثغرات عالية / 0 ثغرات حرجة تم تحديدها في عقود الرمز الأساسية.

سقف معروض صارم

1,000,000,000

حد ثابت يبلغ 1,000,000,000 J1USD مفروض على مستوى كود البايت (Bytecode).

فصل الأدوار والمهام

RBAC Partitioned

عناوين مستقلة للمسؤول، والترقية، والصك، والحرق، والإيقاف المؤقت.

فجوات تخزين UUPS

__gap[42]

فجوة تخزين محجوزة تضم 42 موضعاً لمنع تضارب الذاكرة عند الترقية مستقبلاً.

عمليات النشر المعتمدة على السلسلة

عناوين العقود الرسمية والتحقق منها

يعمل J1USD من خلال نمط بروكسي UUPS القياسي ERC-1967 من OpenZeppelin. فيما يلي العقود المصدرية المعتمدة والمنشورة على الشبكة الرئيسية لـ BNB Smart Chain.

بروكسي الرمز الرسمي
احتفظ وتداول عبر هذا العنوان

J1USDProxy.sol

العنوان الرسمي لرمز BEP-20 الموجه للمستخدمين. توجد جميع الأرصدة والتفويضات وحالة التخزين بشكل دائم هنا. متوافق مع Grey Wallet وMetaMask وTrust Wallet وجميع منصات DEX على BNB Chain.

عنوان البروكسي (الرسمي)
معيار البروكسيERC-1967 (UUPS)
معيار الرمزBEP-20 (6 منازل عشرية)
عقد التنفيذ المنطقي
لا ترسل أي أموال إلى هذا العنوان

J1USDTokenUpgradeable.sol

يحتوي عقد التنفيذ على قواعد المعاملات المترجمة، وفحوصات الامتثال، وحدود سقف المعروض، ومحددات الأدوار. التهيئة المباشرة مقفلة عند النشر بواسطة حماية المنشئ.

الإصدارv1.0.0 (مراجعة داخلية)
سقف المعروض1,000,000,000 J1USD
Security Notice for Integrators & Wallets: Always route transfers, deposits, and automated liquidity integrations directly to the Proxy address (0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.

مراجعة الامتثال والسياسات

آليات القائمة السوداء وتجميد الحسابات وإنفاذ العقوبات

تقييم آليات الامتثال للرمز. J1USD هو رمز BEP-20 مفتوح يعمل بنموذج القائمة السوداء النشطة والتجميد — وليس القائمة البيضاء — مما يضمن أقصى درجات قابلية التركيب غير المشروطة مع تمكين الامتثال للقرارات القضائية.

بدون إذن مسبقناجح · مسموح

عدم اشتراط قائمة بيضاء (تحويلات غير مقيدة)

لا يفرض J1USD أي قائمة بيضاء للتحويل. يمكن لأي محفظة Web3 قياسية على BNB Smart Chain استلام واحتفاظ وإرسال وتداول J1USD بحرية على DEXs دون اشتراط KYC أو تسجيل مسبق.

تقييم الأمان:دوال التحويل القياسية (transfer, transferFrom) تنفذ دون شروط لجميع الحسابات السليمة. العمليات المباشرة بين الأقران والتمويل اللامركزي لا تتطلب أي إذن.
خاضع لـ RBACناجح · محمي

خاصية القائمة السوداء الصريحة (الامتثال لمكافحة الجرائم)

يمكن لدور BLACKLISTER_ROLE المخصص تقييد العناوين الخبيثة المرتبطة بالاختراقات أو العقوبات أو السرقات الموثقة لمنع سحب أو إيداع الأموال.

تقييم الأمان:تتطلب دالة addToBlacklist() تجزئة bytes32 complianceReference غير صفرية لأغراض التدقيق والتتبع على السلسلة. العناوين النظامية المحمية (مجمعات السيولة والخزينة) محصنة رياضياً ضد الحظر.
عزل النزاعاتناجح · معزول

تجميد الحسابات الجزئي والكلي عالي الدقة

يدعم العقد كلاً من freezeAccount() وfreezeBalance(amount). في حالة النزاعات التجارية، يتم حجز المبلغ المتنازع عليه فقط، مع الحفاظ على سيولة بقية الأموال.

تقييم الأمان:تقوم دالة availableBalanceOf(account) بفصل الرصيد المتاح عن الرصيد المجمد ديناميكياً. تظل الأموال السليمة غير المتنازع عليها قابلة للتحويل بنسبة 100% حتى أثناء التحقيق النشط.
مقيد للغايةناجح · قيود صارمة

حماية الشطب القانوني المعتمد للأصول (Wipe)

لا يجوز لدور WIPER_ROLE إتلاف الأرصدة المجمدة إلا استناداً إلى أحكام قضائية أو تنظيمية ملزمة. التدمير التعسفي لأصول المحافظ مستحيل برمجياً.

تقييم الأمان:يرفض العقد المعاملة مع خطأ WipeRequiresRestrictedAccount إذا تم استدعاؤه ضد عنوان غير مجمد. ويرفض مع خطأ WipeExceedsFrozenBalance إذا تجاوز المبلغ المطلوب الأموال المجمدة فعلياً.

التحقق من خطافات كود البايت: _update() و_approve() وtransferFrom()

يطبق كود البايت تدقيقاً صارماً لصحة الخصم والائتمان داخل _update(from, to, amount):

الخصم (_requireCanDebit)

يجب ألا يكون المرسل مدرجاً بالقائمة السوداء (!isBlacklisted)، وألا يكون حسابه مجمداً بالكامل (!isAccountFrozen)، وألا يتجاوز المبلغ المطلوب availableBalanceOf.

الإيداع (_requireCanCredit)

يجب ألا يكون المستلم مدرجاً بالقائمة السوداء أو مجمداً. يمنع ذلك الجهات المشبوهة من غسل الأموال غير المشروعة عبر محافظ الحراسة المقيدة.

التفويضات (_approve)

يجب أن يكون مالك الرمز والوكيل المعتمد كلاهما خاليين من أي قيود. لا يمكن للكيانات المقيدة تفويض حدود السحب أو تنفيذ تحويلات بالنيابة.

الهندسة المعمارية للعقد الذكي

آليات الأمان وتحليل الثوابت البرمجية

تقييم دقيق للمكونات الجوهرية لـ J1USD: أمان ترقية البروكسي، ومنع التكرار التشفيري، وفصل المهام، وضمانات الطوارئ.

أمان قابلية الترقية UUPS

مبني وفق معيار UUPS من OpenZeppelin. يتم تخزين متغيرات الحالة وأرصدة المستخدمين حصرياً في فتحات البروكسي. يستدعي منشئ التنفيذ _disableInitializers() لضمان عدم إمكانية المطالبة بعقد المنطق أو تهيئته بشكل منفصل.

أمان التخزين: فجوة محجوزة تضم 42 موضعاً (__gap[42]) تمنع تضارب الذاكرة أثناء الترقيات المستقبلية.

ثابت سقف المعروض الصارم

على عكس العملات المستقرة ذات السك المفتوح، يفرض J1USD حداً أقصى للمعروض supplyCeiling في العقد. يتحقق كل استدعاء mint() من أن totalSupply() + amount <= supplyCeiling. يُحظر على المسؤول خفض السقف دون المعروض المتداول حالياً.

الحد الأقصى للمعروض: 1,000,000,000.000000 J1USD (6 منازل عشرية).

منع التكرار التشفيري للمعاملات

تتطلب عمليات السك والحرق مرجع تجزئة bytes32 فريداً (issuanceReference / burnReference). في حال محاولة إعادة استخدام المرجع، يتم التراجع فوراً مع الخطأ ReferenceAlreadyUsed.

يمنع هجمات إعادة التشغيل من المشغلين، وتكرار الإصدار، وانحراف الفهرسة.

انتقال الإدارة بالقفل الزمني

يعتمد على AccessControlDefaultAdminRulesUpgradeable. لا يمكن نقل دور المسؤول في كتلة واحدة؛ بل يفرض تأخيراً زمنياً إلزامياً (defaultAdminDelay)، مما يحمي من الاستيلاء العدائي عند تسرب المفاتيح.

فصل الصلاحيات: يعمل المرقّي والساك والحارق وموقف النظام بشكل مستقل تماماً.

دقة التجميد الجزئي للأرصدة

بدلاً من إغلاق الحساب بالكامل، يتيح J1USD ميزة freezeBalance. يمكن تجميد المبالغ المتنازع عليها حصراً، بينما يسمح availableBalanceOf بمتابعة العمليات الشرعية ببقية الرصيد.

يحمي الأرصدة المشروعة أثناء النزاعات التجارية.

عناوين النظام المحمية

تم تعيين العناوين الحيوية للبروتوكول (مجمعات PancakeSwap والخزينة والبنية التحتية) كعناوين محمية protectedSystemAddress، مما يجعلها محصنة ضد التجميد أو الحظر.

يمنع هجمات حجب الخدمة العرضية أو الخبيثة ضد أزواج التداول اللامركزية العامة.

مصفوفة التفويض والصلاحيات

ضوابط الوصول القائمة على الأدوار (RBAC)

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

معرف الدورالدوال ذات الامتيازاتضوابط الأمان والثوابت
DEFAULT_ADMIN_ROLE0x00 (Admin Root)تكوين تعيينات الأدوار، وتحديث حدود سقف المعروض، وتسجيل عناوين النظام المحمية.تخضع لقواعد OpenZeppelin AccessControlDefaultAdminRules مع قفل زمني إلزامي.
UPGRADER_ROLEkeccak256('UPGRADER_ROLE')تفويض ترقيات منطق تنفيذ UUPS في دالة _authorizeUpgrade().مقيد حصرياً بحوكمة التوقيعات المتعددة للبروتوكول؛ لا يمكن تعديل الحالة دون نشر عقد صالح.
MINTER_ROLEkeccak256('MINTER_ROLE')إصدار رموز J1USD جديدة مقابل ضمانات مؤكدة أو متطلبات تسوية البروتوكول.مقيد بشكل صارم بسقف supplyCeiling الثابت وتجزئة issuanceReference الفريدة.
BURNER_ROLEkeccak256('BURNER_ROLE')تقليص معروض الرموز أثناء عمليات الاسترداد أو تسوية ديون البروتوكول.يتطلب burnReference فريداً. يسمح استثناء دقيق بالحرق من الحسابات المقيدة لضمان الملاءة.
PAUSER_ROLEkeccak256('PAUSER_ROLE')تفعيل أو إلغاء قاطع الدائرة في حالات الطوارئ لإيقاف التحويلات القياسية.قدرة دفاعية لحالات الطوارئ القصوى أو اضطرابات جسور البلوكشين.
BLACKLISTER_ROLEkeccak256('BLACKLISTER_ROLE')إضافة أو إزالة العناوين من القائمة السوداء العامة للخصم والائتمان.لا يمكنه استهداف العناوين المسجلة كـ protectedSystemAddress. يتطلب مرجع تتبع.
FREEZER_ROLEkeccak256('FREEZER_ROLE')تجميد الحسابات كلياً أو حجز مبالغ جزئية (freezeBalance, freezeAllCurrentBalance).يتيح حجز المبالغ المتنازع عليها مع إبقاء الرصيد الفائض متاحاً. عناوين النظام محصنة.
WIPER_ROLEkeccak256('WIPER_ROLE')إتلاف الأرصدة المجمدة تنفيذاً لأمر قضائي أو تنظيمي معتمد.ينطبق فقط على الحسابات المجمدة بالفعل؛ ولا يمكن أن يتجاوز الرصيد المجمد.
RESCUE_ROLEkeccak256('RESCUE_ROLE')استرداد رموز BEP-20 التابعة لجهات خارجية تم إرسالها إلى العقد عن طريق الخطأ.يُحظر تماماً التفاعل مع أرصدة رمز J1USD نفسه (RescueProhibitedToken).

البنية التحتية للسيولة وتقييم المجمعات

سيولة DEX على السلسلة مقابل المجمعات الثانوية المركزية

يوازن J1USD بين أسواق AMM اللامركزية غير الاحتجازية على BNB Smart Chain ودفاتر الأوامر المركزية خارج السلسلة. فيما يلي العناوين الرسمية، وروابط التداول، وحدود الأمان.

سيولة لامركزية على السلسلة (DEX)

مجمعات صانع السوق الآلي (AMM)

مجمعات سيولة عقود ذكية غير احتجازية تعمل أصلياً على BNB Smart Chain عبر PancakeSwap. صفر مخاطر حراسة من أطراف ثالثة؛ الصفقات تنفذ مباشرة من النظير إلى العقد عبر كود بايت ثابت.

PancakeSwap V3 · J1USD / USDC
أساسيرسوم 0.05%

مجمع سيولة مركزة يربط J1USD بإحكام بقيمة 1.00 USD Coin. عنوان نظامي محمي ومحصن ضد تجميد الامتثال.

عنوان العقد الذكي للمجمع:
PancakeSwap V2 · J1USD / JIT
المنظومةرسوم 0.25%

جسر AMM لامركزي يربط بين رمز المنفعة لـ AirJIT (JIT) وأصل التسوية للبروتوكول (J1USD).

عنوان العقد الذكي للمجمع:
مجمعات ثانوية مركزية وخارج السلسلة

مجمعات دفاتر الأوامر الداخلية

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

انعدام امتيازات سك العقود الذكية

لا تمتلك الخوادم المركزية أي مفاتيح خاصة تخولها سك أو حرق رموز J1USD على BNB Smart Chain.

دعم أصول 1:1 على السلسلة

أرصدة الحسابات الداخلية مقيدة تماماً بالإيداعات المحققة على عقد البروكسي على السلسلة.

نتائج التقييم ونمذجة التهديدات

تحليل نواقل الهجوم والدفاعات الرسمية

مراجعة شاملة لأسطح الهجوم الاقتصادية والرياضية والتشفيرية المحتملة التي تم فحصها خلال التدقيق التقني.

محصن تماماً

هجمات إعادة الدخول (Reentrancy)

يرث الرمز بدقة تحديثات حالة OpenZeppelin ERC-20 (_update) دون إجراء استدعاءات خارجية غير موثوقة قبل قيد الأرصدة. يتوافق كلياً مع معيار Checks-Effects-Interactions.

لا ينطبق

التلاعب بأسعار الأوراكل والأسعار الفورية

لا يعتمد دفتر أستاذ رمز J1USD على أوراكل خارجية أثناء التحويلات أو الموافقات. الحسابات داخلية بنسبة 100%، مما يلغي استغلال القروض السريعة (Flash Loans).

ممنوع برمجياً

اختطاف عقد التنفيذ المنطقي

ينفذ منشئ التنفيذ دالة _disableInitializers() عند النشر. لا يمكن لأي مهاجم تهيئة العقد المنطقي أو الاستيلاء على ملكيته بشكل منفرد.

تمت معالجته

الاستيلاء العدائي على الحوكمة

يفرض تغيير دور المسؤول تأخيراً زمنياً ثابتاً (defaultAdminDelay). لا يمكن لمفتاح واحد مخترق السيطرة على العقد بصورة فورية.

ثوابت الأمان البرمجية

ثوابت الأمان المحققة رسمياً

ملخص الفحوصات المنطقية على مستوى كود البايت التي تؤكد سلامة النظام في كافة الظروف والسيناريوهات القصوى.

الحالة · النتيجة

إلزامية سقف المعروض

تفشل عمليات السك مع خطأ SupplyCeilingExceeded إذا تجاوز totalSupply() + amount السقف المحدد. يُحظر على المسؤول خفض السقف إلى ما دون المعروض المتداول.

آلية الإنفاذالتحقق من حالة supplyCeiling في دالة mint()
الحالة · النتيجة

منع التكرار في السك والحرق

تتطلب كل معاملة سك أو حرق معرف bytes32 فريداً. أي طلب مكرر بنفس المرجع يرفض فوراً مع ReferenceAlreadyUsed.

آلية الإنفاذجداول _usedIssuanceReferences و_usedBurnReferences
الحالة · النتيجة

منع الاستيلاء على عقد التنفيذ

يقفل عقد التنفيذ أدوات التهيئة عند البناء. لا يمكن للمهاجمين تهيئة أو الاستيلاء على عقد المنطق الأساسي بشكل مستقل.

آلية الإنفاذاستدعاء _disableInitializers() في دالة البناء
الحالة · النتيجة

حماية هيكل التخزين من التداخل

يلتزم تخزين البروكسي بفتحات ERC-1967. تضمن الفجوة المحجوزة المكونة من 42 كلمة عدم تجاوز المتغيرات الحالية عند الترقية مستقبلاً.

آلية الإنفاذمواضع تخزين ERC-1967 القياسية + فجوة uint256[42]
الحالة · النتيجة

الحد من الاستيلاء العدائي على الإدارة

نقل دور المسؤول DEFAULT_ADMIN_ROLE ليس فورياً. يمنع الإجراء المكون من خطوتين مع تأخير زمني إلزامي الكوارث الناتجة عن تسرب مفتاح فردي.

آلية الإنفاذAccessControlDefaultAdminRules مع تأخير defaultAdminDelay
الحالة · النتيجة

حصانة البنية التحتية الحيوية

لا يمكن تجميد أو حظر عناوين النظام المسجلة (مجمعات DEX والخزينة والعقود التشغيلية)، مما يزيل مخاطر حجب الخدمة عن السيولة العامة.

آلية الإنفاذالتحقق من _requireNotProtected() في دوال الامتثال
الحالة · النتيجة

منع الاستنزاف الذاتي عند استرداد الرموز

تتيح الدالة استعادة الرموز الخارجية المرسلة خطأً، لكنها تحظر صراحةً أي محاولة لسحب رمز J1USD نفسه.

آلية الإنفاذفحص RescueProhibitedToken في rescueERC20()
الحالة · النتيجة

قاطع الدائرة العام للطوارئ

يمكن لدور PAUSER_ROLE إيقاف التحويلات فوراً عند حدوث اضطرابات سوقية كبرى، مع الحفاظ على عمليات الشطب القانونية للأصول.

آلية الإنفاذمحدد whenNotPaused على التحويل والصك والتفويض
الحالة · النتيجة

دقة التجميد المعزول للأرصدة

يتيح تجميد المبالغ المتنازع عليها دون قفل محفظة المستخدم بالكامل، مما يترك الأموال السليمة قابلة للاستخدام بحرية.

آلية الإنفاذالعزل الحسابي في availableBalanceOf()

الإفصاح المسؤول عن الثغرات

الإبلاغ عن ثغرة أمنية

تعتمد AirJIT برنامجاً استباقياً للإفصاح عن الثغرات الأمنية. إذا اكتشفت ثغرة أمنية في وكيل J1USD أو تنفيذه أو بنيته التحتية، يرجى الإبلاغ عنها بمسؤولية.

يرجى تشفير التقارير الحساسة باستخدام PGP كلما أمكن ذلك. نقوم بالرد وتأكيد الاستلام خلال 24 ساعة.