J1USD Smart Contract Beveiliging & Technische Beoordeling
Uitgebreid architectuur- en verificatierapport van het J1USD-tokensysteem op BNB Smart Chain. Intern beoordeeld op upgradeveiligheid, onveranderlijke toegangscontrole, voorraadinvarianten en scheiding van liquiditeit.
Nul Kritieke Bevindingen
0 Critical
0 hoge / 0 kritieke kwetsbaarheden vastgesteld in de kerntokencontracten.
Strikte Aanbodlimiet
1,000,000,000
Onveranderlijk plafond van 1.000.000.000 J1USD afgedwongen op bytecode-niveau.
Scheiding van Rollen
RBAC Partitioned
Aparte adressen voor Beheerder, Upgrader, Minter, Burner en Pauzeerder.
UUPS-opslaggaps
__gap[42]
Gereserveerde buffer van 42 slots (__gap[42]) voorkomt geheugenconflicten bij upgrades.
GEVERIFIEERDE ON-CHAIN IMPLEMENTATIES
Canonieke Contractadressen & Verificatie
J1USD draait via een modulair OpenZeppelin ERC-1967 UUPS-proxypatroon. Hieronder staan de geverifieerde broncontracten op het BNB Smart Chain mainnet.
J1USDProxy.sol
Kanoniek gebruikersgericht BEP-20 tokenadres. Alle saldi, goedkeuringen en opslagstatussen verblijven permanent hier. Compatibel met Grey Wallet, MetaMask, Trust Wallet en alle DEX'en op BNB Chain.
J1USDTokenUpgradeable.sol
Bevat gecompileerde bedrijfsregels, compliance-controles, aanbodplafonds en rolmodificatoren. Directe initialisatie is vergrendeld bij uitrol via constructorbeveiliging.
0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.COMPLIANCE- & BELEIDSBEOORDELING
Blacklist-, Accountbevriezings- & Sanctiemechanismen
Beoordeling van de compliance-mechanismen van het token. J1USD is een open BEP-20 token met een actief blacklist- en bevriezingsmodel — geen whitelist —, wat maximale interoperabiliteit zonder toestemming garandeert en tegelijkertijd juridische sancties mogelijk maakt.
Geen Whitelist-vereiste (Vrije Overdrachten)
J1USD heeft GEEN whitelist voor overdrachten. Elke standaard Web3-wallet op BNB Smart Chain kan vrij J1USD ontvangen, bewaren, verzenden en verhandelen op DEX'en zonder KYC of voorafgaande registratie.
Expliciete Blacklist-functionaliteit (Sanctiehandhaving)
Een specifieke BLACKLISTER_ROLE kan kwaadwillende adressen gekoppeld aan hacks, sancties of diefstal uitsluiten van overboekingen en ontvangsten.
Nauwkeurige Gedeeltelijke en Volledige Bevriezing
Het contract ondersteunt zowel freezeAccount() als freezeBalance(amount). Bij commerciële geschillen wordt uitsluitend het betwiste bedrag geblokkeerd, zodat overige fondsen liquide blijven.
Gecertificeerde Juridische Inbeslagname (Wipe)
WIPER_ROLE mag bevroren saldi uitsluitend vernietigen op grond van bindende gerechtelijke of regelgevende bevelen. Willekeurige vernietiging van activa is structureel onmogelijk.
Bytecode-controle van Hooks: _update(), _approve() en transferFrom()
De bytecode voert strikte debet- en creditvalidaties uit binnen _update(from, to, amount):
Verzender mag NIET op de blacklist staan (!isBlacklisted), account mag NIET bevroren zijn (!isAccountFrozen) en het bedrag mag availableBalanceOf niet overschrijden.
Ontvanger mag NIET op de blacklist staan en NIET bevroren zijn. Voorkomt dat onrechtmatige gelden naar geblokkeerde wallets worden weggesluisd.
Zowel de tokeneigenaar als de gemachtigde moeten vrij zijn van restricties. Beperkte entiteiten kunnen geen bestedingsruimte delegeren of derdenbetalingen uitvoeren.
SMART CONTRACT ARCHITECTUUR
Beveiligingsmechanismen & Invariantenanalyse
Diepgaande evaluatie van J1USD-kerncomponenten: proxy-upgradeveiligheid, cryptografische ontdubbeling, functiescheiding en noodstops.
UUPS Upgradeveiligheid
Gebaseerd op de UUPS-standaard van OpenZeppelin. Toestand en saldi worden uitsluitend opgeslagen in proxy-slots. De implementatie-constructor roept _disableInitializers() aan om ongeoorloofde overname te voorkomen.
Strikte Aanbodplafond-invariant
In tegenstelling tot ongelimiteerd geslagen stablecoins handhaaft J1USD een contractueel supplyCeiling. Elke mint() controleert totalSupply() + amount <= supplyCeiling. Verlaging van het plafond onder de circulerende voorraad is verboden.
Idempotente Gebeurtenisontdubbeling
Munting- en verbrandingsacties vereisen een unieke bytes32 referentiehash (issuanceReference / burnReference). Hergebruik van een referentie wordt direct afgebroken met ReferenceAlreadyUsed.
Beheerdersoverdracht met Tijdslot
Maakt gebruik van AccessControlDefaultAdminRulesUpgradeable. Overdracht van beheerdersrechten kan niet in één blok plaatsvinden; een verplichte wachttijd (defaultAdminDelay) beschermt tegen kaping van sleutels.
Nauwkeurige Gedeeltelijke Bevriezing
In plaats van complete wallets te blokkeren biedt J1USD freezeBalance. Betwiste bedragen kunnen geïsoleerd worden bevroren, terwijl availableBalanceOf reguliere uitgaven mogelijk maakt.
Beschermde Systeemadressen
Cruciale adressen (PancakeSwap-pools, schatkist en operationele contracten) zijn aangeduid als protectedSystemAddress en zijn immuun voor bevriezing of blacklisting.
AUTORISATIEMATRIX
Rolgebaseerd Toegangsbeheer (RBAC)
Verificatie van privileges voor beheerders, uitgiftes, verbrandingen, compliance en noodactoren. Alle geprivilegieerde functies vereisen expliciete cryptografische handtekeningen.
| Rolidentificatie | Geprivilegieerde Functie(s) | Beveiligingscontroles & Invarianten |
|---|---|---|
| DEFAULT_ADMIN_ROLE0x00 (Admin Root) | Configureert roltoewijzingen, werkt aanbodlimieten bij en registreert beschermde systeemadressen. | Geregeerd door OpenZeppelin AccessControlDefaultAdminRules met verplichte tijdslotvertraging. |
| UPGRADER_ROLEkeccak256('UPGRADER_ROLE') | Autoriseert UUPS-logica-upgrades in _authorizeUpgrade(). | Strikt beperkt tot multisig-beheer; kan de toestand niet wijzigen zonder geldig geïmplementeerd contract. |
| MINTER_ROLEkeccak256('MINTER_ROLE') | Slaat nieuwe J1USD-tokens tegen geverifieerd onderpand of protocolvereisten. | Strikt begrensd door het onveranderlijke supplyCeiling en unieke issuanceReference-ontdubbeling. |
| BURNER_ROLEkeccak256('BURNER_ROLE') | Vermindert het tokenaanbod bij aflossingen of verrekening van protocolschulden. | Vereist unieke burnReference. Gecontroleerde uitzondering maakt verbranding vanuit geblokkeerde rekeningen mogelijk. |
| PAUSER_ROLEkeccak256('PAUSER_ROLE') | Activeert of deactiveert de noodonderbreker die standaardoverdrachten stillegt. | Defensieve noodmaatregel bij extreme marktcrisissen of brugstoringen. |
| BLACKLISTER_ROLEkeccak256('BLACKLISTER_ROLE') | Voegt adressen toe aan of verwijdert deze van de wereldwijde debet/credit-blacklist. | Kan geen adressen onder protectedSystemAddress treffen. Vereist compliance-referentie. |
| FREEZER_ROLEkeccak256('FREEZER_ROLE') | Bevriest rekeningen geheel of gedeeltelijk (freezeBalance, freezeAllCurrentBalance). | Maakt bevriezing van betwiste bedragen mogelijk terwijl restsaldi liquide blijven. Systeemadressen immuun. |
| WIPER_ROLEkeccak256('WIPER_ROLE') | Vernietigt bevroren saldi op grond van een gecertificeerd gerechtelijk of regelgevend bevel. | Alleen van toepassing op reeds bevroren rekeningen; kan het bevroren saldo niet overschrijden. |
| RESCUE_ROLEkeccak256('RESCUE_ROLE') | Herstelt per ongeluk naar het contract verzonden BEP-20-tokens van derden. | Strikt verboden om J1USD-tokensaldi aan te tasten (RescueProhibitedToken). |
LIQUIDITEITSINFRASTRUCTUUR & POOLBEOORDELING
On-Chain DEX-liquiditeit vs. Gecentraliseerde Secundaire Pools
J1USD balanceert non-custodial gedecentraliseerde AMM-markten op BNB Smart Chain met gecentraliseerde off-chain orderboeken. Hier is het overzicht van pooladressen, handelslinks en beveiligingsgrenzen.
Automated Market Maker (AMM) Pools
Non-custodial smart contract liquiditeitspools op BNB Smart Chain via PancakeSwap. Geen tegenpartijrisico; transacties worden peer-to-contract uitgevoerd via onveranderlijke bytecode.
Geconcentreerde liquiditeitspool die J1USD nauw koppelt aan 1,00 USD Coin. Aangewezen systeemadres beschermd tegen compliance-bevriezingen.
Gedecentraliseerde AMM-brug die het AirJIT utility token (JIT) verbindt met het verrekeningstoken (J1USD).
Interne Orderboek-pools
AirJIT quoteert secundaire markten over belangrijke onderpandparen off-chain zonder afzonderlijke contractadressen. Afwikkeling verloopt via centrale matching engines met hoge capaciteit.
Off-chain servers bezitten geen privésleutels om J1USD-tokens te slaan of te verbranden op BNB Smart Chain.
Interne off-chain accountsaldi zijn strikt begrensd door geverifieerde stortingen op het on-chain proxycontract.
Actieve Off-Chain Handelsparen (Orderboek):
BEOORDELINGSBEVINDINGEN & DREIGINGSMODELLERING
Aanvalsvectoranalyse & Formele Verdediging
Uitgebreide evaluatie van economische, wiskundige en cryptografische aanvalsvlakken die tijdens de technische audit zijn onderzocht.
Reentrancy-aanvallen
Het token erft strikt OpenZeppelin ERC-20 statusupdates (_update) over zonder externe aanroepen te doen voorafgaand aan saldoverwerking. Voldoet aan Checks-Effects-Interactions.
Orakel- & Spotprijsmanipulatie
Het J1USD-grootboek raadpleegt geen externe prijsorakels bij overdrachten. De rekenkunde is 100% intern, waardoor manipulatie via flitsleningen uitgesloten is.
Kaping van Implementatie
De implementatie-constructor voert direct _disableInitializers() uit bij uitrol. Het contract kan niet zelfstandig worden toegeëigend door aanvallers.
Vijandige Governance-overname
Herverdeling van beheerdersrollen dwingt een onveranderlijke vertraging (defaultAdminDelay) af. Een gecompromitteerde sleutel kan niet direct de controle grijpen.
VEILIGHEIDSINVARIANTEN
Formeel Gecontroleerde Beveiligingsinvarianten
Overzicht van bytecode-controles die bevestigen dat de systeemintegriteit onder alle omstandigheden behouden blijft.
Aanbodplafond Handhaving
Muntingsoperaties breken af met SupplyCeilingExceeded als de limiet wordt overschreden. De beheerder mag het plafond niet verlagen onder de actuele circulerende voorraad.
supplyCeiling statuscontrole in mint()Replay-ontdubbeling bij Aanmaak en Verbranding
Elke transactie vereist een idempotente bytes32 identifier. Herhaalde aanroepen worden afgewezen met ReferenceAlreadyUsed.
_usedIssuanceReferences & _usedBurnReferences mappingsBescherming tegen Kaping van Logica
Het implementatiecontract vergrendelt initialisaties in de constructor. Aanvallers kunnen het onderliggende logica-contract niet zelfstandig opeisen of initialiseren.
_disableInitializers() aanroep in constructorBescherming tegen Opslagconflicten
De proxy-opslag volgt de ERC-1967 standaard. Een buffer van 42 slots garandeert dat toekomstige upgrades bestaande variabelen niet overschrijven.
ERC-1967 standaardslots + uint256[42] bufferBeveiliging tegen Vijandige Beheerdersovername
Overdracht van DEFAULT_ADMIN_ROLE geschiedt via een tweestapsverificatie met verplichte wachttijd, wat catastrofale sleutelkapingen voorkomt.
AccessControlDefaultAdminRules met defaultAdminDelayImmuniteit Kritieke Infrastructuur
Geregistreerde systeemadressen (DEX-pools, schatkist, operationele contracten) kunnen niet worden bevroren of geblacklist, wat DoS-risico's op liquiditeit elimineert.
Controle _requireNotProtected() in compliance-functiesBlokkade op Zelfonttrekking bij Tokenterugwinning
Met rescueERC20 kunnen abusievelijk verzonden tokens van derden worden hersteld, maar aanroepen gericht op het J1USD-token zelf worden strikt geweigerd.
RescueProhibitedToken controle in rescueERC20()Algemene Noodstopschakelaar
De geautoriseerde PAUSER_ROLE kan overdrachten onmiddellijk staken bij marktcrisissen, met behoud van wettelijke inbeslagname-operaties.
whenNotPaused modificator op transfer/mint/approvePrecisie bij Geïsoleerde Saldobevriezing
Maakt het mogelijk om betwiste saldi te bevriezen zonder de complete wallet te vergrendelen, waardoor overige fondsen liquide blijven.
Rekenkundige scheiding via availableBalanceOf()VERANTWOORDE OPENBAARMAKING
Meld een Kwetsbaarheid
AirJIT hanteert een actief programma voor verantwoorde openbaarmaking. Meld beveiligingsproblemen in de J1USD-proxy, implementatie of smart contracts op verantwoorde wijze.
Versleutel gevoelige rapporten waar mogelijk met PGP. We reageren binnen 24 uur op alle legitieme meldingen.