J1USD স্মার্ট কন্ট্রাক্ট নিরাপত্তা ও প্রযুক্তিগত মূল্যায়ন
BNB Smart Chain-এ J1USD টোকেন সিস্টেমের ব্যাপক আর্কিটেকচারাল বিশ্লেষণ ও যাচাইকরণ রিপোর্ট। আপগ্রেড নিরাপত্তা, অপরিবর্তনীয় অ্যাক্সেস নিয়ন্ত্রণ, সরবরাহ সীমা এবং মাল্টি-ভেন্যু লিকুইডিটি আলাদা রাখার জন্য অভ্যন্তরীণভাবে পর্যালোচনা করা হয়েছে।
কোনো ক্রিটিক্যাল ঝুঁকি নেই
0 Critical
মূল টোকেন কন্ট্রাক্টে ০টি উচ্চ / ০টি ক্রিটিক্যাল দুর্বলতা পাওয়া গেছে।
কঠোর সরবরাহ সীমা
1,000,000,000
বাইটকোডে ১,০০০,০০০,০০০ J1USD-এর অপরিবর্তনীয় সীমা কার্যকর।
দায়িত্বের স্পষ্ট বিভাজন
RBAC Partitioned
অ্যাডমিন, আপগ্রেডার, মিন্টার, বার্নার ও পজারের জন্য স্বতন্ত্র ঠিকানা।
UUPS স্টোরেজ গ্যাপ
__gap[42]
ভবিষ্যত আপগ্রেডে মেমোরি দ্বন্দ্ব রোধে সংরক্ষিত ৪২-স্লট গ্যাপ (__gap[42])।
অন-চেইন যাচাইকৃত ডিপ্লয়মেন্ট
অফিসিয়াল কন্ট্রাক্ট ঠিকানা ও যাচাইকরণ
J1USD ওপেনজেপেলিন 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 আপগ্রেডযোগ্যতা নিরাপত্তা
ওপেনজেপেলিনের UUPS স্ট্যান্ডার্ডে তৈরি। স্টেট ভেরিয়েবল ও ব্যালেন্স কেবল প্রক্সি স্লটেই সংরক্ষিত থাকে। লজিক কন্ট্রাক্টের কনস্ট্রাক্টরে _disableInitializers() কল করা হয়েছে যাতে কোনো আক্রমণকারী এটি দখল করতে না পারে।
কঠোর সরবরাহ সীমা নীতি
সীমাহীন মিন্টিংয়ের অন্যান্য স্টেবলকয়েনের মতো নয়, J1USD কন্ট্রাক্ট স্তরে supplyCeiling প্রয়োগ করে। প্রতিটি mint() যাচাই করে totalSupply() + amount <= supplyCeiling। অ্যাডমিন বর্তমান সরবরাহের নিচে সীমা কমাতে পারে না।
আইডেমপোটেন্ট ইভেন্ট প্রতিলিপি প্রতিরোধ
মিন্ট এবং বার্ন অপারেশনে একটি স্বতন্ত্র 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) পুল
BNB Smart Chain-এ PancakeSwap-এর মাধ্যমে সরাসরি পরিচালিত স্মার্ট কন্ট্রাক্ট ভিত্তিক লিকুইডিটি পুল। কোনো থার্ড-পার্টি কাস্টোডি ঝুঁকি নেই; অপরিবর্তনীয় বাইটকোডের মাধ্যমে লেনদেন সম্পন্ন হয়।
কেন্দ্রীভূত লিকুইডিটি পুল যা J1USD-কে 1.00 USD Coin-এর সাথে দৃঢ়ভাবে পেগ করে। এটি একটি সুরক্ষিত সিস্টেম ঠিকানা যা ফ্রিজ থেকে সম্পূর্ণ মুক্ত।
বিকেন্দ্রীভূত AMM ব্রিজ যা AirJIT ইউটিলিটি টোকেন (JIT) এবং সেটেলমেন্ট অ্যাসেট (J1USD)-কে সংযুক্ত করে।
অভ্যন্তরীণ অর্ডারবুক পুলসমূহ
AirJIT আলাদা কোনো স্মার্ট কন্ট্রাক্ট ঠিকানা ছাড়াই অফ-চেইনে প্রধান জামানত পেয়ারে সেকেন্ডারি মার্কেট কোট করে। হাই-স্পিড ম্যাচিং ইঞ্জিনের মাধ্যমে অর্ডার নিষ্পন্ন হয়।
অফ-চেইন সার্ভারগুলোর কাছে BNB Smart Chain-এ J1USD টোকেন মিন্ট বা বার্ন করার কোনো প্রাইভেট কি নেই।
অফ-চেইন অভ্যন্তরীণ ব্যালেন্স অন-চেইন প্রক্সি কন্ট্রাক্টে থাকা যাচাইকৃত জমার পরিমাণের সাথে কঠোরভাবে সীমাবদ্ধ।
সক্রিয় অফ-চেইন ট্রেডিং পেয়ার (অর্ডার বুক):
মূল্যায়ন ফলাফল ও থ্রেট মডেলিং
আক্রমণ ভেক্টর বিশ্লেষণ ও আনুষ্ঠানিক সুরক্ষা
প্রযুক্তিগত মূল্যায়নের সময় পরীক্ষিত সম্ভাব্য অর্থনৈতিক, গাণিতিক ও ক্রিপ্টোগ্রাফিক আক্রমণ ক্ষেত্রগুলির বিশদ বিশ্লেষণ।
রি-এন্ট্রান্সি আক্রমণ
টোকেন ওপেনজেপেলিনের ERC-20 স্টেট আপডেট (_update) উত্তরাধিকার সূত্রে গ্রহণ করে যাতে ব্যালেন্স নিষ্পত্তির আগে কোনো অবিস্তৃত কল থাকে না। Checks-Effects-Interactions সম্পূর্ণ নিশ্চিত।
ওরাকল ও স্পট প্রাইস ম্যানিপুলেশন
স্থানান্তরের সময় J1USD খাতা কোনো বাহ্যিক প্রাইস ওরাকলকে কল করে না। সমস্ত হিসাব ১০০% অভ্যন্তরীণ, ফলে ফ্ল্যাশ লোন দিয়ে ম্যানিপুলেশন অসম্ভব।
লজিক বাস্তবায়ন হাইজ্যাকিং
বাস্তবায়ন কনস্ট্রাক্টর ডিপ্লয়মেন্টের সময় _disableInitializers() চালায়। মূল কন্ট্রাক্টটি আক্রমণকারী একা ইনিশিয়ালাইজ করতে পারে না।
শত্রুতাপূর্ণ গভর্নেন্স দখল
অ্যাডমিন রোল পুনরায় বরাদ্দের জন্য অপরিবর্তনীয় সময় বিলম্ব (defaultAdminDelay) বাধ্যতামূলক। একটি একক চাবি হাতছাড়া হলেও অবিলম্বে নিয়ন্ত্রণ দখল সম্ভব নয়।
নিরাপত্তা ইনভেরিয়েন্টস
বিধিবদ্ধভাবে যাচাইকৃত নিরাপত্তা অপরিবর্তনীয় নিয়ম
বাইটকোড-স্তরের যাচাইকরণের সারসংক্ষেপ যা নিশ্চিত করে যেকোনো চরম পরিস্থিতিতেও সিস্টেমের সততা অটুট থাকে।
সর্বোচ্চ সরবরাহ সীমা নিশ্চিতকরণ
সীমা অতিক্রম করলে SupplyCeilingExceeded ত্রুটি দিয়ে মিন্ট বাতিল হয়। অ্যাডমিন বর্তমান সরবরাহের নিচে সীমা কমাতে পারে না।
mint()-এ supplyCeiling যাচাইমিন্ট ও বার্ন রিপ্লে প্রতিরোধ
প্রতিটি অপারেশনে একটি অনন্য bytes32 রেফারেন্স প্রয়োজন। পুনরাবৃত্ত অনুরোধগুলো ReferenceAlreadyUsed দিয়ে বাতিল হয়।
_usedIssuanceReferences এবং _usedBurnReferences ম্যাপিংলজিক বাস্তবায়ন হাইজ্যাকিং প্রতিরোধ
বাস্তবায়ন কন্ট্রাক্ট কনস্ট্রাক্টরে ইনিশিয়ালাইজার লক করে। আক্রমণকারীরা মূল লজিক কন্ট্রাক্টটি দখল করতে পারে না।
কনস্ট্রাক্টরে _disableInitializers() কলস্টোরেজ লেআউট সংঘর্ষ প্রতিরোধ
প্রক্সি স্টোরেজ ERC-1967 স্ট্যান্ডার্ড মেনে চলে। সংরক্ষিত ৪২-শব্দের গ্যাপ নিশ্চিত করে যে আপগ্রেডগুলো বিদ্যমান ভেরিয়েবলকে ক্ষতিগ্রস্ত করবে না।
স্ট্যান্ডার্ড 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 দিয়ে এনক্রিপ্ট করুন। আমরা ২৪ ঘণ্টার মধ্যে সমস্ত বৈধ নিরাপত্তা উদ্বেগের প্রাপ্তি স্বীকার করি।