﻿---
title: "วิธีเลือกช่วงเวลา TWAP"
description: "เลือกช่วงเวลาย้อนหลังของ TWAP โดยทดสอบต้นทุนการบิดเบือน ความลึกของตลาด ความล่าช้า ข้อมูลสังเกตการณ์ และมูลค่าความเสี่ยงของโปรโตคอล แทนการใช้ระยะเวลาตายตัว"
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.

# วิธีเลือกช่วงเวลา TWAP

> จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำด้านการลงทุนหรือความปลอดภัย ออราเคิลราคาที่ออกแบบไม่ดีอาจทำให้เกิดการชำระบัญชีผิดพลาด เงินกู้ที่มีหลักประกันไม่พอ และความเสียหายต่อโปรโตคอล

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

## คำตอบโดยตรง

ไม่มีช่วงเวลา TWAP ที่ปลอดภัยสำหรับทุกกรณี ควรเลือก **ช่วงเวลาที่สั้นที่สุดซึ่งยังทำให้การบิดเบือนที่มีกำไรเป็นไปได้ยากสำหรับพูลและโปรโตคอลนั้น** แล้วตรวจว่าความล่าช้ายังยอมรับได้เมื่อราคาเคลื่อนไหวจริง ช่วงเวลาที่ยาวขึ้นมักบังคับให้ผู้โจมตีมีอิทธิพลต่อตลาดนานขึ้น แต่ก็เก็บราคาเก่าไว้ในค่าเฉลี่ยนานขึ้นด้วย และไม่อาจชดเชยสภาพคล่องต่ำ สภาพคล่องกระจุกตัวนอกเส้นทางราคา มูลค่าความเสี่ยงสูงเกินไป หรือการเชื่อมต่อที่ผิดพลาด

นี่คือการกำหนดงบความเสี่ยง ไม่ใช่การเลือกระหว่าง 5 นาที 30 นาที หรือ 1 ชั่วโมง โปรโตคอลควรบันทึกพูลต้นทาง วิธีหาค่าเฉลี่ย ค่าคลาดเคลื่อนและความล่าช้าสูงสุด มูลค่าที่ดึงออกได้ ต้นทุนการโจมตี ประวัติข้อมูล และพฤติกรรมสำรอง ต้องวิเคราะห์ใหม่เมื่อสภาพคล่อง แรงจูงใจ การสร้างบล็อก เพดานหลักประกัน หรือโครงสร้างตลาดเปลี่ยนไป

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

## วิธีการทำงาน

ออราเคิลแบบตัวสะสมบันทึกราคาตามเวลา สำหรับตัวสะสมเลขคณิต ค่าเฉลี่ยจาก `t1` ถึง `t2` คือ:

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

Uniswap v2 สะสมราคาที่จุดเริ่มต้นของแต่ละบล็อก และผู้ใช้เก็บค่าตัวสะสมสองค่า ส่วน Uniswap v3 เก็บค่าตัวสังเกต tick สะสม การแปลง tick เฉลี่ยจึงให้ค่าเฉลี่ย **เรขาคณิต** ถ่วงน้ำหนักตามเวลา วิธีเฉลี่ย ทิศทางราคา ความจุข้อมูล การปัดเศษ และการอัปเดตเป็นส่วนหนึ่งของข้อกำหนด อย่าถือว่า TWAP ทุกแบบเป็นค่าเฉลี่ยเลขคณิตของราคาสปอต

ใช้กระบวนการต่อไปนี้:

