Oracle และการดำเนินการแบบ Front-Running - ซีรีส์งานวิจัยเรื่องมุม ภาค 1

บทความนี้ให้การวิเคราะห์อย่างละเอียดเกี่ยวกับการออรัคเคิลของ Angle Protocol และกลไกป้องกันการกระทำหน้าที่มองเห็นล่วงหน้าในการทำธุรกรรม โดยการรวม Chainlink และ Uniswap V3 TWAP Angle มอบคำแนะนำที่สร้างสรรค์เพื่อป้องกันโปรโตคอลจากการโจมตีที่มองเห็นล่วงหน้าในขณะที่รักษาให้ผู้ใช้ได้รับราคาที่เป็นธุรกรรมที่เป็นธรรม

บทนำ

มุมช่วยให้ผู้ใช้สามารถสร้างและเผา agTokens (stablecoins) เพื่อแลกกับโทเค็นอื่น ๆ ผู้ค้ายังสามารถเปิดตําแหน่งยาวในคู่หลักประกัน / stablecoin ที่มีอยู่ สิ่งเหล่านี้ไม่ใช่สัญญาถาวรแบบดั้งเดิมเนื่องจากความสมดุลไม่ได้ขึ้นอยู่กับอัตราการระดมทุนและราคาดําเนินการมาจากออราเคิลโดยตรง จากกรณีการใช้งานเหล่านี้โปรโตคอลต้องใช้วิธีการที่เชื่อถือได้ในการกําหนดราคาสินทรัพย์ที่มีอยู่เพื่อเสนอราคาที่ยุติธรรมแก่ผู้ใช้ในขณะที่ปกป้องตัวเองจากธุรกรรมที่ดําเนินการอยู่ด้านหน้า ในคําถามที่พบบ่อยของบทความนี้ Samcszun อธิบายว่าเหตุใดจึงไม่ง่ายเหมือนการใช้ราคาสปอต

Front-running has been a long-standing issue in the market. It comes down to certain participants gaining access to information earlier than others, allowing them to leverage this advantage to extract risk-free profits at the expense of the counterparty. Historically, preventing this phenomenon on-chain has been extremely challenging. The high costs and low speed of Ethereum transactions make it difficult for oracles to update prices quickly and frequently. This introduces delays between off-chain and on-chain prices, creating opportunities for front-runners to exploit.

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

Synthetix, ซึ่งทำให้การแลกเปลี่ยนมูลค่าโดยใช้ออรัคเลร์ระหว่างสินทรัพย์เสมือนและหลักประกัน เป็นตัวอย่างที่เหมาะสมของโปรโตคอล stablecoin ที่เผชิญกับความท้าทายในการซื้อขายล่วงหน้า โพสต์บล็อกของพวกเขากำหนดโครงสร้างของโปรโตคอลที่มีประวัติยาวนานกับการซื้อขายล่วงหน้า ซึ่งรวมถึงการโจมตีบางครั้งในอดีตที่พวกเขาเผชิญ

คล้ายกับ Synthetix, Angle ช่วยให้การสลับสินทรัพย์ที่มีค่า oracle ได้โดยไม่มีค่า slip ซึ่งทำให้ Angle เผชิญกับปัญหา front-running เดียวกัน ทีมคอร์ของ Angle ได้ทำความคุ้นเคยในการลดปัญหา front-running อย่างมาก ได้มีการปรับปรุงสำคัญ 2 อย่าง: การออราเคิลที่เฉพาะเจาะจงและโครงสร้างค่าธรรมเนียมที่เปลี่ยนไป ในบทความนี้เราจะอธิบายการออราเคิลของ Angle และเหตุผลที่อยู่เบื้องหลัง

การอัปเดต Oracle การดำเนินการล่วงหน้า: ตัวอย่าง

ก่อนที่จะลงมือทำ Solution ของ Angle ให้ลองพยายามเข้าใจก่อนว่า front-running สามารถทำให้โปรโตคอลเสียหายได้อย่างไร เราจะพิจารณาตัวอย่างที่ ETH ได้รับการยอมรับเป็นหลักทรัพย์เพื่อสนับสนุน stablecoin ของ Angle

ไม่มีค่าธรรมเนียมการทำธุรกรรม

สมมติว่าผู้โจมตีกำลังตรวจสอบราคา ETH นอกเชื่อมคล้องและเห็นว่าออราเคิล Chainlink กำลังจะอัปเดตข้อมูลบนเชื่อมโซ่เป็นราคาที่สูงขึ้น (จาก p0 เป็น p1 โดยที่ p0 < p1) ผู้โจมตีสามารถส่งธุรกรรมเพื่อเผา x stablecoins ในราคา p0 และได้รับ x/p0 มูลค่าของ ETH จากนั้น หลังจากราคาอัปเดตเป็น p1 ผู้โจมตีสามารถขายกลับไปยังโปรโตคอลเพื่อทำกำไร:

เนื่องจากธุรกรรมที่เกิดขึ้นก่อนในการอัปเดตออราเคิลนี้ ส่วนนี้ของกำไรถูกเอาจากสำรองของโปรโตคอล หากเรากำหนด x = 100 ETH และ p1 = 1.01 * p0 (เพิ่มราคา 1%) นี้หมายความว่าผู้โจมตีได้เอา 1 ETH จากสำรองของโปรโตคอล

ด้วยค่าธรรมเนียมการทำธุรกรรม

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

ตัวอย่างเช่น หากค่าธรรมเนียมซื้อขายและการเผาผลาญคงที่และเท่ากับ f, ผู้โจมตีที่เผาผลาญ stablecoins x ที่ p0 แล้วขายกลับให้โปรโตคอลสำหรับ ETH ที่ p1 จะมีกำไรสุทธิดังต่อไปนี้:

เมื่อเทียบกับสถานการณ์ก่อนหน้านี้ ค่าธรรมเนียมจะลดกำไร:

เมื่อค่าธรรมเนียมการทำธุรกรรมคือ f = 0.3% และตามตัวอย่างข้างต้น กำไรของผู้โจมตีตอนนี้เป็นเพียง 0.39 ETH เท่านั้น

ด้วยค่าธรรมเนียมการทำธุรกรรมและสองโซลูชันออรัคเคิล

