มุมช่วยให้ผู้ใช้สามารถสร้างและเผา 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 และเหตุผลที่อยู่เบื้องหลัง
ก่อนที่จะลงมือทำ 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 มุ่งเน้นไปที่การป้องกันความเสี่ยงในการดำเนินการก่อน ดังนั้น โปรโตคอลจะนำเข้ากลไกที่คล้ายกับตัวอย่างที่ถูกพูดถึงข้างต้น ในส่วนนี้ เราจะสำรวจตัวเลือกที่มีอยู่ในปัจจุบันอย่างละเอียดมากขึ้นโดยเน้นที่รายละเอียดของการออกแบบที่เราวางแผนจะนำเข้า และการวิเคราะห์เลือกของหน้าต่างเวลา TWAP ของเรา
โซลูชันออราเคิลหลักที่อาจเหมาะสำหรับกรณีการใช้งานของ Angle คือ:
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 เช่นกัน ซึ่งไม่เพียงพอสำหรับเราเนื่องจากเราต้องการเข้าถึงอัตราแลกเปลี่ยนฟอเร็กซ์
โดยมีจุดประสงค์หลักคือการตัดสินใจที่จะรวม 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
โดยอย่างเดียวกัน โปรโตคอลจะใช้ราคาสูงสุดสำหรับผู้ใช้อยากเปิดสัญญาต่อเนื่อง และใช้ราคาต่ำสุดสำหรับผู้ที่ต้องการปิด
ทั่วไปมากยิ่ง
สัญญาของ 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 ในปัจจุบันและอนาคตการกําหนดราคาของโปรโตคอลจะแตกต่างกันเพื่อป้องกันการทํางานด้านหน้า
การวิจัยของ Oracle ของ Angle ได้รับความกระตุ้นอย่างมากจากการอภิปรายของการปกครองของ Synthetix และบทความที่เกี่ยวข้องเกี่ยวกับการดำเนินการก่อนจองที่แตกรอบ ในการวิจัยของเรา เราก็พบกับตัวเลือกอีกอันหนึ่งที่พวกเขาได้นำมาใช้ในเดือนกุมภาพันธ์ 2020 คือการกู้คืน/คืนเงินค่าธรรมเนียม ซึ่งเป็นทางเลือกชั่วคราวในที่สุด
สิ่งที่พวกเขาทำคือการเพิ่มระยะเวลารอในการทำธุรกรรม ซึ่งในระหว่างนั้นผู้ใช้จะไม่สามารถดัดแปลง Synth ที่ต้องการใช้ได้ ในช่วงเวลานี้ ออรัคเคิลสามารถตรวจสอบว่าทำธุรกรรมได้รับผลกระทบจากความไม่สอดคล้อง โดยเฉพาะว่ามีความแตกต่างของราคาระหว่างเวลาที่ดำเนินการกับสิ้นสุดของระยะเวลารอ หากมีความแตกต่างของราคา ความแตกต่างจะต้องชำระโดยผู้ใช้หรือโปรโตคอลต่อฝ่ายอื่น (โปรโตคอลหรือผู้ใช้) หรือจะถูกชำระในธุรกรรมถัดไปด้วย Synthetix
โซลูชั่นนี้มีประสิทธิภาพมากในการลดการทำธุรกรรมก่อนหน้าแต่พวกเขาต้องขยายระยะเวลารอและเพิ่มค่าธรรมเนียม ซึ่งสร้างประสบการณ์ของผู้ใช้ที่ไม่ดีมากสำหรับนักเทรดทั้งหมด มันยังป้องกัน Synth ไม่ให้รวมระบบกับโปรโตคอลอื่น ๆ ในหลายกรณีการใช้งาน ใน SIP-120 พวกเขาได้แทนที่โซลูชั่นนี้ด้วยแผนที่เพิ่มการใช้งานของออราเคิล TWAP หรือโอราเคิลสำหรับธุรกรรมขนาดใหญ่
การออรักเลขของแองเกิลที่เฉพาะเจาะจงมีผลกระทบสองประการต่อโปรโตคอล:
ผู้โจมตีต้องจัดการกับตลาดสองแหล่งเพื่อหลอกโปรโตคอล ลดความเสี่ยงของการทำธุรกรรมฟรอนต์รันที่ประสบความสำเร็จอย่างมีนัย
ในช่วงที่ตลาดตึงเครียดโปรโตคอลไม่น่าจะเสนอราคาที่ดีที่สุดให้กับผู้ใช้
ผลกระทบของข้อหลังได้ถูกพูดถึงในฟอรั่มการปกครอง Fei โดยเนื่องจากการให้บริการดีที่สุดในการดำเนินการซื้อขายไม่ใช่เป้าหมายหลักของโปรโตคอล เราเชื่อว่าความสำคัญของการต้านการดำเนินการก่อนเสร็จอยู่ในขั้นสำคัญกว่าเพื่อให้มั่นใจในความปลอดภัยของโปรโตคอล ในตลาดรองระหว่างช่วงเวลาที่มีความผันผวนสูง การดำเนินการซื้อขายที่ดีขึ้นจะถูกเสนอ
เป้าหมายของโครงการ Angle คือการออกแบบโปรโตคอลสกุลเงินคงที่ที่มีการสนับสนุนอย่างเต็มที่และมีประสิทธิภาพ การบรรลุเป้าหมายนี้ต้องพิจารณาดูถึงด้านหลายด้านของโปรโตคอลเพื่อให้แน่ใจว่ามันจะไม่ถูกหลอกลวงให้เข้าสู่สถานการณ์ที่ไม่เป็นที่พอใจ ซึ่งหนึ่งในนั้นคือการต้านการทำหน้าหน้า สิ่งนี้สำคัญอย่างยิ่งเพราะความมั่นคงของ stablecoins แบบ on-chain ที่จะพึ่งพาที่จะพึ่งพาต่อ oracles ขึ้นอยู่กับคุณภาพของ oracles ของพวกเขา
การเพิ่มฟีดราคารองที่เป็นรูปแบบของ TWAP สามารถช่วยให้โปรโตคอลล์ลดผลกระทบที่เป็นไปได้จากความผันผวนของตลาดสูงและโอกาสในการ front-running ที่เกิดขึ้นในช่วงเวลาเหล่านั้น
สุดท้าย ควรทราบว่า โซลูชันออรัคเคิลนี้รักษาความยืดหยุ่นและความยืดหยุ่นไว้อย่างสำคัญ ด้วย การประกอบกับมาตรการของ Angle สามารถลงคะแนนและปรับปรุงสัญญาออรัคเคิลได้ตลอดเวลา อย่างไรก็ตาม ออรัคเคิลสามารถสร้างขึ้นสำหรับการส่งข้อมูลราคาใดก็ได้ที่รองรับโดย Chainlink นี่คือระดับขั้นต่ำของการสนับสนุนที่จำเป็นในการบรรลุวิสัยของ 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 และเหตุผลที่อยู่เบื้องหลัง
ก่อนที่จะลงมือทำ 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 มุ่งเน้นไปที่การป้องกันความเสี่ยงในการดำเนินการก่อน ดังนั้น โปรโตคอลจะนำเข้ากลไกที่คล้ายกับตัวอย่างที่ถูกพูดถึงข้างต้น ในส่วนนี้ เราจะสำรวจตัวเลือกที่มีอยู่ในปัจจุบันอย่างละเอียดมากขึ้นโดยเน้นที่รายละเอียดของการออกแบบที่เราวางแผนจะนำเข้า และการวิเคราะห์เลือกของหน้าต่างเวลา TWAP ของเรา
โซลูชันออราเคิลหลักที่อาจเหมาะสำหรับกรณีการใช้งานของ Angle คือ:
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 เช่นกัน ซึ่งไม่เพียงพอสำหรับเราเนื่องจากเราต้องการเข้าถึงอัตราแลกเปลี่ยนฟอเร็กซ์
โดยมีจุดประสงค์หลักคือการตัดสินใจที่จะรวม 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
โดยอย่างเดียวกัน โปรโตคอลจะใช้ราคาสูงสุดสำหรับผู้ใช้อยากเปิดสัญญาต่อเนื่อง และใช้ราคาต่ำสุดสำหรับผู้ที่ต้องการปิด
ทั่วไปมากยิ่ง
สัญญาของ 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 ในปัจจุบันและอนาคตการกําหนดราคาของโปรโตคอลจะแตกต่างกันเพื่อป้องกันการทํางานด้านหน้า
การวิจัยของ Oracle ของ Angle ได้รับความกระตุ้นอย่างมากจากการอภิปรายของการปกครองของ Synthetix และบทความที่เกี่ยวข้องเกี่ยวกับการดำเนินการก่อนจองที่แตกรอบ ในการวิจัยของเรา เราก็พบกับตัวเลือกอีกอันหนึ่งที่พวกเขาได้นำมาใช้ในเดือนกุมภาพันธ์ 2020 คือการกู้คืน/คืนเงินค่าธรรมเนียม ซึ่งเป็นทางเลือกชั่วคราวในที่สุด
สิ่งที่พวกเขาทำคือการเพิ่มระยะเวลารอในการทำธุรกรรม ซึ่งในระหว่างนั้นผู้ใช้จะไม่สามารถดัดแปลง Synth ที่ต้องการใช้ได้ ในช่วงเวลานี้ ออรัคเคิลสามารถตรวจสอบว่าทำธุรกรรมได้รับผลกระทบจากความไม่สอดคล้อง โดยเฉพาะว่ามีความแตกต่างของราคาระหว่างเวลาที่ดำเนินการกับสิ้นสุดของระยะเวลารอ หากมีความแตกต่างของราคา ความแตกต่างจะต้องชำระโดยผู้ใช้หรือโปรโตคอลต่อฝ่ายอื่น (โปรโตคอลหรือผู้ใช้) หรือจะถูกชำระในธุรกรรมถัดไปด้วย Synthetix
โซลูชั่นนี้มีประสิทธิภาพมากในการลดการทำธุรกรรมก่อนหน้าแต่พวกเขาต้องขยายระยะเวลารอและเพิ่มค่าธรรมเนียม ซึ่งสร้างประสบการณ์ของผู้ใช้ที่ไม่ดีมากสำหรับนักเทรดทั้งหมด มันยังป้องกัน Synth ไม่ให้รวมระบบกับโปรโตคอลอื่น ๆ ในหลายกรณีการใช้งาน ใน SIP-120 พวกเขาได้แทนที่โซลูชั่นนี้ด้วยแผนที่เพิ่มการใช้งานของออราเคิล TWAP หรือโอราเคิลสำหรับธุรกรรมขนาดใหญ่
การออรักเลขของแองเกิลที่เฉพาะเจาะจงมีผลกระทบสองประการต่อโปรโตคอล:
ผู้โจมตีต้องจัดการกับตลาดสองแหล่งเพื่อหลอกโปรโตคอล ลดความเสี่ยงของการทำธุรกรรมฟรอนต์รันที่ประสบความสำเร็จอย่างมีนัย
ในช่วงที่ตลาดตึงเครียดโปรโตคอลไม่น่าจะเสนอราคาที่ดีที่สุดให้กับผู้ใช้
ผลกระทบของข้อหลังได้ถูกพูดถึงในฟอรั่มการปกครอง Fei โดยเนื่องจากการให้บริการดีที่สุดในการดำเนินการซื้อขายไม่ใช่เป้าหมายหลักของโปรโตคอล เราเชื่อว่าความสำคัญของการต้านการดำเนินการก่อนเสร็จอยู่ในขั้นสำคัญกว่าเพื่อให้มั่นใจในความปลอดภัยของโปรโตคอล ในตลาดรองระหว่างช่วงเวลาที่มีความผันผวนสูง การดำเนินการซื้อขายที่ดีขึ้นจะถูกเสนอ
เป้าหมายของโครงการ Angle คือการออกแบบโปรโตคอลสกุลเงินคงที่ที่มีการสนับสนุนอย่างเต็มที่และมีประสิทธิภาพ การบรรลุเป้าหมายนี้ต้องพิจารณาดูถึงด้านหลายด้านของโปรโตคอลเพื่อให้แน่ใจว่ามันจะไม่ถูกหลอกลวงให้เข้าสู่สถานการณ์ที่ไม่เป็นที่พอใจ ซึ่งหนึ่งในนั้นคือการต้านการทำหน้าหน้า สิ่งนี้สำคัญอย่างยิ่งเพราะความมั่นคงของ stablecoins แบบ on-chain ที่จะพึ่งพาที่จะพึ่งพาต่อ oracles ขึ้นอยู่กับคุณภาพของ oracles ของพวกเขา
การเพิ่มฟีดราคารองที่เป็นรูปแบบของ TWAP สามารถช่วยให้โปรโตคอลล์ลดผลกระทบที่เป็นไปได้จากความผันผวนของตลาดสูงและโอกาสในการ front-running ที่เกิดขึ้นในช่วงเวลาเหล่านั้น
สุดท้าย ควรทราบว่า โซลูชันออรัคเคิลนี้รักษาความยืดหยุ่นและความยืดหยุ่นไว้อย่างสำคัญ ด้วย การประกอบกับมาตรการของ Angle สามารถลงคะแนนและปรับปรุงสัญญาออรัคเคิลได้ตลอดเวลา อย่างไรก็ตาม ออรัคเคิลสามารถสร้างขึ้นสำหรับการส่งข้อมูลราคาใดก็ได้ที่รองรับโดย Chainlink นี่คือระดับขั้นต่ำของการสนับสนุนที่จำเป็นในการบรรลุวิสัยของ Angle ในการนำสินทรัพย์ทางการเงินไปอยู่บนเชนอย่างมีประสิทธิภาพทางทุน