1. **กำหนดฟังก์ชันความเสียหายของผู้ใช้ราคา** บันทึกผลต่อวงเงินกู้ การชำระบัญชี การสร้าง การไถ่ถอน หรือการชำระราคา และกำหนดความล่าช้ากับค่าคลาดเคลื่อนสูงสุดทั้งตลาดขึ้นและลง
2. **วัดสภาพคล่องที่ซื้อขายได้จริง** จำลองเงินสำรอง ค่าธรรมเนียม และสภาพคล่องที่ทำงานตลอดเส้นทางราคาของการโจมตี TVL กับปริมาณล่าสุดเพียงอย่างเดียวไม่พิสูจน์ความต้านทาน
3. **จำกัดผลตอบแทนของผู้โจมตี** รวมเพดานหลักประกันและเงินกู้ โบนัสการชำระบัญชี สถานะเปิด การประกอบกับโปรโตคอลอื่น และกำไรก่อนหยุด เปรียบเทียบต้นทุนกับมูลค่ารวมที่ดึงออกได้
4. **จำลองการโจมตีที่เป็นไปได้** ทดสอบการบิดเบือนหนึ่งและหลายบล็อก เงินทุนแบบแฟลช อำนาจผู้เสนอบล็อกหรือการจัดลำดับ อาร์บิทราจ back-running ความแออัด และต้นทุนปิดสถานะ งานวิจัยชี้ว่าสมมติฐานที่ต้นทุนเพิ่มเป็นเส้นตรงตามช่วงเวลาอาจล้มเหลวเมื่อผู้โจมตีแข็งแกร่งขึ้น
5. **ทดสอบช่วงเวลาที่เป็นตัวเลือก** จำลองการกระโดดในอดีตและเส้นทางราคาฝ่ายตรงข้ามสำหรับแต่ละระยะ ตัดตัวเลือกที่เปิดให้บิดเบือนมีกำไรหรือให้ราคาล้าสมัยเกินรับได้
6. **เพิ่มมาตรการอิสระ** ใช้เพดานความเสี่ยง การตรวจความเบี่ยงเบนเทียบแหล่งอิสระ ขีดจำกัดความเก่า อัตราหลักประกันแบบระมัดระวัง และนโยบายหยุดหรือสำรองที่ทดสอบแล้ว มาตรการเหล่านี้จำกัดความเสียหายแต่ไม่ทำให้แหล่งที่ไม่ปลอดภัยกลายเป็นปลอดภัย

ผลลัพธ์ใช้เฉพาะกับพูล ระดับค่าธรรมเนียม เชน การติดตั้ง คู่สินทรัพย์ และสถานะโปรโตคอลนั้น การคัดลอกช่วงเวลา 30 นาทีไม่ได้คัดลอกสภาพคล่องหรือขีดจำกัดความเสียหายของอีกโปรโตคอล

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

## ตัวอย่าง

สมมติ TWAP เลขคณิตอย่างง่าย และราคาตลาดเปลี่ยนทันทีจาก `100` เป็น `70` แล้วคงที่ที่ `70` หลัง 15 นาที หน้าต่างเลื่อน 30 นาทีมีราคาแต่ละค่าค่าละ 15 นาที:

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

เมื่อครบ 30 นาที ข้อมูลเก่า `100` จึงออกทั้งหมดและ TWAP ถึง `70` หน้าต่าง 5 นาทีถึง `70` หลัง 5 นาที แต่ผู้โจมตีก็ต้องคงการบิดเบือนสั้นลงเช่นกัน ในตลาดกู้ยืม การตีมูลค่าหลักประกันใกล้ `85` ขณะที่ราคาที่ซื้อขายได้ใกล้ `70` อาจทำให้ชำระบัญชีล่าช้าและเกิดหนี้เสีย ส่วนกรณีใช้อื่นอาจยอมรับค่าที่ช้ากว่าได้

ตัวอย่างนี้แสดงเฉพาะความล่าช้า ไม่ได้ประมาณต้นทุนการบิดเบือน และค่า `85` ใช้ไม่ได้กับค่าเฉลี่ยเรขาคณิต การตรวจจริงต้องเล่นซ้ำสูตรที่ถูกต้องพร้อมข้อมูลพูล สภาพคล่องที่ทำงาน ค่าธรรมเนียม ลำดับบล็อก และสถานะของโปรโตคอล

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

## ความเสี่ยงและมาตรการควบคุม

