ประเภทของการโจมตี Oracle ในบล็อกเชน กรณีศึกษา และกลยุทธ์ป้องกันหลายชั้น

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

บทนำ

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

ในฐานะที่เป็นสะพานเชื่อมระหว่างการโต้ตอบข้อมูลแบบ on-chain และ off-chain ออราเคิลมักกลายเป็นเป้าหมายหลักของการโจมตี เมื่อออราเคิลถูกจัดการผู้โจมตีสามารถใช้ประโยชน์จากข้อมูลราคาหรือตลาดที่เป็นเท็จเพื่อดําเนินการโจมตีทางเศรษฐกิจขนาดใหญ่เช่นการจัดการออราเคิลและการโจมตีด้วยเงินกู้แฟลชที่เกิดขึ้นบ่อยครั้งในปี 2021 และ 2022 แม้ภายในปี 2024 ภัยคุกคามนี้ยังคงมีอยู่ตามที่เน้นโดยเหตุการณ์ล่าสุดที่เกี่ยวข้องกับ UwU Lend และ Banana Gun เหตุการณ์เหล่านี้ยังคงเตือนเราว่าคุณภาพและความปลอดภัยของข้อมูล Oracle เป็นตัวกําหนดความสําเร็จหรือความล้มเหลวของโปรโตคอลแต่ละรายการและแบกรับความเสถียรของระบบนิเวศ DeFi ทั้งหมดโดยตรง

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

แนวคิดพื้นฐานของออราเคิล

คำจำกัดความและบทบาทของ Oracles

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

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

เมื่อเข้าใจความหมายและบทบาทพื้นฐานของออราเคิล พวกเราจะสำรวจแบบย่อๆ ประเภทของออราเคิล วิธีการใช้งานและความเสี่ยงด้านความปลอดภัยที่พวกเขาเผชิญหน้า

ประเภทของออรัคเคิล: ระบบที่มีความสำคัญเทียบกับระบบที่มีความสำคัญ

Oracles สามารถแบ่งออกเป็นสองรูปแบบการใช้งาน: แบบรวมศูนย์และกระจายอํานาจ ออราเคิลแบบรวมศูนย์เช่น Oraclize มักจะพึ่งพาแหล่งข้อมูลเดียวเพื่อให้ข้อมูลนอกเครือข่าย พวกเขารวมโซลูชันฮาร์ดแวร์และซอฟต์แวร์โดยใช้ประโยชน์จากเทคโนโลยีเช่น TLSNotary และ Android Proof เพื่อให้มั่นใจในความถูกต้องของข้อมูล ออราเคิลเหล่านี้มีประสิทธิภาพและประสิทธิภาพที่มั่นคง อย่างไรก็ตามการพึ่งพาแหล่งที่เชื่อถือได้เพียงแหล่งเดียวบ่อนทําลายลักษณะการกระจายอํานาจของบล็อกเชนแนะนําคอขวดจุดเดียวและ จํากัด ความสามารถในการปรับขนาดนําเสนอความท้าทายทั้งด้านความปลอดภัยและความสามารถในการขยาย

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

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

หลักการและความเสี่ยงในการดำเนินการของ Oracles

Oracles ที่มีแหล่งข้อมูลที่แตกต่างกัน: Off-Chain และ On-Chain

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

  • ข้อมูล Off-Chain: ความเร็วในการตอบสนองต่อความผันผวนสําหรับข้อมูลนอกเครือข่ายขึ้นอยู่กับลักษณะของแหล่งข้อมูลและกลไกการส่ง ตัวอย่างเช่นข้อมูลราคานอกเครือข่ายจากการแลกเปลี่ยนมักจะได้รับการอัปเดตอย่างรวดเร็ว ถึงกระนั้นข้อมูลนอกเครือข่ายอื่น ๆ (เช่นข้อมูลจากตลาดการเงินแบบดั้งเดิมหรือข้อมูลที่สร้างขึ้นผ่านการคํานวณที่ซับซ้อน) อาจประสบกับความล่าช้า การส่งข้อมูลนอกเครือข่ายมักอาศัยสถาบันที่มีสิทธิพิเศษจํานวนจํากัดในการผลักดันข้อมูลไปยังบล็อกเชน ดังนั้นการสร้างความมั่นใจว่าสถาบันเหล่านี้จะไม่แก้ไขข้อมูลโดยประสงค์ร้ายหรือผลักดันการอัปเดตที่ไม่ถูกต้องภายใต้การข่มขู่เป็นสิ่งสําคัญ การพึ่งพานี้อาจคุกคามความน่าเชื่อถือและการใช้งานข้อมูลบนบล็อกเชนแบบกระจายอํานาจ
  • ข้อมูล On-Chain: ข้อมูล On-chain ไม่ต้องการการเข้าถึงพิเศษและมีการอัปเดตเสมอ ซึ่งมีความสามารถในการทำงานแบบเรียลไทม์ที่แข็งแกร่ง อย่างไรก็ตาม ลักษณะเดียวกันนี้ทำให้มันเป็นเป้าหมายของผู้โจมตีโดยมีความเสี่ยงที่จะส่งผลให้เกิดความเสียหายอย่างร้ายแรง นักพัฒนาสามารถเข้าถึงข้อมูล On-chain ได้ง่ายดายโดยการสอบถามตลาดแบบกระจาย (DEXs) เพื่อคำนวณราคาแบบเรียลไทม์

Oracles On-Chain และ Off-Chain
ตัวเลือกระหว่างแหล่งข้อมูล off-chain และ on-chain ขึ้นอยู่กับข้อกําหนดของโครงการเฉพาะและการแลกเปลี่ยนโดยธรรมชาติของแต่ละวิธี นักพัฒนาซอฟต์แวร์ต้องประเมินและจัดการกับความเสี่ยงที่เกี่ยวข้องอย่างรอบคอบ ความต้องการความสมดุลนี้นําไปสู่การวิจัยอย่างต่อเนื่องเกี่ยวกับวิธีการจัดการข้อมูลที่ปลอดภัยและเชื่อถือได้มากขึ้น ส่วนต่อไปนี้จะตรวจสอบหลักการทํางานของ oracles และช่องโหว่ที่อาจเกิดขึ้น

ตัวอย่างสั้น ๆ ของการพัฒนา Oracle

