ВНУТРІШНЬО ПЕРЕВІРЕНО · 0 КРИТИЧНИХ ВРАЗЛИВОСТЕЙ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 зафіксовано на рівні байткоду.

Розподіл ролей

RBAC Partitioned

Окремі адреси для адміністратора, оновлення, емісії, спалювання та паузи.

Слоти пам'яті UUPS

__gap[42]

Резервний зазор у 42 слоти (__gap[42]) запобігає конфліктам пам'яті при оновленнях.

ПЕРЕВІРЕНІ РОЗГОРТАННЯ ON-CHAIN

Канонічні адреси контрактів та верифікація

J1USD функціонує за модульним шаблоном проксі OpenZeppelin ERC-1967 UUPS. Нижче наведено перевірені вихідні контракти, розгорнуті в основній мережі 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 на DEX без KYC та реєстрації.

Оцінка безпеки:Стандартні функції переказу (transfer, transferFrom) виконуються безумовно для всіх чистих адрес. Звичайні P2P-операції та DeFi не потребують жодних дозволів.
ПІД КОНТРОЛЕМ RBACПРОЙДЕНО · Захищено

Явна функціональність чорного списку (Протидія загрозам)

Спеціальна роль BLACKLISTER_ROLE може обмежувати шкідливі адреси, пов'язані зі зломами, санкціями або крадіжками, блокуючи списання та зарахування коштів.

Оцінка безпеки:addToBlacklist() вимагає ненульовий хеш bytes32 complianceReference для ончейн-аудиту. Захищені системні адреси (AMM DEX та Скарбниця) математично захищені від блокування.
ІЗОЛЯЦІЯ СПОРІВПРОЙДЕНО · Ізольовано

Високоточне часткове та повне заморожування рахунків

Контракт підтримує як 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) захищає від раптового викрадення ключів.

Розподіл ролей: Upgrader, Minter, Burner та Pauser діють незалежно.

Високоточне часткове заморожування

Замість блокування всього гаманця J1USD пропонує freezeBalance. Спірна сума блокується точково, а availableBalanceOf дозволяє вільно використовувати решту коштів.

Захищає законні кошти учасників під час комерційних спорів.

Захищені системні адреси

Ключові адреси протоколу (пули PancakeSwap, скарбниця, контракти) мають статус protectedSystemAddress, що виключає їх заморожування або блокування.

Запобігає випадковій або навмисній відмові в обслуговуванні публічних торгових пар DEX.

МАТРИЦЯ АВТОРИЗАЦІЇ

Контроль доступу на основі ролей (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 vs Централізовані вторинні пули

J1USD підтримує баланс між некастодіальними децентралізованими ринками AMM на BNB Smart Chain та централізованими офчейн-книгами ордерів. Нижче наведено адреси пулів, торгові посилання та межі безпеки.

Ончейн децентралізована ліквідність (DEX)

Пули автоматичних маркет-мейкерів (AMM)

Некастодіальні пули ліквідності на смарт-контрактах, що працюють на BNB Smart Chain через PancakeSwap. Ризик утримання третіми особами нульовий; угоди виконуються peer-to-contract через незмінний байткод.

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)

Токен успадковує оновлення стану ERC-20 від OpenZeppelin (_update) без викликів зовнішніх контрактів до оновлення балансів. Повна відповідність шаблону Checks-Effects-Interactions.

НЕ ЗАСТОСОВУЄТЬСЯ

Маніпуляція оракулами та спотовими цінами

Реєстр токена J1USD не звертається до зовнішніх оракулів цін під час переказів. Арифметика на 100% внутрішня, що унеможливлює маніпуляції через миттєві кредити (flash loans).

ЗАПОБІГНУТО

Захоплення логіки реалізації

Конструктор реалізації викликає _disableInitializers() при розгортанні. Базовий контракт логіки не може бути ініціалізований або захоплений зловмисником.

МІНІМІЗОВАНО

Вороже захоплення управління

Перепризначення ролей адміністратора вимагає незмінної часової затримки (defaultAdminDelay). Компрометація одного ключа не дозволяє негайно захопити контроль.

ІНВАРІАНТИ БЕЗПЕКИ

Формально перевірені інваріанти безпеки

Підсумок логічних перевірок на рівні байткоду, які підтверджують цілісність системи за будь-яких екстремальних умов.

Статус · Результат

Дотримання межі емісії

Операції емісії скасовуються з помилкою SupplyCeilingExceeded, якщо ліміт перевищено. Адміністратору заборонено знижувати ліміт нижче поточної емісії.

Механізм контролюПеревірка supplyCeiling у mint()
Статус · Результат

Захист від повторів при випуску та спалюванні

Кожна операція вимагає унікального ідентифікатора bytes32. Повторні виклики відхиляються з ReferenceAlreadyUsed, унеможливлюючи подвійне виконання.

Механізм контролюТаблиці _usedIssuanceReferences та _usedBurnReferences
Статус · Результат

Захист логіки реалізації від захоплення

Контракт реалізації блокує ініціалізатори у конструкторі. Зловмисники не можуть самостійно ініціалізувати або заволодіти базовим контрактом.

Механізм контролюВиклик _disableInitializers() у конструкторі
Статус · Результат

Захист структури слотів пам'яті

Сховище проксі відповідає стандарту ERC-1967. Резервний проміжок у 42 слова гарантує, що майбутні оновлення не перезапишуть існуючі змінні.

Механізм контролюСтандартні слоти ERC-1967 + uint256[42] зазор
Статус · Результат

Захист від ворожого захоплення адміністратора

Передача DEFAULT_ADMIN_ROLE не відбувається миттєво. Двоетапний процес із затримкою захищає від наслідків викрадення одного ключа.

Механізм контролюAccessControlDefaultAdminRules з defaultAdminDelay
Статус · Результат

Імунітет критичної інфраструктури

Зареєстровані системні адреси (пули DEX, скарбниця, контракти) не можна заморозити або заблокувати, що виключає ризики DoS.

Механізм контролюПеревірка _requireNotProtected() у функціях комплаєнсу
Статус · Результат

Блокування самовиведення при порятунку токенів

Дозволяє повернути помилково надіслані сторонні токени, але повністю блокує спроби вивести самі токени J1USD.

Механізм контролюПеревірка RescueProhibitedToken у rescueERC20()
Статус · Результат

Загальний аварійний вимикач

Роль PAUSER_ROLE може негайно зупинити перекази у разі кризи, зберігаючи при цьому виконання законних процедур конфіскації.

Механізм контролюМодифікатор whenNotPaused на transfer/mint/approve
Статус · Результат

Точкова заморозка спірного балансу

Дозволяє заморозити лише спірну суму без блокування всього гаманця, зберігаючи повну ліквідність законних коштів, що залишилися.

Механізм контролюАрифметична ізоляція в availableBalanceOf()

ВІДПОВІДАЛЬНЕ РОЗКРИТТЯ ВРАЗЛИВОСТЕЙ

Повідомити про вразливість

AirJIT підтримує активну програму розкриття вразливостей. Якщо ви виявили проблему безпеки в проксі J1USD, реалізації або інфраструктурі, повідомте про це відповідально.

За можливості шифруйте конфіденційні звіти за допомогою PGP. Ми підтверджуємо всі обґрунтовані звернення протягом 24 годин.