- **ช่วงเวลาสั้นเกินไป:** บล็อกที่บิดเบือนเพียงไม่กี่บล็อกอาจทำให้โจมตีมีกำไร ควรเสริมแหล่งหรือตลาด ลดความเสี่ยง หรือใช้ราคาอ้างอิงที่หลากหลายขึ้น
- **ช่วงเวลายาวเกินไป:** ออราเคิลตามหลังการกระโดดจริง ทำให้ชำระบัญชีช้าเมื่อราคาลงหรือประเมินหลักประกันต่ำเมื่อราคาขึ้น วัดความล่าช้ากรณีเลวร้ายและใช้พารามิเตอร์ระมัดระวัง
- **วัดสภาพคล่องผิด:** TVL อาจไม่ทำงาน กระจุกตัว แบ่งข้างเดียว หรืออยู่นอกเส้นทางโจมตี ใช้ความลึกที่ซื้อขายได้ ณ tick และราคาที่เกี่ยวข้อง
- **ข้อมูลสังเกตการณ์ล้มเหลว:** ประวัติไม่พอ ข้อมูลเก่า ความจุไม่เริ่มต้น เวลา พูล หรือทิศทางผิดทำให้สูตรใช้ไม่ได้ ให้ revert หรือเข้าสู่สถานะปลอดภัยที่บันทึกไว้ อย่าแทนค่าเงียบๆ
- **แบบจำลองผู้โจมตีไม่ครบ:** สภาพคล่องแฟลช ผู้เสนอบล็อกต่อเนื่อง การจัดลำดับ และกำไรข้ามโปรโตคอลลดต้นทุนสุทธิ ต้องทดสอบภาวะกดดัน ไม่ถือว่า “ค่าธรรมเนียมคูณนาที” เป็นหลักฐาน
- **ธรรมาภิบาลและตลาดเปลี่ยน:** การย้ายสภาพคล่อง เปลี่ยนค่าธรรมเนียม เพิ่มหลักประกัน ขยายเพดาน อัปเกรด หรือเปลี่ยนเชนอาจทำให้ผลเดิมใช้ไม่ได้ ควรเฝ้าดูข้อมูลและตั้งเกณฑ์ทบทวน
- **ระบบสำรองล้มเหลว:** แหล่งอิสระอาจต่างด้านตลาด ทศนิยม ความล่าช้า และรูปแบบขัดข้อง ต้องระบุว่าจะหยุด ปฏิเสธ จำกัด หรือสลับเมื่อใด และทดสอบบนเชน

ก่อนใช้งาน ให้เผยแพร่หน่วย ทิศทางราคา วิธีเฉลี่ย ช่วงเวลา ประวัติขั้นต่ำ เกณฑ์พูล เพดานความเสี่ยง และพฤติกรรมเมื่อขัดข้อง หลังใช้งานให้เฝ้าดูความเบี่ยงเบนจากราคาอ้างอิงและข้อมูลเศรษฐกิจของแบบจำลองโจมตี

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

## ความเข้าใจผิดที่พบบ่อย

- **“ยิ่งยาวยิ่งปลอดภัยเสมอ”** ระยะโจมตีอาจเพิ่ม แต่ความล่าช้าก็เพิ่ม และไม่แก้สภาพคล่องอ่อนแอหรือแบบจำลองไม่ครบ
- **“TWAP 30 นาทีเป็นหลักประกันของอุตสาหกรรม”** ระยะเวลาเป็นเพียงหนึ่งตัวแปร ร่วมกับความลึก สภาพคล่องที่ทำงาน ค่าธรรมเนียม บล็อก สูตร และมูลค่าความเสี่ยง
- **“แฟลชโลนกระทบ TWAP ไม่ได้”** มันตัดข้อจำกัดเงินทุนในธุรกรรม ผลขึ้นกับการเก็บตัวอย่าง ส่วนของหน้าต่างที่กระทบได้ และตรรกะรอบข้าง
- **“TVL สูงแปลว่าต้นทุนบิดเบือนสูง”** มีเพียงสภาพคล่องที่ซื้อขายได้บนเส้นทางราคาที่เกี่ยวข้องเท่านั้นที่ต้านธุรกรรมในแบบจำลองโดยตรง
- **“TWAP คือราคาตลาดปัจจุบัน”** มันเฉลี่ยสถานะบนเชนในอดีตของตลาดหนึ่ง จึงตั้งใจให้ล่าช้าและอาจไม่แทนตลาดโดยรวม

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

## หัวข้อที่เกี่ยวข้อง

- [พูลสภาพคล่อง](/crypto/liquidity-pool/)
- [การชำระบัญชี](/crypto/liquidation/)
- [การโจมตีออราเคิล](/crypto/oracle-attack/)
- [ราคาออราเคิลล้าสมัย](/crypto/oracle-price-staleness/)
- [ออราเคิล TWAP](/crypto/oracle-twap/)

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

## แหล่งที่มา

- [Uniswap v2 Core](https://docs.uniswap.org/whitepaper.pdf) - Uniswap (เข้าถึงเมื่อ: 2026-08-21)
- [Uniswap v3 Core](https://app.uniswap.org/whitepaper-v3.pdf) - Uniswap (เข้าถึงเมื่อ: 2026-08-21)
- [Uniswap v3 TWAP Oracles in Proof of Stake](https://blog.uniswap.org/uniswap-v3-oracles) - Uniswap Labs (เข้าถึงเมื่อ: 2026-08-21)
- [TWAP Oracle Attacks: Easier Done than Said?](https://doi.org/10.1109/ICBC54727.2022.9805499) - IEEE (เข้าถึงเมื่อ: 2026-08-21)

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