จากการเพิ่มขึ้นของ DeFi ในปี 2019 จนถึงการครบกําหนดอย่างค่อยเป็นค่อยไปภายในปี 2024 ปัญหาข้อมูลเป็นข้อกังวลหลักสําหรับนักพัฒนาอย่างต่อเนื่อง นี่เป็นเพราะการทํางานของ DeFi อาศัยข้อมูลออนเชนแบบเรียลไทม์ที่แม่นยําและคุณภาพของข้อมูลส่งผลโดยตรงต่อความปลอดภัยประสิทธิภาพและประสบการณ์ผู้ใช้ของโปรโตคอล ข้อมูลเป็นศูนย์กลางของการแลกเปลี่ยนคุณค่าและเป็นรากฐานที่สําคัญของกลไกความน่าเชื่อถือของโปรโตคอล สําหรับสัญญาอัจฉริยะข้อมูลทําหน้าที่เป็นข้อเท็จจริงอินพุต แต่สัญญาอัจฉริยะเองไม่สามารถตรวจสอบความถูกต้องของข้อมูลได้ แต่ทั้งหมดขึ้นอยู่กับข้อมูลที่ได้จากแหล่งข้อมูลภายนอก ลักษณะนี้หมายความว่าหากข้อมูลอินพุตถูกดัดแปลงหรือไม่ถูกต้องสัญญาอัจฉริยะจะยอมรับอย่างอดทนซึ่งอาจนําไปสู่ความเสี่ยงเชิงระบบ ดังนั้นการรับรองการกระจายอํานาจความน่าเชื่อถือและการใช้งานของข้อมูลจึงยังคงเป็นความท้าทายอย่างต่อเนื่อง ความท้าทายเกิดจากสองประเด็นหลัก: ประการแรกข้อมูลส่วนใหญ่ถูกควบคุมโดยสถาบันหรือแพลตฟอร์มแบบรวมศูนย์ ประการที่สองการเข้าถึงข้อมูลเป็นเรื่องยากเนื่องจากการรักษาความน่าเชื่อถือทั่วทั้งไปป์ไลน์ตั้งแต่ต้นทางไปจนถึงช่องทางการส่งข้อมูลไปจนถึงปลายทางสุดท้ายถือเป็นความท้าทายที่สําคัญ
ในฐานะที่เป็นสะพานเชื่อมระหว่างการโต้ตอบข้อมูลแบบ on-chain และ off-chain ออราเคิลมักกลายเป็นเป้าหมายหลักของการโจมตี เมื่อออราเคิลถูกจัดการผู้โจมตีสามารถใช้ประโยชน์จากข้อมูลราคาหรือตลาดที่เป็นเท็จเพื่อดําเนินการโจมตีทางเศรษฐกิจขนาดใหญ่เช่นการจัดการออราเคิลและการโจมตีด้วยเงินกู้แฟลชที่เกิดขึ้นบ่อยครั้งในปี 2021 และ 2022 แม้ภายในปี 2024 ภัยคุกคามนี้ยังคงมีอยู่ตามที่เน้นโดยเหตุการณ์ล่าสุดที่เกี่ยวข้องกับ UwU Lend และ Banana Gun เหตุการณ์เหล่านี้ยังคงเตือนเราว่าคุณภาพและความปลอดภัยของข้อมูล Oracle เป็นตัวกําหนดความสําเร็จหรือความล้มเหลวของโปรโตคอลแต่ละรายการและแบกรับความเสถียรของระบบนิเวศ DeFi ทั้งหมดโดยตรง
บทความนี้จะเน้นในการประยุกต์ใช้ออรัคเคิลในบล็อกเชน ประเภทของการโจมตี และวิธีการป้องกันการปรับแต่งออรัคเคิลที่พบบ่อย มีเป้าหมายที่จะให้ความรู้แก่ผู้อ่านเกี่ยวกับแนวคิดพื้นฐานและความสำคัญของออรัคเคิล เพื่อเสริมสติปัญญาด้านความปลอดภัย และให้คำแนะนำทางปฏิบัติสำหรับนักพัฒนาโดยปลอดภัยในการรวมออรัคเคิลเข้ากับสมาร์ทคอนแทรค
ออราเคิลเป็นอินเทอร์เฟซที่สําคัญระหว่างบล็อกเชนและโลกภายนอก มีหน้าที่รับผิดชอบในการนําเข้าข้อมูลนอกเครือข่ายไปยังบล็อกเชน เช่น ราคาตลาด ข้อมูลสภาพอากาศ หรือผลลัพธ์ของเหตุการณ์ ทําให้สัญญาอัจฉริยะสามารถเข้าถึงข้อมูลภายนอกได้ ด้วยลักษณะที่ปิดโดยเนื้อแท้ของบล็อกเชน oracles มีบทบาทสําคัญในด้านต่างๆเช่น DeFi ตลาดการคาดการณ์การประกันภัยและการเล่นเกม นอกเหนือจากการจัดการกับข้อ จํากัด ของบล็อกเชนแล้ว oracles ยังอํานวยความสะดวกในการโต้ตอบระหว่างสัญญาอัจฉริยะและข้อมูลในโลกแห่งความเป็นจริงโดยขยายขอบเขตการใช้งานของเทคโนโลยีบล็อกเชน อย่างไรก็ตาม ออราเคิลยังเผชิญกับความท้าทายและจุดปวดบางอย่าง:
เมื่อเข้าใจความหมายและบทบาทพื้นฐานของออราเคิล พวกเราจะสำรวจแบบย่อๆ ประเภทของออราเคิล วิธีการใช้งานและความเสี่ยงด้านความปลอดภัยที่พวกเขาเผชิญหน้า
Oracles สามารถแบ่งออกเป็นสองรูปแบบการใช้งาน: แบบรวมศูนย์และกระจายอํานาจ ออราเคิลแบบรวมศูนย์เช่น Oraclize มักจะพึ่งพาแหล่งข้อมูลเดียวเพื่อให้ข้อมูลนอกเครือข่าย พวกเขารวมโซลูชันฮาร์ดแวร์และซอฟต์แวร์โดยใช้ประโยชน์จากเทคโนโลยีเช่น TLSNotary และ Android Proof เพื่อให้มั่นใจในความถูกต้องของข้อมูล ออราเคิลเหล่านี้มีประสิทธิภาพและประสิทธิภาพที่มั่นคง อย่างไรก็ตามการพึ่งพาแหล่งที่เชื่อถือได้เพียงแหล่งเดียวบ่อนทําลายลักษณะการกระจายอํานาจของบล็อกเชนแนะนําคอขวดจุดเดียวและ จํากัด ความสามารถในการปรับขนาดนําเสนอความท้าทายทั้งด้านความปลอดภัยและความสามารถในการขยาย
ในทางตรงกันข้ามออราเคิลแบบกระจายอํานาจเช่น Chainlink ให้ความสําคัญกับความปลอดภัยของระบบและความโปร่งใสของความไว้วางใจ ในสถาปัตยกรรมของ Chainlink การรวบรวมข้อมูลและการตรวจสอบความถูกต้องจะดําเนินการโดยโหนดอิสระหลายโหนดกระจายไปทั่วผู้เข้าร่วมที่แตกต่างกันลดความเสี่ยงของความล้มเหลวจุดเดียว ด้วยการประสานงานการดําเนินงานแบบ on-chain และ off-chain Chainlink ช่วยให้มั่นใจได้ถึงความหลากหลายและความน่าเชื่อถือของข้อมูล การออกแบบแบบกระจายอํานาจนี้มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในแอปพลิเคชันทางการเงินซึ่งช่วยเพิ่มความต้านทานต่อการโจมตีของ Oracle อย่างไรก็ตามวิธีการนี้เกี่ยวข้องกับการแลกเปลี่ยนประสิทธิภาพและต้นทุนทําให้ไม่เหมาะสําหรับกรณีการใช้งานความถี่ต่ํา
ความสําคัญของ oracles แบบกระจายอํานาจอยู่ที่การลดความเสี่ยงของการจัดการแหล่งข้อมูลและป้องกันการละเมิดที่อาจเกิดขึ้นโดยฝ่ายที่เชื่อถือได้ฝ่ายเดียว การกระจายอํานาจช่วยให้มั่นใจได้ว่า oracles ไม่ได้ขึ้นอยู่กับแหล่งข้อมูลสองสามแหล่งอีกต่อไป แต่เพิ่มความปลอดภัยและความน่าเชื่อถือของข้อมูลผ่านโหนดแบบกระจายหลายโหนด อย่างไรก็ตาม ออราเคิลแบบกระจายอํานาจยังเผชิญกับความท้าทาย เช่น การรักษากลไกจูงใจระยะยาวที่มีประสิทธิภาพและสร้างความมั่นใจในเสถียรภาพโดยรวมของเครือข่ายออราเคิล ต่อไปเราจะสํารวจความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับ oracles แบบกระจายอํานาจและโซลูชันที่เป็นไปได้
ในการดำเนินการของ Oracle วิธีการส่งข้อมูลและวิธีการส่งข้อมูลโดยตรงมีผลต่อความปลอดภัยและความเชื่อถือของข้อมูล ออระเคิลได้รับข้อมูลจากแหล่งที่มีสองประเภท: ออกเชนและออนเชน รากฐานและวิธีการที่ได้รับข้อมูลต่างกันระหว่างวิธีการเหล่านี้
Oracles On-Chain และ Off-Chain
ตัวเลือกระหว่างแหล่งข้อมูล off-chain และ on-chain ขึ้นอยู่กับข้อกําหนดของโครงการเฉพาะและการแลกเปลี่ยนโดยธรรมชาติของแต่ละวิธี นักพัฒนาซอฟต์แวร์ต้องประเมินและจัดการกับความเสี่ยงที่เกี่ยวข้องอย่างรอบคอบ ความต้องการความสมดุลนี้นําไปสู่การวิจัยอย่างต่อเนื่องเกี่ยวกับวิธีการจัดการข้อมูลที่ปลอดภัยและเชื่อถือได้มากขึ้น ส่วนต่อไปนี้จะตรวจสอบหลักการทํางานของ oracles และช่องโหว่ที่อาจเกิดขึ้น
ส่วนนี้จะนำเสนอสถานการณ์การพัฒนาที่มีความเรียบง่ายเพื่อช่วยให้อ่านเข้าใจว่ามีกรณีการใช้ Oracle ในบล็อกเชนอย่างไร ในการพัฒนาสัญญาอัจฉริยะบล็อกเชนจริงๆ มีหลายวิธีสำหรับสัญญาอัจฉริยะในการเข้าถึงข้อมูลราคาจาก Oracle วิธีทั่วไปรวมถึงการเรียกสัญญา Oracle โดยตรงหรือใช้เทคโนโลยีเช่น Chainlink CCIP (Cross-Chain Interoperability Protocol) ความแตกต่างสำคัญระหว่างวิธีเหล่านี้คือ:
ที่นี่เราจะสาธิตการใช้งานโดยการเรียกโดยตรงไปยังสัญญาออรัคเคิล จินตนาการว่าคุณเป็นนักพัฒนาสมาร์ทคอนแทรกเตอร์ในระบบ 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 เป็นราคาที่ถูกแก้ไข หลังจากปรับราคาแล้ว ผู้โจมตีจะสามารถทำกำไรได้ในหลายวิธี เช่น:
เมื่อผู้โจมตีทำการดำเนินการเสร็จสิ้นแล้ว เขาสามารถถอนเงินได้ทันที กู้เงินแฟลชโดยมีดอกเบี้ย และชำระเงินกู้แฟลชเพื่อสิ้นสุดกระบวนการปรับเปลี่ยน
ถัดไปเราจะลงลึกในการสนทนาอย่างละเอียด การวิเคราะห์กรณีที่เฉพาะเจาะจงของการโจมตีออรัคเคิล วิธีการของพวกเขา และการตรวจสอบผลกระทบที่ทำลายต่อโปรโตคอล DeFi และระบบนิเวศออนเชน พร้อมทั้งแยกแยะตรรกะและรายละเอียดทางเทคนิคสำคัญ
แม้ว่าการแก้ไขตลาดและการโจมตีออราเคิลอาจมีผลลัพธ์ที่คล้ายกัน เช่นการบิดเบือนราคาและการสูญเสียทรัพย์สิน วิธีการและจุดต่อสู้ที่ล้มเหลวของพวกเขาแตกต่างกัน ส่วนใหญ่ความสูญเสียในพื้นที่บล็อกเชนเกิดจากการแก้ไขตลาดมากกว่าจุดบกพร่องที่แตกต่างกันของออราเคิล ความแตกต่างสำคัญคือดังนี้:
มาวิเคราะห์กรณีนี้กัน
โดยพื้นฐานแล้วการบิดเบือนตลาดทําได้โดยการเปลี่ยนแปลงราคาตลาดจริงโดย oracles สะท้อนราคาที่บิดเบือนเหล่านี้อย่างซื่อสัตย์ในขณะที่การโจมตีของ Oracle เกี่ยวข้องกับการรายงานราคาที่ไม่ถูกต้องในขณะที่ราคาตลาดยังคงเป็นปกติ เมื่อเข้าใจความแตกต่างระหว่าง oracles และการจัดการราคาขั้นตอนต่อไปของเราคือการสํารวจความแตกต่างระหว่างการเก็บข้อมูลแบบ on-chain และ off-chain เพื่อทําความเข้าใจเพิ่มเติมว่า oracles ส่งข้อมูลอย่างไร
ในหลายคดีการโจมตีของออราเคิล ประเภทที่พบบ่อยรวมถึงการจัดการราคา การให้กู้เงินแฟลชร่องรอยกับการบิดเบือนของออราเคิล ข้อผิดพลาดของข้อมูลออฟเชน และการใช้ช่องโหว่ในการออกแบบโปรโตคอล เราจะอภิปรายเคสสองประเภท: อุ๊วอุ๊วเล้นด์เหตุการณ์การจัดการราคา ซึ่งเปิดเผยถึงจุดอ่อนของออราเคิลตามลำดับบนเชนแก่การจัดการที่ไม่ดี และซินเนเท็กซ์ออราเคิลเหตุการณ์การล้มเหลวของชุดออราเคิลออฟเชน ซึ่งแสดงให้เห็นถึงผลกระทบลึกลึกของข้อผิดพลาดของข้อมูลภายนอกต่อสัญญาบนเชน
ในวันที่ 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 ควรเน้นกลยุทธ์ เช่น การรวมข้อมูลราคาจากแหล่งที่มาหลายแหล่ง การปรับความถี่ในการอัปเดตราคา และการตรวจสอบราคาที่ผิดปกติเมื่อสร้างกลไกออราเคิล การเพิ่มความสามารถในการต้านการแก้ไขสามารถลดความเสี่ยงระบบที่เกิดจากข้อผิดพลาดจุดเดียวหรือความผันผวนของตลาดได้
ในวันที่ 25 มิถุนายน 2019 Synthetix โปรโตคอลความเหนือกว่าที่มีการซื้อขายได้บน Ethereum ประสบความล้มเหลวอย่างสำคัญในระบบพิกัดออฟไลน์ที่กำหนดเอง ซึ่งทำให้ธุรกรรมเดียวสร้างกำไรที่ไม่คาดคิด Synthetix พึงพอใจกับแหล่งข้อมูลลับของมันสำหรับการส่งเสริมราคา รวมราคาและเผยแพร่บนเชิงลึกในช่วงระยะเวลาที่กำหนดเพื่อให้ผู้ใช้ได้รับราคาซื้อขายสำหรับสินทรัพย์สังเคราะห์ยาวหรือสั้น
อย่างไรก็ตาม หนึ่งในช่องราคารายงานผิดพลาด อัตราแลกเปลี่ยนเวียดนามวอน (KRW) ที่ 1,000 เท่าของค่าจริง ระบบล้มเหลวในการกรองข้อมูลผิดปกตินี้ ทำให้เกิดการยอมรับและเผยแพร่ราคาที่ไม่ถูกต้องบนเชน หุ้นส่วนการซื้อขายตรวจพบข้อผิดพลาดนี้และดำเนินการซื้อและขายอย่างรวดเร็วในตลาด sKRW สะสมกำไรมากผ่านการอาร์บิเทรจ การค้นพบประการทันทีของทีมให้พวกเขาได้ทำการเจรจากับนักซื้อขายซึ่งส่งกำไรกลับเพื่อของรางวัลการแก้บั๊ก หลีกเลี่ยงการสูญเสียที่อาจเกิน 1 พันล้านเหรียญ
แม้ว่าทีม Synthetix จะใช้มาตรการเพื่อรวบรวมข้อมูลราคาจากหลายแหล่งเพื่อป้องกันความไม่ถูกต้องจากแหล่งเดียว แต่เหตุการณ์นี้เน้นย้ําถึงความเสี่ยงโดยธรรมชาติของออราเคิลข้อมูลนอกเครือข่าย เมื่อแหล่งข้อมูลต้นน้ําผิดพลาดสัญญาแบบ on-chain ไม่มีข้อมูลเชิงลึกเกี่ยวกับกระบวนการคํานวณราคาดังนั้นจึงไม่สามารถตรวจจับความผิดปกติได้โดยอัตโนมัติ
กรณีที่กล่าวถึงข้างต้นเน้นให้เห็นว่าความท้าทายที่สำคัญของการทำนายคือไม่เพียงความแม่นยำของแหล่งข้อมูลเท่านั้น แต่ยังรวมถึงการต้านทานการโจมตีและความปลอดภัยของการรวมข้อมูลออกเชน ดังนั้นการป้องกันการโจมตีผ่านทางคำทำนายมีความสำคัญอย่างยิ่ง การเสริมความปลอดภัย ความเชื่อถือได้ และความสามารถในการต้านการโจมตีของการทำนายจึงเป็นปัจจัยสำคัญเมื่อออกแบบและใช้งานมัน ในส่วนนี้เราจะศึกษามาตรการที่มีประสิทธิภาพในการต่อต้านประเภทต่าง ๆ ของการโจมตีและเสริมความปลอดภัยโดยรวมของระบบคำทำนาย
การวิเคราะห์กรณี: ในเหตุการณ์การแก้ไขราคา UwU Lend ผู้โจมตีได้ควบคุม Oracle ราคา UwU Lend โดยการส่งผลต่อราคาของ sUSDE ในสระน้ำ Curve Finance โดยการใช้ช่องโหว่การแก้ไขราคาผู้โจมตีสามารถสกัดสินทรัพย์ออกจากระบบที่ระบบไม่สามารถประเมินค่าได้อย่างถูกต้อง หาก UwU Lend ใช้แหล่งข้อมูลหลายแหล่งเพื่อกำหนดราคาของ sUSDE ระบบสามารถตรวจสอบราคาผ่านแหล่งข้อมูลอื่น ๆ เพื่อลดความเสี่ยงของการโจมตีลง
การวิเคราะห์เพิ่มเติม: เหตุการณ์นี้เกี่ยวข้องกับการจัดการราคาและปัญหาที่เปิดเผยเกี่ยวกับสภาพคล่องไม่เพียงพอ เมื่อโทเค็นขาดสภาพคล่องของตลาดที่เพียงพอความลึกของการซื้อขายที่ตื้นทําให้ราคาได้รับอิทธิพลจากธุรกรรมจํานวนน้อยซึ่งจะเป็นการเพิ่มช่องโหว่ของ oracle ดังนั้นเมื่อเปิดตัวโทเค็นใหม่ทีมโครงการจะต้องประเมินสภาพคล่องของตลาดอย่างรอบคอบเพื่อป้องกันการบิดเบือนราคาและความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้อง ตัวอย่างเช่นโปรโตคอลการให้กู้ยืมเช่น Aave, Kamino และ Scallop กําหนดข้อ จํากัด ที่เข้มงวดยิ่งขึ้นสําหรับโทเค็นที่มีสภาพคล่องต่ําในการออกแบบเพื่อให้มั่นใจถึงเสถียรภาพและความปลอดภัยของตลาด
วิธีการปรับปรุง: เพื่อให้มั่นใจได้ว่าข้อมูลถูกต้อง โปรโตคอลควรใช้กลยุทธ์ที่มีแหล่งข้อมูลหลายแหล่งโดยรวมได้แก่เครือข่ายพร้อมลิงค์หรือบันด์โปรโตคอล เพื่อรวบรวมข้อมูลจากแลกเชนหรือสระเงินที่แตกต่างกัน วิธีการนี้ช่วยลดผลกระทบต่อความปลอดภัยของระบบทั่วไปหากแหล่งข้อมูลใดแหล่งข้อมูลหนึ่งถูกแก้ไข
การวิเคราะห์กรณี: ความล้มเหลวของ Synthetix off-chain oracle เปิดเผยความเสี่ยงของข้อผิดพลาดในแหล่งข้อมูล off-chain ในเหตุการณ์นี้ราคาเกาหลีวอน (KRW) ไม่ถูกต้องได้รับรายงาน ทำให้ bot การซื้อขายสามารถใช้ข้อผิดพลาดเพื่ออาร์บิเทรจ หาก Synthetix ได้ใช้ตัวรวมข้อมูลที่กระจายออกไป แหล่งข้อมูล off-chain อื่น ๆ ก็อาจได้รับการแก้ไขปัญหาได้อย่างรวดเร็ว แม้แหล่งข้อมูล off-chain หนึ่งจะล้มเหลว
วิธีการปรับปรุง: คล้ายกับการปรับปรุงใน Uniswap V3 การใช้ตัวรวมข้อมูลที่กระจายแบบยกระดับสามารถเพิ่มความปลอดภัยของการส่งข้อมูลได้ โดยการใช้โปรโตคอลทางคริปโทและการยืนยันลายเซ็นต์ ร่วมกับโหนดรีเลย์ที่กระจายอย่างยกระดับ ระบบสามารถป้องกันการโจมตีแบบ Man-in-the-Middle และการแก้ไขข้อมูลได้ เช่นเช่นใน Oracle ของ Chainlink แหล่งข้อมูลทุกแห่งจะได้รับการตรวจสอบจากโหนดอิสระหลายๆ แห่งและได้รับการป้องกันด้วยเทคนิคการเข้ารหัสเพื่อให้มั่นใจในความสมบูรณ์และความไม่สามารถแก้ไขของข้อมูลที่ถูกส่ง
การวิเคราะห์กรณี: เหตุการณ์การโจมตีจํานวนมากเผยให้เห็นข้อบกพร่องในการออกแบบโมดูลาร์ของโปรโตคอล DeFi ซึ่งมักจะขาดกลไกการป้องกันที่เพียงพอ ด้วยการออกแบบและสร้างโมดูลอิสระอย่างรอบคอบเป็นไปได้ที่จะป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่เดียวเพื่อสร้างความเสียหายร้ายแรงต่อระบบทั้งหมด ตัวอย่างเช่นในความล้มเหลวของ Synthetix off-chain oracle หากทีมพัฒนาได้ออกแบบระบบแจ้งเตือนแบบแยกส่วนไว้ล่วงหน้าก็สามารถระบุและแก้ไขข้อมูลที่ผิดปกติได้เร็วขึ้น
วิธีการปรับปรุง: เพื่อเสริมความต้านทานต่อการโจมตี นักพัฒนาสามารถนำโครงสร้างแบบชั้นเยื้องมาใช้ในขั้นตอนการพัฒนา และให้แต่ละโมดูล (แหล่งข้อมูล ตรวจสอบตรรกะ โมดูลการส่งข้อมูล) ทำงานอย่างอิสระ ตัวอย่างเช่น ใน Uniswap V3 การเก็บข้อมูลราคาจากพูลน้ำสารจากพูลน้ำสารที่แตกต่างกันในพูลสังเกตเป็นพูลที่แยกกัน ทำให้โปรโตคอลสามารถเปรียบเทียบราคาข้ามพูลน้ำสารหลาย ๆ แหล่ง ลดความเสี่ยงในการปรับเปลี่ยนในแต่ละพูลได้ ในการพัฒนาที่แต่งตัว วิธีเช่นการห่อหุ้มอินเตอร์เฟสและการฉีดฝังความขึ้นอยู่กับข้อมูล สามารถแยกระบบการตรวจสอบข้อมูลจากตรรกะอื่น ๆ ได้ ทำให้ระบบมีความยืดหยุ่นและสามารถบำรุงรักษาได้
ในขณะที่ส่วนมากของออรัคเคิลพึ่งพากับมาตรการป้องกันแบบคงทน สัญญาอัจฉริยะสามารถนำเอากลยุทธ์ป้องกันที่ทันสมัยมาใช้ต่อวิธีการโจมตีที่เปลี่ยนแปลงได้. ตัวอย่างเช่น โดยการตรวจสอบความถี่ของการเปลี่ยนแปลงราคาที่ผิดปกติ ระบบสามารถระบุได้ว่าการโจมตีกำลังเกิดขึ้น และเริ่มเรียกใช้กลไกการตรวจสอบเพิ่มเติมหรือการย้อนกลับต่อไปต่อความผิดปกติ การใช้วิธีการนี้สามารถป้องกันระบบโดยอัตโนมัติจากการสูญเสียที่เป็นไปได้ในระหว่างการแก้ไขราคาอย่างรวดเร็ว
การประยุกต์ใช้งานจริง: บางโปรโตคอลของ DeFi ใช้กลไก "threshold alert" เพื่อตรวจจับการเปลี่ยนแปลงราคาที่สำคัญในเวลาจริง หากการเปลี่ยนแปลงราคาเกินค่าเกณฑ์ที่ตั้งไว้ล่วงหน้า ระบบจะเริ่มกระบวนการตรวจสอบเพิ่มเติมหรือเปิดการทำงานใหม่เพื่อป้องกันการถูกจัดการให้เพิ่มขึ้น ตัวอย่างเช่นโปรโตคอล Balancer ใช้เกณฑ์การเบี่ยงเบนราคา หากตรวจพบราคาสูงหรือต่ำเกินไประบบจะหยุดทำธุรกรรมบางรายการจนกว่าจะมีการยืนยันราคาที่ถูกต้องเพิ่มเติม
อิงความสามารถในการปรับปรุงการออกแบบและการประยุกต์ระบบออราเคิล เราสามารถสำรวจวิธีการแก้ปัญหาที่เฉพาะเจาะจงภายในแอปพลิเคชัน DeFi ต่อไป เราจะแนะนำกลไกราคาเฉลี่ยค่าน้ำหนักตามเวลาใน Uniswap V2 และการปรับปรุงใน V3
ความปลอดภัยของออร์เคิลเป็นปัญหาหลักสำหรับโปรโตคอล DeFi โปรโตคอล DeFi หลายรายได้รับนวัตกรรมมูลค่าสูงเพื่อป้องกันการโจมตีออร์เคิลอย่างมีประสิทธิภาพ ตัวอย่างเช่น Uniswap ได้ให้แนวคิดใหม่สำหรับการออกแบบออร์เคิลผ่านการปรับปรุงในการสร้างราคาแบบออนเชนและกลไกป้องกัน การเปรียบเทียบระหว่าง Uniswap V2 และ V3 แสดงให้เห็นว่าการปรับปรุงทางเทคนิคสามารถเสริมความสามารถในการต้านการจัดการของออร์เคิลได้อย่างมีประสิทธิภาพ เส้นทางที่ชัดเจนสำหรับการออกแบบสมาร์ทคอนแทร็กที่ปลอดภัย
Uniswap V2 นำเสนอออราเคิล TWAP (Time-Weighted Average Price) ครั้งแรก เป็นออราเคิลบนเชนที่ให้นักพัฒนาออนเชนเข้าถึงข้อมูลราคาจากตลาดแบบเฉพาะกลุ่ม (DEX) ได้ TWAP เป็นออราเคิลบนเชนที่เติมเต็มข้อมูลจากข้อมูลการซื้อขายบนเชนของ Uniswap โดยไม่ต้องพึ่งพาข้อมูลนอกเชนใดๆ
ในUniswapV2Pair
สัญญา_update()
function เป็นฟังก์ชันหลักที่รับผิดชอบในการอัปเดตสำรองและผู้สะสมราคาสำหรับคู่การซื้อขาย จุดประสงค์หลักของมันคือการใช้ตัวสะสมราคาที่ถูกน้ำหนักตามเวลาเพื่อช่วยป้องกันการโจมตีจากออรัคเดียวกัน
หลักการหลักของฟังก์ชันนี้คือการจำกัดความสามารถของผู้โจมตีในการแก้ไขราคาในจุดเดียวกันในขณะใดขณะหนึ่งโดยการบันทึกการเปลี่ยนแปลงราคาที่มีน้ำหนักตามเวลาสำหรับแต่ละบล็อก โดยเฉพาะอย่างยิ่งฟังก์ชันนี้คำนวณความแตกต่างของเวลาtimeElapsed
) ระหว่างเวลาปัจจุบันและการอัปเดตล่าสุด คูณความแตกต่างนี้ด้วยราคาปัจจุบันของคู่การซื้อขาย แล้วเพิ่มผลลัพธ์เข้ากับตัวสะสมราคา(price0CumulativeLast
และ price1CumulativeLast
การสะสมนี้บันทึกราคาเฉลี่ยตามเวลาที่ถูกน้ำหนักเพื่อลดความเสี่ยงจากการผันผวนของราคา โดยเนื่องจากราคาจะถูกสะสมตลอดระยะเวลา ผู้โจมตีจำเป็นต้องดำเนินการต่อเนื่องในหลายบล็อกเพื่อเปลี่ยนแปลงราคาอย่างมีนัยสำคัญ ซึ่งทำให้ค่าใช้จ่ายในการจัดการเพิ่มขึ้น
นอกจากนี้ ฟังก์ชันยังอัปเดตตัวสะสมราคาเท่านั้นหากเวลาผ่านไป
มากกว่า 0 หมายถึงราคาจะได้รับการอัปเดตเพียงครั้งเดียวต่อบล็อก การออกแบบนี้จำกัดความถี่ของการดำเนินการของผู้โจมตีภายในเวลาสั้น ๆ ให้สามารถทำการตั้งค่าราคาได้อย่างมีประสิทธิภาพ ผู้โจมตีจำเป็นต้องแทรกแซงอย่างต่อเนื่องในระหว่างบล็อกหลาย ๆ บล็อกแทนที่จะทำในบล็อกเดียว ๆ ซึ่งทำให้ลดความน่าจะเป็นของการแก้ไขลดลง
จากมุมมองด้านความปลอดภัย กลไกนี้เป็นกลไกที่แข็งแกร่ง เพื่อให้รับประกันว่าค่าสูงสุดของสำรองไม่เกินขีดจำกัดของระบบ และการคำนวณราคาสะสมยังได้รับการป้องกันจากการเกิน องค์ประกอบดีไซน์เหล่านี้ทำให้การจัดการจากภายนอกยากขึ้นอย่างมาก
อย่างไรก็ตาม เวอร์ชัน V2 ของ oracle มีข้อจำกัดทางปฏิบัติบางประการ ตัวอย่างเช่น สัญญาทางการเมืองเท่านั้นที่ให้ค่าราคาสะสมล่าสุด จึงต้องการนักพัฒนาซอฟต์แวร์ที่จะบันทึกและเรียกข้อมูลราคาย้อนหลัง ซึ่งเป็นการใช้เทคนิคที่ยากมากขึ้น นอกจากนี้ oracle เวอร์ชัน V2 ไม่ได้บันทึกความลึกของคู่การซื้อขายโดยตรง ความลึกของคู่การซื้อขายมีความสำคัญต่อความมั่นคงของ oracle ในเชิงต่อต้านการโจมตี ความลึกที่ต่ำทำให้ง่ายต่อการปรับราคา
เพื่อแก้ไขข้อจำกัดของเวอร์ชันก่อนหน้า ยูนิสวอปได้ปรับปรุงความสามารถของ 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 และความจำเป็นต่อการต้านการแก้ไขของออราเคิลในขณะที่ให้วิธีการปฏิบัติที่มีประสิทธิภาพสำหรับการป้องกันการโจมตีออราเคิล
คำปฏิเสธ: เนื้อหาในบทความนี้มีไว้เพื่ออ้างอิงเท่านั้น และมีจุดประสงค์เพื่อการเรียนรู้และแลกเปลี่ยนความรู้เกี่ยวกับการโจมตีออรัคเคิล มันไม่ได้เป็นคำแนะนำสำหรับการดำเนินการจริงหรือกรณีการฝึกสอน
จากการเพิ่มขึ้นของ DeFi ในปี 2019 จนถึงการครบกําหนดอย่างค่อยเป็นค่อยไปภายในปี 2024 ปัญหาข้อมูลเป็นข้อกังวลหลักสําหรับนักพัฒนาอย่างต่อเนื่อง นี่เป็นเพราะการทํางานของ DeFi อาศัยข้อมูลออนเชนแบบเรียลไทม์ที่แม่นยําและคุณภาพของข้อมูลส่งผลโดยตรงต่อความปลอดภัยประสิทธิภาพและประสบการณ์ผู้ใช้ของโปรโตคอล ข้อมูลเป็นศูนย์กลางของการแลกเปลี่ยนคุณค่าและเป็นรากฐานที่สําคัญของกลไกความน่าเชื่อถือของโปรโตคอล สําหรับสัญญาอัจฉริยะข้อมูลทําหน้าที่เป็นข้อเท็จจริงอินพุต แต่สัญญาอัจฉริยะเองไม่สามารถตรวจสอบความถูกต้องของข้อมูลได้ แต่ทั้งหมดขึ้นอยู่กับข้อมูลที่ได้จากแหล่งข้อมูลภายนอก ลักษณะนี้หมายความว่าหากข้อมูลอินพุตถูกดัดแปลงหรือไม่ถูกต้องสัญญาอัจฉริยะจะยอมรับอย่างอดทนซึ่งอาจนําไปสู่ความเสี่ยงเชิงระบบ ดังนั้นการรับรองการกระจายอํานาจความน่าเชื่อถือและการใช้งานของข้อมูลจึงยังคงเป็นความท้าทายอย่างต่อเนื่อง ความท้าทายเกิดจากสองประเด็นหลัก: ประการแรกข้อมูลส่วนใหญ่ถูกควบคุมโดยสถาบันหรือแพลตฟอร์มแบบรวมศูนย์ ประการที่สองการเข้าถึงข้อมูลเป็นเรื่องยากเนื่องจากการรักษาความน่าเชื่อถือทั่วทั้งไปป์ไลน์ตั้งแต่ต้นทางไปจนถึงช่องทางการส่งข้อมูลไปจนถึงปลายทางสุดท้ายถือเป็นความท้าทายที่สําคัญ
ในฐานะที่เป็นสะพานเชื่อมระหว่างการโต้ตอบข้อมูลแบบ on-chain และ off-chain ออราเคิลมักกลายเป็นเป้าหมายหลักของการโจมตี เมื่อออราเคิลถูกจัดการผู้โจมตีสามารถใช้ประโยชน์จากข้อมูลราคาหรือตลาดที่เป็นเท็จเพื่อดําเนินการโจมตีทางเศรษฐกิจขนาดใหญ่เช่นการจัดการออราเคิลและการโจมตีด้วยเงินกู้แฟลชที่เกิดขึ้นบ่อยครั้งในปี 2021 และ 2022 แม้ภายในปี 2024 ภัยคุกคามนี้ยังคงมีอยู่ตามที่เน้นโดยเหตุการณ์ล่าสุดที่เกี่ยวข้องกับ UwU Lend และ Banana Gun เหตุการณ์เหล่านี้ยังคงเตือนเราว่าคุณภาพและความปลอดภัยของข้อมูล Oracle เป็นตัวกําหนดความสําเร็จหรือความล้มเหลวของโปรโตคอลแต่ละรายการและแบกรับความเสถียรของระบบนิเวศ DeFi ทั้งหมดโดยตรง
บทความนี้จะเน้นในการประยุกต์ใช้ออรัคเคิลในบล็อกเชน ประเภทของการโจมตี และวิธีการป้องกันการปรับแต่งออรัคเคิลที่พบบ่อย มีเป้าหมายที่จะให้ความรู้แก่ผู้อ่านเกี่ยวกับแนวคิดพื้นฐานและความสำคัญของออรัคเคิล เพื่อเสริมสติปัญญาด้านความปลอดภัย และให้คำแนะนำทางปฏิบัติสำหรับนักพัฒนาโดยปลอดภัยในการรวมออรัคเคิลเข้ากับสมาร์ทคอนแทรค
ออราเคิลเป็นอินเทอร์เฟซที่สําคัญระหว่างบล็อกเชนและโลกภายนอก มีหน้าที่รับผิดชอบในการนําเข้าข้อมูลนอกเครือข่ายไปยังบล็อกเชน เช่น ราคาตลาด ข้อมูลสภาพอากาศ หรือผลลัพธ์ของเหตุการณ์ ทําให้สัญญาอัจฉริยะสามารถเข้าถึงข้อมูลภายนอกได้ ด้วยลักษณะที่ปิดโดยเนื้อแท้ของบล็อกเชน oracles มีบทบาทสําคัญในด้านต่างๆเช่น DeFi ตลาดการคาดการณ์การประกันภัยและการเล่นเกม นอกเหนือจากการจัดการกับข้อ จํากัด ของบล็อกเชนแล้ว oracles ยังอํานวยความสะดวกในการโต้ตอบระหว่างสัญญาอัจฉริยะและข้อมูลในโลกแห่งความเป็นจริงโดยขยายขอบเขตการใช้งานของเทคโนโลยีบล็อกเชน อย่างไรก็ตาม ออราเคิลยังเผชิญกับความท้าทายและจุดปวดบางอย่าง:
เมื่อเข้าใจความหมายและบทบาทพื้นฐานของออราเคิล พวกเราจะสำรวจแบบย่อๆ ประเภทของออราเคิล วิธีการใช้งานและความเสี่ยงด้านความปลอดภัยที่พวกเขาเผชิญหน้า
Oracles สามารถแบ่งออกเป็นสองรูปแบบการใช้งาน: แบบรวมศูนย์และกระจายอํานาจ ออราเคิลแบบรวมศูนย์เช่น Oraclize มักจะพึ่งพาแหล่งข้อมูลเดียวเพื่อให้ข้อมูลนอกเครือข่าย พวกเขารวมโซลูชันฮาร์ดแวร์และซอฟต์แวร์โดยใช้ประโยชน์จากเทคโนโลยีเช่น TLSNotary และ Android Proof เพื่อให้มั่นใจในความถูกต้องของข้อมูล ออราเคิลเหล่านี้มีประสิทธิภาพและประสิทธิภาพที่มั่นคง อย่างไรก็ตามการพึ่งพาแหล่งที่เชื่อถือได้เพียงแหล่งเดียวบ่อนทําลายลักษณะการกระจายอํานาจของบล็อกเชนแนะนําคอขวดจุดเดียวและ จํากัด ความสามารถในการปรับขนาดนําเสนอความท้าทายทั้งด้านความปลอดภัยและความสามารถในการขยาย
ในทางตรงกันข้ามออราเคิลแบบกระจายอํานาจเช่น Chainlink ให้ความสําคัญกับความปลอดภัยของระบบและความโปร่งใสของความไว้วางใจ ในสถาปัตยกรรมของ Chainlink การรวบรวมข้อมูลและการตรวจสอบความถูกต้องจะดําเนินการโดยโหนดอิสระหลายโหนดกระจายไปทั่วผู้เข้าร่วมที่แตกต่างกันลดความเสี่ยงของความล้มเหลวจุดเดียว ด้วยการประสานงานการดําเนินงานแบบ on-chain และ off-chain Chainlink ช่วยให้มั่นใจได้ถึงความหลากหลายและความน่าเชื่อถือของข้อมูล การออกแบบแบบกระจายอํานาจนี้มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในแอปพลิเคชันทางการเงินซึ่งช่วยเพิ่มความต้านทานต่อการโจมตีของ Oracle อย่างไรก็ตามวิธีการนี้เกี่ยวข้องกับการแลกเปลี่ยนประสิทธิภาพและต้นทุนทําให้ไม่เหมาะสําหรับกรณีการใช้งานความถี่ต่ํา
ความสําคัญของ oracles แบบกระจายอํานาจอยู่ที่การลดความเสี่ยงของการจัดการแหล่งข้อมูลและป้องกันการละเมิดที่อาจเกิดขึ้นโดยฝ่ายที่เชื่อถือได้ฝ่ายเดียว การกระจายอํานาจช่วยให้มั่นใจได้ว่า oracles ไม่ได้ขึ้นอยู่กับแหล่งข้อมูลสองสามแหล่งอีกต่อไป แต่เพิ่มความปลอดภัยและความน่าเชื่อถือของข้อมูลผ่านโหนดแบบกระจายหลายโหนด อย่างไรก็ตาม ออราเคิลแบบกระจายอํานาจยังเผชิญกับความท้าทาย เช่น การรักษากลไกจูงใจระยะยาวที่มีประสิทธิภาพและสร้างความมั่นใจในเสถียรภาพโดยรวมของเครือข่ายออราเคิล ต่อไปเราจะสํารวจความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับ oracles แบบกระจายอํานาจและโซลูชันที่เป็นไปได้
ในการดำเนินการของ Oracle วิธีการส่งข้อมูลและวิธีการส่งข้อมูลโดยตรงมีผลต่อความปลอดภัยและความเชื่อถือของข้อมูล ออระเคิลได้รับข้อมูลจากแหล่งที่มีสองประเภท: ออกเชนและออนเชน รากฐานและวิธีการที่ได้รับข้อมูลต่างกันระหว่างวิธีการเหล่านี้
Oracles On-Chain และ Off-Chain
ตัวเลือกระหว่างแหล่งข้อมูล off-chain และ on-chain ขึ้นอยู่กับข้อกําหนดของโครงการเฉพาะและการแลกเปลี่ยนโดยธรรมชาติของแต่ละวิธี นักพัฒนาซอฟต์แวร์ต้องประเมินและจัดการกับความเสี่ยงที่เกี่ยวข้องอย่างรอบคอบ ความต้องการความสมดุลนี้นําไปสู่การวิจัยอย่างต่อเนื่องเกี่ยวกับวิธีการจัดการข้อมูลที่ปลอดภัยและเชื่อถือได้มากขึ้น ส่วนต่อไปนี้จะตรวจสอบหลักการทํางานของ oracles และช่องโหว่ที่อาจเกิดขึ้น
ส่วนนี้จะนำเสนอสถานการณ์การพัฒนาที่มีความเรียบง่ายเพื่อช่วยให้อ่านเข้าใจว่ามีกรณีการใช้ Oracle ในบล็อกเชนอย่างไร ในการพัฒนาสัญญาอัจฉริยะบล็อกเชนจริงๆ มีหลายวิธีสำหรับสัญญาอัจฉริยะในการเข้าถึงข้อมูลราคาจาก Oracle วิธีทั่วไปรวมถึงการเรียกสัญญา Oracle โดยตรงหรือใช้เทคโนโลยีเช่น Chainlink CCIP (Cross-Chain Interoperability Protocol) ความแตกต่างสำคัญระหว่างวิธีเหล่านี้คือ:
ที่นี่เราจะสาธิตการใช้งานโดยการเรียกโดยตรงไปยังสัญญาออรัคเคิล จินตนาการว่าคุณเป็นนักพัฒนาสมาร์ทคอนแทรกเตอร์ในระบบ 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 เป็นราคาที่ถูกแก้ไข หลังจากปรับราคาแล้ว ผู้โจมตีจะสามารถทำกำไรได้ในหลายวิธี เช่น:
เมื่อผู้โจมตีทำการดำเนินการเสร็จสิ้นแล้ว เขาสามารถถอนเงินได้ทันที กู้เงินแฟลชโดยมีดอกเบี้ย และชำระเงินกู้แฟลชเพื่อสิ้นสุดกระบวนการปรับเปลี่ยน
ถัดไปเราจะลงลึกในการสนทนาอย่างละเอียด การวิเคราะห์กรณีที่เฉพาะเจาะจงของการโจมตีออรัคเคิล วิธีการของพวกเขา และการตรวจสอบผลกระทบที่ทำลายต่อโปรโตคอล DeFi และระบบนิเวศออนเชน พร้อมทั้งแยกแยะตรรกะและรายละเอียดทางเทคนิคสำคัญ
แม้ว่าการแก้ไขตลาดและการโจมตีออราเคิลอาจมีผลลัพธ์ที่คล้ายกัน เช่นการบิดเบือนราคาและการสูญเสียทรัพย์สิน วิธีการและจุดต่อสู้ที่ล้มเหลวของพวกเขาแตกต่างกัน ส่วนใหญ่ความสูญเสียในพื้นที่บล็อกเชนเกิดจากการแก้ไขตลาดมากกว่าจุดบกพร่องที่แตกต่างกันของออราเคิล ความแตกต่างสำคัญคือดังนี้:
มาวิเคราะห์กรณีนี้กัน
โดยพื้นฐานแล้วการบิดเบือนตลาดทําได้โดยการเปลี่ยนแปลงราคาตลาดจริงโดย oracles สะท้อนราคาที่บิดเบือนเหล่านี้อย่างซื่อสัตย์ในขณะที่การโจมตีของ Oracle เกี่ยวข้องกับการรายงานราคาที่ไม่ถูกต้องในขณะที่ราคาตลาดยังคงเป็นปกติ เมื่อเข้าใจความแตกต่างระหว่าง oracles และการจัดการราคาขั้นตอนต่อไปของเราคือการสํารวจความแตกต่างระหว่างการเก็บข้อมูลแบบ on-chain และ off-chain เพื่อทําความเข้าใจเพิ่มเติมว่า oracles ส่งข้อมูลอย่างไร
ในหลายคดีการโจมตีของออราเคิล ประเภทที่พบบ่อยรวมถึงการจัดการราคา การให้กู้เงินแฟลชร่องรอยกับการบิดเบือนของออราเคิล ข้อผิดพลาดของข้อมูลออฟเชน และการใช้ช่องโหว่ในการออกแบบโปรโตคอล เราจะอภิปรายเคสสองประเภท: อุ๊วอุ๊วเล้นด์เหตุการณ์การจัดการราคา ซึ่งเปิดเผยถึงจุดอ่อนของออราเคิลตามลำดับบนเชนแก่การจัดการที่ไม่ดี และซินเนเท็กซ์ออราเคิลเหตุการณ์การล้มเหลวของชุดออราเคิลออฟเชน ซึ่งแสดงให้เห็นถึงผลกระทบลึกลึกของข้อผิดพลาดของข้อมูลภายนอกต่อสัญญาบนเชน
ในวันที่ 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 ควรเน้นกลยุทธ์ เช่น การรวมข้อมูลราคาจากแหล่งที่มาหลายแหล่ง การปรับความถี่ในการอัปเดตราคา และการตรวจสอบราคาที่ผิดปกติเมื่อสร้างกลไกออราเคิล การเพิ่มความสามารถในการต้านการแก้ไขสามารถลดความเสี่ยงระบบที่เกิดจากข้อผิดพลาดจุดเดียวหรือความผันผวนของตลาดได้
ในวันที่ 25 มิถุนายน 2019 Synthetix โปรโตคอลความเหนือกว่าที่มีการซื้อขายได้บน Ethereum ประสบความล้มเหลวอย่างสำคัญในระบบพิกัดออฟไลน์ที่กำหนดเอง ซึ่งทำให้ธุรกรรมเดียวสร้างกำไรที่ไม่คาดคิด Synthetix พึงพอใจกับแหล่งข้อมูลลับของมันสำหรับการส่งเสริมราคา รวมราคาและเผยแพร่บนเชิงลึกในช่วงระยะเวลาที่กำหนดเพื่อให้ผู้ใช้ได้รับราคาซื้อขายสำหรับสินทรัพย์สังเคราะห์ยาวหรือสั้น
อย่างไรก็ตาม หนึ่งในช่องราคารายงานผิดพลาด อัตราแลกเปลี่ยนเวียดนามวอน (KRW) ที่ 1,000 เท่าของค่าจริง ระบบล้มเหลวในการกรองข้อมูลผิดปกตินี้ ทำให้เกิดการยอมรับและเผยแพร่ราคาที่ไม่ถูกต้องบนเชน หุ้นส่วนการซื้อขายตรวจพบข้อผิดพลาดนี้และดำเนินการซื้อและขายอย่างรวดเร็วในตลาด sKRW สะสมกำไรมากผ่านการอาร์บิเทรจ การค้นพบประการทันทีของทีมให้พวกเขาได้ทำการเจรจากับนักซื้อขายซึ่งส่งกำไรกลับเพื่อของรางวัลการแก้บั๊ก หลีกเลี่ยงการสูญเสียที่อาจเกิน 1 พันล้านเหรียญ
แม้ว่าทีม Synthetix จะใช้มาตรการเพื่อรวบรวมข้อมูลราคาจากหลายแหล่งเพื่อป้องกันความไม่ถูกต้องจากแหล่งเดียว แต่เหตุการณ์นี้เน้นย้ําถึงความเสี่ยงโดยธรรมชาติของออราเคิลข้อมูลนอกเครือข่าย เมื่อแหล่งข้อมูลต้นน้ําผิดพลาดสัญญาแบบ on-chain ไม่มีข้อมูลเชิงลึกเกี่ยวกับกระบวนการคํานวณราคาดังนั้นจึงไม่สามารถตรวจจับความผิดปกติได้โดยอัตโนมัติ
กรณีที่กล่าวถึงข้างต้นเน้นให้เห็นว่าความท้าทายที่สำคัญของการทำนายคือไม่เพียงความแม่นยำของแหล่งข้อมูลเท่านั้น แต่ยังรวมถึงการต้านทานการโจมตีและความปลอดภัยของการรวมข้อมูลออกเชน ดังนั้นการป้องกันการโจมตีผ่านทางคำทำนายมีความสำคัญอย่างยิ่ง การเสริมความปลอดภัย ความเชื่อถือได้ และความสามารถในการต้านการโจมตีของการทำนายจึงเป็นปัจจัยสำคัญเมื่อออกแบบและใช้งานมัน ในส่วนนี้เราจะศึกษามาตรการที่มีประสิทธิภาพในการต่อต้านประเภทต่าง ๆ ของการโจมตีและเสริมความปลอดภัยโดยรวมของระบบคำทำนาย
การวิเคราะห์กรณี: ในเหตุการณ์การแก้ไขราคา UwU Lend ผู้โจมตีได้ควบคุม Oracle ราคา UwU Lend โดยการส่งผลต่อราคาของ sUSDE ในสระน้ำ Curve Finance โดยการใช้ช่องโหว่การแก้ไขราคาผู้โจมตีสามารถสกัดสินทรัพย์ออกจากระบบที่ระบบไม่สามารถประเมินค่าได้อย่างถูกต้อง หาก UwU Lend ใช้แหล่งข้อมูลหลายแหล่งเพื่อกำหนดราคาของ sUSDE ระบบสามารถตรวจสอบราคาผ่านแหล่งข้อมูลอื่น ๆ เพื่อลดความเสี่ยงของการโจมตีลง
การวิเคราะห์เพิ่มเติม: เหตุการณ์นี้เกี่ยวข้องกับการจัดการราคาและปัญหาที่เปิดเผยเกี่ยวกับสภาพคล่องไม่เพียงพอ เมื่อโทเค็นขาดสภาพคล่องของตลาดที่เพียงพอความลึกของการซื้อขายที่ตื้นทําให้ราคาได้รับอิทธิพลจากธุรกรรมจํานวนน้อยซึ่งจะเป็นการเพิ่มช่องโหว่ของ oracle ดังนั้นเมื่อเปิดตัวโทเค็นใหม่ทีมโครงการจะต้องประเมินสภาพคล่องของตลาดอย่างรอบคอบเพื่อป้องกันการบิดเบือนราคาและความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้อง ตัวอย่างเช่นโปรโตคอลการให้กู้ยืมเช่น Aave, Kamino และ Scallop กําหนดข้อ จํากัด ที่เข้มงวดยิ่งขึ้นสําหรับโทเค็นที่มีสภาพคล่องต่ําในการออกแบบเพื่อให้มั่นใจถึงเสถียรภาพและความปลอดภัยของตลาด
วิธีการปรับปรุง: เพื่อให้มั่นใจได้ว่าข้อมูลถูกต้อง โปรโตคอลควรใช้กลยุทธ์ที่มีแหล่งข้อมูลหลายแหล่งโดยรวมได้แก่เครือข่ายพร้อมลิงค์หรือบันด์โปรโตคอล เพื่อรวบรวมข้อมูลจากแลกเชนหรือสระเงินที่แตกต่างกัน วิธีการนี้ช่วยลดผลกระทบต่อความปลอดภัยของระบบทั่วไปหากแหล่งข้อมูลใดแหล่งข้อมูลหนึ่งถูกแก้ไข
การวิเคราะห์กรณี: ความล้มเหลวของ Synthetix off-chain oracle เปิดเผยความเสี่ยงของข้อผิดพลาดในแหล่งข้อมูล off-chain ในเหตุการณ์นี้ราคาเกาหลีวอน (KRW) ไม่ถูกต้องได้รับรายงาน ทำให้ bot การซื้อขายสามารถใช้ข้อผิดพลาดเพื่ออาร์บิเทรจ หาก Synthetix ได้ใช้ตัวรวมข้อมูลที่กระจายออกไป แหล่งข้อมูล off-chain อื่น ๆ ก็อาจได้รับการแก้ไขปัญหาได้อย่างรวดเร็ว แม้แหล่งข้อมูล off-chain หนึ่งจะล้มเหลว
วิธีการปรับปรุง: คล้ายกับการปรับปรุงใน Uniswap V3 การใช้ตัวรวมข้อมูลที่กระจายแบบยกระดับสามารถเพิ่มความปลอดภัยของการส่งข้อมูลได้ โดยการใช้โปรโตคอลทางคริปโทและการยืนยันลายเซ็นต์ ร่วมกับโหนดรีเลย์ที่กระจายอย่างยกระดับ ระบบสามารถป้องกันการโจมตีแบบ Man-in-the-Middle และการแก้ไขข้อมูลได้ เช่นเช่นใน Oracle ของ Chainlink แหล่งข้อมูลทุกแห่งจะได้รับการตรวจสอบจากโหนดอิสระหลายๆ แห่งและได้รับการป้องกันด้วยเทคนิคการเข้ารหัสเพื่อให้มั่นใจในความสมบูรณ์และความไม่สามารถแก้ไขของข้อมูลที่ถูกส่ง
การวิเคราะห์กรณี: เหตุการณ์การโจมตีจํานวนมากเผยให้เห็นข้อบกพร่องในการออกแบบโมดูลาร์ของโปรโตคอล DeFi ซึ่งมักจะขาดกลไกการป้องกันที่เพียงพอ ด้วยการออกแบบและสร้างโมดูลอิสระอย่างรอบคอบเป็นไปได้ที่จะป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่เดียวเพื่อสร้างความเสียหายร้ายแรงต่อระบบทั้งหมด ตัวอย่างเช่นในความล้มเหลวของ Synthetix off-chain oracle หากทีมพัฒนาได้ออกแบบระบบแจ้งเตือนแบบแยกส่วนไว้ล่วงหน้าก็สามารถระบุและแก้ไขข้อมูลที่ผิดปกติได้เร็วขึ้น
วิธีการปรับปรุง: เพื่อเสริมความต้านทานต่อการโจมตี นักพัฒนาสามารถนำโครงสร้างแบบชั้นเยื้องมาใช้ในขั้นตอนการพัฒนา และให้แต่ละโมดูล (แหล่งข้อมูล ตรวจสอบตรรกะ โมดูลการส่งข้อมูล) ทำงานอย่างอิสระ ตัวอย่างเช่น ใน Uniswap V3 การเก็บข้อมูลราคาจากพูลน้ำสารจากพูลน้ำสารที่แตกต่างกันในพูลสังเกตเป็นพูลที่แยกกัน ทำให้โปรโตคอลสามารถเปรียบเทียบราคาข้ามพูลน้ำสารหลาย ๆ แหล่ง ลดความเสี่ยงในการปรับเปลี่ยนในแต่ละพูลได้ ในการพัฒนาที่แต่งตัว วิธีเช่นการห่อหุ้มอินเตอร์เฟสและการฉีดฝังความขึ้นอยู่กับข้อมูล สามารถแยกระบบการตรวจสอบข้อมูลจากตรรกะอื่น ๆ ได้ ทำให้ระบบมีความยืดหยุ่นและสามารถบำรุงรักษาได้
ในขณะที่ส่วนมากของออรัคเคิลพึ่งพากับมาตรการป้องกันแบบคงทน สัญญาอัจฉริยะสามารถนำเอากลยุทธ์ป้องกันที่ทันสมัยมาใช้ต่อวิธีการโจมตีที่เปลี่ยนแปลงได้. ตัวอย่างเช่น โดยการตรวจสอบความถี่ของการเปลี่ยนแปลงราคาที่ผิดปกติ ระบบสามารถระบุได้ว่าการโจมตีกำลังเกิดขึ้น และเริ่มเรียกใช้กลไกการตรวจสอบเพิ่มเติมหรือการย้อนกลับต่อไปต่อความผิดปกติ การใช้วิธีการนี้สามารถป้องกันระบบโดยอัตโนมัติจากการสูญเสียที่เป็นไปได้ในระหว่างการแก้ไขราคาอย่างรวดเร็ว
การประยุกต์ใช้งานจริง: บางโปรโตคอลของ DeFi ใช้กลไก "threshold alert" เพื่อตรวจจับการเปลี่ยนแปลงราคาที่สำคัญในเวลาจริง หากการเปลี่ยนแปลงราคาเกินค่าเกณฑ์ที่ตั้งไว้ล่วงหน้า ระบบจะเริ่มกระบวนการตรวจสอบเพิ่มเติมหรือเปิดการทำงานใหม่เพื่อป้องกันการถูกจัดการให้เพิ่มขึ้น ตัวอย่างเช่นโปรโตคอล Balancer ใช้เกณฑ์การเบี่ยงเบนราคา หากตรวจพบราคาสูงหรือต่ำเกินไประบบจะหยุดทำธุรกรรมบางรายการจนกว่าจะมีการยืนยันราคาที่ถูกต้องเพิ่มเติม
อิงความสามารถในการปรับปรุงการออกแบบและการประยุกต์ระบบออราเคิล เราสามารถสำรวจวิธีการแก้ปัญหาที่เฉพาะเจาะจงภายในแอปพลิเคชัน DeFi ต่อไป เราจะแนะนำกลไกราคาเฉลี่ยค่าน้ำหนักตามเวลาใน Uniswap V2 และการปรับปรุงใน V3
ความปลอดภัยของออร์เคิลเป็นปัญหาหลักสำหรับโปรโตคอล DeFi โปรโตคอล DeFi หลายรายได้รับนวัตกรรมมูลค่าสูงเพื่อป้องกันการโจมตีออร์เคิลอย่างมีประสิทธิภาพ ตัวอย่างเช่น Uniswap ได้ให้แนวคิดใหม่สำหรับการออกแบบออร์เคิลผ่านการปรับปรุงในการสร้างราคาแบบออนเชนและกลไกป้องกัน การเปรียบเทียบระหว่าง Uniswap V2 และ V3 แสดงให้เห็นว่าการปรับปรุงทางเทคนิคสามารถเสริมความสามารถในการต้านการจัดการของออร์เคิลได้อย่างมีประสิทธิภาพ เส้นทางที่ชัดเจนสำหรับการออกแบบสมาร์ทคอนแทร็กที่ปลอดภัย
Uniswap V2 นำเสนอออราเคิล TWAP (Time-Weighted Average Price) ครั้งแรก เป็นออราเคิลบนเชนที่ให้นักพัฒนาออนเชนเข้าถึงข้อมูลราคาจากตลาดแบบเฉพาะกลุ่ม (DEX) ได้ TWAP เป็นออราเคิลบนเชนที่เติมเต็มข้อมูลจากข้อมูลการซื้อขายบนเชนของ Uniswap โดยไม่ต้องพึ่งพาข้อมูลนอกเชนใดๆ
ในUniswapV2Pair
สัญญา_update()
function เป็นฟังก์ชันหลักที่รับผิดชอบในการอัปเดตสำรองและผู้สะสมราคาสำหรับคู่การซื้อขาย จุดประสงค์หลักของมันคือการใช้ตัวสะสมราคาที่ถูกน้ำหนักตามเวลาเพื่อช่วยป้องกันการโจมตีจากออรัคเดียวกัน
หลักการหลักของฟังก์ชันนี้คือการจำกัดความสามารถของผู้โจมตีในการแก้ไขราคาในจุดเดียวกันในขณะใดขณะหนึ่งโดยการบันทึกการเปลี่ยนแปลงราคาที่มีน้ำหนักตามเวลาสำหรับแต่ละบล็อก โดยเฉพาะอย่างยิ่งฟังก์ชันนี้คำนวณความแตกต่างของเวลาtimeElapsed
) ระหว่างเวลาปัจจุบันและการอัปเดตล่าสุด คูณความแตกต่างนี้ด้วยราคาปัจจุบันของคู่การซื้อขาย แล้วเพิ่มผลลัพธ์เข้ากับตัวสะสมราคา(price0CumulativeLast
และ price1CumulativeLast
การสะสมนี้บันทึกราคาเฉลี่ยตามเวลาที่ถูกน้ำหนักเพื่อลดความเสี่ยงจากการผันผวนของราคา โดยเนื่องจากราคาจะถูกสะสมตลอดระยะเวลา ผู้โจมตีจำเป็นต้องดำเนินการต่อเนื่องในหลายบล็อกเพื่อเปลี่ยนแปลงราคาอย่างมีนัยสำคัญ ซึ่งทำให้ค่าใช้จ่ายในการจัดการเพิ่มขึ้น
นอกจากนี้ ฟังก์ชันยังอัปเดตตัวสะสมราคาเท่านั้นหากเวลาผ่านไป
มากกว่า 0 หมายถึงราคาจะได้รับการอัปเดตเพียงครั้งเดียวต่อบล็อก การออกแบบนี้จำกัดความถี่ของการดำเนินการของผู้โจมตีภายในเวลาสั้น ๆ ให้สามารถทำการตั้งค่าราคาได้อย่างมีประสิทธิภาพ ผู้โจมตีจำเป็นต้องแทรกแซงอย่างต่อเนื่องในระหว่างบล็อกหลาย ๆ บล็อกแทนที่จะทำในบล็อกเดียว ๆ ซึ่งทำให้ลดความน่าจะเป็นของการแก้ไขลดลง
จากมุมมองด้านความปลอดภัย กลไกนี้เป็นกลไกที่แข็งแกร่ง เพื่อให้รับประกันว่าค่าสูงสุดของสำรองไม่เกินขีดจำกัดของระบบ และการคำนวณราคาสะสมยังได้รับการป้องกันจากการเกิน องค์ประกอบดีไซน์เหล่านี้ทำให้การจัดการจากภายนอกยากขึ้นอย่างมาก
อย่างไรก็ตาม เวอร์ชัน V2 ของ oracle มีข้อจำกัดทางปฏิบัติบางประการ ตัวอย่างเช่น สัญญาทางการเมืองเท่านั้นที่ให้ค่าราคาสะสมล่าสุด จึงต้องการนักพัฒนาซอฟต์แวร์ที่จะบันทึกและเรียกข้อมูลราคาย้อนหลัง ซึ่งเป็นการใช้เทคนิคที่ยากมากขึ้น นอกจากนี้ oracle เวอร์ชัน V2 ไม่ได้บันทึกความลึกของคู่การซื้อขายโดยตรง ความลึกของคู่การซื้อขายมีความสำคัญต่อความมั่นคงของ oracle ในเชิงต่อต้านการโจมตี ความลึกที่ต่ำทำให้ง่ายต่อการปรับราคา
เพื่อแก้ไขข้อจำกัดของเวอร์ชันก่อนหน้า ยูนิสวอปได้ปรับปรุงความสามารถของ 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 และความจำเป็นต่อการต้านการแก้ไขของออราเคิลในขณะที่ให้วิธีการปฏิบัติที่มีประสิทธิภาพสำหรับการป้องกันการโจมตีออราเคิล
คำปฏิเสธ: เนื้อหาในบทความนี้มีไว้เพื่ออ้างอิงเท่านั้น และมีจุดประสงค์เพื่อการเรียนรู้และแลกเปลี่ยนความรู้เกี่ยวกับการโจมตีออรัคเคิล มันไม่ได้เป็นคำแนะนำสำหรับการดำเนินการจริงหรือกรณีการฝึกสอน