ปัญหาออราเคิลคืออะไร?
ปัญหาออราเคิลคือเรื่องชวนปวดหัวที่เกิดขึ้นเมื่อบล็อกเชนต้องการข้อมูลภายนอก แต่ดึงข้อมูลเองไม่ได้ คุณมีโค้ดที่ทำงานได้โดยไม่ต้องอาศัยความไว้วางใจ แต่กลับต้องเชื่อถืออะไรบางอย่างเพื่อให้รู้ราคา ETH หรือสภาพอากาศวันนี้ ลองนึกถึงห้องครัวที่ล็อกอยู่ แล้วต้องถามคนตรงหน้าต่างว่าฝนตกไหมก่อนจะเริ่มทำซุป
“แค่เชื่อมต่อ API อะไรก็ได้ก็จบแล้ว” ไม่เชิง การดึงข้อมูลจากแหล่งข้อมูลแบบรวมศูนย์เพียงแห่งเดียวอาจเพิ่มจุดที่ระบบล้มเหลวและอคติ ซึ่งเป็นสิ่งที่ปัญหาออราเคิลเตือนไว้พอดี
ปัญหาออราเคิลเกิดขึ้นได้อย่างไร
ปัญหาออราเคิลเกิดขึ้นเมื่อโค้ดบนเชนต้องการข้อมูลที่อยู่นอกเชน มาดูขั้นตอนคร่าว ๆ กัน:
- ขั้นตอนที่ 1: การเรียกใช้สมาร์ตคอนแทรกต์ต้องการข้อมูล เช่น ราคา BTC หรือคะแนนการแข่งขัน
- ขั้นตอนที่ 2: ออราเคิลดึงข้อมูลนั้นจากแหล่งต่าง ๆ เช่น กระดานเทรดหลายแห่ง แล้วจัดข้อมูลให้อยู่ในรูปแบบพร้อมใช้
- ขั้นตอนที่ 3: ออราเคิลส่งข้อมูลขึ้นเชนเพื่อให้สัญญาอ่านได้
- ขั้นตอนที่ 4: สัญญาดำเนินการ ซึ่งอาจเป็นการบังคับขายหลักประกันเงินกู้หรือจ่ายเงินออกไป
- ขั้นตอนที่ 5: หากฟีดข้อมูลผิดพลาด ล่าช้า หรือถูกบิดเบือน ผลลัพธ์ก็จะคลาดเคลื่อนและมูลค่าจะถูกโอนไปผิดทาง
นี่จึงเป็นเหตุผลที่ปัญหาออราเคิลว่าด้วยการนำความจริงจากภายนอกเข้ามาโดยไม่ทำให้หลักความไว้วางใจเสียไป คงพอเห็นภาพกันแล้ว
ทำไมปัญหาออราเคิลจึงสำคัญ
ถ้าคุณสนใจให้คริปโตใช้งานได้จริง เรื่องนี้ก็สำคัญ
- ประโยชน์: การออกแบบออราเคิลที่ดีขึ้นช่วยให้ตรรกะทางการเงินทำงานอย่างเที่ยงตรง การบังคับขายหลักประกัน การจ่ายเงิน และการซื้อขายจึงเกิดขึ้นบนข้อมูลที่เป็นธรรม
- มุมมอง: นี่คือปัญหาที่ซ่อนอยู่เบื้องหลังฟีดราคา การพนันกีฬา และคุณลักษณะของ NFT ที่อัปเดตได้ หากระบบนี้ล้มเหลว บรรยากาศก็แย่ลงได้ทันที
- ความเกี่ยวข้อง: คุณจะพบปัญหานี้ในการเงินแบบกระจายศูนย์ (DeFi) เกม ตลาดคาดการณ์ และแม้แต่ประกันภัยบนเชน
ควรเลือกเครือข่ายออราเคิลแบบกระจายศูนย์ที่ดึงข้อมูลจากหลายแหล่ง ส่งข้อมูลบ่อย และเปิดเผยวิธีคำนวณ ความโปร่งใสดีกว่าการเชื่อจากความรู้สึก
ลักษณะสำคัญของปัญหาออราเคิล
ประเด็นที่กำหนดลักษณะของเรื่องนี้:
- ความไว้วางใจ: คุณกำลังพยายามลดการพึ่งพาความไว้วางใจให้น้อยที่สุด แม้ข้อมูลจะมาจากบุคคลภายนอก
- ความสิ้นสุดสมบูรณ์: เมื่อข้อมูลขึ้นเชนแล้ว โดยหลักแล้วจะเปลี่ยนแปลงแก้ไขไม่ได้ ข้อมูลผิดที่ป้อนเข้ามาจึงคงอยู่ด้วย
- ความหน่วง: ฟีดต้องสดใหม่พอที่จะป้องกันการดำเนินการตามข้อมูลล้าสมัย โดยไม่ส่งข้อมูลถี่จนเป็นภาระให้เชน
- ความหลากหลาย: แหล่งข้อมูลและผู้รายงานหลายรายที่เป็นอิสระต่อกันช่วยลดจุดล้มเหลวเพียงจุดเดียว
- แรงจูงใจ: ผู้รายงานต้องมีส่วนได้ส่วนเสียจริง โดยมีรางวัลและบทลงโทษที่ส่งเสริมการรายงานความจริง
รูปแบบต่าง ๆ
ปัญหาออราเคิลมีรูปแบบต่างกัน ขึ้นอยู่กับข้อมูลและทิศทางการรับส่งที่คุณต้องการ:
- ขาเข้า: ข้อมูลจากโลกจริงที่เข้ามายังเชน เช่น ราคาหรือสภาพอากาศ
- ขาออก: ผลการตัดสินใจของสัญญาที่ส่งไปยังระบบชำระเงินหรือเซิร์ฟเวอร์เกม
- แบบผลักข้อมูล: ฟีดอัปเดตข้อมูลบนเชนตามช่วงเวลาที่กำหนดโดยไม่ต้องมีคำขอ
- แบบดึงข้อมูล: สัญญาขอข้อมูลเฉพาะเมื่อจำเป็นเพื่อประหยัดค่าใช้จ่าย
- แบบลงลายมือชื่อ: ผู้ให้บริการข้อมูลลงลายมือชื่อกำกับค่าข้อมูลนอกเชน เพื่อให้ทุกคนตรวจสอบแหล่งที่มาได้
- แบบคณะกรรมการ: กลุ่มผู้รายงานตกลงกันให้ได้ก่อนส่งค่าข้อมูลขึ้นเชน
ปัญหาออราเคิลไม่ได้เป็นแค่เรื่องทางเทคนิค แต่เป็นเรื่องทางสังคมด้วย คุณเชื่อใจใคร พวกเขาได้รับค่าตอบแทนอย่างไร และจะเกิดอะไรขึ้นถ้าพวกเขาโกง? ต้องตอบคำถามเหล่านี้ให้ได้ ไม่อย่างนั้นสิ่งที่โค้ดสัญญาไว้ก็ยังอาจผิดไปจากที่คาด
ตัวอย่าง
โปรโตคอลให้กู้ยืมอ่านฟีดราคา ETH ลดลงหนึ่งเปอร์เซ็นต์ หลักประกันเงินกู้ถูกบังคับขาย แล้วหลายชั่วโมงต่อมาทุกคนจึงรู้ว่าฟีดผิดพลาด เพราะกระดานเทรดเพียงแห่งเดียวทำงานผิดปกติ นี่คือปัญหาออราเคิลแบบคลาสสิก
เกร็ดน่ารู้
“Oracle” มาจากผู้พยากรณ์ในสมัยโบราณที่สื่อสารแทนเทพเจ้า ส่วนในโลกคริปโต เราขอให้พวกเขาบอกราคาและเช็กว่าฝนตกไหม ซึ่งอาจฟังดูมีมนต์ขลังน้อยลง แต่ตรวจสอบได้มากกว่าเยอะ
สรุป
ปัญหาออราเคิลในบรรทัดเดียว: นำความจริงจากภายนอกขึ้นเชนโดยไม่ขอให้ผู้ใช้เชื่อคุณเฉย ๆ ทำเรื่องนี้ให้ถูกต้อง แล้วส่วนที่เหลือก็จะเริ่มลงตัว เหมือน Rolex มาพบกับกระทู้ Reddit