J1USD Smart-Contract-Sicherheits- & Technische Bewertung
Umfassender Architektur- und Verifizierungsbericht des J1USD-Tokensystems auf der BNB Smart Chain. Technisch überprüft auf Upgrade-Sicherheit, unveränderliche Zugriffskontrollen, Angebotsinvarianten und handelsplatzübergreifende Liquiditätstrennung.
Null Kritische Befunde
0 Critical
0 hohe / 0 kritische Schwachstellen in den zentralen Token-Verträgen identifiziert.
Strikte Angebotsobergrenze
1,000,000,000
Unveränderliches Limit von 1.000.000.000 J1USD auf Bytecode-Ebene erzwungen.
Rollentrennung
RBAC Partitioned
Eigenständige Adressen für Administrator, Upgrader, Minter, Burner und Pauser.
UUPS-Speicherlücken
__gap[42]
42 reservierte Speicherslots (__gap[42]) verhindern Speicherkonflikte bei zukünftigen Upgrades.
VERIFIZIERTE ON-CHAIN-BEREITSTELLUNGEN
Kanonische Vertragsadressen & Verifizierung
J1USD wird über ein modulares OpenZeppelin ERC-1967 UUPS-Proxy-Muster ausgeführt. Nachfolgend sind die verifizierten Quellverträge aufgeführt, die im BNB Smart Chain Mainnet bereitgestellt wurden.
J1USDProxy.sol
Kanonische, benutzerseitige BEP-20-Tokenadresse. Alle Guthaben, Freigaben und Speicherzustände verbleiben dauerhaft hier. Kompatibel mit Grey Wallet, MetaMask, Trust Wallet und allen BNB Chain DEXs.
J1USDTokenUpgradeable.sol
Logik-Implementierung mit kompilierten Geschäftsregeln, Compliance-Prüfungen, Obergrenzen und Rollenmodifikatoren. Die direkte Initialisierung wird bei der Bereitstellung durch Konstruktorschutz gesperrt.
0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.COMPLIANCE- & RICHTLINIENBEWERTUNG
Blacklist-, Kontosperrungs- & Sanktionsmechanismen
Bewertung der Compliance-Mechanismen des Tokens. J1USD ist ein offener BEP-20-Token mit einem aktiven Blacklist- und Sperrmodell – keine Whitelist –, was maximale erlaubnisfreie Komponierbarkeit gewährleistet und gleichzeitig rechtliche Sanktionen ermöglicht.
Keine Whitelist-Pflicht (Erlaubnisfreie Übertragungen)
J1USD erfordert KEINE Whitelist. Jede standardmäßige Web3-Wallet auf der BNB Smart Chain kann J1USD frei auf DEXs empfangen, halten, senden und handeln – ohne KYC oder Vorabregistrierung.
Explizite Blacklist-Funktionalität (Sanktionsdurchsetzung)
Eine dedizierte Rolle BLACKLISTER_ROLE kann bösartige Adressen, die mit Hacks, Sanktionen oder Diebstählen in Verbindung stehen, von Belastungen und Gutschriften ausschließen.
Präzise Teil- & Gesamtkontensperrung
Der Vertrag unterstützt sowohl freezeAccount() als auch freezeBalance(amount). Bei geschäftlichen Streitigkeiten wird nur der strittige Betrag gesperrt, sodass das verbleibende Guthaben liquide bleibt.
Zertifizierter Rechtlicher Einzugsschutz (Wipe)
WIPER_ROLE darf gesperrte Guthaben ausschließlich aufgrund verbindlicher gerichtlicher oder behördlicher Anordnungen vernichten. Eine willkürliche Vermögensvernichtung ist strukturell unmöglich.
Hook-Prüfung auf Bytecode-Ebene: _update(), _approve() und transferFrom()
Der Bytecode führt in _update(from, to, amount) strenge Soll- und Haben-Prüfungen durch:
Der Absender darf NICHT auf der Blacklist stehen (!isBlacklisted), das Konto darf NICHT eingefroren sein (!isAccountFrozen), und der Betrag darf availableBalanceOf nicht überschreiten.
Der Empfänger darf NICHT auf der Blacklist stehen und NICHT eingefroren sein. Verhindert, dass unrechtmäßige Gelder auf gesperrte Treuhand-Wallets übertragen werden.
Sowohl der Tokeninhaber als auch der Bevollmächtigte müssen frei von Beschränkungen sein. Eingeschränkte Parteien können keine Freigaben erteilen oder Drittübertragungen veranlassen.
SMART-CONTRACT-ARCHITEKTUR
Sicherheitsmechanismen & Invariantenanalyse
Tiefgehende Prüfung der J1USD-Kernkomponenten: Proxy-Upgrade-Sicherheit, kryptografische Deduplizierung, Trennung der Verantwortlichkeiten und Notfallsicherungen.
UUPS-Upgrade-Sicherheit
Basiert auf dem OpenZeppelin UUPS-Standard. Zustand und Guthaben werden ausschließlich in Proxy-Slots gespeichert. Der Konstruktor der Implementierung ruft _disableInitializers() auf, um sicherzustellen, dass die Logik nicht eigenständig beansprucht werden kann.
Invariante der Angebotsobergrenze
Im Gegensatz zu unbegrenzt geprägten Stablecoins erzwingt J1USD ein supplyCeiling. Jeder mint()-Aufruf stellt sicher, dass totalSupply() + amount <= supplyCeiling gilt. Dem Admin ist es verboten, die Obergrenze unter das aktuelle Umlaufvolumen zu senken.
Idempotente Ereignis-Deduplizierung
Präge- und Verbrennungsvorgänge erfordern einen eindeutigen bytes32-Referenzhash (issuanceReference / burnReference). Jeder Versuch, eine Referenz wiederzuverwenden, bricht sofort mit ReferenceAlreadyUsed ab.
Admin-Übergänge mit Zeitschloss
Nutzt AccessControlDefaultAdminRulesUpgradeable. Administratorwechsel können nicht in einem einzelnen Block vollzogen werden; sie erfordern eine zwingende Zeitverzögerung (defaultAdminDelay), um feindliche Übernahmen abzuwehren.
Präzises Teil-Einfrieren
Statt ganze Konten komplett zu sperren, führt J1USD freezeBalance ein. Strittige Compliance-Beträge können gezielt eingefroren werden, während availableBalanceOf den normalen Zahlungsverkehr für Restbeträge erlaubt.
Geschützte Systemadressen
Wichtige Protokolladressen (PancakeSwap-Pools, Treasury und Betriebsinfrastruktur) sind als protectedSystemAddress registriert und immun gegen Sperrungen oder Blacklists.
BERECHTIGUNGSMATRIX
Rollenbasierte Zugriffskontrolle (RBAC)
Überprüfung der Privilegien von Administratoren, Emittenten, Verbrennern, Compliance- und Notfallakteuren. Alle privilegierten Funktionen erfordern explizite kryptografische Signaturen.
| Rollenbezeichner | Privilegierte Funktion(en) | Sicherheitskontrollen & Invarianten |
|---|---|---|
| DEFAULT_ADMIN_ROLE0x00 (Admin Root) | Konfiguriert Rollenzuweisungen, aktualisiert Angebotsobergrenzen und registriert geschützte Systemadressen. | Unterliegt OpenZeppelin AccessControlDefaultAdminRules mit zwingender Zeitschlossverzögerung. |
| UPGRADER_ROLEkeccak256('UPGRADER_ROLE') | Autorisiert UUPS-Logikupgrades in _authorizeUpgrade(). | Streng auf die Multisig-Governance des Protokolls beschränkt; kann ohne gültigen Vertrag keinen Zustand ändern. |
| MINTER_ROLEkeccak256('MINTER_ROLE') | Gibt neue J1USD-Token gegen verifizierte Sicherheiten oder Abwicklungsanforderungen aus. | Streng begrenzt durch die unveränderliche supplyCeiling und die eindeutige issuanceReference-Deduplizierung. |
| BURNER_ROLEkeccak256('BURNER_ROLE') | Reduziert das Tokenangebot bei Rücknahmen oder Bereinigung von Protokollverbindlichkeiten. | Erfordert eindeutige burnReference. Ein eng gefasster Bypass erlaubt das Verbrennen aus eingeschränkten Konten. |
| PAUSER_ROLEkeccak256('PAUSER_ROLE') | Aktiviert oder deaktiviert den Notfall-Schutzschalter zum Anhalten von Standardübertragungen. | Defensive Notfallfunktion für unvorhergesehene Extremereignisse oder Bridge-Anomalien. |
| BLACKLISTER_ROLEkeccak256('BLACKLISTER_ROLE') | Fügt Adressen zur globalen Soll-/Haben-Blacklist hinzu oder entfernt sie daraus. | Kann keine protectedSystemAddress-Ziele sperren. Erfordert Compliance-Referenz zur Nachverfolgung. |
| FREEZER_ROLEkeccak256('FREEZER_ROLE') | Friert ganze Konten oder Teilbeträge ein (freezeBalance, freezeAllCurrentBalance). | Ermöglicht das Einfrieren strittiger Beträge bei Beibehaltung der Liquidität für Restmittel. Systemadressen immun. |
| WIPER_ROLEkeccak256('WIPER_ROLE') | Vernichtet gesperrte Guthaben gemäß beglaubigter gerichtlicher oder behördlicher Anordnung. | Gilt nur für bereits gesperrte Konten; darf den eingefrorenen Betrag nicht übersteigen. |
| RESCUE_ROLEkeccak256('RESCUE_ROLE') | Rettet versehentlich an den Vertrag gesendete BEP-20-Token Dritter. | Darf unter keinen Umständen J1USD-Tokenguthaben berühren (RescueProhibitedToken). |
LIQUIDITÄTSINFRASTRUKTUR & POOL-BEWERTUNG
On-Chain DEX-Liquidität vs. Zentralisierte Sekundärpools
J1USD verbindet non-custodial dezentrale AMM-Märkte auf der BNB Smart Chain mit zentralisierten Off-Chain-Orderbüchern. Hier ist die technische Übersicht über Pooladressen, Handelslinks und Sicherheitsgrenzen.
Automated Market Maker (AMM) Pools
Non-custodial Smart-Contract-Liquiditätspools, die nativ auf der BNB Smart Chain über PancakeSwap betrieben werden. Kein Gegenparteienrisiko; Ausführung rein Peer-to-Contract durch unveränderlichen Bytecode.
Konzentrierter Liquiditätspool, der J1USD fest an 1,00 USD Coin koppelt. Als geschützte Systemadresse vor Compliance-Sperren geschützt.
Dezentrale AMM-Brücke zur Verknüpfung des AirJIT-Utility-Tokens (JIT) mit dem Abrechnungs-Asset (J1USD).
Interne Orderbuch-Pools
AirJIT stellt sekundäre Off-Chain-Märkte für wichtige Sicherheitenpaare ohne eigene Vertragsadressen bereit. Die Abrechnung erfolgt über hochperformante Matching-Engines.
Off-Chain-Server besitzen keinerlei private Schlüssel, um J1USD auf der BNB Smart Chain zu prägen oder zu verbrennen.
Interne Off-Chain-Kontoguthaben sind strikt durch geprüfte Einzahlungen auf den On-Chain-Proxyvertrag gedeckt.
Aktive Off-Chain-Handelspaare (Zentralisiertes Orderbuch):
BEWERTUNGSBEFUNDE & BEDROHUNGSMODELL
Angriffsvektoren-Analyse & Formale Schutzmaßnahmen
Umfassende Überprüfung potenzieller wirtschaftlicher, mathematischer und kryptografischer Angriffsflächen während des technischen Audits.
Reentrancy-Angriffe
Der Token erbt strikt die ERC-20-Zustandsaktualisierungen von OpenZeppelin (_update), ohne vor der Saldofestschreibung externe Aufrufe zu tätigen. Vollständige Einhaltung von Checks-Effects-Interactions.
Orakel- & Spotpreis-Manipulation
Das J1USD-Token-Ledger nutzt bei Übertragungen keine externen Preisorakel. Die Saldoberechnung erfolgt zu 100 % intern, was Flash-Loan-Preismanipulationen ausschließt.
Implementierungsübernahme
Der Implementierungskonstruktor führt bei der Bereitstellung _disableInitializers() aus. Der zugrunde liegende Vertrag kann nicht eigenständig von einem Angreifer übernommen werden.
Feindliche Governance-Übernahme
Die Neuzuweisung von Administratorrollen erzwingt eine unabänderliche Zeitverzögerung (defaultAdminDelay). Ein einzelner kompromittierter Schlüssel kann die Kontrolle nicht sofort an sich reißen.
SICHERHEITSINVARIANTEN
Formal Geprüfte Sicherheitsinvarianten
Zusammenfassung der Bytecode-Prüfungen, die sicherstellen, dass die Systemintegrität in allen Grenzfällen gewahrt bleibt.
Durchsetzbarkeit der Angebotsobergrenze
Prägevorgänge brechen mit SupplyCeilingExceeded ab, wenn totalSupply() + amount das Limit übersteigt. Dem Admin ist es untersagt, das Limit unter das Umlaufvolumen zu senken.
Prüfung von supplyCeiling in mint()Replay-Deduplizierung für Prägen und Verbrennen
Jede Transaktion erfordert eine idempotente bytes32-Referenz. Wiederholte Aufrufe brechen mit ReferenceAlreadyUsed ab und verhindern Doppelausführungen.
_usedIssuanceReferences & _usedBurnReferences MappingsSchutz vor Übernahme der Implementierung
Der Implementierungsvertrag sperrt Initialisierer im Konstruktor. Angreifer können den Logikvertrag nicht eigenständig initialisieren oder beanspruchen.
Aufruf von _disableInitializers() im KonstruktorKollisionsschutz für Speicherlayouts
Der Proxy-Speicher nutzt Standard-ERC-1967-Slots. Eine reservierte Lücke von 42 Wörtern garantiert, dass künftige Upgrades keine bestehenden Zustandsvariablen überschreiben.
ERC-1967 Standardslots + uint256[42] LückeSchutz vor feindlicher Admin-Übernahme
Die Übergabe von DEFAULT_ADMIN_ROLE erfolgt nicht sofort. Ein zweistufiger Prozess mit Zeitverzögerung schützt vor plötzlichen Schlüsselkompromittierungen.
AccessControlDefaultAdminRules mit defaultAdminDelayImmunität Kritischer Infrastruktur
Registrierte Systemadressen (DEX-Pools, Treasury, Verträge) können weder gesperrt noch auf die Blacklist gesetzt werden, was DoS-Risiken auf Liquiditätsschienen bannt.
Prüfung _requireNotProtected() in Compliance-FunktionenSelbstentleerungssperre bei Tokenrettung
rescueERC20 ermöglicht die Rückholung versehentlich gesendeter Fremdtoken, blockiert jedoch strikt Aufrufe, die auf den J1USD-Vertrag selbst abzielen.
RescueProhibitedToken Prüfung in rescueERC20()Globaler Notfall-Schutzschalter
Die autorisierte PAUSER_ROLE kann Tokenübertragungen und Freigaben bei Marktstörungen sofort stoppen, während rechtliche Einzugsvorgänge erhalten bleiben.
whenNotPaused Modifikator auf transfer/mint/approvePräzision der Isolierten Guthabensperrung
Erlaubt das Einfrieren strittiger Beträge, ohne das gesamte Wallet des Nutzers zu sperren, sodass überschüssige Beträge liquide bleiben.
Arithmetische Trennung in availableBalanceOf()VERANTWORTUNGSVOLLE OFFENLEGUNG
Eine Schwachstelle Melden
AirJIT unterhält ein proaktives Programm zur Offenlegung von Sicherheitslücken. Wenn Sie eine Schwachstelle in J1USD, der Implementierung oder Infrastruktur entdecken, melden Sie diese verantwortungsbewusst.
Verschlüsseln Sie sensible Berichte nach Möglichkeit mit PGP. Wir bestätigen alle legitimen Einreichungen innerhalb von 24 Stunden.