เพื่อลดโอกาสนี้อย่างมากยิ่งขึ้น พวกเราสามารถพึ่งพาออราเคิลสำรองเพื่อให้มีที่มาของราคาสองแหล่ง คือ pC (ราคา Chainlink) และ pU (ราคา Uniswap) โปรโตคอลสามารถใช้ราคาที่ดีที่สุด (ราคาที่ต่ำที่สุดเมื่อทำการสร้างเหรียญ ตอนซื้อเหรียญของผู้ใช้ และราคาที่สูงที่สุดเมื่อทำการเผาผลาญ เมื่อขาย ETH ให้กับผู้ใช้) ทำให้โอกาสในการทำธุรกรรมล่วงหน้าน้อยลง

นึกภาพถึงนักเทรดเดอร์ที่พยายามหากำไรจากโอกาสเดียวกันกับที่กล่าวถึงข้างต้น โดยสมมติว่า pC0 < pC1

ส่วนอื่น ๆ อีกอย่างเราสามารถพิจารณาได้ว่า pU เป็นคงที่และใกล้ pC0 ดังนั้นเนื่องจากเราจะเห็นภายหลังว่าเนื่องจากการออกแบบราคาเฉลี่ยต่อเวลาของ Uniswap (TWAP) pU มักจะล้าหลัง pC

ในกรณีนี้ ผู้โจมตีที่พยายามหากำไรจากโอกาสที่เป็นไปได้ จะซื้อโทเค็นจากโปรโตคอลที่ pC0 (การเผาเหรียญ stablecoins) และได้รับ x(1-f)/pC0 ในมูลค่าของ ETH จากนั้น จะขายอีกครั้งที่ pU1 ในราคาที่สูงกว่า สิ่งนี้จะทำให้ผู้โจมตีเสีย:

ถ้าเราเก็บตัวเลขจากตัวอย่างไว้ ผู้โจมตีก็จะสูญเสีย 0.6 ETH ในธุรกรรมนี้ในที่สุด

Angle’s Solution

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

ตัวเลือก

โซลูชันออราเคิลหลักที่อาจเหมาะสำหรับกรณีการใช้งานของ Angle คือ:

  • Chain link
  • Uniswap V3 TWAP
  • Maker Feeds

Chainlink เป็นตัวเลือกแรกที่ชัดเจน: เป็นโซลูชัน Oracle แบบกระจายอํานาจที่ใช้กันอย่างแพร่หลายซึ่งมีแหล่งข้อมูลหลายแหล่งที่ครอบคลุมสินทรัพย์ต่างๆ ราคามาจากหลายแหล่งและถ่ายทอดผ่านเครือข่ายแบบกระจายอํานาจทําให้มั่นใจได้ว่าข้อมูลมีความน่าเชื่อถือเข้าถึงได้และยากต่อการจัดการ อย่างไรก็ตาม แหล่งข้อมูลบางแหล่งมักจะอัปเดตหลังจากการเปลี่ยนแปลงราคา "อย่างมีนัยสําคัญ" เท่านั้น (เช่น การเปลี่ยนแปลง ETH/USD 0.5%) หรือหลังจากช่วงเวลาหนึ่ง ซึ่งหมายความว่าราคาของ Chainlink จะล่าช้าเสมอเมื่อเทียบกับราคาตลาดจริง ดังนั้นการอัปเดตราคาของ Chainlink อาจดําเนินการโดยการตรวจสอบราคานอกเครือข่ายหรือ mempool

ราคาเฉลี่ยถ่วงน้ําหนักตามเวลา (TWAP) ของ Uniswap V3 เป็นอีกหนึ่งโซลูชัน Oracle ที่ชัดเจนและใช้กันอย่างแพร่หลาย สามารถสอบถาม TWAP ได้จากสัญญาของ Uniswap เพื่อรับราคาเฉลี่ยถ่วงน้ําหนักตามเวลาของโทเค็นในกลุ่มในช่วงเวลาที่กําหนดตั้งแต่ไม่กี่วินาทีถึง 9 วัน ราคาจะคํานวณตามราคาเฉลี่ยของโทเค็นทั้งสองในกลุ่มในช่วงเวลาที่กําหนด สิ่งนี้ทําให้การจัดการ TWAP ต้องใช้เงินทุนจํานวนมากและระยะเวลานานขึ้นซึ่งไม่มีประสิทธิภาพในกรณีส่วนใหญ่

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

นอกจากนี้ เนื่องจาก TWAP เฉพาะรายงานราคาของคู่สกุลเงิน on-chain เท่านั้น พวกเขาไม่สามารถตอบสนองไปยังวัตถุประสงค์ของโปรโตคอลที่จะให้การเข้าถึงสินทรัพย์ที่ไม่ได้รับการแทนใน on-chain (และด้วยเหตุนี้ไม่ได้อยู่ในสระวัตถุประสงค์ของ Uniswap) เช่น stablecoins ที่มีการสนับสนุนจากตลาดเงินตลาด

การใช้ Maker Oracles อาจเป็นทางเลือกอีกทางสำหรับ Angle แต่นี่จะหมายถึงการเชื่อใจใน MakerDAO และต้องผ่านกระบวนการบริหารเพื่อเข้าถึงข้อมูลราคา แหล่งข้อมูลราคายังจำกัดอยู่ที่ใช้โดย Maker เช่นกัน ซึ่งไม่เพียงพอสำหรับเราเนื่องจากเราต้องการเข้าถึงอัตราแลกเปลี่ยนฟอเร็กซ์

การออกแบบมุม: Chainlink + UniV3 TWAP = 💪

โดยมีจุดประสงค์หลักคือการตัดสินใจที่จะรวม Oracle Chainlink ของ Angle Protocol กับ 10 นาที Uni V3 TWAP ซึ่งทำให้สามารถให้ราคาที่ยุติธรรมที่สุดเท่าที่เป็นไปได้ในเวลาใดก็ได้ พร้อมกันกับการป้องกันโปรโตคอลจากการโจมตีการเทรดด้วยการรองรับ

โดยทั่วไปแล้ว สัญญา Angle จะเปรียบเทียบราคาจากทั้งสองช่องและใช้ราคาที่เข้มงวดที่สุดสำหรับโปรโตคอล ด้วยการออกแบบนี้การ front-running โปรโตคอลก็กลายเป็นซับซ้อนขึ้นเนื่องจากในการใช้ประโยชน์จากอัตราแลกเปลี่ยนของโปรโตคอล ผู้โจมตีจะต้องปรับเปลี่ยนหรือ front-run ทั้งสองออราเคิล

