Somente para fins educacionais; não é recomendação de investimento nem de segurança. Um oráculo de preços mal projetado pode causar liquidações indevidas, empréstimos subcolateralizados e perdas do protocolo.
Resposta direta
Não existe uma janela TWAP universalmente segura. Escolha a janela mais curta que ainda torne uma manipulação lucrativa impraticável para o pool e o protocolo específicos e confirme que o atraso continua aceitável durante um movimento real de preço. Uma janela maior normalmente exige que o atacante influencie o mercado por mais tempo, mas também mantém preços antigos na média. Ela não compensa liquidez escassa ou fora da trajetória relevante, valor em risco excessivo ou integração defeituosa.
A seleção é um exercício de orçamento de risco, não uma escolha entre 5 minutos, 30 minutos ou 1 hora. Documente pool e método de média, erro e atraso máximos, valor extraível, custo do ataque, histórico disponível e comportamento de contingência. Refaça a análise quando mudarem liquidez, incentivos, produção de blocos, limites de garantia ou estrutura do mercado.
Como funciona
Um oráculo acumulador registra o preço ao longo do tempo. Para um acumulador aritmético, a média entre t1 e t2 é:
TWAP(t1,t2) = (cumulativePrice(t2) - cumulativePrice(t1)) / (t2 - t1)
O Uniswap v2 acumula o preço no início de cada bloco e o consumidor salva dois valores. O Uniswap v3 salva observações de ticks cumulativos; converter o tick médio produz uma média geométrica ponderada pelo tempo. Método, direção da cotação, capacidade, arredondamento e atualização integram a especificação. Nem todo TWAP é uma média aritmética de amostras spot.
Use este processo:
- Defina a função de perda. Registre o efeito sobre empréstimo, liquidação, emissão, resgate ou liquidação contratual e estabeleça erro e atraso máximos nas altas e nas quedas.
- Meça a liquidez executável. Modele reservas, taxas e liquidez ativa por toda a trajetória de preço do ataque. TVL e volume recente não provam resistência por si sós.
- Limite o ganho do atacante. Inclua limites de garantia e empréstimo, bônus de liquidação, posições abertas, composição com outros protocolos e lucro antes da pausa. Compare o custo com todo o valor extraível.
- Modele ataques viáveis. Teste distorções de um e vários blocos, capital flash, controle do proponente ou da ordem, arbitragem, back-running, congestionamento e desmontagem. Pesquisas mostram que a hipótese de custo linear com a janela pode falhar contra atacantes mais fortes.
- Varra as janelas candidatas. Simule saltos históricos e trajetórias adversárias para cada duração. Descarte as que permitam manipulação lucrativa ou preços inaceitavelmente antigos.
- Adicione controles independentes. Use limites de exposição, verificações contra uma referência independente, limites de obsolescência, garantias conservadoras e regras testadas de pausa ou contingência. Eles limitam perdas, mas não tornam segura uma fonte insegura.
O resultado é específico do pool, faixa de taxa, blockchain, implementação, par e estado do protocolo. Copiar 30 minutos não copia a liquidez nem os limites de perda de outro protocolo.
Exemplo
Suponha um TWAP aritmético simplificado e um preço que muda instantaneamente de 100 para 70 e permanece em 70. Após 15 minutos, a janela móvel de 30 minutos contém 15 minutos em cada preço:
(15 x 100 + 15 x 70) / 30 = 85
Após 30 minutos, as observações antigas de 100 saem e o TWAP chega a 70. Uma janela de 5 minutos chega a 70 após 5 minutos, mas o atacante também precisa sustentar a distorção por menos tempo. Em empréstimos, avaliar garantias perto de 85 quando o mercado executável está perto de 70 pode atrasar a liquidação e gerar dívida incobrável; outro uso pode aceitar um valor mais lento.
O exemplo isola apenas o atraso, não estima o custo de manipulação, e 85 não se aplica a uma média geométrica. Uma revisão real deve reproduzir a fórmula exata com observações, liquidez ativa, taxas, sequência de blocos e posições.
Riscos e controles
- Janela curta demais: poucos blocos distorcidos podem tornar o ataque lucrativo. Fortaleça fonte ou mercado, reduza a exposição ou diversifique a referência.
- Janela longa demais: o oráculo atrasa um salto real, posterga liquidações na queda ou subestima garantias na alta. Meça o pior atraso e use parâmetros conservadores.
- Liquidez mal medida: o TVL pode estar inativo, concentrado, unilateral ou fora da trajetória. Use profundidade executável nos ticks e preços relevantes.
- Falha de observação: pouco histórico, dados antigos, capacidade não inicializada, horário, pool ou direção errados invalidam o cálculo. Reverta ou entre em estado seguro documentado; não substitua silenciosamente.
- Modelo incompleto do atacante: liquidez flash, proponente de vários blocos, ordenação e lucros entre protocolos reduzem o custo líquido. Faça testes de estresse; “taxa vezes minutos” não é prova.
- Mudança de governança e mercado: migração, taxas, novas garantias, limites maiores, upgrades ou troca de blockchain podem invalidar o teste. Monitore entradas e defina revisão obrigatória.
- Falha da contingência: uma fonte independente pode ter cobertura, decimais, atraso e falhas diferentes. Defina quando pausar, rejeitar, limitar ou trocar e teste o caminho on-chain.
Antes da implantação, publique unidade, direção, método, janela, histórico mínimo, critérios do pool, limites e comportamento de falha. Depois, monitore o desvio da referência e os dados econômicos do modelo de ataque.
Erros comuns
- “Uma janela maior é sempre mais segura.” Pode alongar o ataque, mas aumenta o atraso e não corrige liquidez fraca nem um modelo incompleto.
- “Um TWAP de 30 minutos é uma garantia do setor.” A duração é apenas um parâmetro entre profundidade, liquidez ativa, taxas, blocos, fórmula e valor em risco.
- “Flash loans não afetam o TWAP.” Eles removem restrições de capital na transação. O resultado depende da amostragem, da parte influenciável e da lógica ao redor.
- “TVL alto significa custo de manipulação alto.” Só a liquidez executável na trajetória relevante resiste diretamente à operação modelada.
- “TWAP é o preço atual do mercado.” É a média de estados on-chain históricos de um mercado específico, portanto tem atraso intencional e pode não representar o mercado amplo.
Tópicos relacionados
Fontes
- Uniswap v2 Core - Uniswap (acesso: 2026-08-21)
- Uniswap v3 Core - Uniswap (acesso: 2026-08-21)
- Uniswap v3 TWAP Oracles in Proof of Stake - Uniswap Labs (acesso: 2026-08-21)
- TWAP Oracle Attacks: Easier Done than Said? - IEEE (acesso: 2026-08-21)