Sistema de Disputas
Visão Geral
O sistema de disputas permite resolução descentralizada de conflitos entre usuários e merchants, com Circle Admins atuando como árbitros de primeira instância.
Fluxo de Disputa
┌─────────────────────────────────────────────────┐
│ ABERTURA │
│ Usuário abre disputa com evidências │
│ → Transação fica travada │
└─────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ RESPOSTA │
│ Merchant tem 48h para responder │
│ → Pode anexar contra-evidências │
└─────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ ANÁLISE │
│ Circle Admin tem 7 dias para decidir │
│ → Analisa evidências de ambos os lados │
└─────────────────────┬───────────────────────────┘
│
┌───────┴───────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ FAVOR USUÁRIO │ │ FAVOR MERCHANT │
│ → Reembolso │ │ → Libera fundos │
│ → Slash merch. │ │ → Caso fechado │
└────────┬────────┘ └────────┬────────┘
│ │
└──────────┬──────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ CONTESTAÇÃO (opcional) │
│ Parte perdedora pode contestar em 48h │
│ → Protocolo revisa a decisão │
└─────────────────────────────────────────────────┘
Tipos de Disputa
1. Não recebimento
- Alegação: Usuário pagou mas não recebeu cripto
- Evidência esperada: Comprovante de pagamento
- Resolução típica: Reembolso do fundo de proteção
2. Valor incorreto
- Alegação: Recebeu menos do que deveria
- Evidência esperada: Print da transação + comprovante
- Resolução típica: Diferença coberta pelo fundo
3. Demora excessiva
- Alegação: Merchant não completou em tempo hábil
- Evidência esperada: Timeline da transação
- Resolução típica: Cancelamento + possível slashing
4. Fraude
- Alegação: Comportamento malicioso deliberado
- Evidência esperada: Documentação completa
- Resolução típica: Ban + slashing total + reembolso
Prazos
| Etapa | Prazo | Consequência se não cumprir |
|---|---|---|
| Resposta do merchant | 48h | Decisão automática contra |
| Decisão do admin | 7 dias | Slashing do admin |
| Contestação | 48h | Decisão torna-se final |
| Revisão do protocolo | 14 dias | Decisão anterior mantida |
Penalidades
Para Merchants
| Resultado | Penalidade |
|---|---|
| Perde 1ª disputa | Valor da transação (do stake) |
| Perde 3+ disputas | Stake retido para análise |
| Fraude comprovada | Ban permanente + 100% stake |
Para Admins do Circle
| Resultado | Penalidade |
|---|---|
| Decisão revertida (1x) | Aviso |
| Decisão revertida (2x+) | Slashing parcial |
| Ignora disputa | 0.5% stake por ocorrência |
| Conluio comprovado | Ban + 100% stake |
Evidências
Tipos aceitos
- Screenshots com metadata
- Comprovantes bancários (PDF)
- Histórico de chat (do app)
- Transações on-chain (hash)
- Vídeos (casos especiais)
Validação
- Metadata verificada quando possível
- Cruzamento com dados on-chain
- Histórico de chat é oficial (gravado)
Implementação Técnica
Estados da disputa
enum DisputeState {
Open, // Aguardando resposta
UnderReview, // Admin analisando
Resolved, // Decisão tomada
Contested, // Em contestação
Final // Caso encerrado
}
Estrutura de dados
struct Dispute {
uint256 transactionId;
address claimant; // Quem abriu
address respondent; // Contra quem
DisputeState state;
uint256 openedAt;
uint256 resolvedAt;
bytes32 evidenceHash; // IPFS hash
address resolver; // Admin que decidiu
bool claimantWon;
}
Eventos
event DisputeOpened(uint256 indexed disputeId, uint256 transactionId);
event DisputeResolved(uint256 indexed disputeId, bool claimantWon);
event DisputeContested(uint256 indexed disputeId);
event DisputeFinalized(uint256 indexed disputeId);
Métricas de Admin
O protocolo rastreia performance dos admins:
| Métrica | Impacto |
|---|---|
| % disputas resolvidas em menos de 48h | Ranking |
| % decisões contestadas | Score negativo |
| % decisões revertidas | Slashing potencial |
| Tempo médio de resolução | Ranking |
Admins com boas métricas:
- Aparecem melhor no ranking
- Atraem mais merchants
- Podem receber bônus do protocolo