ส่วนนี้จะนำเสนอสถานการณ์การพัฒนาที่มีความเรียบง่ายเพื่อช่วยให้อ่านเข้าใจว่ามีกรณีการใช้ Oracle ในบล็อกเชนอย่างไร ในการพัฒนาสัญญาอัจฉริยะบล็อกเชนจริงๆ มีหลายวิธีสำหรับสัญญาอัจฉริยะในการเข้าถึงข้อมูลราคาจาก Oracle วิธีทั่วไปรวมถึงการเรียกสัญญา Oracle โดยตรงหรือใช้เทคโนโลยีเช่น Chainlink CCIP (Cross-Chain Interoperability Protocol) ความแตกต่างสำคัญระหว่างวิธีเหล่านี้คือ:

  1. หากแอปพลิเคชันเป้าหมายตั้งอยู่บนบล็อกเชนเดียวกัน นักพัฒนาโดยทั่วไปจะเรียกสัญญาออรัคเลเลติโอไปทำการเรียกข้อมูลราคาแบบเรียลไทม์โดยตรง
  2. สำหรับแอปพลิเคชัน DeFi หลายรายการบล็อกเชน Chainlink CCIP เป็นบ่อนที่ใช้งานได้ส่วนใหญ่ CCIP ให้วิธีการปลอดภัยในการส่งข้อมูลระหว่างบล็อกเชนที่แตกต่างกันในสถานการณ์ cross-chain

ที่นี่เราจะสาธิตการใช้งานโดยการเรียกโดยตรงไปยังสัญญาออรัคเคิล จินตนาการว่าคุณเป็นนักพัฒนาสมาร์ทคอนแทรกเตอร์ในระบบ Ethereum และคุณต้องการเรียกดึงข้อมูลราคา ETH/USD โดยใช้ออรัคเคิลในสัญญาของคุณ ก่อนอื่น คุณจะต้องกำหนดอินเตอร์เฟซเพื่อเชื่อมต่อกับสัญญาออรัคเคิลและเขียนฟังก์ชันเพื่อดึงข้อมูลราคา

ตัวอย่างสัญญาเรียบง่ายนี้แสดงวิธีการPriceConsumer contract retrieves real-time price data and uses it to make decisions. This provides a basic understanding of how smart contracts interact with oracles to access price data. Next, we will analyze the associated risks from two perspectives:

จากมุมมองของสัญญาภายในที่ใช้ออรัคเคิล ผู้โจมตีสามารถใช้ตลาดที่มี Likusi น้อยหรือตลาดขนาดเล็กเพื่อทำให้ราคา ETH/USD ผ่านการทำธุรกรรมขนาดใหญ่และทำให้มีการเปลี่ยนแปลงราคาที่ผิดปกติ เนื่องจากบางออรัคเคิลจะพึ่งพาการรวบรวมข้อมูลจากแพลตฟอร์มการซื้อขายหลายแห่ง การเปลี่ยนแปลงที่ผิดปกติเหล่านี้สามารถแพร่กระจายได้อย่างรวดเร็วไปยังวิธี fetchPrice() ของ PriceConsumer ซึ่งทำให้เกิดการเบิดเบิดราคา สถานการณ์นี้มักเกิดขึ้นเมื่อแหล่งข้อมูลของออรัคเคิลมีความจำกัดมากเกินไปและความเสี่ยงไม่ได้รับการแยกแยะอย่างเพียงพอ ซึ่งทำให้ระบบมีความเป็นอยู่ต่อการจัดการราคา

จากมุมมองของสัญญาภายนอกการวิเคราะห์จําเป็นต้องพิจารณาสถานการณ์การใช้งานที่แตกต่างกัน สมมติว่าสัญญา PriceConsumer ถูกใช้ในแพลตฟอร์มการให้กู้ยืมที่ผู้ใช้สามารถฝาก ETH เป็นหลักประกันเพื่อยืมสินทรัพย์อื่น ๆ ผู้โจมตีใช้เงินกู้แฟลชเพื่อยืมเงินจํานวนมากและฝากเงินเหล่านี้ไว้ใน Automatic Market Makers (AMM) หรือกลุ่มสภาพคล่องอื่น ๆ ชั่วคราว หาก AMM มีความลึกในการซื้อขายต่ําสินทรัพย์เดี่ยวจํานวนมากที่เข้าสู่กลุ่มอย่างรวดเร็วจะทําให้เกิดการลื่นไถลของราคาโดยตรง

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

  1. การขายทรัพย์สินที่ใช้เป็นหลักประกันในโปรโตคอลการให้กู้ยืม: ราคาที่ถูกแก้ไขอาจส่งผลให้เกิดการขายถอนของสินทรัพย์ที่ใช้เป็นหลักประกันบางประการ ผู้โจมตีอาจจะซื้อสินทรัพย์เหล่านี้ในราคาต่ำระหว่างการขายถอนเพื่อแสวงหากำไร
  2. Arbitrage Across Platforms: หากราคาที่ถูกจัดการสร้างความแตกต่างของราคาที่สำคัญระหว่างแพลตฟอร์ม ผู้โจมตีสามารถใช้ช่องโหว่นี้เพื่อดำเนินการซื้อขายอาร์บิทราจที่มีกำไร

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

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

ความเสี่ยงที่เกิดขึ้นโดยตรงและโดยอ้อมโดย Oracles

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

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

มาวิเคราะห์กรณีนี้กัน

โดยพื้นฐานแล้วการบิดเบือนตลาดทําได้โดยการเปลี่ยนแปลงราคาตลาดจริงโดย oracles สะท้อนราคาที่บิดเบือนเหล่านี้อย่างซื่อสัตย์ในขณะที่การโจมตีของ Oracle เกี่ยวข้องกับการรายงานราคาที่ไม่ถูกต้องในขณะที่ราคาตลาดยังคงเป็นปกติ เมื่อเข้าใจความแตกต่างระหว่าง oracles และการจัดการราคาขั้นตอนต่อไปของเราคือการสํารวจความแตกต่างระหว่างการเก็บข้อมูลแบบ on-chain และ off-chain เพื่อทําความเข้าใจเพิ่มเติมว่า oracles ส่งข้อมูลอย่างไร

กรณีการโจมตีที่เกี่ยวข้องกับ Oracle

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

เหตุการณ์การแก้ไขราคาการยืม UwU

ในวันที่ 10 มิถุนายน พ.ศ. 2567 UwU Lend แพลตฟอร์มการให้ยืมสินทรัพย์ดิจิทัลที่มีพื้นฐานบนโซ่ EVM ได้รับการโจมตีซึ่งทำให้เสียประมาณ 19.3 ล้านดอลลาร์ ซึ่งเหตุการณ์นี้เปิดเผยความเสี่ยงที่เป็นไปได้ในกลไก oracle ภายในโปรโตคอล DeFi

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

