J1USD स्मार्ट अनुबंध सुरक्षा और तकनीकी मूल्यांकन
BNB Smart Chain पर J1USD टोकन प्रणाली की व्यापक वास्तुशिल्प विश्लेषण और सत्यापन रिपोर्ट। अपग्रेड सुरक्षा, अपरिवर्तनीय पहुँच नियंत्रण, आपूर्ति इनवेरिएंट और तरलता अलगाव की आंतरिक तकनीकी समीक्षा की गई।
शून्य गंभीर निष्कर्ष
0 Critical
कोर टोकन अनुबंधों में 0 उच्च / 0 गंभीर सुरक्षा कमियाँ पाई गईं।
कठोर आपूर्ति सीमा
1,000,000,000
बाइटकोड स्तर पर 1,000,000,000 J1USD की अपरिवर्तनीय सीमा लागू।
भूमिकाओं का स्पष्ट पृथक्करण
RBAC Partitioned
व्यवस्थापक, अपग्रेडर, मिन्टर, बर्नर और पॉज़र के लिए स्वतंत्र पते।
UUPS स्टोरेज स्लॉट अंतर
__gap[42]
आरक्षित 42 स्लॉट अंतर (__gap[42]) भविष्य के अपग्रेड में मेमोरी टकराव को रोकता है।
सत्यापित ऑन-चेन परिनियोजन
प्रामाणिक अनुबंध पते और सत्यापन
J1USD एक मॉड्यूलर OpenZeppelin ERC-1967 UUPS प्रॉक्सी पैटर्न के माध्यम से संचालित होता है। नीचे BNB Smart Chain मेननेट पर परिनियोजित सत्यापित स्रोत अनुबंध दिए गए हैं।
J1USDProxy.sol
उपयोगकर्ताओं के लिए प्रामाणिक BEP-20 टोकन पता। सभी शेष, अनुमतियाँ और अनुबंध भंडारण स्थायी रूप से यहीं रहते हैं। Grey Wallet, MetaMask, Trust Wallet और BNB Chain के सभी DEX के साथ संगत।
J1USDTokenUpgradeable.sol
इसमें संकलित व्यावसायिक नियम, अनुपालन जाँच, आपूर्ति सीमा और भूमिका संशोधक शामिल हैं। कंस्ट्रक्टर गार्ड द्वारा परिनियोजन पर प्रत्यक्ष इनिशियलाइज़ेशन लॉक रहता है।
0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.अनुपालन और नीति समीक्षा
ब्लैकलिस्ट, खाता फ़्रीज़िंग और प्रतिबंध तंत्र
टोकन के अनुपालन तंत्र का मूल्यांकन। J1USD एक खुला BEP-20 टोकन है जो सक्रिय ब्लैकलिस्ट और फ़्रीज़िंग मॉडल पर काम करता है — व्हाइटलिस्ट पर नहीं —, जिससे कानूनी प्रतिबंधों को लागू करते हुए अधिकतम अनुमतिहीन संयोजकता सुनिश्चित होती है।
कोई व्हाइटलिस्ट आवश्यकता नहीं (अनुमतिहीन स्थानांतरण)
J1USD में कोई स्थानांतरण व्हाइटलिस्ट नहीं है। BNB Smart Chain पर कोई भी मानक Web3 वॉलेट बिना KYC या पूर्व पंजीकरण के DEX पर स्वतंत्र रूप से J1USD प्राप्त, धारण, भेज और व्यापार कर सकता है।
स्पष्ट ब्लैकलिस्ट कार्यक्षमता (जोखिम अनुपालन)
समर्पित BLACKLISTER_ROLE दुर्भावनापूर्ण पतों (हैक, प्रतिबंध या चोरी से जुड़े) को धनराशि डेबिट या क्रेडिट करने से रोक सकता है।
सटीक आंशिक और पूर्ण खाता फ़्रीज़िंग
अनुबंध freezeAccount() और freezeBalance(amount) दोनों का समर्थन करता है। वाणिज्यिक विवादों के दौरान, केवल विवादित राशि को लॉक किया जाता है, जिससे शेष धनराशि की तरलता बनी रहती है।
प्रमाणित कानूनी जब्ती सुरक्षा (Wipe)
WIPER_ROLE केवल बाध्यकारी अदालती या नियामक आदेशों के आधार पर ही फ़्रीज़ किए गए शेष को नष्ट कर सकता है। मनमाने ढंग से वॉलेट संपत्तियों का विनाश संरचनात्मक रूप से असंभव है।
बाइटकोड-स्तरीय हुक सत्यापन: _update(), _approve() और transferFrom()
बाइटकोड _update(from, to, amount) के अंदर सख्त डेबिट और क्रेडिट सत्यापन लागू करता है:
प्रेषक ब्लैकलिस्टेड नहीं होना चाहिए (!isBlacklisted), खाता पूरी तरह से फ़्रीज़ नहीं होना चाहिए (!isAccountFrozen), और राशि availableBalanceOf से अधिक नहीं हो सकती।
प्राप्तकर्ता ब्लैकलिस्टेड और फ़्रीज़ नहीं होना चाहिए। यह दुर्भावनापूर्ण अभिनेताओं को प्रतिबंधित कस्टडी वॉलेट में अवैध धन स्थानांतरित करने से रोकता है।
टोकन स्वामी और व्ययकर्ता दोनों प्रतिबंधों से मुक्त होने चाहिए। प्रतिबंधित संस्थाएँ भत्ते सौंपने या तृतीय-पक्ष स्थानांतरण निष्पादित करने में असमर्थ हैं।
स्मार्ट अनुबंध वास्तुकला
सुरक्षा तंत्र और इनवेरिएंट विश्लेषण
J1USD के मुख्य घटकों का गहन ऑडिट मूल्यांकन: प्रॉक्सी अपग्रेड सुरक्षा, क्रिप्टोग्राफ़िक डिडुप्लीकेशन, अलगाव और आपातकालीन सुरक्षा उपाय।
UUPS अपग्रेड सुरक्षा
OpenZeppelin के UUPS मानक पर निर्मित। स्थिति चर और शेष राशि केवल प्रॉक्सी स्लॉट में संग्रहीत होती है। कार्यान्वयन कंस्ट्रक्टर _disableInitializers() को कॉल करता है ताकि लॉजिक अनुबंध पर स्वतंत्र रूप से दावा न किया जा सके।
कठोर आपूर्ति सीमा इनवेरिएंट
असीमित रूप से जारी होने वाले स्टेबलकॉइन के विपरीत, J1USD अनुबंध स्तर पर supplyCeiling लागू करता है। प्रत्येक mint() जाँचता है कि totalSupply() + amount <= supplyCeiling। व्यवस्थापक को सीमा को वर्तमान परिसंचारी आपूर्ति से कम करने की मनाही है।
आइडempotent इवेंट डिडुप्लीकेशन
मिन्टिंग और बर्निंग कार्यों के लिए एक अद्वितीय bytes32 संदर्भ हैश (issuanceReference / burnReference) अनिवार्य है। यदि कोई लेनदेन संदर्भ का पुन: उपयोग करने का प्रयास करता है, तो यह तुरंत ReferenceAlreadyUsed के साथ निरस्त हो जाता है।
टाइम-लॉक व्यवस्थापक संक्रमण
AccessControlDefaultAdminRulesUpgradeable का उपयोग करता है। व्यवस्थापक भूमिका हस्तांतरण एक ही ब्लॉक में निष्पादित नहीं हो सकता; यह एक अनिवार्य समय विलंब (defaultAdminDelay) लागू करता है, जो कुंजी चोरी से बचाता है।
सटीक आंशिक फ़्रीज़िंग
पूरे वॉलेट को ब्लॉक करने के बजाय J1USD freezeBalance प्रदान करता है। विवादित धनराशि को आनुपातिक रूप से फ़्रीज़ किया जा सकता है जबकि availableBalanceOf शेष वैध धनराशि के उपयोग की अनुमति देता है।
संरक्षित सिस्टम पते
कोर प्रोटोकॉल पते (PancakeSwap पूल, ट्रेजरी और परिचालन अनुबंध) protectedSystemAddress के रूप में पंजीकृत हैं, जिससे वे फ़्रीज़ या ब्लैकलिस्ट से सुरक्षित रहते हैं।
प्राधिकरण मैट्रिक्स
भूमिका-आधारित पहुँच नियंत्रण (RBAC) अनुमतियाँ
प्रशासक, जारीकर्ता, बर्नर, अनुपालन और आपातकालीन अभिनेताओं के विशेषाधिकारों का सत्यापन। सभी विशेषाधिकार प्राप्त कार्यों के लिए निर्दिष्ट भूमिकाओं से मेल खाने वाले स्पष्ट क्रिप्टोग्राफ़िक हस्ताक्षर आवश्यक हैं।
| भूमिका पहचानकर्ता | विशेषाधिकार प्राप्त कार्य | सुरक्षा नियंत्रण और इनवेरिएंट |
|---|---|---|
| DEFAULT_ADMIN_ROLE0x00 (Admin Root) | भूमिका कार्यभार कॉन्फ़िगर करता है, आपूर्ति सीमा अपडेट करता है और संरक्षित सिस्टम पते नामित करता है। | अनिवार्य टाइमलॉक विलंब के साथ OpenZeppelin AccessControlDefaultAdminRules द्वारा शासित। |
| UPGRADER_ROLEkeccak256('UPGRADER_ROLE') | _authorizeUpgrade() में UUPS लॉजिक कार्यान्वयन अपग्रेड को अधिकृत करता है। | प्रोटोकॉल मल्टीसिग प्रशासन तक सीमित; वैध अनुबंध के बिना स्थिति नहीं बदल सकता। |
| 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 BNB Smart Chain पर गैर-कस्टोडियल विकेंद्रीकृत AMM बाजारों को ऑफ-चेन केंद्रीकृत ऑर्डर बुक्स के साथ संतुलित करता है। यहाँ पूल पतों, लाइव ट्रेडिंग लिंक और सुरक्षा सीमाओं का विवरण दिया गया है।
स्वचालित मार्केट मेकर (AMM) पूल
PancakeSwap के माध्यम से BNB Smart Chain पर मूल रूप से संचालित होने वाले गैर-कस्टोडियल स्मार्ट अनुबंध तरलता पूल। शून्य तृतीय-पक्ष कस्टडी जोखिम; व्यापार अपरिवर्तनीय बाइटकोड के माध्यम से पीयर-टू-कॉन्ट्रैक्ट निष्पादित होते हैं।
सघन तरलता पूल जो J1USD को 1.00 USD Coin से मजबूती से जोड़ता है। अनुपालन फ़्रीज़ से सुरक्षित नामित सिस्टम पता।
विकेंद्रीकृत AMM ब्रिज जो AirJIT उपयोगिता टोकन (JIT) और प्रोटोकॉल निपटान संपत्ति (J1USD) को जोड़ता है।
आंतरिक ऑर्डर बुक पूल
AirJIT बिना किसी समर्पित स्मार्ट अनुबंध पते के ऑफ-चेन प्रमुख संपार्श्विक जोड़ियों पर द्वितीयक बाजार उद्धृत करता है। व्यापार निपटान उच्च-थ्रूपुट मिलान इंजनों के माध्यम से किया जाता है।
ऑफ-चेन सर्वर के पास BNB Smart Chain पर J1USD टोकन बनाने या जलाने के लिए कोई निजी कुंजी नहीं है।
आंतरिक ऑफ-चेन खाता शेष ऑन-चेन प्रॉक्सी टोकन जमा द्वारा कड़ाई से समर्थित और सीमित हैं।
मूल्यांकन निष्कर्ष और खतरा मॉडलिंग
हमला वेक्टर विश्लेषण और औपचारिक सुरक्षा
तकनीकी समीक्षा के दौरान जाँचे गए संभावित आर्थिक, गणितीय और क्रिप्टोग्राफ़िक हमले सतहों की व्यापक समीक्षा।
रीएंट्रेंसी हमले
टोकन शेष राशि दर्ज करने से पहले अविश्वसनीय बाहरी कॉल किए बिना OpenZeppelin ERC-20 स्थिति अपडेट (_update) प्राप्त करता है। Checks-Effects-Interactions का पूर्ण पालन।
ओरेकल और स्पॉट मूल्य हेरफेर
J1USD टोकन लेज़र स्थानांतरण या अनुमोदन के दौरान बाहरी मूल्य ओरेकल से परामर्श नहीं करता। गणना 100% आंतरिक है, जिससे फ्लैश लोन शोषण समाप्त हो जाता है।
कार्यान्वयन अपहरण
कार्यान्वयन कंस्ट्रक्टर परिनियोजन पर _disableInitializers() चलाता है। हमलावर द्वारा अंतर्निहित अनुबंध पर स्वतंत्र स्वामित्व संभव नहीं है।
शत्रुतापूर्ण शासन अधिग्रहण
व्यवस्थापक भूमिका पुनर्नियुक्ति अपरिवर्तनीय समय विलंब (defaultAdminDelay) लागू करती है। एक कुंजी समझौता तुरंत पूर्ण नियंत्रण नहीं दे सकता।
सुरक्षा इनवेरिएंट
औपचारिक रूप से जाँचे गए सुरक्षा इनवेरिएंट
बाइटकोड-स्तरीय तर्क जाँच का सारांश जो पुष्टि करता है कि सभी चरम स्थितियों में सिस्टम की अखंडता सुरक्षित रहती है।
आपूर्ति सीमा प्रवर्तन
यदि सीमा पार हो जाती है तो मिन्टिंग SupplyCeilingExceeded के साथ निरस्त हो जाती है। व्यवस्थापक को सीमा को परिसंचारी आपूर्ति से कम करने की मनाही है।
mint() में supplyCeiling स्थिति जाँचमिन्टिंग और बर्निंग रीप्ले डिडुप्लीकेशन
प्रत्येक लेनदेन के लिए अद्वितीय bytes32 संदर्भ पहचानकर्ता आवश्यक है। डुप्लिकेट कॉल ReferenceAlreadyUsed के साथ तुरंत निरस्त हो जाते हैं।
_usedIssuanceReferences और _usedBurnReferences मैपिंगकार्यान्वयन तर्क अपहरण निवारण
कार्यान्वयन अनुबंध कंस्ट्रक्टर में इनिशियलाइज़र को लॉक करता है। हमलावर अंतर्निहित तर्क अनुबंध पर स्वतंत्र रूप से नियंत्रण नहीं कर सकते।
कंस्ट्रक्टर में _disableInitializers() कॉलभंडारण लेआउट टकराव सुरक्षा
प्रॉक्सी स्टोरेज मानक स्लॉट का पालन करता है। 42 शब्दों का आरक्षित अंतर सुनिश्चित करता है कि भविष्य के अपग्रेड मौजूदा चर को ओवरराइट न करें।
ERC-1967 मानक स्लॉट + uint256[42] अंतरशत्रुतापूर्ण व्यवस्थापक अधिग्रहण न्यूनीकरण
DEFAULT_ADMIN_ROLE का हस्तांतरण तुरंत नहीं होता। अनिवार्य विलंब वाली दो-चरणीय प्रक्रिया एक कुंजी के रिसाव से होने वाले नुकसान से बचाती है।
defaultAdminDelay के साथ AccessControlDefaultAdminRulesमहत्वपूर्ण अवसंरचना सुरक्षा
पंजीकृत सिस्टम पते (DEX पूल, ट्रेजरी, परिचालन अनुबंध) फ़्रीज़ या ब्लैकलिस्ट नहीं किए जा सकते, जिससे DoS जोखिम समाप्त हो जाते हैं।
अनुपालन कार्यों में _requireNotProtected() जाँचटोकन बचाव में स्वयं-निकासी रोकथाम
गलती से भेजे गए टोकन को वापस पाने की अनुमति देता है, लेकिन J1USD टोकन अनुबंध को लक्षित करने वाले कॉल को स्पष्ट रूप से ब्लॉक करता है।
rescueERC20() में RescueProhibitedToken जाँचवैश्विक आपातकालीन सर्किट ब्रेकर
अधिकृत PAUSER_ROLE बाजार की असामान्यताओं में स्थानांतरण रोक सकता है, जबकि कानूनी जब्ती संचालन सुरक्षित रहते हैं।
transfer/mint/approve पर whenNotPaused संशोधकपृथक शेष फ़्रीज़िंग सटीकता
उपयोगकर्ता के पूरे वॉलेट को लॉक किए बिना विवादित धनराशि को फ़्रीज़ करने की अनुमति देता है, जिससे शेष धनराशि पूरी तरह तरल रहती है।
availableBalanceOf() गणितीय पृथक्करणजिम्मेदार प्रकटीकरण
सुरक्षा भेद्यता की रिपोर्ट करें
AirJIT एक सक्रिय भेद्यता प्रकटीकरण कार्यक्रम चलाता है। यदि आप J1USD प्रॉक्सी, कार्यान्वयन या बुनियादी ढांचे में कोई सुरक्षा कमी पाते हैं, तो कृपया जिम्मेदारी से रिपोर्ट करें।
यदि संभव हो तो PGP का उपयोग करके संवेदनशील रिपोर्ट एन्क्रिप्ट करें। हम 24 घंटों के भीतर सभी वैध प्रस्तुतियों की पुष्टि करते हैं।