ข้ามไปยังเนื้อหา

ออราเคิล TWAP

ออราเคิล TWAP สร้างราคาอ้างอิงถ่วงน้ำหนักตามเวลาจากข้อมูลสะสมที่เฉพาะกับโปรโตคอล ราคาเฉลี่ยเลขคณิตของ v2 และ tick เฉลี่ยของ v3 มีขอบเขตด้านคณิตศาสตร์ ประวัติ สภาพคล่อง และการบิดเบือนต่างกัน

อัปเดต

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

คำตอบโดยตรง

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

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

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

กลไกการทำงาน

  1. ระบุเชนและบล็อก โรงงานและที่อยู่พูล รุ่นโปรโตคอลและระดับค่าธรรมเนียม token0 และ token1 ทศนิยม ทิศทางสินทรัพย์ฐานและสินทรัพย์อ้างอิง การกระทำของผู้ใช้ข้อมูล หน้าต่าง และมูลค่าที่มีความเสี่ยง
  2. ระบุปริมาณสะสมและหน่วย ได้แก่ price0Cumulative หรือ price1Cumulative แบบเชิงเส้นใน v2, tickCumulative ใน v3 หรือสถิติที่โปรโตคอลอื่นจัดทำเอกสารไว้ ห้ามนำเลขคณิตจากการติดตั้งหนึ่งไปใช้กับอีกการติดตั้ง
  3. ตรวจเวลาที่จุดต้นและปลาย เวลาที่ผ่านไปต้องเป็นบวก ประวัติเก่าสุดที่เริ่มบันทึก จำนวนช่องข้อมูลสังเกตปัจจุบัน และกฎการประมาณค่าระหว่างจุดหรือการคำนวณเสมือน observationCardinalityNext คือความจุเป้าหมาย ไม่ใช่ประวัติที่บันทึกแล้ว
  4. สำหรับ v2 ให้นำการเปลี่ยนแปลงของราคาสะสมหารด้วยวินาทีที่ผ่านไป แล้วปรับหน่วยเลขจุดคงที่และทศนิยมโทเค็น คำนวณทิศทางราคาแต่ละด้านแยกกัน เพราะ TWAP เลขคณิตด้านกลับโดยทั่วไปไม่ใช่ส่วนกลับของ TWAP ด้านไป
  5. สำหรับ v3 ให้เรียกอินเทอร์เฟซข้อมูลสังเกตตามเอกสาร นำการเปลี่ยนแปลง tick สะสมหารด้วยหน้าต่าง ปัดผลหารติดลบที่ไม่ลงตัวไปทางลบอนันต์ตาม OracleLibrary แล้วแปลง tick เฉลี่ยเป็นราคาอ้างอิงที่ปรับหน่วยแล้วด้วย price = 1.0001^tick
  6. วัดสภาพคล่องที่ใช้งานในช่วง สภาพคล่องเฉลี่ยฮาร์มอนิก สภาพคล่องช่วงกว้าง ระดับค่าธรรมเนียม และสภาพคล่องตลาดภายนอก ทดสอบเส้นทางหนึ่งบล็อกและหลายบล็อก ค่าธรรมเนียม อาร์บิทราจ ลำดับ การปิดกั้น ขาดทุนจากการย้อนธุรกรรม การจัดระเบียบเชนใหม่ ความล่าช้า และมูลค่าที่ดึงจากผู้ใช้ข้อมูลได้
  7. เปรียบเทียบ TWAP กับราคาทันทีและแหล่งอ้างอิงอิสระภายใต้ขอบเขตความใหม่และความเบี่ยงเบนที่ชัดเจน เฝ้าติดตามประวัติ ช่วงสภาพคล่อง การอัปเกรดพูล และสภาวะเชน พร้อมซ้อมกรณีประวัติไม่พอ ความเบี่ยงเบน การหยุด แหล่งสำรอง การชำระบัญชี และการกู้คืน

