Solo a scopo educativo; non è consulenza finanziaria o di sicurezza. Un oracolo dei prezzi mal progettato può causare liquidazioni errate, prestiti sottocollateralizzati e perdite per il protocollo.
Risposta diretta
Non esiste una finestra TWAP sicura in ogni situazione. Scegli la finestra più breve che renda ancora irrealistica una manipolazione redditizia per quello specifico pool e protocollo, poi verifica che il ritardo sia accettabile durante un vero movimento di prezzo. Una finestra più lunga di solito impone all’attaccante di influenzare il mercato più a lungo, ma mantiene anche i vecchi prezzi nella media. Non compensa liquidità scarsa o fuori dal percorso, valore a rischio eccessivo o un’integrazione errata.
La scelta è un esercizio di budget del rischio, non una selezione tra 5 minuti, 30 minuti o 1 ora. Documenta pool e media, errore e ritardo massimi, valore estraibile, costo dell’attacco, storico disponibile e comportamento di emergenza. Ripeti l’analisi quando cambiano liquidità, incentivi, produzione dei blocchi, limiti del collaterale o struttura del mercato.
Come funziona
Un oracolo ad accumulatore registra il prezzo nel tempo. Per un accumulatore aritmetico, la media da t1 a t2 è:
TWAP(t1,t2) = (cumulativePrice(t2) - cumulativePrice(t1)) / (t2 - t1)
Uniswap v2 accumula il prezzo all’inizio di ogni blocco e il consumatore salva due valori. Uniswap v3 salva osservazioni dei tick cumulativi: la conversione del tick medio produce quindi una media geometrica ponderata nel tempo. Metodo, direzione della quotazione, capacità, arrotondamento e aggiornamento fanno parte della specifica; non tutti i TWAP sono medie aritmetiche di prezzi spot.
Segui questo processo:
- Definisci la funzione di perdita. Registra l’effetto su potere di prestito, liquidazione, emissione, rimborso o regolamento e fissa errore e ritardo massimi sia al rialzo sia al ribasso.
- Misura la liquidità eseguibile. Modella riserve, commissioni e liquidità attiva sull’intero percorso di prezzo. TVL e volume recente da soli non dimostrano resistenza.
- Limita il guadagno dell’attaccante. Includi limiti di collaterale e prestito, bonus di liquidazione, posizioni aperte, composabilità e profitto prima della pausa. Confronta il costo con tutto il valore estraibile.
- Modella attacchi fattibili. Prova distorsioni su uno o più blocchi, capitale flash, controllo del proposer o dell’ordine, arbitraggio, back-running, congestione e chiusura. La ricerca mostra che l’ipotesi di costo lineare con la finestra può fallire contro attaccanti più forti.
- Esamina le finestre candidate. Simula salti storici e percorsi avversi per ogni durata. Scarta quelle che consentono manipolazione redditizia o prezzi troppo vecchi.
- Aggiungi controlli indipendenti. Usa limiti di esposizione, verifiche rispetto a un riferimento indipendente, limiti di obsolescenza, collaterale prudente e regole testate di pausa o fallback. Limitano la perdita ma non rendono sicura una fonte insicura.
Il risultato dipende da pool, fascia di commissione, chain, implementazione, coppia e stato del protocollo. Copiare 30 minuti non copia liquidità o limiti di perdita altrui.
Esempio
Supponiamo un TWAP aritmetico semplificato e un prezzo che passa istantaneamente da 100 a 70, restando a 70. Dopo 15 minuti, la finestra mobile di 30 minuti contiene 15 minuti per ciascun prezzo:
(15 x 100 + 15 x 70) / 30 = 85
Dopo 30 minuti, le vecchie osservazioni 100 sono uscite e il TWAP arriva a 70. Una finestra di 5 minuti arriva a 70 dopo 5 minuti, ma l’attaccante deve sostenere la distorsione per meno tempo. In un mercato dei prestiti, valutare il collaterale circa 85 quando il mercato eseguibile è vicino a 70 può ritardare la liquidazione e generare crediti inesigibili; altri usi possono accettare un valore più lento.
L’esempio isola solo il ritardo, non stima il costo di manipolazione, e 85 non vale per una media geometrica. Una verifica reale deve riprodurre la formula esatta con osservazioni, liquidità attiva, commissioni, sequenza dei blocchi e posizioni.
Rischi e controlli
- Finestra troppo breve: pochi blocchi distorti possono rendere redditizio l’attacco. Rafforza fonte o mercato, riduci l’esposizione o diversifica il riferimento.
- Finestra troppo lunga: l’oracolo segue in ritardo un salto reale, ritarda le liquidazioni in discesa o sottostima il collaterale in salita. Misura il ritardo peggiore e usa parametri prudenti.
- Liquidità misurata male: il TVL può essere inattivo, concentrato, unilaterale o fuori percorso. Usa profondità eseguibile a tick e prezzi pertinenti.
- Errore di osservazione: storico insufficiente, dati vecchi, capacità non inizializzata, tempo, pool o direzione errati invalidano il calcolo. Fai revert o entra in uno stato sicuro documentato, senza sostituzioni silenziose.
- Modello dell’attaccante incompleto: liquidità flash, proposer multiblocco, ordinamento e profitti tra protocolli riducono il costo netto. Sottoponi le ipotesi a stress; «commissioni per minuti» non è una prova.
- Cambiamenti di governance e mercato: migrazione, commissioni, nuovi collaterali, limiti maggiori, upgrade o cambio di chain possono invalidare il test. Monitora gli input e imponi una nuova verifica.
- Errore del fallback: una fonte indipendente può differire per copertura, decimali, ritardo e guasti. Definisci quando sospendere, rifiutare, limitare o cambiare e prova il percorso on-chain.
Prima del lancio pubblica unità, direzione, media, finestra, storico minimo, criteri del pool, limiti e comportamento di errore. Monitora poi lo scarto dal riferimento e gli input economici del modello d’attacco.
Errori comuni
- «Più lunga è sempre più sicura». Può aumentare la durata dell’attacco ma anche il ritardo; liquidità debole e modello incompleto restano.
- «Un TWAP di 30 minuti è una garanzia di settore». La durata è un solo parametro insieme a profondità, liquidità attiva, commissioni, blocchi, formula e valore a rischio.
- «Un flash loan non può influenzare il TWAP». Rimuove i vincoli di capitale nella transazione. Il risultato dipende da campionamento, porzione influenzabile e logica circostante.
- «TVL elevato significa costo di manipolazione elevato». Solo la liquidità eseguibile sul percorso rilevante resiste direttamente all’operazione modellata.
- «Il TWAP è il prezzo di mercato corrente». È la media di stati on-chain storici di un mercato specifico, quindi è deliberatamente in ritardo e può non rappresentare il mercato globale.
Argomenti correlati
Fonti
- Uniswap v2 Core - Uniswap (consultato: 2026-08-21)
- Uniswap v3 Core - Uniswap (consultato: 2026-08-21)
- Uniswap v3 TWAP Oracles in Proof of Stake - Uniswap Labs (consultato: 2026-08-21)
- TWAP Oracle Attacks: Easier Done than Said? - IEEE (consultato: 2026-08-21)