﻿---
title: "Oracolo TWAP"
description: "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."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracolo TWAP

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

<a id="answer"></a>

## 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.

<a id="mechanism"></a>

## 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.

<a id="example"></a>

## 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.

<a id="risks"></a>

## 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.

<a id="misconceptions"></a>

## 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.

<a id="related"></a>

## Argomenti correlati

- [Automated market maker](/it/crypto/amm/)
- [Attacchi agli oracoli](/it/crypto/oracle-attack/)
- [Prezzi di oracolo obsoleti](/it/crypto/oracle-price-staleness/)

<a id="sources"></a>

## Fonti

- [Uniswap v2 Core](https://app.uniswap.org/whitepaper.pdf) - Uniswap (consultato: 2026-08-13)
- [Oracles](https://developers.uniswap.org/docs/protocols/v2/concepts/oracles) - Uniswap Developers (consultato: 2026-08-13)
- [Uniswap v3 Core](https://uniswap.org/whitepaper-v3.pdf) - Uniswap (consultato: 2026-08-13)
- [Price Oracles](https://developers.uniswap.org/docs/protocols/v3/concepts/price-oracles) - Uniswap Developers (consultato: 2026-08-13)
- [Oracle.sol](https://github.com/Uniswap/v3-core/blob/main/contracts/libraries/Oracle.sol) - Uniswap v3 Core (consultato: 2026-08-13)
- [OracleLibrary.sol](https://github.com/Uniswap/v3-periphery/blob/main/contracts/libraries/OracleLibrary.sol) - Uniswap v3 Periphery (consultato: 2026-08-13)
- [Uniswap v3 TWAP Oracles in Proof of Stake](https://blog.uniswap.org/uniswap-v3-oracles) - Uniswap Labs (consultato: 2026-08-13)
- [SC03:2026 Price Oracle Manipulation](https://scs.owasp.org/sctop10/SC03-PriceOracleManipulation/) - OWASP Smart Contract Security (consultato: 2026-08-13)

Source: https://wiki.fcontext.com/it/crypto/oracle-twap/index.mdx
