Sicurezza e Valutazione Tecnica dello Smart Contract J1USD
Rapporto completo di analisi architetturale e verifica del sistema di token J1USD su BNB Smart Chain. Esaminato internamente per sicurezza degli aggiornamenti, controlli di accesso immutabili, invarianti di offerta e segregazione della liquidità.
Zero Rilievi Critici
0 Critical
0 vulnerabilità alte / 0 critiche identificate nei contratti principali del token.
Tetto Massimo di Offerta
1,000,000,000
Limite immutabile di 1.000.000.000 J1USD applicato a livello di bytecode.
Separazione dei Ruoli
RBAC Partitioned
Indirizzi distinti per Amministratore, Aggiornamento, Coniazione, Bruciatura e Pausa.
Slot di Memoria UUPS
__gap[42]
Spazio riservato di 42 slot (__gap[42]) per evitare collisioni di memoria nei futuri aggiornamenti.
DISTRIBUZIONI ON-CHAIN VERIFICATE
Indirizzi di Contratto Canonici e Verifica
J1USD opera tramite un pattern di proxy UUPS OpenZeppelin ERC-1967. Di seguito sono riportati i contratti sorgente verificati distribuiti sulla mainnet BNB Smart Chain.
J1USDProxy.sol
Indirizzo canonico del token BEP-20 per gli utenti. Tutti i saldi, le autorizzazioni e lo stato risiedono permanentemente qui. Compatibile con Grey Wallet, MetaMask, Trust Wallet e tutti i DEX su BNB Chain.
J1USDTokenUpgradeable.sol
Implementazione logica contenente regole di business compilate, verifiche di conformità, tetti di offerta e modificatori di ruolo. L'inizializzazione diretta è bloccata alla distribuzione.
0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.REVISIONE DI CONFORMITÀ E POLITICHE
Meccanismi di Blacklist, Congelamento Conti e Sanzioni
Valutazione dei meccanismi di conformità del token. J1USD è un token BEP-20 aperto che opera con un modello attivo di blacklist e congelamento — e non con whitelist —, garantendo la massima componibilità senza autorizzazioni pur consentendo l'applicazione di sanzioni legali.
Nessun Obbligo di Whitelist (Trasferimenti Senza Permesso)
J1USD NON richiede alcuna whitelist di trasferimento. Qualsiasi wallet Web3 standard su BNB Smart Chain può ricevere, detenere, inviare e scambiare J1USD liberamente sui DEX senza approvazione KYC.
Funzionalità Esplicita di Blacklist (Conformità Penale)
Il ruolo dedicato BLACKLISTER_ROLE può limitare gli indirizzi malevoli associati a violazioni, sanzioni o furti verificati, bloccando addebiti e accrediti.
Congelamento Parziale e Totale dei Conti ad Alta Precisione
Il contratto supporta sia freezeAccount() che freezeBalance(amount). Durante le controversie commerciali, viene bloccato solo l'importo contestato, preservando la liquidità dei fondi rimanenti.
Protezione Certificata di Cancellazione Legale (Wipe)
Il ruolo WIPER_ROLE può distruggere i saldi congelati solo in virtù di ordini giudiziari o normativi vincolanti. La distruzione arbitraria dei beni è strutturalmente impossibile.
Verifica degli Hook a Livello Bytecode: _update(), _approve() e transferFrom()
Il bytecode esegue rigorose verifiche di addebito e accredito all'interno di _update(from, to, amount):
Il mittente NON deve essere in blacklist (!isBlacklisted), il conto NON deve essere congelato (!isAccountFrozen) e l'importo non può superare availableBalanceOf.
Il destinatario NON deve essere in blacklist né congelato. Impedisce a soggetti illeciti di riciclare fondi su conti di custodia con restrizioni.
Sia il proprietario che l'operatore delegato devono essere privi di restrizioni. Le entità soggette a restrizioni non possono delegare quote o eseguire trasferimenti conto terzi.
ARCHITETTURA SMART CONTRACT
Meccanismi di Sicurezza e Analisi degli Invarianti
Valutazione approfondita dei componenti chiave di J1USD: sicurezza di aggiornamento del proxy, deduplicazione crittografica, separazione delle competenze e salvaguardie di emergenza.
Sicurezza di Aggiornabilità UUPS
Basato sullo standard UUPS di OpenZeppelin. Variabili di stato e saldi risiedono esclusivamente negli slot del proxy. Il costruttore dell'implementazione chiama _disableInitializers() per garantire che la logica non possa essere rivendicata in modo indipendente.
Invariante del Tetto Massimo di Offerta
A differenza delle stablecoin con emissione illimitata, J1USD impone un supplyCeiling a livello di contratto. Ogni chiamata mint() verifica che totalSupply() + amount <= supplyCeiling. È vietato all'amministratore abbassare il tetto sotto l'offerta circolante.
Deduplicazione Idempotente degli Eventi
Le operazioni di emissione e bruciatura richiedono un hash di riferimento bytes32 univoco (issuanceReference / burnReference). Qualsiasi tentativo di riutilizzare un riferimento annulla immediatamente la transazione con ReferenceAlreadyUsed.
Transizioni Amministrative con Blocco Temporale
Sfrutta AccessControlDefaultAdminRulesUpgradeable. I trasferimenti del ruolo di amministratore impongono un ritardo obbligatorio (defaultAdminDelay), proteggendo da compromissioni ostili delle chiavi.
Precisione di Congelamento Parziale
Invece di bloccare interi wallet, J1USD introduce freezeBalance. Gli importi contestati possono essere congelati proporzionalmente mentre availableBalanceOf consente le normali spese per i fondi rimanenti.
Indirizzi di Sistema Protetti
Gli indirizzi chiave del protocollo (pool PancakeSwap, tesoreria e infrastruttura operativa) sono registrati come protectedSystemAddress, rendendoli immuni da congelamenti o blacklist.
MATRICE DI AUTORIZZAZIONE
Permessi di Controllo Accessi Basato sui Ruoli (RBAC)
Verifica dei privilegi tra operatori di amministrazione, emissione, bruciatura, conformità ed emergenza. Tutte le funzioni privilegiate richiedono firme crittografiche esplicite corrispondenti ai ruoli assegnati.
| Identificatore Ruolo | Funzione/i Privilegiata/e | Controlli di Sicurezza e Invarianti |
|---|---|---|
| DEFAULT_ADMIN_ROLE0x00 (Admin Root) | Configura le assegnazioni dei ruoli, aggiorna i limiti di offerta e registra gli indirizzi di sistema protetti. | Regolato da OpenZeppelin AccessControlDefaultAdminRules con ritardo temporale obbligatorio. |
| UPGRADER_ROLEkeccak256('UPGRADER_ROLE') | Autorizza gli aggiornamenti della logica di implementazione UUPS in _authorizeUpgrade(). | Ristretto rigorosamente alla governance multifirma; non può modificare lo stato senza contratto valido. |
| MINTER_ROLEkeccak256('MINTER_ROLE') | Emette nuovi token J1USD a fronte di garanzie verificate o esigenze di regolamento. | Rigorosamente vincolato dal supplyCeiling immutabile e dalla deduplicazione univoca issuanceReference. |
| BURNER_ROLEkeccak256('BURNER_ROLE') | Riduce l'offerta di token durante riscatti o liquidazione dei debiti del protocollo. | Richiede burnReference univoco. Un'eccezione mirata consente di bruciare da conti soggetti a restrizioni per mantenere la solvibilità. |
| PAUSER_ROLEkeccak256('PAUSER_ROLE') | Attiva o disattiva l'interruttore di emergenza che interrompe i trasferimenti standard. | Capacità difensiva per eventi catastrofici o anomalie di bridge. |
| BLACKLISTER_ROLEkeccak256('BLACKLISTER_ROLE') | Aggiunge o rimuove indirizzi dalla blacklist globale di addebito/accredito. | Non può colpire indirizzi designati in protectedSystemAddress. Richiede riferimento di tracciamento. |
| FREEZER_ROLEkeccak256('FREEZER_ROLE') | Congela interi conti o importi parziali (freezeBalance, freezeAllCurrentBalance). | Consente di congelare importi specifici contestati mantenendo il saldo residuo disponibile. Indirizzi di sistema immuni. |
| WIPER_ROLEkeccak256('WIPER_ROLE') | Distrugge i saldi congelati in virtù di un ordine giudiziario o normativo certificato. | Applicabile solo a conti già congelati o in blacklist; non può superare l'importo congelato. |
| RESCUE_ROLEkeccak256('RESCUE_ROLE') | Recupera token BEP-20 di terze parti inviati per errore al contratto. | Rigorosamente vietato interagire con i saldi del token J1USD (RescueProhibitedToken). |
INFRASTRUTTURA DI LIQUIDITÀ E VALUTAZIONE DEI POOL
Liquidità DEX On-Chain vs. Pool Secondari Centralizzati
J1USD bilancia i mercati AMM decentralizzati non-custodial su BNB Smart Chain con registri degli ordini centralizzati off-chain. Ecco la ripartizione tecnica degli indirizzi dei pool, link di trading e confini di sicurezza.
Pool di Market Maker Automatizzati (AMM)
Pool di liquidità intelligenti non-custodial operanti nativamente su BNB Smart Chain tramite PancakeSwap. Zero rischio di custodia di terze parti; le transazioni vengono eseguite peer-to-contract tramite bytecode immutabile.
Pool di liquidità concentrata che ancora saldamente J1USD a 1,00 USD Coin. Indirizzo di sistema designato e protetto da congelamenti.
Ponte AMM decentralizzato che collega il token di utilità AirJIT (JIT) e l'asset di regolamento (J1USD).
Pool di Registro Ordini Interno
AirJIT quota mercati secondari sulle principali coppie collaterali off-chain senza indirizzi di contratto dedicati. Il regolamento è gestito da motori di abbinamento centralizzati ad alte prestazioni.
I server off-chain non possiedono chiavi private autorizzate a coniare o bruciare token J1USD su BNB Smart Chain.
I saldi dei conti interni off-chain sono rigorosamente limitati dai depositi verificati sul contratto proxy on-chain.
Coppie di Trading Secondarie Off-Chain Attive (Order Book):
RISULTATI VALUTAZIONE E MODELLAZIONE DELLE MINACCE
Analisi dei Vettori di Attacco e Difese Formali
Rassegna esaustiva delle superfici di attacco economiche, matematiche e crittografiche esaminate durante la revisione tecnica.
Attacchi di Reentrancy
Il token eredita rigorosamente gli aggiornamenti di stato ERC-20 di OpenZeppelin (_update) senza effettuare chiamate esterne non attendibili prima di fissare i saldi. Pienamente conforme a Checks-Effects-Interactions.
Manipolazione di Oracoli e Prezzi Spot
Il registro del token J1USD non consulta oracoli di prezzo esterni durante trasferimenti o autorizzazioni. L'aritmetica è interna al 100%, eliminando manipolazioni tramite prestiti lampo (flash loans).
Dirottamento dell'Implementazione
Il costruttore dell'implementazione esegue _disableInitializers() alla distribuzione. Il contratto logico sottostante non può essere inizializzato o posseduto autonomamente.
Acquisizione Ostile della Governance
La riassegnazione dei ruoli di amministrazione impone un ritardo temporale inalterabile (defaultAdminDelay). La violazione di una singola chiave non può garantire il controllo immediato.
INVARIANTI DI SICUREZZA
Invarianti di Sicurezza Formalmente Verificati
Riepilogo dei controlli a livello di bytecode che attestano la conservazione dell'integrità del sistema in tutti i casi limite.
Applicabilità del Tetto di Offerta
Le operazioni di emissione falliscono con SupplyCeilingExceeded se totalSupply() + amount supera il limite. È vietato all'amministratore abbassare il tetto sotto l'offerta circolante.
Verifica di stato supplyCeiling in mint()Deduplicazione Anti-Replay per Coniazione e Bruciatura
Ogni transazione richiede un identificatore bytes32 idempotente. Chiamate duplicate con lo stesso riferimento vengono respinte con ReferenceAlreadyUsed.
Mappature _usedIssuanceReferences e _usedBurnReferencesProtezione contro il Dirottamento dell'Implementazione
Il contratto di implementazione blocca gli inizializzatori nel costruttore. Nessun utente malintenzionato può inizializzare o rivendicare la proprietà del contratto logico.
Chiamata _disableInitializers() nel costruttoreProtezione dalle Collisioni di Memoria
La memoria del proxy rispetta gli slot ERC-1967. Uno spazio riservato di 42 parole garantisce che futuri aggiornamenti non sovrascrivano variabili di stato esistenti.
Slot standard ERC-1967 + divario uint256[42]Mitigazione dell'Acquisizione Ostile dell'Amministrazione
Il trasferimento di DEFAULT_ADMIN_ROLE non è istantaneo. Un processo in due fasi con ritardo temporale protegge da compromissioni improvvise delle chiavi.
AccessControlDefaultAdminRules con defaultAdminDelayImmunità delle Infrastrutture Critiche
Gli indirizzi di sistema registrati (pool DEX, tesoreria, contratti operativi) non possono essere congelati o messi in blacklist, eliminando i rischi di DoS.
Verifica _requireNotProtected() nelle funzioni di conformitàBlocco di Auto-Drenaggio nel Recupero Token
La funzione rescueERC20 consente di recuperare token inviati per errore, ma blocca esplicitamente qualsiasi chiamata mirata al contratto J1USD stesso.
Verifica RescueProhibitedToken in rescueERC20()Disgiuntore di Emergenza Globale
Il ruolo autorizzato PAUSER_ROLE può bloccare tempestivamente i trasferimenti in caso di anomalie di mercato, preservando le operazioni legali di cancellazione.
Modificatore whenNotPaused su transfer/mint/approvePrecisione nel Congelamento Isolato dei Saldi
Consente di congelare importi controversi senza bloccare l'intero wallet dell'utente, lasciando i fondi legittimi eccedenti pienamente liquidi.
Isolamento aritmetico in availableBalanceOf()DIVULGAZIONE RESPONSABILE
Segnala una Vulnerabilità
AirJIT gestisce un programma proattivo di divulgazione delle vulnerabilità. Se riscontri un difetto di sicurezza nel proxy J1USD, nell'implementazione o nei contratti intelligenti, segnalalo responsabilmente.
Se possibile, crittografa i report sensibili con PGP. Rispondiamo a tutte le segnalazioni legittime entro 24 ore.