Docs
ProtocolBlockchain InfrastructureSmart Contracts

Segurança

Modelo de segurança — arquitetura de smart contracts, segurança de governança e mecanismos anti-manipulação.

Visão geral

A segurança no Ecossistema Carrot opera em dois níveis: segurança de smart contracts protegendo ativos on-chain, e segurança de governança protegendo a rede contra manipulação e ações hostis.

Segurança de smart contracts

Os smart contracts do Ecossistema Carrot implementam múltiplas camadas de segurança:

Controle de Acesso Baseado em Funções (RBAC)

Cada função de contrato é restrita a funções autorizadas específicas. Nenhuma conta individual pode realizar todas as operações. O sistema define cinco funções padrão:

  • DEFAULT_ADMIN_ROLE — Propriedade do contrato e gestão de funções. Esta função pode conceder ou revogar qualquer outra função.
  • UPGRADER_ROLE — Pode atualizar implementações de contratos via proxy UUPS. Separada da função admin para limitar o raio de impacto.
  • OPERATOR_ROLE — Operações cotidianas como minting de MassIDs, emissão de certificados e execução de revogações.
  • PAUSER_ROLE — Mecanismo de pausa padrão para interrupções operacionais ordenadas.
  • EMERGENCY_PAUSER_ROLE — Disjuntor para falhas críticas. Pausas emergenciais expiram automaticamente após 48 horas para evitar bloqueios indefinidos, garantindo que mesmo uma conta emergencial comprometida não possa congelar permanentemente o sistema.

As funções de admin, operador, atualizador e pauser são mantidas por carteiras multi-assinatura — o que significa que múltiplas partes autorizadas devem aprovar qualquer ação antes que ela seja executada. O pauser emergencial é a exceção: é uma conta individual de propriedade externa para permitir resposta rápida quando cada segundo importa.

Pausabilidade

Os contratos podem ser pausados em modo padrão ou emergencial, interrompendo operações se uma vulnerabilidade ou ataque for detectado. Pausas padrão requerem o PAUSER_ROLE e persistem até serem explicitamente despausadas. Pausas emergenciais, acionadas pelo EMERGENCY_PAUSER_ROLE, expiram automaticamente após 48 horas — proporcionando uma rede de segurança que equilibra resposta rápida a incidentes com proteção contra negação de serviço permanente.

Atualizabilidade UUPS

Os contratos utilizam o Universal Upgradeable Proxy Standard, permitindo correções de bugs e melhorias mantendo os mesmos endereços de contrato e estado. O ContractRegistry fornece descoberta centralizada de serviços para que as atualizações se propaguem de forma limpa pelo sistema.

Assinaturas de dados tipados EIP-712

Operações críticas como compras e aposentadorias de créditos requerem dados estruturados assinados criptograficamente antes de serem executadas on-chain. Isso significa que cada ordem deve ser assinada digitalmente por uma parte autorizada — o smart contract verifica essa assinatura antes do processamento, rejeitando qualquer transação que não tenha sido devidamente autorizada. Isso impede que partes não autorizadas executem operações e garante que ordens assinadas não possam ser reproduzidas (usadas mais de uma vez).

Especificamente:

  • CreditPurchaseManager e CreditRetirementManager usam assinaturas de dados tipados EIP-712 para autorizar ordens de compra e aposentadoria.
  • RewardsVault usa EIP-712 para autorização de retiradas, garantindo que as distribuições de recompensas sejam explicitamente aprovadas.

Custódia soulbound

Todos os NFTs (MassIDs, certificados, recibos) são soulbound e mantidos pelo smart contract Vault. Não podem ser transferidos, negociados ou roubados. Este design é intencional pelas seguintes razões:

  • Integridade da proveniência — A cadeia desde a coleta de resíduos, passando pela certificação até a emissão de créditos, permanece permanente e verificável on-chain.
  • Sem negociação especulativa — Os registros de auditoria ambiental devem refletir trabalho real de reciclagem, não especulação de mercado.
  • Modelo de segurança simplificado — Eliminar transferências remove uma classe inteira de vetores de ataque relacionados a interações de marketplace, exploits de aprovação e movimentação não autorizada de tokens.

Proteção contra reentrância

Um ataque de reentrância ocorre quando um contrato malicioso interrompe uma operação no meio da execução — por exemplo, acionando uma retirada repetidamente antes que o saldo seja atualizado, drenando fundos que não deveriam mais estar disponíveis. Todas as operações que movimentam valor no Ecossistema Carrot são protegidas contra esta classe de ataque usando o ReentrancyGuard da OpenZeppelin, que garante que cada operação seja concluída completamente antes que qualquer nova chamada possa começar.

Segurança de governança

A Carrot Foundation implementa mecanismos sistemáticos de recompensa e punição que escalam o custo do comportamento malicioso mais rápido do que qualquer receita que ele poderia gerar:

  • Rastreamento de reputação de participantes — Rastreia o comportamento dos participantes em toda a rede, identificando padrões que indicam maus atores. Operações sensíveis podem ser restringidas por limites de reputação, garantindo que apenas participantes confiáveis as acessem.
  • Verificação de carteira — Etapas adicionais de verificação podem ser implementadas conforme necessário para aumentar a segurança, o que pode trocar facilidade de onboarding por proteções mais fortes.
  • Moderação — A equipe de supervisão da Foundation pode sinalizar comportamentos que violam as diretrizes da comunidade e limitar o acesso para reduzir riscos. Moderadores também trabalham para detectar e penalizar tentativas de manipulação automatizada (anti-botting).
  • Medidas punitivas — Quando violações são confirmadas, penalidades são emitidas por meio de decisões de governança e podem incluir suspensão da participação no minting de créditos, congelamento de carteira ou restrições de conta.

Filosofia de design

A estratégia de segurança segue um princípio: fazer com que o custo de atacar a rede sempre exceda a recompensa potencial. À medida que o ecossistema cresce e mais participantes constroem reputação genuína, a barreira para manipulação coordenada escala proporcionalmente — protegendo a integridade da rede conforme ela se torna mais valiosa.

Saiba mais sobre smart contracts · Saiba mais sobre governança

On this page