ผู้โจมตีจัดการราคาตลาดของ sUSDE โดยดําเนินการแลกเปลี่ยนขนาดใหญ่ภายในกลุ่มสภาพคล่อง Curve Finance การกระทํานี้บิดเบือนข้อมูลราคาที่สร้างขึ้นโดย oracle ที่พึ่งพาโดย UwU Lend ใช้ประโยชน์จากมูลค่าที่สูงเกินจริงของ sUSDE ผู้โจมตีใช้เป็นหลักประกันในการดึงสินทรัพย์อื่น ๆ จาก UwU Lend ในที่สุดก็ทําให้สินทรัพย์หมดลงอย่างมีนัยสําคัญสําหรับแพลตฟอร์ม

สาเหตุหลักของเหตุการณ์นี้อยู่ที่การออกแบบ Anti-manipulation ของ Oracle ของ UwU Lend ที่ไม่เพียงพอ ที่สร้างช่องโหว่ให้กับผู้โจมตีที่จะสามารถสร้างผลกระทบต่อราคาตลาด วิกฤตการ์ดของ Oracle และการโจมตีเป้าหมายได้ กรณีนี้เน้นให้เห็นข้อบกพร่องที่เป็นสาเหตุของแพลตฟอร์ม DeFi ทั่วไป - กลไกป้องกันการถูกแก้ไขอย่างไม่เหมาะสมใน Oracle โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมตลาดที่มีความไม่เป็นไปตามธรรมชาติ

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

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

Synthetix Oracle Failure

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

อย่างไรก็ตาม หนึ่งในช่องราคารายงานผิดพลาด อัตราแลกเปลี่ยนเวียดนามวอน (KRW) ที่ 1,000 เท่าของค่าจริง ระบบล้มเหลวในการกรองข้อมูลผิดปกตินี้ ทำให้เกิดการยอมรับและเผยแพร่ราคาที่ไม่ถูกต้องบนเชน หุ้นส่วนการซื้อขายตรวจพบข้อผิดพลาดนี้และดำเนินการซื้อและขายอย่างรวดเร็วในตลาด sKRW สะสมกำไรมากผ่านการอาร์บิเทรจ การค้นพบประการทันทีของทีมให้พวกเขาได้ทำการเจรจากับนักซื้อขายซึ่งส่งกำไรกลับเพื่อของรางวัลการแก้บั๊ก หลีกเลี่ยงการสูญเสียที่อาจเกิน 1 พันล้านเหรียญ

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

มาตรการป้องกัน

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

1. ใช้แหล่งข้อมูลหลายแหล่งเพื่อให้มั่นใจในความถูกต้องของข้อมูล

การวิเคราะห์กรณี: ในเหตุการณ์การแก้ไขราคา UwU Lend ผู้โจมตีได้ควบคุม Oracle ราคา UwU Lend โดยการส่งผลต่อราคาของ sUSDE ในสระน้ำ Curve Finance โดยการใช้ช่องโหว่การแก้ไขราคาผู้โจมตีสามารถสกัดสินทรัพย์ออกจากระบบที่ระบบไม่สามารถประเมินค่าได้อย่างถูกต้อง หาก UwU Lend ใช้แหล่งข้อมูลหลายแหล่งเพื่อกำหนดราคาของ sUSDE ระบบสามารถตรวจสอบราคาผ่านแหล่งข้อมูลอื่น ๆ เพื่อลดความเสี่ยงของการโจมตีลง

การวิเคราะห์เพิ่มเติม: เหตุการณ์นี้เกี่ยวข้องกับการจัดการราคาและปัญหาที่เปิดเผยเกี่ยวกับสภาพคล่องไม่เพียงพอ เมื่อโทเค็นขาดสภาพคล่องของตลาดที่เพียงพอความลึกของการซื้อขายที่ตื้นทําให้ราคาได้รับอิทธิพลจากธุรกรรมจํานวนน้อยซึ่งจะเป็นการเพิ่มช่องโหว่ของ oracle ดังนั้นเมื่อเปิดตัวโทเค็นใหม่ทีมโครงการจะต้องประเมินสภาพคล่องของตลาดอย่างรอบคอบเพื่อป้องกันการบิดเบือนราคาและความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้อง ตัวอย่างเช่นโปรโตคอลการให้กู้ยืมเช่น Aave, Kamino และ Scallop กําหนดข้อ จํากัด ที่เข้มงวดยิ่งขึ้นสําหรับโทเค็นที่มีสภาพคล่องต่ําในการออกแบบเพื่อให้มั่นใจถึงเสถียรภาพและความปลอดภัยของตลาด

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

2. Decentralized Data Aggregators เพื่อให้มั่นใจในความปลอดภัยในการส่งข้อมูล

การวิเคราะห์กรณี: ความล้มเหลวของ Synthetix off-chain oracle เปิดเผยความเสี่ยงของข้อผิดพลาดในแหล่งข้อมูล off-chain ในเหตุการณ์นี้ราคาเกาหลีวอน (KRW) ไม่ถูกต้องได้รับรายงาน ทำให้ bot การซื้อขายสามารถใช้ข้อผิดพลาดเพื่ออาร์บิเทรจ หาก Synthetix ได้ใช้ตัวรวมข้อมูลที่กระจายออกไป แหล่งข้อมูล off-chain อื่น ๆ ก็อาจได้รับการแก้ไขปัญหาได้อย่างรวดเร็ว แม้แหล่งข้อมูล off-chain หนึ่งจะล้มเหลว

วิธีการปรับปรุง: คล้ายกับการปรับปรุงใน Uniswap V3 การใช้ตัวรวมข้อมูลที่กระจายแบบยกระดับสามารถเพิ่มความปลอดภัยของการส่งข้อมูลได้ โดยการใช้โปรโตคอลทางคริปโทและการยืนยันลายเซ็นต์ ร่วมกับโหนดรีเลย์ที่กระจายอย่างยกระดับ ระบบสามารถป้องกันการโจมตีแบบ Man-in-the-Middle และการแก้ไขข้อมูลได้ เช่นเช่นใน Oracle ของ Chainlink แหล่งข้อมูลทุกแห่งจะได้รับการตรวจสอบจากโหนดอิสระหลายๆ แห่งและได้รับการป้องกันด้วยเทคนิคการเข้ารหัสเพื่อให้มั่นใจในความสมบูรณ์และความไม่สามารถแก้ไขของข้อมูลที่ถูกส่ง

4. การออกแบบแบบโมดูลาร์ในสถาปัตยกรรมของแอปพลิเคชันเพื่อลดความเสี่ยงจุดเดียวเดียวของความล้มเหลว

