Ir para o conteúdo

Oráculo TWAP

Um oráculo TWAP deriva uma referência ponderada no tempo de observações acumuladas específicas do protocolo; preços aritméticos da v2 e ticks médios da v3 têm matemática e limites distintos.

Atualizado

Somente para fins educacionais; não constitui recomendação nem aconselhamento de investimento. Investir pode causar perdas.

Resposta direta

Um oráculo de preço médio ponderado no tempo deriva uma referência de observações acumuladas em um intervalo definido. Não há fórmula universal. A Uniswap v2 acumula o preço marginal linear do pool em cada direção, portanto diferenças entre extremos produzem TWAPs aritméticos. A v3 acumula tick, coordenada logarítmica do preço, e o tick médio aritmético corresponde a um preço relativo médio geométrico.

O resultado exige blockchain, pool, implementação, taxa, ordem dos tokens, direção base/cotação, decimais, extremos, tempo, histórico preenchido e arredondamento definidos. Uma leitura bem-sucedida não prova valor justo nem profundidade executável. Janela maior dilui distorção breve, mas aumenta atraso e não elimina manipulação sustentada, lacunas de liquidez, controle do proponente ou sequenciador, reorgs ou valor extraível superior ao custo do ataque.

Atualidade da observação e do mercado são distintas. Uma média atual pode reter um regime antigo; um pool ativo pode ser raso ou divergir de outros mercados. O consumidor precisa de verificações de histórico, liquidez e divergência, limites por ação e comportamento degradado ou pausado explícito.

Como funciona

  1. Fixe blockchain e bloco, fábrica e pool, versão e taxa, token0 e token1, decimais, direção base/cotação, ação, janela e valor em risco.
  2. Identifique objeto e unidades: price0Cumulative ou price1Cumulative linear da v2, tickCumulative da v3 ou estatística documentada. Não transplante aritmética.
  3. Verifique timestamps, tempo positivo, histórico inicializado mais antigo, cardinalidade atual e regras contrafactuais. observationCardinalityNext é capacidade-alvo, não histórico preenchido.
  4. Na v2, divida a variação do preço acumulado pelos segundos e normalize ponto fixo e decimais. Calcule cada direção separadamente; o TWAP aritmético reverso geralmente não é o recíproco do direto.
  5. Na v3, use a interface documentada, divida a variação do tick pela janela, arredonde quociente negativo não exato para menos infinito como OracleLibrary e converta o tick médio com price = 1.0001^tick.
  6. Meça liquidez em faixa, harmônica, de faixa ampla, por taxa e externa. Teste trajetórias de um e vários blocos, taxas, arbitragem, ordenação, censura, perda no desfazimento, reorgs, atraso e valor extraível.
  7. Compare TWAP, spot e referências independentes sob limites de atualidade e desvio; monitore histórico, liquidez, upgrades e blockchain e ensaie histórico insuficiente, divergência, pausa, fallback, liquidação e recuperação.

A v2 mantém dois acumuladores direcionais. A v3 guarda observações em buffer circular e pode interpolar ou construir acumulado atual contrafactual. Esses extremos são aritmética válida, não prova de negociação naquele instante. Aumentar cardinalidade abre espaço futuro; não preenche o passado.

Exemplos resolvidos

  • Preço acumulado v2. Se C_start = 1,000,000 price-seconds, C_end = 1,360,000 price-seconds e elapsed = 3,600 seconds, então TWAP = (1,360,000 - 1,000,000) / 3,600 = 100 quote/base. Extremos, direção, escala e timestamps integram o resultado.
  • Armadilha do recíproco. O preço direto é 100 por 900 seconds e 400 por 900 seconds; TWAP 250. Spots reversos são 0.01 e 0.0025; TWAP 0.00625, cujo recíproco é 160, não 250. Média e inversão não comutam.
  • Tick médio negativo. Seja tickCumulativeDelta = -39,601 em 3,600 seconds. A divisão de Solidity trunca para -11, mas o helper v3 arredonda para meanTick = -12. O preço geométrico relativo é 1.0001^-12 = 0.998800779636. Erro de sinal ou arredondamento cria viés.
  • Diluição e atraso. O pool fica em 100 por 1,740 seconds e 400 por 60 seconds numa janela de 1,800-second. TWAP aritmético v2: (100 * 1,740 + 400 * 60) / 1,800 = 110; média geométrica v3: 100^(29/30) * 400^(1/30) = 104.7294122821. Ambos diferem do spot 400; nenhum define sozinho custo ou tamanho executável.

Riscos

  • Blockchain, fábrica, pool, taxa, implementação ou upgrade errados.
  • Direção base/cotação ou token0/token1 invertida.
  • Decimais, ponto fixo ou normalização errados.
  • Preço aritmético v2 e geométrico v3 tratados como iguais.
  • TWAP reverso calculado como recíproco do direto.
  • Extremos, tempo, janela ou bloco incorretos.
  • Aritmética temporal zero, negativa, envolvida ou específica mal tratada.
  • Histórico solicitado anterior à observação inicializada mais antiga.
  • observationCardinalityNext confundida com observationCardinality preenchida.
  • Observações interpoladas ou contrafactuais tomadas como trades.
  • Tick negativo arredondado para zero, não menos infinito.
  • Conversão, faixa inteira, overflow ou arredondamento inseguros.
  • Liquidez ativa ou harmônica insuficiente para a exposição.
  • Profundidade de faixa ampla ausente, removida ou ignorada.
  • Liquidez fragmentada entre pools, taxas, blockchains ou mercados.
  • Janela curta sensível a manipulação atômica ou transitória.
  • Janela longa atrasa reprecificação, depeg ou migração.
  • Proponente multibloco, sequenciador, censura, MEV ou reorg elevam controle.
  • TWAP tratado como valor justo recente ou preço executável sem testes.
  • Exposição supera custo de manipulação e controles de recuperação são inseguros.

Equívocos comuns

  • “TWAP sempre é média aritmética de preços.” A v3 promedia tick e produz preço relativo médio geométrico.
  • “Cotação reversa é sempre um dividido pelo TWAP direto.” Isso não vale para preços lineares promediados separadamente.
  • “Janela maior impossibilita manipulação.” Troca sensibilidade breve por atraso e ainda admite controle sustentado.
  • “Aumentar cardinalidade cria histórico imediatamente.” Só amplia capacidade futura; observações precisam ser inicializadas.
  • “Leitura recente prova valor justo executável.” Sucesso da interface não prova atualidade econômica, profundidade ou exposição segura.

Tópicos relacionados

Fontes

Navegação

Pesquisar na wiki...