Avaliação Técnica e de Segurança do Smart Contract J1USD
Relatório abrangente de análise arquitetural e verificação do sistema de tokens J1USD na BNB Smart Chain. Revisado para segurança de atualização, controles de acesso imutáveis, invariantes de oferta e segregação de liquidez entre locais.
Zero Achados Críticos
0 Critical
0 vulnerabilidades altas / 0 críticas identificadas nos contratos principais do token.
Teto de Oferta Rígido
1,000,000,000
Limite imutável de 1.000.000.000 J1USD aplicado no nível do bytecode.
Separação de Funções
RBAC Partitioned
Endereços distintos para Administrador, Atualizador, Emissor, Queimador e Pausador.
Gaps de Armazenamento UUPS
__gap[42]
Espaço reservado de 42 slots (__gap[42]) protegendo contra colisões de memória em atualizações futuras.
IMPLANTAÇÕES ON-CHAIN VERIFICADAS
Endereços Canônicos de Contratos e Verificação
O J1USD é executado por meio de um padrão modular de proxy UUPS OpenZeppelin ERC-1967. Abaixo estão os contratos de código-fonte verificados implantados na mainnet da BNB Smart Chain.
J1USDProxy.sol
Endereço canônico do token BEP-20 para usuários. Todos os saldos, permissões e armazenamento residem permanentemente aqui. Compatível com Grey Wallet, MetaMask, Trust Wallet e todas as DEXs da BNB Chain.
J1USDTokenUpgradeable.sol
Implementação lógica contendo regras de negócio compiladas, verificações de conformidade, limites de teto de emissão e modificadores de função. A inicialização direta é bloqueada na implantação via proteção do construtor.
0xb3B34F032923DeA2ee8476Df26894E8fA9Eb7F54). The implementation address is stateless bytecode; funds directly transferred to the implementation contract cannot be retrieved by users.REVISÃO DE CONFORMIDADE E POLÍTICAS
Mecanismos de Lista Negra, Congelamento de Contas e Sanções
Avaliação dos mecanismos de conformidade do token. O J1USD é um token BEP-20 aberto que opera com um modelo ativo de lista negra e congelamento — e não lista branca —, garantindo máxima composabilidade sem permissão enquanto viabiliza o cumprimento de sanções legais.
Sem Exigência de Lista Branca (Transferências Livres)
O J1USD NÃO possui lista branca de transferências. Qualquer carteira Web3 padrão na BNB Smart Chain pode receber, manter, enviar e negociar J1USD livremente em DEXs sem aprovação de KYC ou registro prévio.
Funcionalidade Explícita de Lista Negra (Conformidade Adversa)
Uma função dedicada BLACKLISTER_ROLE pode restringir endereços maliciosos associados a ataques, sanções ou roubos verificados, bloqueando débitos e créditos.
Congelamento Preciso Parcial e Total de Contas
O contrato suporta tanto freezeAccount() quanto freezeBalance(amount). Durante disputas comerciais, apenas o valor contestado é bloqueado, preservando a liquidez dos fundos restantes.
Proteção Certificada de Queima Legal (Wipe)
A função WIPER_ROLE só pode destruir saldos congelados em cumprimento a ordens judiciais ou regulatórias vinculantes. A destruição arbitrária de ativos de carteiras é estruturalmente impossível.
Verificação de Hooks no Bytecode: _update(), _approve() e transferFrom()
O bytecode executa validações rigorosas de débito e crédito dentro de _update(from, to, amount):
O remetente NÃO deve estar na lista negra (!isBlacklisted), a conta NÃO deve estar totalmente congelada (!isAccountFrozen) e o valor solicitado não pode exceder availableBalanceOf.
O destinatário NÃO deve estar na lista negra nem congelado. Evita que agentes ilícitos lavem fundos para carteiras de custódia restrita.
Tanto o proprietário do token quanto o procurador autorizado devem estar livres de restrições. Entidades restritas não podem delegar cotas nem executar transferências de terceiros.
ARQUITETURA DE SMART CONTRACTS
Mecanismos de Segurança e Análise de Invariantes
Avaliação aprofundada dos componentes centrais do J1USD: segurança de atualização de proxy, desduplicação criptográfica, isolamento de preocupações e proteções de emergência.
Segurança de Atualização UUPS
Construído no padrão UUPS da OpenZeppelin. As variáveis de estado e os saldos residem estritamente nos slots do proxy. O construtor da implementação invoca _disableInitializers() para garantir que a lógica não possa ser reivindicada de forma independente.
Invariante de Teto Rígido de Oferta
Diferente de stablecoins sem limite de emissão, o J1USD impõe um supplyCeiling a nível de contrato. Cada mint() verifica se totalSupply() + amount <= supplyCeiling. O administrador é proibido de reduzir o teto abaixo do fornecimento em circulação.
Desduplicação Idempotente de Eventos
Operações de emissão e queima exigem um hash de referência bytes32 único (issuanceReference / burnReference). Qualquer tentativa de reutilizar uma referência reverte imediatamente com ReferenceAlreadyUsed.
Transições Administrativas com Trava Temporal
Utiliza AccessControlDefaultAdminRulesUpgradeable. Transferências de função de administrador não ocorrem em um único bloco; exigem um atraso obrigatório (defaultAdminDelay), protegendo contra apropriação indevida de chaves.
Congelamento Parcial de Alta Precisão
Em vez de bloquear carteiras inteiras, o J1USD introduz freezeBalance. Valores contestados podem ser congelados de forma proporcional enquanto availableBalanceOf permite transações normais com o saldo livre.
Endereços de Sistema Protegidos
Endereços fundamentais do protocolo (pools da PancakeSwap, tesouraria e contratos operacionais) são registrados como protectedSystemAddress, tornando-os imunes a congelamento ou lista negra.
MATRIZ DE AUTORIZAÇÃO
Controle de Acesso Baseado em Funções (RBAC)
Verificação de privilégios entre atores de administração, emissão, queima, conformidade e emergência. Todas as funções privilegiadas exigem assinaturas criptográficas explícitas correspondentes às funções designadas.
| Identificador de Função | Função(ões) Privilegiada(s) | Controles de Segurança e Invariantes |
|---|---|---|
| DEFAULT_ADMIN_ROLE0x00 (Admin Root) | Configura atribuições de funções, atualiza limites de teto de oferta e registra endereços de sistema protegidos. | Regido por OpenZeppelin AccessControlDefaultAdminRules com atraso obrigatório de trava temporal. |
| UPGRADER_ROLEkeccak256('UPGRADER_ROLE') | Autoriza atualizações de lógica de implementação UUPS em _authorizeUpgrade(). | Restrito à governança multisig do protocolo; incapaz de alterar estado sem implantação de contrato válida. |
| MINTER_ROLEkeccak256('MINTER_ROLE') | Emite novos tokens J1USD contra garantias verificadas ou necessidades de liquidação do protocolo. | Rigorosamente limitado pelo supplyCeiling imutável e pela desduplicação de issuanceReference único. |
| BURNER_ROLEkeccak256('BURNER_ROLE') | Reduz a oferta de tokens durante resgates ou quitação de passivos do protocolo. | Exige burnReference único. Exceção estrita permite queima a partir de contas restritas para manter a solvência. |
| PAUSER_ROLEkeccak256('PAUSER_ROLE') | Ativa ou desativa o disjuntor de emergência que interrompe transferências padrão. | Capacidade defensiva para eventos de crise extrema ou anomalias em pontes de transferência. |
| BLACKLISTER_ROLEkeccak256('BLACKLISTER_ROLE') | Adiciona ou remove endereços da lista negra global de débito/crédito. | Não pode alvejar endereços protegidos em protectedSystemAddress. Exige hash de rastreamento de conformidade. |
| FREEZER_ROLEkeccak256('FREEZER_ROLE') | Congela contas inteiras ou saldos parciais (freezeBalance, freezeAllCurrentBalance). | Permite bloquear quantias contestadas mantendo os fundos excedentes líquidos. Endereços do sistema imunes. |
| WIPER_ROLEkeccak256('WIPER_ROLE') | Destrói saldos congelados em cumprimento a ordens judiciais ou regulatórias certificadas. | Aplicável apenas a contas já congeladas ou na lista negra; não pode exceder o saldo congelado. |
| RESCUE_ROLEkeccak256('RESCUE_ROLE') | Recupera tokens BEP-20 de terceiros enviados por engano ao contrato. | Terminantemente proibido de interagir com os saldos do próprio token J1USD (RescueProhibitedToken). |
INFRAESTRUTURA DE LIQUIDEZ E AVALIAÇÃO DE POOLS
Liquidez DEX On-Chain vs. Pools Secundários Centralizados
O J1USD equilibra mercados AMM descentralizados sem custódia na BNB Smart Chain com livros de ofertas centralizados off-chain. Veja o detalhamento técnico de endereços de pools, links de negociação e limites de segurança.
Pools de Formador de Mercado Automatizado (AMM)
Pools de liquidez inteligentes sem custódia operando nativamente na BNB Smart Chain via PancakeSwap. Risco zero de custódia por contraparte; negociações executadas peer-to-contract por meio de bytecode imutável.
Pool de liquidez concentrada ancorando o J1USD firmemente a 1,00 USD Coin. Endereço do sistema designado protegido contra congelamentos.
Ponte AMM descentralizada interligando o token de utilidade da AirJIT (JIT) e o ativo de liquidação (J1USD).
Pools de Livro de Ofertas Interno
A AirJIT cota mercados secundários entre os principais pares de colaterais off-chain sem endereços de contrato dedicados. A liquidação é feita por motores de correspondência centralizados de alto desempenho.
Servidores off-chain não possuem chaves privadas autorizadas a emitir ou queimar tokens J1USD na BNB Smart Chain.
Os saldos internos de contas off-chain são estritamente delimitados por depósitos verificados no contrato de proxy on-chain.
Pares de Negociação Secundários Off-Chain (Livro de Ofertas):
ACHADOS DA AVALIAÇÃO E MODELAGEM DE AMEAÇAS
Análise de Vetores de Ataque e Defesas Formais
Revisão abrangente de potenciais superfícies de ataque econômicas, matemáticas e criptográficas examinadas durante a auditoria técnica.
Ataques de Reentrância
O token herda rigorosamente as atualizações de estado ERC-20 da OpenZeppelin (_update) sem realizar chamadas externas não confiáveis antes de liquidar saldos. Plena conformidade com Checks-Effects-Interactions.
Manipulação de Oráculos e Preços Spot
O livro-razão de tokens J1USD não consulta oráculos externos durante transferências ou aprovações. A aritmética é 100% interna, eliminando ataques de manipulação de preços via empréstimos rápidos (flash loans).
Sequestro de Implementação
O construtor da implementação executa _disableInitializers() na implantação. O contrato lógico subjacente não pode ser inicializado ou possuído de forma independente.
Tomada Hostil de Governança
A reatribuição de funções de administração impõe um atraso temporal inalterável (defaultAdminDelay). O comprometimento de uma única chave não permite assumir o controle administrativo imediato.
INVARIANTES DE SEGURANÇA
Invariantes de Segurança Formalmente Verificados
Resumo das validações em nível de bytecode que comprovam que a integridade do sistema é preservada em todos os casos extremos.
Exigibilidade do Teto de Emissão
Operações de emissão revertem com SupplyCeilingExceeded se totalSupply() + amount exceder o teto. O administrador é impedido de reduzir o teto abaixo da oferta em circulação.
Verificação de estado supplyCeiling em mint()Desduplicação contra Repetição em Emissão e Queima
Cada transação exige um identificador de referência bytes32 idempotente. Chamadas duplicadas com a mesma referência revertem com ReferenceAlreadyUsed.
Mapeamentos _usedIssuanceReferences e _usedBurnReferencesPrevenção contra Sequestro de Implementação
O contrato de implementação bloqueia inicializadores em seu construtor. Nenhum atacante pode inicializar ou assumir a titularidade do contrato de lógica de forma independente.
Chamada a _disableInitializers() no construtorProteção contra Colisão de Layout de Memória
O armazenamento do proxy segue os slots ERC-1967 padrão. Um gap reservado de 42 palavras garante que futuras atualizações não sobrescrevam variáveis existentes.
Slots padrão ERC-1967 + gap uint256[42]Atenuação de Tomada Hostil de Administração
A transferência de DEFAULT_ADMIN_ROLE não é instantânea. O processo em duas etapas com atraso temporal previne tomadas repentinas de controle por perda de chaves.
AccessControlDefaultAdminRules com defaultAdminDelayImunidade de Infraestrutura Crítica
Endereços de sistema registrados (pools DEX, tesouraria, contratos operacionais) não podem ser congelados ou postos em lista negra, eliminando riscos de negação de serviço.
Verificação _requireNotProtected() em funções de conformidadeBloqueio de Auto-Drenagem no Resgate de Tokens
A função rescueERC20 permite recuperar tokens de terceiros enviados por engano, mas bloqueia expressamente chamadas que visem o próprio token J1USD.
Verificação RescueProhibitedToken em rescueERC20()Disjuntor Global de Emergência
A função autorizada PAUSER_ROLE pode interromper imediatamente transferências e aprovações em caso de crise, mantendo as operações de execução legal de ativos.
Modificador whenNotPaused em transfer/mint/approvePrecisão no Congelamento Isolado de Saldo
Permite congelar quantias em disputa sem reter a carteira inteira do usuário, mantendo os fundos legítimos restantes plenamente líquidos.
Isolamento aritmético em availableBalanceOf()DIVULGAÇÃO RESPONSÁVEL
Relatar uma Vulnerabilidade
A AirJIT mantém um programa proativo de divulgação de vulnerabilidades. Se você descobrir uma falha de segurança no proxy J1USD, na implementação ou na infraestrutura de smart contracts, relate-a com responsabilidade.
Criptografe relatórios confidenciais com PGP sempre que possível. Confirmamos o recebimento de envios legítimos em até 24 horas.