การวิเคราะห์กรณี: เหตุการณ์การโจมตีจํานวนมากเผยให้เห็นข้อบกพร่องในการออกแบบโมดูลาร์ของโปรโตคอล DeFi ซึ่งมักจะขาดกลไกการป้องกันที่เพียงพอ ด้วยการออกแบบและสร้างโมดูลอิสระอย่างรอบคอบเป็นไปได้ที่จะป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่เดียวเพื่อสร้างความเสียหายร้ายแรงต่อระบบทั้งหมด ตัวอย่างเช่นในความล้มเหลวของ Synthetix off-chain oracle หากทีมพัฒนาได้ออกแบบระบบแจ้งเตือนแบบแยกส่วนไว้ล่วงหน้าก็สามารถระบุและแก้ไขข้อมูลที่ผิดปกติได้เร็วขึ้น

วิธีการปรับปรุง: เพื่อเสริมความต้านทานต่อการโจมตี นักพัฒนาสามารถนำโครงสร้างแบบชั้นเยื้องมาใช้ในขั้นตอนการพัฒนา และให้แต่ละโมดูล (แหล่งข้อมูล ตรวจสอบตรรกะ โมดูลการส่งข้อมูล) ทำงานอย่างอิสระ ตัวอย่างเช่น ใน Uniswap V3 การเก็บข้อมูลราคาจากพูลน้ำสารจากพูลน้ำสารที่แตกต่างกันในพูลสังเกตเป็นพูลที่แยกกัน ทำให้โปรโตคอลสามารถเปรียบเทียบราคาข้ามพูลน้ำสารหลาย ๆ แหล่ง ลดความเสี่ยงในการปรับเปลี่ยนในแต่ละพูลได้ ในการพัฒนาที่แต่งตัว วิธีเช่นการห่อหุ้มอินเตอร์เฟสและการฉีดฝังความขึ้นอยู่กับข้อมูล สามารถแยกระบบการตรวจสอบข้อมูลจากตรรกะอื่น ๆ ได้ ทำให้ระบบมีความยืดหยุ่นและสามารถบำรุงรักษาได้

5. กลไกป้องกันที่ปรับตัวในสมาร์ทคอนแทรค

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

การประยุกต์ใช้งานจริง: บางโปรโตคอลของ DeFi ใช้กลไก "threshold alert" เพื่อตรวจจับการเปลี่ยนแปลงราคาที่สำคัญในเวลาจริง หากการเปลี่ยนแปลงราคาเกินค่าเกณฑ์ที่ตั้งไว้ล่วงหน้า ระบบจะเริ่มกระบวนการตรวจสอบเพิ่มเติมหรือเปิดการทำงานใหม่เพื่อป้องกันการถูกจัดการให้เพิ่มขึ้น ตัวอย่างเช่นโปรโตคอล Balancer ใช้เกณฑ์การเบี่ยงเบนราคา หากตรวจพบราคาสูงหรือต่ำเกินไประบบจะหยุดทำธุรกรรมบางรายการจนกว่าจะมีการยืนยันราคาที่ถูกต้องเพิ่มเติม

อิงความสามารถในการปรับปรุงการออกแบบและการประยุกต์ระบบออราเคิล เราสามารถสำรวจวิธีการแก้ปัญหาที่เฉพาะเจาะจงภายในแอปพลิเคชัน DeFi ต่อไป เราจะแนะนำกลไกราคาเฉลี่ยค่าน้ำหนักตามเวลาใน Uniswap V2 และการปรับปรุงใน V3

กรณีปรับปรุงความปลอดภัยในแอปพลิเคชัน DeFi Oracle

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

TWAP ใน Uniswap V2

Uniswap V2 นำเสนอออราเคิล TWAP (Time-Weighted Average Price) ครั้งแรก เป็นออราเคิลบนเชนที่ให้นักพัฒนาออนเชนเข้าถึงข้อมูลราคาจากตลาดแบบเฉพาะกลุ่ม (DEX) ได้ TWAP เป็นออราเคิลบนเชนที่เติมเต็มข้อมูลจากข้อมูลการซื้อขายบนเชนของ Uniswap โดยไม่ต้องพึ่งพาข้อมูลนอกเชนใดๆ

ในUniswapV2Pairสัญญา_update()function เป็นฟังก์ชันหลักที่รับผิดชอบในการอัปเดตสำรองและผู้สะสมราคาสำหรับคู่การซื้อขาย จุดประสงค์หลักของมันคือการใช้ตัวสะสมราคาที่ถูกน้ำหนักตามเวลาเพื่อช่วยป้องกันการโจมตีจากออรัคเดียวกัน

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

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

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

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

Uniswap V3

เพื่อแก้ไขข้อจำกัดของเวอร์ชันก่อนหน้า ยูนิสวอปได้ปรับปรุงความสามารถของ Oracle ในเวอร์ชัน V3 โดยสัญญา V3 ยังคงค่าราคาสะสมตลอดเวลาและเพิ่มความสามารถในการเก็บข้อมูลราคาย้อนหลัง เพื่อรองรับการเก็บข้อมูลราคาย้อนหลังสูงสุดถึง 65,535 รายการ ซึ่งสิ้นเปลืองความจำในการเก็บข้อมูลราคาย้อนหลังด้วยตนเองของนักพัฒนา

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

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

แนวโน้มในอนาคต

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

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

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

สรุปผล

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

คำปฏิเสธ: เนื้อหาในบทความนี้มีไว้เพื่ออ้างอิงเท่านั้น และมีจุดประสงค์เพื่อการเรียนรู้และแลกเปลี่ยนความรู้เกี่ยวกับการโจมตีออรัคเคิล มันไม่ได้เป็นคำแนะนำสำหรับการดำเนินการจริงหรือกรณีการฝึกสอน

ผู้เขียน: Doris
นักแปล: Sonia
ผู้ตรวจทาน: Piccolo、Edward、Elisa
ผู้ตรวจสอบการแปล: Ashely、Joyce
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย

ประเภทของการโจมตี Oracle ในบล็อกเชน กรณีศึกษา และกลยุทธ์ป้องกันหลายชั้น

