﻿---
title: "Cara memilih jendela TWAP"
description: "Pilih periode lihat-balik TWAP dengan menguji biaya manipulasi, kedalaman pasar, jeda harga, ketersediaan observasi, dan nilai protokol yang berisiko, bukan memakai durasi universal."
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.

# Cara memilih jendela TWAP

> Hanya untuk tujuan edukasi; bukan nasihat investasi atau keamanan. Oracle harga yang dirancang buruk dapat menyebabkan likuidasi keliru, pinjaman tanpa agunan memadai, dan kerugian protokol.

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

## Jawaban langsung

Tidak ada jendela TWAP yang aman secara universal. Pilih **jendela terpendek yang tetap membuat manipulasi menguntungkan tidak realistis untuk pool dan protokol tertentu**, lalu pastikan jedanya masih dapat diterima saat harga benar-benar bergerak. Jendela lebih panjang biasanya memaksa penyerang memengaruhi pasar lebih lama, tetapi juga mempertahankan harga lama dalam rata-rata lebih lama. Ini tidak memperbaiki likuiditas tipis, likuiditas terkonsentrasi di luar jalur harga, nilai berisiko berlebihan, atau integrasi yang salah.

Pemilihan jendela adalah latihan anggaran risiko, bukan pilihan antara 5 menit, 30 menit, atau 1 jam. Dokumentasikan pool sumber dan metode rata-rata, galat dan jeda maksimum, nilai yang dapat diekstrak, biaya serangan, riwayat observasi, dan perilaku cadangan. Ulangi analisis ketika likuiditas, insentif, produksi blok, batas agunan, atau struktur pasar berubah.

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

## Cara kerja

Oracle berbasis akumulator mencatat harga sepanjang waktu. Untuk akumulator aritmetis, rata-rata dari `t1` hingga `t2` adalah:

`TWAP(t1,t2) = (cumulativePrice(t2) - cumulativePrice(t1)) / (t2 - t1)`

Uniswap v2 mengakumulasi harga pada awal setiap blok dan konsumen menyimpan dua nilai akumulator. Uniswap v3 menyimpan observasi tick kumulatif sehingga konversi tick rata-rata menghasilkan rata-rata **geometris** tertimbang waktu. Konvensi rata-rata, arah kuotasi, kapasitas observasi, pembulatan, dan pembaruan adalah bagian spesifikasi oracle; jangan menganggap semua TWAP sebagai rata-rata aritmetis sampel spot.

Gunakan proses berikut:

1. **Tentukan fungsi kerugian konsumen.** Catat pengaruh harga terhadap daya pinjam, likuidasi, pencetakan, penebusan, atau penyelesaian. Tetapkan jeda dan galat maksimum untuk kenaikan maupun penurunan.
2. **Ukur likuiditas yang dapat dieksekusi.** Modelkan cadangan, biaya, dan likuiditas aktif sepanjang jalur harga serangan. TVL dan volume terbaru saja tidak membuktikan ketahanan manipulasi.
3. **Batasi imbalan penyerang.** Sertakan batas agunan dan pinjaman, bonus likuidasi, posisi terbuka, komposabilitas, serta laba sebelum jeda. Bandingkan biaya serangan dengan seluruh nilai yang dapat diekstrak, bukan satu transaksi.
4. **Modelkan serangan yang layak.** Uji distorsi satu dan banyak blok, modal kilat, kendali proposer atau urutan, arbitrase dan back-run, kemacetan, serta biaya membalik posisi. Riset menunjukkan asumsi biaya tumbuh linear terhadap jendela dapat gagal pada model penyerang yang lebih kuat.
5. **Uji rentang kandidat.** Simulasikan lompatan historis dan jalur harga adversarial untuk tiap durasi. Tolak jendela yang memungkinkan manipulasi menguntungkan atau menghasilkan harga terlalu basi.
6. **Tambahkan kontrol independen.** Gunakan batas eksposur, pemeriksaan deviasi terhadap referensi independen, batas kebasian, faktor agunan konservatif, dan kebijakan jeda atau cadangan yang teruji. Kontrol ini membatasi kerugian, tetapi tidak membuat sumber buruk menjadi aman.

Hasilnya khusus untuk pool, tingkat biaya, chain, implementasi, pasangan aset, dan keadaan protokol. Menyalin jendela 30 menit tidak menyalin likuiditas atau batas kerugian protokol lain.

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

## Contoh

Anggap TWAP aritmetis sederhana dan harga pasar bergerak seketika dari `100` ke `70`, lalu menetap di `70`. Lima belas menit kemudian, jendela bergulir 30 menit berisi masing-masing 15 menit pada kedua harga:

`(15 x 100 + 15 x 70) / 30 = 85`

