Fluxos On-Chain
Descrições passo a passo dos principais fluxos de transação on-chain — minting, compra de créditos, recompensas, aposentadoria e revogação.
Visão geral
Os smart contracts do Ecossistema Carrot executam cinco fluxos on-chain principais. Cada fluxo é projetado para ser atômico — ou todos os passos são concluídos com sucesso ou nenhum deles é, prevenindo alterações parciais de estado.
Todas as transações são registradas on-chain e visíveis por meio de qualquer explorador de blockchain (por exemplo, PolygonScan). As principais operações também são exibidas no Carrot Explorer com contexto ambiental e dados de rastreabilidade.
Minting
Quando dados verificados estão prontos para minting, o InventoryManager cria os ativos on-chain fundamentais em uma operação coordenada.
Passo 1 — Minting de MassID
NFTs MassID são mintados para o Vault, cada um com uma URI de metadados no IPFS contendo dados de proveniência: tipo de material, peso, origem geográfica e a cadeia de custódia completa, desde a geração do resíduo até a coleta e triagem.
Passo 2 — Minting de certificado e crédito
NFTs de certificado são mintados e vinculados aos MassIDs correspondentes por meio do CertificateRegistry. Tokens de crédito fungíveis (ERC-20) são mintados em quantidades equivalentes e depositados no Vault.
Após a minting, todos os ativos ficam mantidos pelo Vault e prontos para compra de créditos. O CertificateRegistry registra qual MassID respalda cada certificado, estabelecendo a cadeia de rastreabilidade que persiste por toda a vida útil desses ativos.
Compra de créditos
Uma transação atômica executada pelo CreditPurchaseManager que realiza toda a compra em uma única operação. Se qualquer passo falhar, toda a transação é revertida.
Passo 1 — Validação da assinatura de compra
A ordem de compra é verificada usando uma assinatura de dados tipados EIP-712 de um signatário autorizado. Essa validação criptográfica garante que apenas ordens de compra legítimas e pré-aprovadas sejam executadas on-chain.
Passo 2 — Pagamento
USDC é transferido do pagador para o RewardsVault, onde fica disponível para distribuição de recompensas aos participantes.
Passo 3 — Atualização do certificado
O valor comprado é registrado em cada certificado de respaldo, reduzindo o inventário disponível. Isso garante que os mesmos créditos não possam ser vendidos duas vezes.
Passo 4 — Transferência de créditos
Tokens de crédito (por exemplo, C-BIOW, C-CARB.CH4) são transferidos do Vault para o endereço da carteira do comprador. Neste ponto, o comprador detém tokens de crédito fungíveis que pode manter ou aposentar.
Passo 5 — Minting do recibo
Um NFT CreditPurchaseReceipt é mintado para o Vault como prova permanente e imutável da transação. O recibo registra os certificados envolvidos, o comprador, o valor e os detalhes do pagamento.
Passo 6 — Registro de recompensas
Uma raiz Merkle representando a distribuição completa de recompensas é registrada no RewardsVault. Isso permite que os participantes reivindiquem sua parcela do pagamento sem revelar detalhes de identidade on-chain.
Aposentadoria integrada
Se o comprador optar pela aposentadoria integrada, os créditos são queimados (em vez de transferidos ao comprador) na mesma transação, e um CreditRetirementReceipt também é mintado. Isso permite que compradores adquiram e aposentem créditos em um único passo — útil para quem pretende reivindicar imediatamente a compensação ambiental.
Distribuição de recompensas
A distribuição de recompensas utiliza um mecanismo de preservação de privacidade que mantém as identidades individuais dos participantes off-chain, enquanto preserva a verificabilidade on-chain.
Registro
Durante cada compra de créditos, uma raiz Merkle é registrada on-chain no RewardsVault. Essa raiz representa a distribuição completa de recompensas para aquela transação. As identidades dos participantes são anonimizadas — apenas compromissos com hash são armazenados publicamente on-chain. Os dados de distribuição subjacentes são mantidos off-chain pelo backend.
Reivindicação
Os participantes podem reivindicar suas recompensas fornecendo provas Merkle que verificam seu direito contra a raiz on-chain. O RewardsVault valida a prova e libera o USDC alocado ao requerente. Cada alocação só pode ser reivindicada uma vez — o contrato rastreia o status de reivindicação para prevenir reivindicações duplicadas.
Auditabilidade
Embora as identidades individuais dos participantes não sejam visíveis on-chain, auditores autorizados podem acessar os dados de distribuição subjacentes para identificar participantes para fins de conformidade. As raízes Merkle on-chain servem como compromissos criptográficos de que os dados off-chain não foram adulterados.
Aposentadoria de crédito (independente)
Para detentores de créditos que desejam aposentar créditos que já possuem, o CreditRetirementManager executa um fluxo de aposentadoria independente.
Passo 1 — Validação da assinatura de aposentadoria
A ordem de aposentadoria é verificada usando uma assinatura de dados tipados EIP-712, garantindo que apenas solicitações de aposentadoria autorizadas sejam processadas.
Passo 2 — Queima de créditos
Tokens de crédito são queimados (destruídos permanentemente) do saldo do detentor. Tokens queimados nunca podem ser recuperados ou reemitidos — a compensação ambiental é permanentemente reivindicada.
Passo 3 — Rastreamento de certificado
Os valores aposentados são registrados nos certificados de respaldo, atualizando seus totais de aposentadoria. Isso mantém a contabilidade precisa em toda a camada de certificados.
Passo 4 — Minting do recibo
Um NFT CreditRetirementReceipt é mintado para o Vault como prova permanente da aposentadoria. Este recibo é a evidência definitiva on-chain de que os créditos foram aposentados.
Créditos aposentados são registrados na blockchain e visíveis por meio do Carrot Explorer, fornecendo evidência transparente e auditável de que a compensação ambiental foi reivindicada e não pode ser contada duas vezes.
Revogação
Ativos podem ser revogados quando os dados subjacentes são considerados incorretos ou fraudulentos. A revogação é um mecanismo de proteção que preserva a credibilidade das reivindicações ambientais do Ecossistema Carrot.
Revogação de MassID
Revogar um MassID aciona uma revogação em cascata:
- Todos os certificados vinculados ao MassID revogado são automaticamente revogados.
- Quaisquer créditos não vendidos respaldados por esses certificados são queimados.
- Proteção: A revogação é bloqueada se quaisquer créditos dos certificados vinculados já tiverem sido vendidos. Isso impede a invalidação retroativa de créditos que compradores já adquiriram de boa-fé.
Revogação de certificado
Certificados individuais podem ser revogados independentemente sem afetar o MassID correspondente ou certificados relacionados. Isso permite correções direcionadas quando apenas reivindicações ambientais específicas precisam ser invalidadas.
- Assim como na revogação de MassID, a revogação de certificado é bloqueada se créditos daquele certificado já tiverem sido vendidos.
Preservação da trilha de auditoria
A revogação preserva a trilha de auditoria completa. Os metadados IPFS originais dos ativos revogados permanecem acessíveis, e o motivo da revogação é registrado on-chain. Isso garante que mesmo ativos revogados possam ser examinados por auditores e reguladores — nada é ocultado ou excluído, apenas marcado como inválido.
Próximos passos
- Categorias de Contratos — Detalhamento de cada contrato envolvido nesses fluxos.
- Segurança — Como controle de acesso, pausabilidade e governança protegem essas operações.
- Comprando Créditos — A perspectiva do comprador sobre compras de créditos.
- Aposentando Créditos — Como e por que créditos são permanentemente aposentados.