ขั้นสูง1/7/2025, 8:36:55 AM
ตั้งแต่การเกิดขึ้นของ DeFi คุณภาพและความปลอดภัยของข้อมูลบนเชื่อมต่ออยู่ในสถานการณ์สำคัญสำหรับนักพัฒนา เฉพาะอย่างยิ่งในที่เกี่ยวกับออร์เคิลซึ่งเป็นสะพานต่อเชื่อมระหว่างข้อมูลบนเชื่อมต่อและข้อมูลนอกเชื่อมต่อซึ่งบ่อยครั้งเป็นเป้าหมายของผู้โจมตี บทความนี้สำรวจกรณีการใช้งานออร์เคิล แพทเทิร์นการโจมตีที่พบบ่อย และกลยุทธ์ป้องกันการจัดการออร์เคิล มันให้คำแนะนำที่เป็นประโยชน์สำหรับนักพัฒนาเรื่องการรวมกันของออร์เคิลอย่างปลอดภัยพร้อมทั้งอธิบายบทบาทสำคัญของออร์เคิลในระบบนิเวศบล็อกเชน ผ่านการวิเคราะห์เหตุการณ์ล่าสุด เช่น UwU Lend และ Banana Gun เราได้เน้นถึงวิธีการให้ความน่าเชื่อถือของข้อมูลที่กำหนดรูปแบบของระบบ DeFi

บทนำ

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

ในฐานะที่เป็นสะพานเชื่อมระหว่างการโต้ตอบข้อมูลแบบ on-chain และ off-chain ออราเคิลมักกลายเป็นเป้าหมายหลักของการโจมตี เมื่อออราเคิลถูกจัดการผู้โจมตีสามารถใช้ประโยชน์จากข้อมูลราคาหรือตลาดที่เป็นเท็จเพื่อดําเนินการโจมตีทางเศรษฐกิจขนาดใหญ่เช่นการจัดการออราเคิลและการโจมตีด้วยเงินกู้แฟลชที่เกิดขึ้นบ่อยครั้งในปี 2021 และ 2022 แม้ภายในปี 2024 ภัยคุกคามนี้ยังคงมีอยู่ตามที่เน้นโดยเหตุการณ์ล่าสุดที่เกี่ยวข้องกับ UwU Lend และ Banana Gun เหตุการณ์เหล่านี้ยังคงเตือนเราว่าคุณภาพและความปลอดภัยของข้อมูล Oracle เป็นตัวกําหนดความสําเร็จหรือความล้มเหลวของโปรโตคอลแต่ละรายการและแบกรับความเสถียรของระบบนิเวศ DeFi ทั้งหมดโดยตรง

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

แนวคิดพื้นฐานของออราเคิล

คำจำกัดความและบทบาทของ Oracles

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

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

เมื่อเข้าใจความหมายและบทบาทพื้นฐานของออราเคิล พวกเราจะสำรวจแบบย่อๆ ประเภทของออราเคิล วิธีการใช้งานและความเสี่ยงด้านความปลอดภัยที่พวกเขาเผชิญหน้า

ประเภทของออรัคเคิล: ระบบที่มีความสำคัญเทียบกับระบบที่มีความสำคัญ

Oracles สามารถแบ่งออกเป็นสองรูปแบบการใช้งาน: แบบรวมศูนย์และกระจายอํานาจ ออราเคิลแบบรวมศูนย์เช่น Oraclize มักจะพึ่งพาแหล่งข้อมูลเดียวเพื่อให้ข้อมูลนอกเครือข่าย พวกเขารวมโซลูชันฮาร์ดแวร์และซอฟต์แวร์โดยใช้ประโยชน์จากเทคโนโลยีเช่น TLSNotary และ Android Proof เพื่อให้มั่นใจในความถูกต้องของข้อมูล ออราเคิลเหล่านี้มีประสิทธิภาพและประสิทธิภาพที่มั่นคง อย่างไรก็ตามการพึ่งพาแหล่งที่เชื่อถือได้เพียงแหล่งเดียวบ่อนทําลายลักษณะการกระจายอํานาจของบล็อกเชนแนะนําคอขวดจุดเดียวและ จํากัด ความสามารถในการปรับขนาดนําเสนอความท้าทายทั้งด้านความปลอดภัยและความสามารถในการขยาย

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

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

หลักการและความเสี่ยงในการดำเนินการของ Oracles

Oracles ที่มีแหล่งข้อมูลที่แตกต่างกัน: Off-Chain และ On-Chain

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

  • ข้อมูล Off-Chain: ความเร็วในการตอบสนองต่อความผันผวนสําหรับข้อมูลนอกเครือข่ายขึ้นอยู่กับลักษณะของแหล่งข้อมูลและกลไกการส่ง ตัวอย่างเช่นข้อมูลราคานอกเครือข่ายจากการแลกเปลี่ยนมักจะได้รับการอัปเดตอย่างรวดเร็ว ถึงกระนั้นข้อมูลนอกเครือข่ายอื่น ๆ (เช่นข้อมูลจากตลาดการเงินแบบดั้งเดิมหรือข้อมูลที่สร้างขึ้นผ่านการคํานวณที่ซับซ้อน) อาจประสบกับความล่าช้า การส่งข้อมูลนอกเครือข่ายมักอาศัยสถาบันที่มีสิทธิพิเศษจํานวนจํากัดในการผลักดันข้อมูลไปยังบล็อกเชน ดังนั้นการสร้างความมั่นใจว่าสถาบันเหล่านี้จะไม่แก้ไขข้อมูลโดยประสงค์ร้ายหรือผลักดันการอัปเดตที่ไม่ถูกต้องภายใต้การข่มขู่เป็นสิ่งสําคัญ การพึ่งพานี้อาจคุกคามความน่าเชื่อถือและการใช้งานข้อมูลบนบล็อกเชนแบบกระจายอํานาจ
  • ข้อมูล On-Chain: ข้อมูล On-chain ไม่ต้องการการเข้าถึงพิเศษและมีการอัปเดตเสมอ ซึ่งมีความสามารถในการทำงานแบบเรียลไทม์ที่แข็งแกร่ง อย่างไรก็ตาม ลักษณะเดียวกันนี้ทำให้มันเป็นเป้าหมายของผู้โจมตีโดยมีความเสี่ยงที่จะส่งผลให้เกิดความเสียหายอย่างร้ายแรง นักพัฒนาสามารถเข้าถึงข้อมูล On-chain ได้ง่ายดายโดยการสอบถามตลาดแบบกระจาย (DEXs) เพื่อคำนวณราคาแบบเรียลไทม์

Oracles On-Chain และ Off-Chain
ตัวเลือกระหว่างแหล่งข้อมูล off-chain และ on-chain ขึ้นอยู่กับข้อกําหนดของโครงการเฉพาะและการแลกเปลี่ยนโดยธรรมชาติของแต่ละวิธี นักพัฒนาซอฟต์แวร์ต้องประเมินและจัดการกับความเสี่ยงที่เกี่ยวข้องอย่างรอบคอบ ความต้องการความสมดุลนี้นําไปสู่การวิจัยอย่างต่อเนื่องเกี่ยวกับวิธีการจัดการข้อมูลที่ปลอดภัยและเชื่อถือได้มากขึ้น ส่วนต่อไปนี้จะตรวจสอบหลักการทํางานของ oracles และช่องโหว่ที่อาจเกิดขึ้น