โดยเฉพาะสัญญาของเราจะดึงราคาที่ดีที่สุดสําหรับคู่สินทรัพย์ / stablecoin ที่ผันผวนทั้งหมดระหว่าง Chainlink และ Uniswap และใช้ออราเคิลฟอเร็กซ์ของ Chainlink เพื่อแปลงราคาเป็นสกุลเงินเฟียตที่ต้องการ คู่หลักประกัน/สเตเบิ้ลคอยน์แต่ละคู่จะมีสัญญาออราเคิลเฉพาะพร้อมแหล่งราคาอิสระของตนเอง

มันทำงานอย่างไร?

ตัวอย่างเช่น สมมติว่าผู้ใช้ต้องการซื้อขายคู่สกุลเงิน ETH/agEUR สัญญาของเราจำเป็นต้องดึงราคาสำหรับ ETH/USD และ USD/EUR มา โดยจะเก็บราคาที่ดีที่สุดสำหรับ ETH/USD จาก Chainlink และ 10-minute TWAP จาก ETH/USDC UniV3 pool จากนั้น จะดึงราคา USD/EUR จากตลาดเงินต่างประเทศจาก Chainlink

ตัวอย่าง: Uniswap ETH/USDC TWAP: 1900 ดอลลาร์สหรัฐ (โปรโตคอลสมมติว่า USDC รักษาเงินหลักของมันโดยทั่วไป กล่าวคือ 1 USDC เท่ากับ 1 ดอลลาร์สหรัฐ) Chainlink ราคา ETH: 1850 ดอลลาร์สหรัฐ ราคา USD Chainlink: 1.16 EUR

หากผู้ใช้ต้องการเหรียญ agEUR ในกรณีนี้โปรโตคอลจะใช้ราคา ETH/USD ที่ต่ำกว่า คือ ราคาของ Chainlink ที่ 1850 ดอลลาร์ต่อ ETH ในทางกลับกัน หากผู้ใช้ต้องการเผา agEUR เพื่อ wETH ในสถานการณ์เดียวกัน โปรโตคอลจะใช้ราคาที่สูง คือ Uni's ETH/USDC TWAP ของ 1900 ในทั้งสองกรณี โปรโตคอลจะใช้อัตราการแปลง USD/EUR ของ Chainlink ที่ 1.16 เพื่อแปลง ETH/USD เป็น ETH/EUR

โดยอย่างเดียวกัน โปรโตคอลจะใช้ราคาสูงสุดสำหรับผู้ใช้อยากเปิดสัญญาต่อเนื่อง และใช้ราคาต่ำสุดสำหรับผู้ที่ต้องการปิด

ทั่วไปมากยิ่ง

  1. สัญญาผู้ใช้ที่ต้องการราคาจะเรียกสัญญาออราเคิลที่เกี่ยวข้อง
  2. ขึ้นอยู่กับประเภทของธุรกรรม สัญญาออราเคิลสามารถอ่านราคาจาก UniV3 TWAP และ Chainlink หรือจาก Chainlink เท่านั้น (เช่นสำหรับการแลกเปลี่ยน stablecoin-to-stablecoin) และส่งกลับไปยังสัญญาหลัก
  3. ขึ้นอยู่กับการดำเนินการที่กำลังดำเนินการ (การพิมพ์เหรียญ, การเผาเหรียญ, การเปิด, หรือ การปิด), สัญญาที่เกี่ยวข้องจะรักษาราคาที่ดีที่สุดสำหรับโปรโตคอลและดำเนินการธุรกรรม

การเลือกหน้าต่างเวลา Uni V3 TWAP

สัญญาของ Angle จะใช้หน้าต่างเวลา 10 นาทีสำหรับ TWAP การเลือกนี้ได้รับการพิจารณาอย่างรอบคอบเนื่องจากหน้าต่างเวลาที่แตกต่างกันอาจส่งผลให้เกิดโครงสร้างราคาที่แตกต่างกันอย่างมีนัย

ความแตกต่างระหว่างหน้าต่างเวลา

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

ในทางกลับกันโปรโตคอลยังคงต้องเสนอราคาที่ยุติธรรมและเป็นปัจจุบันแก่ผู้ใช้: การใช้กรอบเวลาที่กว้างเกินไปจะสร้างช่องว่างราคาระหว่างโปรโตคอลและราคาตลาดปัจจุบันมากเกินไปในขณะที่การใช้กรอบเวลาที่แคบเกินไปจะไม่ให้ความแตกต่างของราคาที่ต้องการ

เปรียบเทียบ TWAP 10 นาทีและ 60 นาทีกับ Feed ราคา Chainlink

เพื่อให้คุณเข้าใจว่าทำไมเราเลือกใช้หน้าต่างเวลา 10 นาทีในที่สุด นี่คือการเปรียบเทียบระหว่าง 10 นาทีและ 60 นาที ETH/USDC TWAPs และราคา ETH/USD จาก Chainlink รวมถึงราคาปิดจาก Coinbase

คุณสามารถดูได้ว่าอัตราดอกเบี้ยบนและอัตราดอกเบี้ยล่างที่ใช้โดยโปรโตคอลเมื่อผู้ใช้ทำการเหรียญ/ปิดและเผา/เปิด ที่เคลื่อนไหวระหว่างราคาที่เหมาะสมที่สุดจาก Chainlink และ Uniswap’s TWAP ในระหว่างการเปลี่ยนราคา


แม้ว่าบล็อก TWAP 60 นาที มักจะให้ราคาที่ห่างไกลจากตลาด แต่ TWAP 10 นาที ให้การป้องกันที่ดีสำหรับแหล่งข้อมูลราคา Chainlink โดยทำให้ราคาเป็นพอใกล้ตลาดอย่างเพียงพอ