Uniswap v2 เก็บค่าสะสมสองค่าตามทิศทางราคาและเพิ่มค่าตามเวลา Uniswap v3 เก็บข้อมูลสังเกตในบัฟเฟอร์วงกลม และสามารถประมาณค่าระหว่างข้อมูลสังเกตหรือสร้างค่าสะสมเสมือนสำหรับเวลาปัจจุบัน จุดปลายที่สร้างขึ้นเหล่านี้ถูกต้องตามเลขคณิตของโปรโตคอล แต่ไม่ได้พิสูจน์ว่ามีการซื้อขายในขณะนั้น การเพิ่มจำนวนช่องสร้างพื้นที่สำหรับข้อมูลในอนาคต ไม่ได้เติมประวัติย้อนหลัง

ตัวอย่างคำนวณ

  • ราคาสะสม v2 หาก C_start = 1,000,000 price-seconds, C_end = 1,360,000 price-seconds และ elapsed = 3,600 seconds จะได้ TWAP = (1,360,000 - 1,000,000) / 3,600 = 100 quote/base จุดต้นและปลาย ทิศทาง สเกล และเวลาเป็นส่วนหนึ่งของผลลัพธ์
  • กับดักส่วนกลับ ราคาด้านไปเท่ากับ 100 เป็นเวลา 900 seconds และ 400 เป็นเวลา 900 seconds จึงมี TWAP เลขคณิตเท่ากับ 250 ราคาทันทีด้านกลับคือ 0.01 และ 0.0025 ค่าเฉลี่ยเลขคณิตเท่ากับ 0.00625 ซึ่งมีส่วนกลับเป็น 160 ไม่ใช่ 250 การหาค่าเฉลี่ยกับการหาส่วนกลับสลับลำดับกันไม่ได้
  • tick เฉลี่ยติดลบ กำหนด tickCumulativeDelta = -39,601 ในช่วง 3,600 seconds การหารจำนวนเต็มมีเครื่องหมายของ Solidity ตัดผลเป็น -11 และมีเศษ แต่ตัวช่วย v3 ปัดลงเป็น meanTick = -12 ราคาเรขาคณิตสัมพัทธ์คือ 1.0001^-12 = 0.998800779636 ความผิดพลาดเรื่องเครื่องหมายหรือการปัดเศษจะเอนเอียงด้านราคาอย่างเป็นระบบ
  • การเจือจางและความล่าช้า พูลอยู่ที่ 100 เป็นเวลา 1,740 seconds และ 400 เป็นเวลา 60 seconds ภายในหน้าต่าง 1,800-second TWAP เลขคณิตแบบ v2 คือ (100 * 1,740 + 400 * 60) / 1,800 = 110 ส่วนค่าเฉลี่ยเรขาคณิตแบบ v3 คือ 100^(29/30) * 400^(1/30) = 104.7294122821 ทั้งคู่ต่างจากราคาทันที 400 และต่างกันเอง โดยไม่มีค่าใดบอกต้นทุนบิดเบือนหรือขนาดที่ซื้อขายได้เพียงลำพัง