ตัวอย่างสั้น ๆ ของการพัฒนา Oracle

ส่วนนี้จะนำเสนอสถานการณ์การพัฒนาที่มีความเรียบง่ายเพื่อช่วยให้อ่านเข้าใจว่ามีกรณีการใช้ Oracle ในบล็อกเชนอย่างไร ในการพัฒนาสัญญาอัจฉริยะบล็อกเชนจริงๆ มีหลายวิธีสำหรับสัญญาอัจฉริยะในการเข้าถึงข้อมูลราคาจาก Oracle วิธีทั่วไปรวมถึงการเรียกสัญญา Oracle โดยตรงหรือใช้เทคโนโลยีเช่น Chainlink CCIP (Cross-Chain Interoperability Protocol) ความแตกต่างสำคัญระหว่างวิธีเหล่านี้คือ:

  1. หากแอปพลิเคชันเป้าหมายตั้งอยู่บนบล็อกเชนเดียวกัน นักพัฒนาโดยทั่วไปจะเรียกสัญญาออรัคเลเลติโอไปทำการเรียกข้อมูลราคาแบบเรียลไทม์โดยตรง
  2. สำหรับแอปพลิเคชัน DeFi หลายรายการบล็อกเชน Chainlink CCIP เป็นบ่อนที่ใช้งานได้ส่วนใหญ่ CCIP ให้วิธีการปลอดภัยในการส่งข้อมูลระหว่างบล็อกเชนที่แตกต่างกันในสถานการณ์ cross-chain

ที่นี่เราจะสาธิตการใช้งานโดยการเรียกโดยตรงไปยังสัญญาออรัคเคิล จินตนาการว่าคุณเป็นนักพัฒนาสมาร์ทคอนแทรกเตอร์ในระบบ Ethereum และคุณต้องการเรียกดึงข้อมูลราคา ETH/USD โดยใช้ออรัคเคิลในสัญญาของคุณ ก่อนอื่น คุณจะต้องกำหนดอินเตอร์เฟซเพื่อเชื่อมต่อกับสัญญาออรัคเคิลและเขียนฟังก์ชันเพื่อดึงข้อมูลราคา

ตัวอย่างสัญญาเรียบง่ายนี้แสดงวิธีการPriceConsumer contract retrieves real-time price data and uses it to make decisions. This provides a basic understanding of how smart contracts interact with oracles to access price data. Next, we will analyze the associated risks from two perspectives:

จากมุมมองของสัญญาภายในที่ใช้ออรัคเคิล ผู้โจมตีสามารถใช้ตลาดที่มี Likusi น้อยหรือตลาดขนาดเล็กเพื่อทำให้ราคา ETH/USD ผ่านการทำธุรกรรมขนาดใหญ่และทำให้มีการเปลี่ยนแปลงราคาที่ผิดปกติ เนื่องจากบางออรัคเคิลจะพึ่งพาการรวบรวมข้อมูลจากแพลตฟอร์มการซื้อขายหลายแห่ง การเปลี่ยนแปลงที่ผิดปกติเหล่านี้สามารถแพร่กระจายได้อย่างรวดเร็วไปยังวิธี fetchPrice() ของ PriceConsumer ซึ่งทำให้เกิดการเบิดเบิดราคา สถานการณ์นี้มักเกิดขึ้นเมื่อแหล่งข้อมูลของออรัคเคิลมีความจำกัดมากเกินไปและความเสี่ยงไม่ได้รับการแยกแยะอย่างเพียงพอ ซึ่งทำให้ระบบมีความเป็นอยู่ต่อการจัดการราคา

จากมุมมองของสัญญาภายนอกการวิเคราะห์จําเป็นต้องพิจารณาสถานการณ์การใช้งานที่แตกต่างกัน สมมติว่าสัญญา PriceConsumer ถูกใช้ในแพลตฟอร์มการให้กู้ยืมที่ผู้ใช้สามารถฝาก ETH เป็นหลักประกันเพื่อยืมสินทรัพย์อื่น ๆ ผู้โจมตีใช้เงินกู้แฟลชเพื่อยืมเงินจํานวนมากและฝากเงินเหล่านี้ไว้ใน Automatic Market Makers (AMM) หรือกลุ่มสภาพคล่องอื่น ๆ ชั่วคราว หาก AMM มีความลึกในการซื้อขายต่ําสินทรัพย์เดี่ยวจํานวนมากที่เข้าสู่กลุ่มอย่างรวดเร็วจะทําให้เกิดการลื่นไถลของราคาโดยตรง

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

  1. การขายทรัพย์สินที่ใช้เป็นหลักประกันในโปรโตคอลการให้กู้ยืม: ราคาที่ถูกแก้ไขอาจส่งผลให้เกิดการขายถอนของสินทรัพย์ที่ใช้เป็นหลักประกันบางประการ ผู้โจมตีอาจจะซื้อสินทรัพย์เหล่านี้ในราคาต่ำระหว่างการขายถอนเพื่อแสวงหากำไร
  2. Arbitrage Across Platforms: หากราคาที่ถูกจัดการสร้างความแตกต่างของราคาที่สำคัญระหว่างแพลตฟอร์ม ผู้โจมตีสามารถใช้ช่องโหว่นี้เพื่อดำเนินการซื้อขายอาร์บิทราจที่มีกำไร

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

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

ความเสี่ยงที่เกิดขึ้นโดยตรงและโดยอ้อมโดย Oracles

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

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

มาวิเคราะห์กรณีนี้กัน

โดยพื้นฐานแล้วการบิดเบือนตลาดทําได้โดยการเปลี่ยนแปลงราคาตลาดจริงโดย oracles สะท้อนราคาที่บิดเบือนเหล่านี้อย่างซื่อสัตย์ในขณะที่การโจมตีของ Oracle เกี่ยวข้องกับการรายงานราคาที่ไม่ถูกต้องในขณะที่ราคาตลาดยังคงเป็นปกติ เมื่อเข้าใจความแตกต่างระหว่าง oracles และการจัดการราคาขั้นตอนต่อไปของเราคือการสํารวจความแตกต่างระหว่างการเก็บข้อมูลแบบ on-chain และ off-chain เพื่อทําความเข้าใจเพิ่มเติมว่า oracles ส่งข้อมูลอย่างไร

กรณีการโจมตีที่เกี่ยวข้องกับ Oracle

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