เป็นที่น่าสังเกตว่าดังที่เห็นในแผนภูมิแรกยิ่งมีความผันผวนมากเท่าไหร่ความแตกต่างของราคาระหว่างราคา Chainlink และ Uniswap ก็จะยิ่งมากขึ้นเท่านั้น ในทางกลับกันเมื่อราคายังคงค่อนข้างคงที่เมื่อเวลาผ่านไปแหล่งที่มาของราคาจาก Uniswap และ Chainlink จะอยู่ใกล้กัน การใช้ TWAP เป็นการป้องกันเพิ่มเติมจากการวิ่งด้านหน้าเป็นวิธีหนึ่งในการเรียกเก็บค่าธรรมเนียมมากขึ้นแบบไดนามิกในช่วงที่มีความผันผวนสูงเนื่องจากความเสี่ยงในการวิ่งด้านหน้ามีมากขึ้นเนื่องจากความล่าช้าใน oracles แบบ on-chain ค่าใช้จ่ายของค่าธรรมเนียมที่มีประสิทธิภาพสูงกว่านี้คือช่วยลดความสามารถของผู้ค้าเก็งกําไรในการ reprice stablecoins โดยตรงจากโปรโตคอล ในกรณีส่วนใหญ่ราคา Uniswap และ Chainlink จะคล้ายกันมากและผู้ใช้แทบจะไม่สังเกตเห็นการใช้โซลูชัน Oracle สองตัว อย่างไรก็ตามในช่วงที่มีความผันผวนสูงเมื่อโปรโตคอลมีความเสี่ยงที่จะทํางานด้านหน้าเนื่องจากความแตกต่างของราคาอย่างมีนัยสําคัญระหว่างราคา Chainlink ในปัจจุบันและอนาคตการกําหนดราคาของโปรโตคอลจะแตกต่างกันเพื่อป้องกันการทํางานด้านหน้า

มุ่งเน้นไปที่การกู้คืนค่าธรรมเนียม Synthetix / การคืนเงิน

การวิจัยของ Oracle ของ Angle ได้รับความกระตุ้นอย่างมากจากการอภิปรายของการปกครองของ Synthetix และบทความที่เกี่ยวข้องเกี่ยวกับการดำเนินการก่อนจองที่แตกรอบ ในการวิจัยของเรา เราก็พบกับตัวเลือกอีกอันหนึ่งที่พวกเขาได้นำมาใช้ในเดือนกุมภาพันธ์ 2020 คือการกู้คืน/คืนเงินค่าธรรมเนียม ซึ่งเป็นทางเลือกชั่วคราวในที่สุด

สิ่งที่พวกเขาทำคือการเพิ่มระยะเวลารอในการทำธุรกรรม ซึ่งในระหว่างนั้นผู้ใช้จะไม่สามารถดัดแปลง Synth ที่ต้องการใช้ได้ ในช่วงเวลานี้ ออรัคเคิลสามารถตรวจสอบว่าทำธุรกรรมได้รับผลกระทบจากความไม่สอดคล้อง โดยเฉพาะว่ามีความแตกต่างของราคาระหว่างเวลาที่ดำเนินการกับสิ้นสุดของระยะเวลารอ หากมีความแตกต่างของราคา ความแตกต่างจะต้องชำระโดยผู้ใช้หรือโปรโตคอลต่อฝ่ายอื่น (โปรโตคอลหรือผู้ใช้) หรือจะถูกชำระในธุรกรรมถัดไปด้วย Synthetix

โซลูชั่นนี้มีประสิทธิภาพมากในการลดการทำธุรกรรมก่อนหน้าแต่พวกเขาต้องขยายระยะเวลารอและเพิ่มค่าธรรมเนียม ซึ่งสร้างประสบการณ์ของผู้ใช้ที่ไม่ดีมากสำหรับนักเทรดทั้งหมด มันยังป้องกัน Synth ไม่ให้รวมระบบกับโปรโตคอลอื่น ๆ ในหลายกรณีการใช้งาน ใน SIP-120 พวกเขาได้แทนที่โซลูชั่นนี้ด้วยแผนที่เพิ่มการใช้งานของออราเคิล TWAP หรือโอราเคิลสำหรับธุรกรรมขนาดใหญ่

สรุป

การออรักเลขของแองเกิลที่เฉพาะเจาะจงมีผลกระทบสองประการต่อโปรโตคอล:

ผู้โจมตีต้องจัดการกับตลาดสองแหล่งเพื่อหลอกโปรโตคอล ลดความเสี่ยงของการทำธุรกรรมฟรอนต์รันที่ประสบความสำเร็จอย่างมีนัย

ในช่วงที่ตลาดตึงเครียดโปรโตคอลไม่น่าจะเสนอราคาที่ดีที่สุดให้กับผู้ใช้

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

เป้าหมายของโครงการ Angle คือการออกแบบโปรโตคอลสกุลเงินคงที่ที่มีการสนับสนุนอย่างเต็มที่และมีประสิทธิภาพ การบรรลุเป้าหมายนี้ต้องพิจารณาดูถึงด้านหลายด้านของโปรโตคอลเพื่อให้แน่ใจว่ามันจะไม่ถูกหลอกลวงให้เข้าสู่สถานการณ์ที่ไม่เป็นที่พอใจ ซึ่งหนึ่งในนั้นคือการต้านการทำหน้าหน้า สิ่งนี้สำคัญอย่างยิ่งเพราะความมั่นคงของ stablecoins แบบ on-chain ที่จะพึ่งพาที่จะพึ่งพาต่อ oracles ขึ้นอยู่กับคุณภาพของ oracles ของพวกเขา

การเพิ่มฟีดราคารองที่เป็นรูปแบบของ TWAP สามารถช่วยให้โปรโตคอลล์ลดผลกระทบที่เป็นไปได้จากความผันผวนของตลาดสูงและโอกาสในการ front-running ที่เกิดขึ้นในช่วงเวลาเหล่านั้น

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

ข้อความปฏิเสธความรับผิดชอบ:

  1. บทความนี้ถูกพิมพ์ใหม่จาก [ ชุมชน Denglink]. All copyrights belong to the original author [มุม]. หากมีข้อขัดแย้งใด ๆ เกี่ยวกับการพิมพ์ฉีดนี้ โปรดติดต่อGate Learnทีม และพวกเขาจะดำเนินการโดยเร็ว
  2. คำประกาศความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใด ๆ
  3. การแปลบทความเป็นภาษาอื่นๆ ถูกดำเนินการโดยทีม Gate Learn หากไม่ได้ระบุไว้ การคัดลอก การแจกจ่าย หรือการลอกเลียนบทความที่ถูกแปลนั้นถือเป็นการละเมิด

แชร์

Oracle และการดำเนินการแบบ Front-Running - ซีรีส์งานวิจัยเรื่องมุม ภาค 1

