Lompat ke konten

Oracle TWAP

Oracle TWAP memperoleh acuan berbobot waktu dari observasi kumulatif yang spesifik terhadap protokol; harga aritmetis v2 dan tick rata-rata v3 memiliki batas matematika, riwayat, likuiditas, dan manipulasi yang berbeda.

Diperbarui

Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

Jawaban langsung

Oracle harga rata-rata berbobot waktu memperoleh acuan dari observasi kumulatif selama interval yang dinyatakan. Tidak ada satu rumus universal. Uniswap v2 mengakumulasi harga marjinal linear untuk setiap arah pada pool, sehingga selisih titik akhir menghasilkan TWAP aritmetis. Uniswap v3 mengakumulasi tick, yaitu koordinat harga logaritmis, sehingga tick rata-rata aritmetis dipetakan menjadi harga relatif rata-rata geometris.

Hasil baru bermakna setelah menetapkan jaringan, pool, implementasi, tingkat biaya, urutan token, arah aset dasar/kotasi, desimal, titik akhir, waktu berlalu, riwayat yang terisi, dan pembulatan. Pembacaan yang berhasil tidak membuktikan nilai wajar maupun kedalaman eksekusi. Jendela yang lebih panjang mengencerkan distorsi singkat tetapi menambah jeda, serta tidak mengalahkan manipulasi berkelanjutan, celah likuiditas terkonsentrasi, kendali pengusul blok atau sequencer, reorganisasi, maupun konsumen dengan nilai yang dapat diekstraksi melebihi biaya manipulasi.

Kemutakhiran observasi dan kemutakhiran pasar adalah hal terpisah. Rata-rata yang dihitung sekarang dapat sengaja mempertahankan rezim harga lama; pool aktif tetap dapat memiliki likuiditas tipis atau terpisah dari pasar eksternal. Karena itu, konsumen memerlukan pemeriksaan riwayat, likuiditas dan deviasi, batas khusus tindakan, serta perilaku yang jelas ketika terdegradasi atau dijeda.

Cara kerjanya

  1. Tetapkan jaringan dan blok, pabrik dan alamat pool, versi protokol dan tingkat biaya, token0 dan token1, desimal, arah aset dasar/kotasi, tindakan konsumen, jendela, dan nilai yang dipertaruhkan.
  2. Identifikasi objek yang diakumulasi beserta satuannya: price0Cumulative atau price1Cumulative linear pada v2, tickCumulative pada v3, atau statistik terdokumentasi milik protokol lain. Jangan memindahkan aritmetika antarimplementasi.
  3. Verifikasi stempel waktu titik akhir, waktu berlalu positif, riwayat terlama yang telah diinisialisasi, kardinalitas observasi saat ini, serta aturan interpolasi atau kontrafaktual. observationCardinalityNext adalah kapasitas sasaran, bukan riwayat yang sudah terisi.
  4. Untuk v2, bagi perubahan harga kumulatif dengan detik yang berlalu, lalu normalkan satuan titik tetap dan desimal token. Hitung setiap arah kotasi secara independen; TWAP aritmetis terbalik umumnya bukan kebalikan dari TWAP arah maju.
  5. Untuk v3, panggil antarmuka observasi terdokumentasi, bagi perubahan tick kumulatif dengan jendela, bulatkan hasil bagi negatif yang tidak bulat menuju negatif tak terhingga seperti OracleLibrary, lalu petakan tick rata-rata menjadi kotasi ternormalisasi memakai price = 1.0001^tick.
  6. Ukur likuiditas aktif dalam rentang, harmonis, rentang luas, tingkat biaya, dan pasar eksternal. Uji jalur satu dan multiblok, biaya, arbitrase, pengurutan, sensor, kerugian pembalikan, reorganisasi, jeda, serta nilai konsumen yang dapat diekstraksi.
  7. Bandingkan TWAP dengan spot dan acuan independen dalam batas kemutakhiran serta deviasi yang eksplisit; pantau riwayat, rentang likuiditas, peningkatan pool dan kondisi jaringan, serta latih jalur riwayat tidak cukup, divergensi, jeda, cadangan, likuidasi, dan pemulihan.

Uniswap v2 menyimpan dua nilai kumulatif berarah dan memajukannya seiring waktu. Uniswap v3 menyimpan observasi dalam penyangga melingkar dan dapat menginterpolasi antarobservasi atau membentuk nilai kumulatif kontrafaktual terkini. Titik akhir bentukan tersebut valid dalam aritmetika protokol, tetapi bukan bukti transaksi terjadi pada saat itu. Meningkatkan kardinalitas menyediakan ruang untuk observasi masa depan; tindakan itu tidak mengisi riwayat lama secara surut.