Setelah 30 menit, observasi lama `100` keluar sepenuhnya dan TWAP mencapai `70`. Jendela 5 menit mencapai `70` setelah 5 menit, tetapi penyerang juga perlu mempertahankan distorsi lebih singkat. Dalam pasar pinjaman, menilai agunan sekitar `85` ketika harga yang dapat dieksekusi mendekati `70` dapat menunda likuidasi dan menimbulkan kredit macet; penggunaan lain mungkin menerima nilai yang lebih lambat.

Contoh ini hanya menggambarkan jeda, bukan biaya manipulasi, dan hasil `85` tidak berlaku untuk oracle rata-rata geometris. Tinjauan nyata harus memutar ulang matematika oracle yang tepat dengan observasi pool, likuiditas aktif, biaya, urutan blok, dan posisi protokol.

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

## Risiko dan kontrol

- **Jendela terlalu pendek:** sedikit blok terdistorsi dapat membuat serangan menguntungkan. Perkuat sumber atau pasar, kurangi eksposur, atau gunakan referensi lebih beragam.
- **Jendela terlalu panjang:** oracle tertinggal dari lompatan nyata, menunda likuidasi saat turun atau menilai agunan terlalu rendah saat naik. Ukur jeda terburuk dan gunakan parameter konservatif.
- **Salah mengukur likuiditas:** TVL dapat tidak aktif, terkonsentrasi sempit, sepihak, atau berada di luar jalur serangan. Gunakan kedalaman yang dapat dieksekusi pada tick dan harga relevan.
- **Kegagalan observasi:** riwayat kurang, data basi, kapasitas belum diinisialisasi, waktu salah, atau arah kuotasi salah membatalkan perhitungan. Lakukan revert atau masuk keadaan aman terdokumentasi, bukan mengganti diam-diam.
- **Model penyerang gagal:** likuiditas kilat, pengaruh proposer multiblok, urutan transaksi, dan laba lintas protokol menurunkan biaya bersih. Uji tekanan asumsi; jangan anggap 'biaya x menit' sebagai bukti.
- **Perubahan tata kelola dan pasar:** migrasi likuiditas, perubahan biaya, agunan baru, kenaikan batas, peningkatan kontrak, atau perubahan chain dapat membatalkan hasil lama. Pantau input dan tetapkan ambang tinjauan ulang.
- **Kegagalan cadangan:** feed independen dapat memiliki cakupan, desimal, jeda, dan mode gagal berbeda. Tentukan kapan menjeda, menolak, membatasi, atau beralih, lalu uji jalurnya secara on-chain.

Sebelum peluncuran, publikasikan unit, arah kuotasi, metode rata-rata, jendela, riwayat minimum, kriteria pool, batas risiko, dan perilaku gagal. Pantau deviasi TWAP terhadap referensi serta input ekonomi model serangan.

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

## Kesalahpahaman umum

- **"Jendela lebih panjang selalu lebih aman."** Durasi serangan mungkin naik, tetapi jeda juga naik dan likuiditas lemah tetap tidak teratasi.
- **"TWAP 30 menit adalah jaminan industri."** Durasi hanya satu parameter; kedalaman, likuiditas aktif, biaya, blok, matematika oracle, dan nilai berisiko juga menentukan.
- **"Flash loan tidak dapat memengaruhi TWAP."** Ia menghapus batas modal dalam transaksi. Keberhasilan bergantung pada sampling, bagian jendela yang dapat dipengaruhi, dan logika protokol sekitar.
- **"TVL tinggi berarti biaya manipulasi tinggi."** Hanya likuiditas yang dapat dieksekusi pada jalur harga relevan yang langsung menahan transaksi model.
- **"TWAP adalah harga pasar saat ini."** TWAP adalah rata-rata keadaan on-chain historis dari satu pasar, sehingga sengaja tertinggal dan mungkin tidak mewakili pasar luas.

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

## Topik terkait

- [Pool likuiditas](/crypto/liquidity-pool/)
- [Likuidasi](/crypto/liquidation/)
- [Serangan oracle](/crypto/oracle-attack/)
- [Harga oracle kedaluwarsa](/crypto/oracle-price-staleness/)
- [Oracle TWAP](/crypto/oracle-twap/)

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

## Sumber

- [Uniswap v2 Core](https://docs.uniswap.org/whitepaper.pdf) - Uniswap (diakses: 2026-08-21)
- [Uniswap v3 Core](https://app.uniswap.org/whitepaper-v3.pdf) - Uniswap (diakses: 2026-08-21)
- [Uniswap v3 TWAP Oracles in Proof of Stake](https://blog.uniswap.org/uniswap-v3-oracles) - Uniswap Labs (diakses: 2026-08-21)
- [TWAP Oracle Attacks: Easier Done than Said?](https://doi.org/10.1109/ICBC54727.2022.9805499) - IEEE (diakses: 2026-08-21)

Source: https://wiki.fcontext.com/id/crypto/twap-window-selection/index.mdx