กลาง2/20/2025, 5:32:13 AM
บทความนี้ให้การวิเคราะห์อย่างละเอียดเกี่ยวกับการออรัคเคิลของ Angle Protocol และกลไกป้องกันการกระทำหน้าที่มองเห็นล่วงหน้าในการทำธุรกรรม โดยการรวม Chainlink และ Uniswap V3 TWAP Angle มอบคำแนะนำที่สร้างสรรค์เพื่อป้องกันโปรโตคอลจากการโจมตีที่มองเห็นล่วงหน้าในขณะที่รักษาให้ผู้ใช้ได้รับราคาที่เป็นธุรกรรมที่เป็นธรรม

บทนำ

มุมช่วยให้ผู้ใช้สามารถสร้างและเผา agTokens (stablecoins) เพื่อแลกกับโทเค็นอื่น ๆ ผู้ค้ายังสามารถเปิดตําแหน่งยาวในคู่หลักประกัน / stablecoin ที่มีอยู่ สิ่งเหล่านี้ไม่ใช่สัญญาถาวรแบบดั้งเดิมเนื่องจากความสมดุลไม่ได้ขึ้นอยู่กับอัตราการระดมทุนและราคาดําเนินการมาจากออราเคิลโดยตรง จากกรณีการใช้งานเหล่านี้โปรโตคอลต้องใช้วิธีการที่เชื่อถือได้ในการกําหนดราคาสินทรัพย์ที่มีอยู่เพื่อเสนอราคาที่ยุติธรรมแก่ผู้ใช้ในขณะที่ปกป้องตัวเองจากธุรกรรมที่ดําเนินการอยู่ด้านหน้า ในคําถามที่พบบ่อยของบทความนี้ Samcszun อธิบายว่าเหตุใดจึงไม่ง่ายเหมือนการใช้ราคาสปอต

Front-running has been a long-standing issue in the market. It comes down to certain participants gaining access to information earlier than others, allowing them to leverage this advantage to extract risk-free profits at the expense of the counterparty. Historically, preventing this phenomenon on-chain has been extremely challenging. The high costs and low speed of Ethereum transactions make it difficult for oracles to update prices quickly and frequently. This introduces delays between off-chain and on-chain prices, creating opportunities for front-runners to exploit.

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

Synthetix, ซึ่งทำให้การแลกเปลี่ยนมูลค่าโดยใช้ออรัคเลร์ระหว่างสินทรัพย์เสมือนและหลักประกัน เป็นตัวอย่างที่เหมาะสมของโปรโตคอล stablecoin ที่เผชิญกับความท้าทายในการซื้อขายล่วงหน้า โพสต์บล็อกของพวกเขากำหนดโครงสร้างของโปรโตคอลที่มีประวัติยาวนานกับการซื้อขายล่วงหน้า ซึ่งรวมถึงการโจมตีบางครั้งในอดีตที่พวกเขาเผชิญ

คล้ายกับ Synthetix, Angle ช่วยให้การสลับสินทรัพย์ที่มีค่า oracle ได้โดยไม่มีค่า slip ซึ่งทำให้ Angle เผชิญกับปัญหา front-running เดียวกัน ทีมคอร์ของ Angle ได้ทำความคุ้นเคยในการลดปัญหา front-running อย่างมาก ได้มีการปรับปรุงสำคัญ 2 อย่าง: การออราเคิลที่เฉพาะเจาะจงและโครงสร้างค่าธรรมเนียมที่เปลี่ยนไป ในบทความนี้เราจะอธิบายการออราเคิลของ Angle และเหตุผลที่อยู่เบื้องหลัง

การอัปเดต Oracle การดำเนินการล่วงหน้า: ตัวอย่าง

ก่อนที่จะลงมือทำ Solution ของ Angle ให้ลองพยายามเข้าใจก่อนว่า front-running สามารถทำให้โปรโตคอลเสียหายได้อย่างไร เราจะพิจารณาตัวอย่างที่ ETH ได้รับการยอมรับเป็นหลักทรัพย์เพื่อสนับสนุน stablecoin ของ Angle

ไม่มีค่าธรรมเนียมการทำธุรกรรม

สมมติว่าผู้โจมตีกำลังตรวจสอบราคา ETH นอกเชื่อมคล้องและเห็นว่าออราเคิล Chainlink กำลังจะอัปเดตข้อมูลบนเชื่อมโซ่เป็นราคาที่สูงขึ้น (จาก p0 เป็น p1 โดยที่ p0 < p1) ผู้โจมตีสามารถส่งธุรกรรมเพื่อเผา x stablecoins ในราคา p0 และได้รับ x/p0 มูลค่าของ ETH จากนั้น หลังจากราคาอัปเดตเป็น p1 ผู้โจมตีสามารถขายกลับไปยังโปรโตคอลเพื่อทำกำไร:

เนื่องจากธุรกรรมที่เกิดขึ้นก่อนในการอัปเดตออราเคิลนี้ ส่วนนี้ของกำไรถูกเอาจากสำรองของโปรโตคอล หากเรากำหนด x = 100 ETH และ p1 = 1.01 * p0 (เพิ่มราคา 1%) นี้หมายความว่าผู้โจมตีได้เอา 1 ETH จากสำรองของโปรโตคอล

ด้วยค่าธรรมเนียมการทำธุรกรรม

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

ตัวอย่างเช่น หากค่าธรรมเนียมซื้อขายและการเผาผลาญคงที่และเท่ากับ f, ผู้โจมตีที่เผาผลาญ stablecoins x ที่ p0 แล้วขายกลับให้โปรโตคอลสำหรับ ETH ที่ p1 จะมีกำไรสุทธิดังต่อไปนี้:

เมื่อเทียบกับสถานการณ์ก่อนหน้านี้ ค่าธรรมเนียมจะลดกำไร:

เมื่อค่าธรรมเนียมการทำธุรกรรมคือ f = 0.3% และตามตัวอย่างข้างต้น กำไรของผู้โจมตีตอนนี้เป็นเพียง 0.39 ETH เท่านั้น

ด้วยค่าธรรมเนียมการทำธุรกรรมและสองโซลูชันออรัคเคิล