เหตุการณ์การแก้ไขราคาการยืม UwU

ในวันที่ 10 มิถุนายน พ.ศ. 2567 UwU Lend แพลตฟอร์มการให้ยืมสินทรัพย์ดิจิทัลที่มีพื้นฐานบนโซ่ EVM ได้รับการโจมตีซึ่งทำให้เสียประมาณ 19.3 ล้านดอลลาร์ ซึ่งเหตุการณ์นี้เปิดเผยความเสี่ยงที่เป็นไปได้ในกลไก oracle ภายในโปรโตคอล DeFi

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

ผู้โจมตีจัดการราคาตลาดของ sUSDE โดยดําเนินการแลกเปลี่ยนขนาดใหญ่ภายในกลุ่มสภาพคล่อง Curve Finance การกระทํานี้บิดเบือนข้อมูลราคาที่สร้างขึ้นโดย oracle ที่พึ่งพาโดย UwU Lend ใช้ประโยชน์จากมูลค่าที่สูงเกินจริงของ sUSDE ผู้โจมตีใช้เป็นหลักประกันในการดึงสินทรัพย์อื่น ๆ จาก UwU Lend ในที่สุดก็ทําให้สินทรัพย์หมดลงอย่างมีนัยสําคัญสําหรับแพลตฟอร์ม

สาเหตุหลักของเหตุการณ์นี้อยู่ที่การออกแบบ Anti-manipulation ของ Oracle ของ UwU Lend ที่ไม่เพียงพอ ที่สร้างช่องโหว่ให้กับผู้โจมตีที่จะสามารถสร้างผลกระทบต่อราคาตลาด วิกฤตการ์ดของ Oracle และการโจมตีเป้าหมายได้ กรณีนี้เน้นให้เห็นข้อบกพร่องที่เป็นสาเหตุของแพลตฟอร์ม DeFi ทั่วไป - กลไกป้องกันการถูกแก้ไขอย่างไม่เหมาะสมใน Oracle โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมตลาดที่มีความไม่เป็นไปตามธรรมชาติ

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

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

Synthetix Oracle Failure

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

อย่างไรก็ตาม หนึ่งในช่องราคารายงานผิดพลาด อัตราแลกเปลี่ยนเวียดนามวอน (KRW) ที่ 1,000 เท่าของค่าจริง ระบบล้มเหลวในการกรองข้อมูลผิดปกตินี้ ทำให้เกิดการยอมรับและเผยแพร่ราคาที่ไม่ถูกต้องบนเชน หุ้นส่วนการซื้อขายตรวจพบข้อผิดพลาดนี้และดำเนินการซื้อและขายอย่างรวดเร็วในตลาด sKRW สะสมกำไรมากผ่านการอาร์บิเทรจ การค้นพบประการทันทีของทีมให้พวกเขาได้ทำการเจรจากับนักซื้อขายซึ่งส่งกำไรกลับเพื่อของรางวัลการแก้บั๊ก หลีกเลี่ยงการสูญเสียที่อาจเกิน 1 พันล้านเหรียญ

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

มาตรการป้องกัน

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

1. ใช้แหล่งข้อมูลหลายแหล่งเพื่อให้มั่นใจในความถูกต้องของข้อมูล

การวิเคราะห์กรณี: ในเหตุการณ์การแก้ไขราคา UwU Lend ผู้โจมตีได้ควบคุม Oracle ราคา UwU Lend โดยการส่งผลต่อราคาของ sUSDE ในสระน้ำ Curve Finance โดยการใช้ช่องโหว่การแก้ไขราคาผู้โจมตีสามารถสกัดสินทรัพย์ออกจากระบบที่ระบบไม่สามารถประเมินค่าได้อย่างถูกต้อง หาก UwU Lend ใช้แหล่งข้อมูลหลายแหล่งเพื่อกำหนดราคาของ sUSDE ระบบสามารถตรวจสอบราคาผ่านแหล่งข้อมูลอื่น ๆ เพื่อลดความเสี่ยงของการโจมตีลง

การวิเคราะห์เพิ่มเติม: เหตุการณ์นี้เกี่ยวข้องกับการจัดการราคาและปัญหาที่เปิดเผยเกี่ยวกับสภาพคล่องไม่เพียงพอ เมื่อโทเค็นขาดสภาพคล่องของตลาดที่เพียงพอความลึกของการซื้อขายที่ตื้นทําให้ราคาได้รับอิทธิพลจากธุรกรรมจํานวนน้อยซึ่งจะเป็นการเพิ่มช่องโหว่ของ oracle ดังนั้นเมื่อเปิดตัวโทเค็นใหม่ทีมโครงการจะต้องประเมินสภาพคล่องของตลาดอย่างรอบคอบเพื่อป้องกันการบิดเบือนราคาและความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้อง ตัวอย่างเช่นโปรโตคอลการให้กู้ยืมเช่น Aave, Kamino และ Scallop กําหนดข้อ จํากัด ที่เข้มงวดยิ่งขึ้นสําหรับโทเค็นที่มีสภาพคล่องต่ําในการออกแบบเพื่อให้มั่นใจถึงเสถียรภาพและความปลอดภัยของตลาด

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

2. Decentralized Data Aggregators เพื่อให้มั่นใจในความปลอดภัยในการส่งข้อมูล

การวิเคราะห์กรณี: ความล้มเหลวของ Synthetix off-chain oracle เปิดเผยความเสี่ยงของข้อผิดพลาดในแหล่งข้อมูล off-chain ในเหตุการณ์นี้ราคาเกาหลีวอน (KRW) ไม่ถูกต้องได้รับรายงาน ทำให้ bot การซื้อขายสามารถใช้ข้อผิดพลาดเพื่ออาร์บิเทรจ หาก Synthetix ได้ใช้ตัวรวมข้อมูลที่กระจายออกไป แหล่งข้อมูล off-chain อื่น ๆ ก็อาจได้รับการแก้ไขปัญหาได้อย่างรวดเร็ว แม้แหล่งข้อมูล off-chain หนึ่งจะล้มเหลว

วิธีการปรับปรุง: คล้ายกับการปรับปรุงใน Uniswap V3 การใช้ตัวรวมข้อมูลที่กระจายแบบยกระดับสามารถเพิ่มความปลอดภัยของการส่งข้อมูลได้ โดยการใช้โปรโตคอลทางคริปโทและการยืนยันลายเซ็นต์ ร่วมกับโหนดรีเลย์ที่กระจายอย่างยกระดับ ระบบสามารถป้องกันการโจมตีแบบ Man-in-the-Middle และการแก้ไขข้อมูลได้ เช่นเช่นใน Oracle ของ Chainlink แหล่งข้อมูลทุกแห่งจะได้รับการตรวจสอบจากโหนดอิสระหลายๆ แห่งและได้รับการป้องกันด้วยเทคนิคการเข้ารหัสเพื่อให้มั่นใจในความสมบูรณ์และความไม่สามารถแก้ไขของข้อมูลที่ถูกส่ง