ความเสี่ยง

  • ระบุเชน โรงงาน พูล ระดับค่าธรรมเนียม การติดตั้ง หรือสถานะการอัปเกรดผิด
  • กลับทิศสินทรัพย์ฐานและสินทรัพย์อ้างอิง หรือ token0 กับ token1
  • ใช้ทศนิยมโทเค็น สเกลเลขจุดคงที่ หรือการปรับหน่วยราคาอ้างอิงผิด
  • ถือว่าราคาเลขคณิต v2 กับราคาเรขาคณิต v3 เป็นสถิติเดียวกัน
  • คำนวณ TWAP เลขคณิตด้านกลับเป็นส่วนกลับของ TWAP ด้านไป
  • ใช้จุดปลายสะสม เวลาที่ผ่านไป ขอบเขตหน้าต่าง หรือบล็อกปัจจุบันผิด
  • จัดการเวลาเป็นศูนย์ ติดลบ วนรอบ หรือเฉพาะการติดตั้งผิด
  • ขอประวัติที่เก่ากว่าข้อมูลสังเกตที่เริ่มบันทึกเก่าสุด
  • เข้าใจ observationCardinalityNext ว่าเป็น observationCardinality ที่บันทึกข้อมูลแล้ว
  • เข้าใจข้อมูลที่ประมาณค่าหรือคำนวณเสมือนว่าเป็นธุรกรรมจริง
  • ปัด tick เฉลี่ยติดลบเข้าหาศูนย์แทนที่จะไปทางลบอนันต์
  • แปลง tick ช่วงจำนวนเต็ม ค่าล้น หรือปัดราคาอ้างอิงอย่างไม่ปลอดภัย
  • สภาพคล่องที่ใช้งานในช่วงหรือสภาพคล่องฮาร์มอนิกบางเกินไปเมื่อเทียบกับความเสี่ยงที่ป้องกัน
  • ไม่มี ถอนออก หรือไม่พิจารณาความลึกช่วงกว้างในการวิเคราะห์การบิดเบือน
  • สภาพคล่องกระจายระหว่างพูล ระดับค่าธรรมเนียม เชน หรือตลาดที่มีความสัมพันธ์กัน
  • หน้าต่างสั้นยังไวต่อการบิดเบือนหนึ่งบล็อก แบบอะตอม หรือชั่วคราว
  • หน้าต่างยาวล่าช้าจากการกำหนดราคาใหม่ การหลุดตรึง หรือการย้ายสภาพคล่องจริง
  • ผู้เสนอหลายบล็อก ซีเควนเซอร์ การปิดกั้น ความแออัด MEV หรือการจัดระเบียบเชนใหม่ลดการแก้ราคาหรือเพิ่มการควบคุม
  • ถือว่า TWAP เป็นมูลค่ายุติธรรมที่สดใหม่หรือราคาซื้อขายได้ทุกขนาดโดยไม่ตรวจความเบี่ยงเบนและความลึก
  • ความเสี่ยงของผู้ใช้ข้อมูลสูงกว่าต้นทุนบิดเบือน ขณะที่แหล่งสำรอง กลไกตัดวงจร การหยุด การชำระบัญชี หรือการกู้คืนไม่ปลอดภัย

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

  • “TWAP หมายถึงค่าเฉลี่ยเลขคณิตของราคาเสมอ” v3 เฉลี่ย tick จึงได้ราคาเปรียบเทียบเฉลี่ยเรขาคณิต
  • “ราคาอ้างอิงด้านกลับเท่ากับหนึ่งหารด้วย TWAP ด้านไปเสมอ” สมมาตรนี้ใช้ไม่ได้กับราคาเชิงเส้นที่เฉลี่ยแยกกัน
  • “หน้าต่างยาวขึ้นทำให้บิดเบือนไม่ได้” หน้าต่างดังกล่าวแลกความไวต่อการบิดเบือนช่วงสั้นกับความล่าช้า และยังได้รับผลจากการควบคุมต่อเนื่องหรือสภาพคล่องอ่อนแอ
  • “การเพิ่มจำนวนช่องสร้างประวัติเพิ่มทันที” เป็นเพียงการเพิ่มความจุในอนาคต ข้อมูลสังเกตต้องเริ่มบันทึกภายหลัง
  • “การอ่านออราเคิลล่าสุดสำเร็จพิสูจน์มูลค่าตลาดที่ยุติธรรมและซื้อขายได้” ความสำเร็จของอินเทอร์เฟซไม่ได้ยืนยันความใหม่ทางเศรษฐกิจ ความลึก ความเป็นอิสระ หรือความปลอดภัยของความเสี่ยงผู้ใช้ข้อมูล

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

แหล่งข้อมูล

การนำทาง

ค้นหาในวิกิ...