เพื่อลดโอกาสนี้อย่างมากยิ่งขึ้น พวกเราสามารถพึ่งพาออราเคิลสำรองเพื่อให้มีที่มาของราคาสองแหล่ง คือ pC (ราคา Chainlink) และ pU (ราคา Uniswap) โปรโตคอลสามารถใช้ราคาที่ดีที่สุด (ราคาที่ต่ำที่สุดเมื่อทำการสร้างเหรียญ ตอนซื้อเหรียญของผู้ใช้ และราคาที่สูงที่สุดเมื่อทำการเผาผลาญ เมื่อขาย ETH ให้กับผู้ใช้) ทำให้โอกาสในการทำธุรกรรมล่วงหน้าน้อยลง

นึกภาพถึงนักเทรดเดอร์ที่พยายามหากำไรจากโอกาสเดียวกันกับที่กล่าวถึงข้างต้น โดยสมมติว่า pC0 < pC1

ส่วนอื่น ๆ อีกอย่างเราสามารถพิจารณาได้ว่า pU เป็นคงที่และใกล้ pC0 ดังนั้นเนื่องจากเราจะเห็นภายหลังว่าเนื่องจากการออกแบบราคาเฉลี่ยต่อเวลาของ Uniswap (TWAP) pU มักจะล้าหลัง pC

ในกรณีนี้ ผู้โจมตีที่พยายามหากำไรจากโอกาสที่เป็นไปได้ จะซื้อโทเค็นจากโปรโตคอลที่ pC0 (การเผาเหรียญ stablecoins) และได้รับ x(1-f)/pC0 ในมูลค่าของ ETH จากนั้น จะขายอีกครั้งที่ pU1 ในราคาที่สูงกว่า สิ่งนี้จะทำให้ผู้โจมตีเสีย:

ถ้าเราเก็บตัวเลขจากตัวอย่างไว้ ผู้โจมตีก็จะสูญเสีย 0.6 ETH ในธุรกรรมนี้ในที่สุด

Angle’s Solution

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

ตัวเลือก

โซลูชันออราเคิลหลักที่อาจเหมาะสำหรับกรณีการใช้งานของ Angle คือ:

  • Chain link
  • Uniswap V3 TWAP
  • Maker Feeds

Chainlink เป็นตัวเลือกแรกที่ชัดเจน: เป็นโซลูชัน Oracle แบบกระจายอํานาจที่ใช้กันอย่างแพร่หลายซึ่งมีแหล่งข้อมูลหลายแหล่งที่ครอบคลุมสินทรัพย์ต่างๆ ราคามาจากหลายแหล่งและถ่ายทอดผ่านเครือข่ายแบบกระจายอํานาจทําให้มั่นใจได้ว่าข้อมูลมีความน่าเชื่อถือเข้าถึงได้และยากต่อการจัดการ อย่างไรก็ตาม แหล่งข้อมูลบางแหล่งมักจะอัปเดตหลังจากการเปลี่ยนแปลงราคา "อย่างมีนัยสําคัญ" เท่านั้น (เช่น การเปลี่ยนแปลง ETH/USD 0.5%) หรือหลังจากช่วงเวลาหนึ่ง ซึ่งหมายความว่าราคาของ Chainlink จะล่าช้าเสมอเมื่อเทียบกับราคาตลาดจริง ดังนั้นการอัปเดตราคาของ Chainlink อาจดําเนินการโดยการตรวจสอบราคานอกเครือข่ายหรือ mempool

ราคาเฉลี่ยถ่วงน้ําหนักตามเวลา (TWAP) ของ Uniswap V3 เป็นอีกหนึ่งโซลูชัน Oracle ที่ชัดเจนและใช้กันอย่างแพร่หลาย สามารถสอบถาม TWAP ได้จากสัญญาของ Uniswap เพื่อรับราคาเฉลี่ยถ่วงน้ําหนักตามเวลาของโทเค็นในกลุ่มในช่วงเวลาที่กําหนดตั้งแต่ไม่กี่วินาทีถึง 9 วัน ราคาจะคํานวณตามราคาเฉลี่ยของโทเค็นทั้งสองในกลุ่มในช่วงเวลาที่กําหนด สิ่งนี้ทําให้การจัดการ TWAP ต้องใช้เงินทุนจํานวนมากและระยะเวลานานขึ้นซึ่งไม่มีประสิทธิภาพในกรณีส่วนใหญ่

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

นอกจากนี้ เนื่องจาก TWAP เฉพาะรายงานราคาของคู่สกุลเงิน on-chain เท่านั้น พวกเขาไม่สามารถตอบสนองไปยังวัตถุประสงค์ของโปรโตคอลที่จะให้การเข้าถึงสินทรัพย์ที่ไม่ได้รับการแทนใน on-chain (และด้วยเหตุนี้ไม่ได้อยู่ในสระวัตถุประสงค์ของ Uniswap) เช่น stablecoins ที่มีการสนับสนุนจากตลาดเงินตลาด

การใช้ Maker Oracles อาจเป็นทางเลือกอีกทางสำหรับ Angle แต่นี่จะหมายถึงการเชื่อใจใน MakerDAO และต้องผ่านกระบวนการบริหารเพื่อเข้าถึงข้อมูลราคา แหล่งข้อมูลราคายังจำกัดอยู่ที่ใช้โดย Maker เช่นกัน ซึ่งไม่เพียงพอสำหรับเราเนื่องจากเราต้องการเข้าถึงอัตราแลกเปลี่ยนฟอเร็กซ์

การออกแบบมุม: Chainlink + UniV3 TWAP = 💪

โดยมีจุดประสงค์หลักคือการตัดสินใจที่จะรวม Oracle Chainlink ของ Angle Protocol กับ 10 นาที Uni V3 TWAP ซึ่งทำให้สามารถให้ราคาที่ยุติธรรมที่สุดเท่าที่เป็นไปได้ในเวลาใดก็ได้ พร้อมกันกับการป้องกันโปรโตคอลจากการโจมตีการเทรดด้วยการรองรับ

โดยทั่วไปแล้ว สัญญา Angle จะเปรียบเทียบราคาจากทั้งสองช่องและใช้ราคาที่เข้มงวดที่สุดสำหรับโปรโตคอล ด้วยการออกแบบนี้การ front-running โปรโตคอลก็กลายเป็นซับซ้อนขึ้นเนื่องจากในการใช้ประโยชน์จากอัตราแลกเปลี่ยนของโปรโตคอล ผู้โจมตีจะต้องปรับเปลี่ยนหรือ front-run ทั้งสองออราเคิล