4. การออกแบบแบบโมดูลาร์ในสถาปัตยกรรมของแอปพลิเคชันเพื่อลดความเสี่ยงจุดเดียวเดียวของความล้มเหลว

การวิเคราะห์กรณี: เหตุการณ์การโจมตีจํานวนมากเผยให้เห็นข้อบกพร่องในการออกแบบโมดูลาร์ของโปรโตคอล DeFi ซึ่งมักจะขาดกลไกการป้องกันที่เพียงพอ ด้วยการออกแบบและสร้างโมดูลอิสระอย่างรอบคอบเป็นไปได้ที่จะป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่เดียวเพื่อสร้างความเสียหายร้ายแรงต่อระบบทั้งหมด ตัวอย่างเช่นในความล้มเหลวของ Synthetix off-chain oracle หากทีมพัฒนาได้ออกแบบระบบแจ้งเตือนแบบแยกส่วนไว้ล่วงหน้าก็สามารถระบุและแก้ไขข้อมูลที่ผิดปกติได้เร็วขึ้น

วิธีการปรับปรุง: เพื่อเสริมความต้านทานต่อการโจมตี นักพัฒนาสามารถนำโครงสร้างแบบชั้นเยื้องมาใช้ในขั้นตอนการพัฒนา และให้แต่ละโมดูล (แหล่งข้อมูล ตรวจสอบตรรกะ โมดูลการส่งข้อมูล) ทำงานอย่างอิสระ ตัวอย่างเช่น ใน Uniswap V3 การเก็บข้อมูลราคาจากพูลน้ำสารจากพูลน้ำสารที่แตกต่างกันในพูลสังเกตเป็นพูลที่แยกกัน ทำให้โปรโตคอลสามารถเปรียบเทียบราคาข้ามพูลน้ำสารหลาย ๆ แหล่ง ลดความเสี่ยงในการปรับเปลี่ยนในแต่ละพูลได้ ในการพัฒนาที่แต่งตัว วิธีเช่นการห่อหุ้มอินเตอร์เฟสและการฉีดฝังความขึ้นอยู่กับข้อมูล สามารถแยกระบบการตรวจสอบข้อมูลจากตรรกะอื่น ๆ ได้ ทำให้ระบบมีความยืดหยุ่นและสามารถบำรุงรักษาได้

5. กลไกป้องกันที่ปรับตัวในสมาร์ทคอนแทรค

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

การประยุกต์ใช้งานจริง: บางโปรโตคอลของ DeFi ใช้กลไก "threshold alert" เพื่อตรวจจับการเปลี่ยนแปลงราคาที่สำคัญในเวลาจริง หากการเปลี่ยนแปลงราคาเกินค่าเกณฑ์ที่ตั้งไว้ล่วงหน้า ระบบจะเริ่มกระบวนการตรวจสอบเพิ่มเติมหรือเปิดการทำงานใหม่เพื่อป้องกันการถูกจัดการให้เพิ่มขึ้น ตัวอย่างเช่นโปรโตคอล Balancer ใช้เกณฑ์การเบี่ยงเบนราคา หากตรวจพบราคาสูงหรือต่ำเกินไประบบจะหยุดทำธุรกรรมบางรายการจนกว่าจะมีการยืนยันราคาที่ถูกต้องเพิ่มเติม

อิงความสามารถในการปรับปรุงการออกแบบและการประยุกต์ระบบออราเคิล เราสามารถสำรวจวิธีการแก้ปัญหาที่เฉพาะเจาะจงภายในแอปพลิเคชัน DeFi ต่อไป เราจะแนะนำกลไกราคาเฉลี่ยค่าน้ำหนักตามเวลาใน Uniswap V2 และการปรับปรุงใน V3

กรณีปรับปรุงความปลอดภัยในแอปพลิเคชัน DeFi Oracle

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

TWAP ใน Uniswap V2

Uniswap V2 นำเสนอออราเคิล TWAP (Time-Weighted Average Price) ครั้งแรก เป็นออราเคิลบนเชนที่ให้นักพัฒนาออนเชนเข้าถึงข้อมูลราคาจากตลาดแบบเฉพาะกลุ่ม (DEX) ได้ TWAP เป็นออราเคิลบนเชนที่เติมเต็มข้อมูลจากข้อมูลการซื้อขายบนเชนของ Uniswap โดยไม่ต้องพึ่งพาข้อมูลนอกเชนใดๆ

ในUniswapV2Pairสัญญา_update()function เป็นฟังก์ชันหลักที่รับผิดชอบในการอัปเดตสำรองและผู้สะสมราคาสำหรับคู่การซื้อขาย จุดประสงค์หลักของมันคือการใช้ตัวสะสมราคาที่ถูกน้ำหนักตามเวลาเพื่อช่วยป้องกันการโจมตีจากออรัคเดียวกัน

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

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

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

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

Uniswap V3

เพื่อแก้ไขข้อจำกัดของเวอร์ชันก่อนหน้า ยูนิสวอปได้ปรับปรุงความสามารถของ Oracle ในเวอร์ชัน V3 โดยสัญญา V3 ยังคงค่าราคาสะสมตลอดเวลาและเพิ่มความสามารถในการเก็บข้อมูลราคาย้อนหลัง เพื่อรองรับการเก็บข้อมูลราคาย้อนหลังสูงสุดถึง 65,535 รายการ ซึ่งสิ้นเปลืองความจำในการเก็บข้อมูลราคาย้อนหลังด้วยตนเองของนักพัฒนา

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

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

แนวโน้มในอนาคต

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

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

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

สรุปผล

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

คำปฏิเสธ: เนื้อหาในบทความนี้มีไว้เพื่ออ้างอิงเท่านั้น และมีจุดประสงค์เพื่อการเรียนรู้และแลกเปลี่ยนความรู้เกี่ยวกับการโจมตีออรัคเคิล มันไม่ได้เป็นคำแนะนำสำหรับการดำเนินการจริงหรือกรณีการฝึกสอน

ผู้เขียน: Doris
นักแปล: Sonia
ผู้ตรวจทาน: Piccolo、Edward、Elisa
ผู้ตรวจสอบการแปล: Ashely、Joyce
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย
เริ่มตอนนี้
สมัครและรับรางวัล
$100