Contoh terhitung

  • Harga kumulatif v2. Jika C_start = 1,000,000 price-seconds, C_end = 1,360,000 price-seconds, dan elapsed = 3,600 seconds, maka TWAP = (1,360,000 - 1,000,000) / 3,600 = 100 quote/base. Titik akhir, arah, skala, dan stempel waktu merupakan bagian dari hasil.
  • Jebakan kebalikan. Harga arah maju adalah 100 selama 900 seconds dan 400 selama 900 seconds, sehingga TWAP aritmetisnya 250. Harga spot terbalik adalah 0.01 dan 0.0025; TWAP aritmetisnya 0.00625, yang kebalikannya 160, bukan 250. Operasi merata-ratakan dan membalik tidak komutatif.
  • Tick rata-rata negatif. Misalkan tickCumulativeDelta = -39,601 selama 3,600 seconds. Pembagian bertanda Solidity memotong hasil menjadi -11 dengan sisa, tetapi pustaka v3 membulatkan ke bawah menjadi meanTick = -12. Harga geometris relatif adalah 1.0001^-12 = 0.998800779636. Kesalahan tanda atau pembulatan secara sistematis mengubah sisi kotasi.
  • Pengenceran dan jeda. Pool berada pada 100 selama 1,740 seconds dan 400 selama 60 seconds dalam jendela 1,800-second. TWAP aritmetis bergaya v2 adalah (100 * 1,740 + 400 * 60) / 1,800 = 110; rata-rata geometris bergaya v3 adalah 100^(29/30) * 400^(1/30) = 104.7294122821. Keduanya berbeda dari spot saat ini 400 dan satu sama lain; kedua angka itu sendiri tidak menyatakan biaya manipulasi atau ukuran yang dapat dieksekusi.

Risiko

  • Jaringan, pabrik, pool, tingkat biaya, implementasi, atau status peningkatan salah.
  • Arah aset dasar/kotasi atau orientasi token0/token1 terbalik.
  • Desimal token, skala titik tetap, atau normalisasi kotasi salah.
  • Harga aritmetis v2 dan harga geometris v3 diperlakukan sebagai statistik yang sama.
  • TWAP aritmetis terbalik dihitung sebagai kebalikan TWAP arah maju.
  • Titik akhir kumulatif, waktu berlalu, batas jendela, atau blok saat ini salah.
  • Aritmetika stempel waktu nol, negatif, tergulung, atau khusus implementasi salah ditangani.
  • Riwayat yang diminta lebih lama daripada observasi terlama yang diinisialisasi.
  • observationCardinalityNext disalahartikan sebagai observationCardinality yang telah terisi.
  • Observasi interpolasi atau kontrafaktual disalahartikan sebagai transaksi nyata.
  • Tick rata-rata negatif dibulatkan menuju nol, bukan negatif tak terhingga.
  • Konversi tick, rentang integer, overflow, atau pembulatan kotasi tidak aman.
  • Likuiditas aktif dalam rentang atau harmonis terlalu tipis bagi eksposur yang dilindungi.
  • Kedalaman rentang luas tidak ada, ditarik, atau diabaikan dalam analisis manipulasi.
  • Likuiditas terpecah antara pool, tingkat biaya, jaringan, atau pasar berkorelasi.
  • Jendela pendek tetap sensitif terhadap manipulasi satu blok, atomik, atau sementara.
  • Jendela panjang tertinggal dari perubahan harga nyata, pelepasan patokan, atau migrasi likuiditas.
  • Kondisi pengusul multiblok, sequencer, sensor, kemacetan, MEV, atau reorganisasi mengurangi koreksi atau meningkatkan kendali.
  • TWAP dianggap nilai wajar mutakhir atau harga yang dapat dieksekusi pada ukuran berapa pun tanpa pemeriksaan deviasi dan kedalaman.
  • Eksposur konsumen melebihi biaya manipulasi, sementara cadangan, pemutus sirkuit, jeda, likuidasi, dan pemulihan tidak aman.

Kesalahpahaman umum

  • “TWAP selalu berarti rata-rata aritmetis harga.” v3 merata-ratakan tick sehingga menghasilkan harga relatif rata-rata geometris.
  • “Kotasi terbalik selalu satu dibagi TWAP arah maju.” Simetri tersebut tidak berlaku pada harga linear yang dirata-ratakan secara terpisah.
  • “Jendela lebih panjang membuat manipulasi mustahil.” Jendela itu menukar sensitivitas distorsi singkat dengan jeda dan tetap dapat dipengaruhi kendali berkelanjutan atau likuiditas lemah.
  • “Meningkatkan kardinalitas langsung menciptakan lebih banyak riwayat.” Hal itu hanya menambah kapasitas masa depan; observasi harus diinisialisasi setelahnya.
  • “Pembacaan oracle yang baru dan berhasil membuktikan nilai pasar wajar dan dapat dieksekusi.” Keberhasilan antarmuka tidak menetapkan kemutakhiran ekonomi, kedalaman, independensi, atau keamanan eksposur konsumen.

Topik terkait

Sumber

Navigasi

Cari di wiki...