โดยเฉพาะสัญญาของเราจะดึงราคาที่ดีที่สุดสําหรับคู่สินทรัพย์ / stablecoin ที่ผันผวนทั้งหมดระหว่าง Chainlink และ Uniswap และใช้ออราเคิลฟอเร็กซ์ของ Chainlink เพื่อแปลงราคาเป็นสกุลเงินเฟียตที่ต้องการ คู่หลักประกัน/สเตเบิ้ลคอยน์แต่ละคู่จะมีสัญญาออราเคิลเฉพาะพร้อมแหล่งราคาอิสระของตนเอง

มันทำงานอย่างไร?

ตัวอย่างเช่น สมมติว่าผู้ใช้ต้องการซื้อขายคู่สกุลเงิน ETH/agEUR สัญญาของเราจำเป็นต้องดึงราคาสำหรับ ETH/USD และ USD/EUR มา โดยจะเก็บราคาที่ดีที่สุดสำหรับ ETH/USD จาก Chainlink และ 10-minute TWAP จาก ETH/USDC UniV3 pool จากนั้น จะดึงราคา USD/EUR จากตลาดเงินต่างประเทศจาก Chainlink

ตัวอย่าง: Uniswap ETH/USDC TWAP: 1900 ดอลลาร์สหรัฐ (โปรโตคอลสมมติว่า USDC รักษาเงินหลักของมันโดยทั่วไป กล่าวคือ 1 USDC เท่ากับ 1 ดอลลาร์สหรัฐ) Chainlink ราคา ETH: 1850 ดอลลาร์สหรัฐ ราคา USD Chainlink: 1.16 EUR

หากผู้ใช้ต้องการเหรียญ agEUR ในกรณีนี้โปรโตคอลจะใช้ราคา ETH/USD ที่ต่ำกว่า คือ ราคาของ Chainlink ที่ 1850 ดอลลาร์ต่อ ETH ในทางกลับกัน หากผู้ใช้ต้องการเผา agEUR เพื่อ wETH ในสถานการณ์เดียวกัน โปรโตคอลจะใช้ราคาที่สูง คือ Uni's ETH/USDC TWAP ของ 1900 ในทั้งสองกรณี โปรโตคอลจะใช้อัตราการแปลง USD/EUR ของ Chainlink ที่ 1.16 เพื่อแปลง ETH/USD เป็น ETH/EUR

โดยอย่างเดียวกัน โปรโตคอลจะใช้ราคาสูงสุดสำหรับผู้ใช้อยากเปิดสัญญาต่อเนื่อง และใช้ราคาต่ำสุดสำหรับผู้ที่ต้องการปิด

ทั่วไปมากยิ่ง

  1. สัญญาผู้ใช้ที่ต้องการราคาจะเรียกสัญญาออราเคิลที่เกี่ยวข้อง
  2. ขึ้นอยู่กับประเภทของธุรกรรม สัญญาออราเคิลสามารถอ่านราคาจาก UniV3 TWAP และ Chainlink หรือจาก Chainlink เท่านั้น (เช่นสำหรับการแลกเปลี่ยน stablecoin-to-stablecoin) และส่งกลับไปยังสัญญาหลัก
  3. ขึ้นอยู่กับการดำเนินการที่กำลังดำเนินการ (การพิมพ์เหรียญ, การเผาเหรียญ, การเปิด, หรือ การปิด), สัญญาที่เกี่ยวข้องจะรักษาราคาที่ดีที่สุดสำหรับโปรโตคอลและดำเนินการธุรกรรม

การเลือกหน้าต่างเวลา Uni V3 TWAP

สัญญาของ Angle จะใช้หน้าต่างเวลา 10 นาทีสำหรับ TWAP การเลือกนี้ได้รับการพิจารณาอย่างรอบคอบเนื่องจากหน้าต่างเวลาที่แตกต่างกันอาจส่งผลให้เกิดโครงสร้างราคาที่แตกต่างกันอย่างมีนัย

ความแตกต่างระหว่างหน้าต่างเวลา

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

ในทางกลับกันโปรโตคอลยังคงต้องเสนอราคาที่ยุติธรรมและเป็นปัจจุบันแก่ผู้ใช้: การใช้กรอบเวลาที่กว้างเกินไปจะสร้างช่องว่างราคาระหว่างโปรโตคอลและราคาตลาดปัจจุบันมากเกินไปในขณะที่การใช้กรอบเวลาที่แคบเกินไปจะไม่ให้ความแตกต่างของราคาที่ต้องการ

เปรียบเทียบ TWAP 10 นาทีและ 60 นาทีกับ Feed ราคา Chainlink

เพื่อให้คุณเข้าใจว่าทำไมเราเลือกใช้หน้าต่างเวลา 10 นาทีในที่สุด นี่คือการเปรียบเทียบระหว่าง 10 นาทีและ 60 นาที ETH/USDC TWAPs และราคา ETH/USD จาก Chainlink รวมถึงราคาปิดจาก Coinbase

คุณสามารถดูได้ว่าอัตราดอกเบี้ยบนและอัตราดอกเบี้ยล่างที่ใช้โดยโปรโตคอลเมื่อผู้ใช้ทำการเหรียญ/ปิดและเผา/เปิด ที่เคลื่อนไหวระหว่างราคาที่เหมาะสมที่สุดจาก Chainlink และ Uniswap’s TWAP ในระหว่างการเปลี่ยนราคา


แม้ว่าบล็อก TWAP 60 นาที มักจะให้ราคาที่ห่างไกลจากตลาด แต่ TWAP 10 นาที ให้การป้องกันที่ดีสำหรับแหล่งข้อมูลราคา Chainlink โดยทำให้ราคาเป็นพอใกล้ตลาดอย่างเพียงพอ

