Vai al contenuto

Oracolo TWAP

Un oracolo TWAP ricava un riferimento ponderato nel tempo da osservazioni cumulative specifiche del protocollo; prezzi aritmetici v2 e tick medi v3 hanno matematica e limiti diversi.

Aggiornato

Solo a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.

Risposta diretta

Un oracolo del prezzo medio ponderato nel tempo ricava un riferimento da osservazioni cumulative in un intervallo definito. Non esiste una formula universale. Uniswap v2 accumula il prezzo marginale lineare del pool in entrambe le direzioni, quindi le differenze tra estremi producono TWAP aritmetici. Uniswap v3 accumula il tick, coordinata logaritmica del prezzo, perciò il tick medio aritmetico corrisponde a un prezzo relativo medio geometrico.

Il risultato richiede blockchain, pool, implementazione, livello commissionale, ordine dei token, direzione base/quotata, decimali, estremi, tempo, storico popolato e arrotondamento definiti. Una lettura riuscita non prova fair value né profondità eseguibile. Una finestra più lunga diluisce una breve distorsione ma aumenta il ritardo e non elimina manipolazione sostenuta, lacune di liquidità concentrata, controllo del proposer o sequencer, reorg o valore estraibile superiore al costo di manipolazione.

Attualità delle osservazioni e del mercato sono distinte. Una media calcolata ora può conservare un vecchio regime; un pool attivo può restare poco liquido o scollegato dai mercati esterni. Servono controlli su storico, liquidità e divergenza, limiti per azione e comportamento degradato o sospeso esplicito.

Come funziona

  1. Fissare blockchain e blocco, factory e pool, versione e livello commissionale, token0 e token1, decimali, direzione base/quotata, azione, finestra e valore a rischio.
  2. Identificare oggetto e unità: price0Cumulative o price1Cumulative lineare v2, tickCumulative v3 o statistica documentata. Non trasferire l’aritmetica tra implementazioni.
  3. Verificare timestamp, tempo positivo, storico inizializzato più vecchio, cardinalità attuale e regole contrafattuali. observationCardinalityNext è capacità obiettivo, non storico già popolato.
  4. In v2 dividere la variazione del prezzo cumulativo per i secondi e normalizzare punto fisso e decimali. Calcolare le direzioni separatamente; il TWAP aritmetico inverso in genere non è il reciproco di quello diretto.
  5. In v3 usare l’interfaccia documentata, dividere la variazione del tick per la finestra, arrotondare un quoziente negativo non esatto verso meno infinito come OracleLibrary e convertire con price = 1.0001^tick.
  6. Misurare liquidità in-range, armonica, wide-range, per livello e dei mercati esterni. Stressare percorsi a uno e più blocchi, commissioni, arbitraggio, ordinamento, censura, perdita di unwinding, reorg, ritardo e valore estraibile.
  7. Confrontare TWAP, spot e riferimenti indipendenti con limiti espliciti; monitorare storico, liquidità, upgrade e blockchain e provare storico insufficiente, divergenza, pausa, fallback, liquidazione e ripristino.

Uniswap v2 conserva due valori cumulativi direzionali. Uniswap v3 archivia osservazioni in un buffer circolare e può interpolare o costruire un cumulativo corrente contrafattuale. Tali estremi sono aritmetica valida, non prova di uno scambio in quell’istante. Aumentare la cardinalità crea spazio futuro, non riempie il passato.

Esempi svolti

  • Prezzo cumulativo v2. Se C_start = 1,000,000 price-seconds, C_end = 1,360,000 price-seconds e elapsed = 3,600 seconds, allora TWAP = (1,360,000 - 1,000,000) / 3,600 = 100 quote/base. Estremi, direzione, scala e timestamp sono parte del risultato.
  • Trappola del reciproco. Un prezzo diretto è 100 per 900 seconds e 400 per 900 seconds, quindi il TWAP è 250. Gli spot inversi sono 0.01 e 0.0025; il TWAP è 0.00625, il cui reciproco è 160, non 250. Media e reciproco non commutano.
  • Tick medio negativo. Sia tickCumulativeDelta = -39,601 su 3,600 seconds. Solidity tronca a -11, ma l’helper v3 arrotonda a meanTick = -12. Il prezzo geometrico relativo è 1.0001^-12 = 0.998800779636. Un errore di segno o arrotondamento crea distorsione.
  • Diluizione e ritardo. Il pool resta a 100 per 1,740 seconds e a 400 per 60 seconds in una finestra di 1,800-second. TWAP aritmetico v2: (100 * 1,740 + 400 * 60) / 1,800 = 110; media geometrica v3: 100^(29/30) * 400^(1/30) = 104.7294122821. Entrambi differiscono dallo spot 400; nessuno determina da solo costo o size eseguibile.

Rischi

  • Blockchain, factory, pool, livello, implementazione o upgrade errati.
  • Direzione base/quotata o token0/token1 invertita.
  • Decimali, scala a virgola fissa o normalizzazione errati.
  • Prezzo aritmetico v2 e geometrico v3 trattati come uguali.
  • TWAP inverso calcolato come reciproco del diretto.
  • Estremi, tempo, finestra o blocco corrente errati.
  • Aritmetica temporale nulla, negativa o specifica gestita male.
  • Storico richiesto anteriore all’osservazione inizializzata più vecchia.
  • observationCardinalityNext confusa con observationCardinality popolata.
  • Osservazioni interpolate o contrafattuali scambiate per trade.
  • Tick negativo arrotondato verso zero anziché meno infinito.
  • Conversione, range intero, overflow o arrotondamento insicuri.
  • Liquidità attiva o armonica insufficiente per l’esposizione.
  • Profondità wide-range assente, rimossa o ignorata.
  • Liquidità frammentata tra pool, livelli, blockchain o mercati.
  • Finestra breve sensibile a manipolazione atomica o transitoria.
  • Finestra lunga ritarda repricing, depeg o migrazione.
  • Proposer multiblocco, sequencer, censura, MEV o reorg aumentano il controllo.
  • TWAP trattato come fair value recente o prezzo eseguibile senza verifiche.
  • Esposizione superiore al costo di manipolazione e recupero insicuro.

Idee errate comuni

  • «TWAP significa sempre media aritmetica dei prezzi». v3 media i tick e produce un prezzo relativo medio geometrico.
  • «La quotazione inversa è sempre uno diviso il TWAP diretto». Non vale per prezzi lineari mediati separatamente.
  • «Una finestra più lunga rende impossibile la manipolazione». Scambia sensibilità breve con ritardo e resta influenzabile da controllo sostenuto.
  • «Aumentare la cardinalità crea subito più storico». Aumenta solo capacità futura; le osservazioni vanno inizializzate.
  • «Una lettura recente prova fair value eseguibile». Il successo dell’interfaccia non prova attualità economica, profondità o esposizione sicura.

Argomenti correlati

Fonti

Navigazione

Cerca nella wiki...