เป็นที่น่าสังเกตว่าดังที่เห็นในแผนภูมิแรกยิ่งมีความผันผวนมากเท่าไหร่ความแตกต่างของราคาระหว่างราคา Chainlink และ Uniswap ก็จะยิ่งมากขึ้นเท่านั้น ในทางกลับกันเมื่อราคายังคงค่อนข้างคงที่เมื่อเวลาผ่านไปแหล่งที่มาของราคาจาก Uniswap และ Chainlink จะอยู่ใกล้กัน การใช้ TWAP เป็นการป้องกันเพิ่มเติมจากการวิ่งด้านหน้าเป็นวิธีหนึ่งในการเรียกเก็บค่าธรรมเนียมมากขึ้นแบบไดนามิกในช่วงที่มีความผันผวนสูงเนื่องจากความเสี่ยงในการวิ่งด้านหน้ามีมากขึ้นเนื่องจากความล่าช้าใน oracles แบบ on-chain ค่าใช้จ่ายของค่าธรรมเนียมที่มีประสิทธิภาพสูงกว่านี้คือช่วยลดความสามารถของผู้ค้าเก็งกําไรในการ reprice stablecoins โดยตรงจากโปรโตคอล ในกรณีส่วนใหญ่ราคา Uniswap และ Chainlink จะคล้ายกันมากและผู้ใช้แทบจะไม่สังเกตเห็นการใช้โซลูชัน Oracle สองตัว อย่างไรก็ตามในช่วงที่มีความผันผวนสูงเมื่อโปรโตคอลมีความเสี่ยงที่จะทํางานด้านหน้าเนื่องจากความแตกต่างของราคาอย่างมีนัยสําคัญระหว่างราคา Chainlink ในปัจจุบันและอนาคตการกําหนดราคาของโปรโตคอลจะแตกต่างกันเพื่อป้องกันการทํางานด้านหน้า

มุ่งเน้นไปที่การกู้คืนค่าธรรมเนียม Synthetix / การคืนเงิน

การวิจัยของ Oracle ของ Angle ได้รับความกระตุ้นอย่างมากจากการอภิปรายของการปกครองของ Synthetix และบทความที่เกี่ยวข้องเกี่ยวกับการดำเนินการก่อนจองที่แตกรอบ ในการวิจัยของเรา เราก็พบกับตัวเลือกอีกอันหนึ่งที่พวกเขาได้นำมาใช้ในเดือนกุมภาพันธ์ 2020 คือการกู้คืน/คืนเงินค่าธรรมเนียม ซึ่งเป็นทางเลือกชั่วคราวในที่สุด

สิ่งที่พวกเขาทำคือการเพิ่มระยะเวลารอในการทำธุรกรรม ซึ่งในระหว่างนั้นผู้ใช้จะไม่สามารถดัดแปลง Synth ที่ต้องการใช้ได้ ในช่วงเวลานี้ ออรัคเคิลสามารถตรวจสอบว่าทำธุรกรรมได้รับผลกระทบจากความไม่สอดคล้อง โดยเฉพาะว่ามีความแตกต่างของราคาระหว่างเวลาที่ดำเนินการกับสิ้นสุดของระยะเวลารอ หากมีความแตกต่างของราคา ความแตกต่างจะต้องชำระโดยผู้ใช้หรือโปรโตคอลต่อฝ่ายอื่น (โปรโตคอลหรือผู้ใช้) หรือจะถูกชำระในธุรกรรมถัดไปด้วย Synthetix

โซลูชั่นนี้มีประสิทธิภาพมากในการลดการทำธุรกรรมก่อนหน้าแต่พวกเขาต้องขยายระยะเวลารอและเพิ่มค่าธรรมเนียม ซึ่งสร้างประสบการณ์ของผู้ใช้ที่ไม่ดีมากสำหรับนักเทรดทั้งหมด มันยังป้องกัน Synth ไม่ให้รวมระบบกับโปรโตคอลอื่น ๆ ในหลายกรณีการใช้งาน ใน SIP-120 พวกเขาได้แทนที่โซลูชั่นนี้ด้วยแผนที่เพิ่มการใช้งานของออราเคิล TWAP หรือโอราเคิลสำหรับธุรกรรมขนาดใหญ่

สรุป

การออรักเลขของแองเกิลที่เฉพาะเจาะจงมีผลกระทบสองประการต่อโปรโตคอล:

ผู้โจมตีต้องจัดการกับตลาดสองแหล่งเพื่อหลอกโปรโตคอล ลดความเสี่ยงของการทำธุรกรรมฟรอนต์รันที่ประสบความสำเร็จอย่างมีนัย

ในช่วงที่ตลาดตึงเครียดโปรโตคอลไม่น่าจะเสนอราคาที่ดีที่สุดให้กับผู้ใช้

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

เป้าหมายของโครงการ Angle คือการออกแบบโปรโตคอลสกุลเงินคงที่ที่มีการสนับสนุนอย่างเต็มที่และมีประสิทธิภาพ การบรรลุเป้าหมายนี้ต้องพิจารณาดูถึงด้านหลายด้านของโปรโตคอลเพื่อให้แน่ใจว่ามันจะไม่ถูกหลอกลวงให้เข้าสู่สถานการณ์ที่ไม่เป็นที่พอใจ ซึ่งหนึ่งในนั้นคือการต้านการทำหน้าหน้า สิ่งนี้สำคัญอย่างยิ่งเพราะความมั่นคงของ stablecoins แบบ on-chain ที่จะพึ่งพาที่จะพึ่งพาต่อ oracles ขึ้นอยู่กับคุณภาพของ oracles ของพวกเขา

การเพิ่มฟีดราคารองที่เป็นรูปแบบของ TWAP สามารถช่วยให้โปรโตคอลล์ลดผลกระทบที่เป็นไปได้จากความผันผวนของตลาดสูงและโอกาสในการ front-running ที่เกิดขึ้นในช่วงเวลาเหล่านั้น

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

ข้อความปฏิเสธความรับผิดชอบ:

  1. บทความนี้ถูกพิมพ์ใหม่จาก [ ชุมชน Denglink]. All copyrights belong to the original author [มุม]. หากมีข้อขัดแย้งใด ๆ เกี่ยวกับการพิมพ์ฉีดนี้ โปรดติดต่อGate Learnทีม และพวกเขาจะดำเนินการโดยเร็ว
  2. คำประกาศความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนเท่านั้น และไม่เป็นการให้คำแนะนำในการลงทุนใด ๆ
  3. การแปลบทความเป็นภาษาอื่นๆ ถูกดำเนินการโดยทีม Gate Learn หากไม่ได้ระบุไว้ การคัดลอก การแจกจ่าย หรือการลอกเลียนบทความที่ถูกแปลนั้นถือเป็นการละเมิด
เริ่มตอนนี้
สมัครและรับรางวัล
$100
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.