คุณภาพข้อมูลสำหรับ DeFi Smart Contract

Chainlink Thailand
Chainlink Community
10 min readFeb 9, 2023

Ecosystem ของ Decentralized Finance (DeFi) และมูลค่าใน blockchain oracles กำลังเติบโตควบคู่กันไป ทั้งสองส่งเสริมการเติบโตและความสำเร็จของกันและกัน เนื่องจากมูลค่าบน DeFi ยังคงเติบโตอย่างรวดเร็ว การทำให้มั่นใจว่า ecosystem ของระบบการเงินแบบกระจายอำนาจได้รับการรับประกันความปลอดภัยและความน่าเชื่อถือในระดับสูงแก่ผู้ใช้จึงมีความสำคัญมาก

ปัญหาด้าน oracle (Oracle problem) ของ blockchain เป็นที่รู้จักอย่างแพร่หลาย เนื่องจากมีบทความจำนวนมากได้พูดถึงประเด็นนี้อย่างละเอียด แต่ในส่วนของ “คุณภาพข้อมูล (data quality)” ที่ได้รับจาก Oracle ยังคงไม่ค่อยเป็นที่รู้จักและมีความเข้าใจผิดอยู่ ความเข้าใจผิดนั้นเกิดจากความเข้าใจว่า Oracle มีหน้าที่สองอย่างทั้งการส่งข้อมูลภายนอกมายัง Network พร้อมกับการสร้างข้อมูลคุณภาพสูง (high quality data) จากประสบการณ์ในการ research และสร้าง Oracle ที่ปลอดภัยนั้น Blockchain oracle ถูกออกแบบมาเพื่อส่งข้อมูลภายนอกมายัง On-chain และป้องกันการบิดเบือนข้อมูล (Manipulation) แต่ Oracle ไม่ได้มีหน้าที่ในการสร้างข้อมูลขึ้นมาเอง

การมองปัญหาเหล่านี้แยกกัน (การส่งข้อมูล กับ คุณภาพข้อมูล) ถูกนำไปใช้ออกแบบ architecture ของ Oracle Network แบบ decentralize ของ Chainlink Data Feeds ซึ่งเป็น Oracles ที่ DeFi นำไปใช้มากที่สุด และจากความสำเร็จของ Oracle network ในการให้ข้อมูลคุณภาพสูงกับ Application ที่ใช้งานได้จริง Chainlink ได้แนะนำ 5 สิ่งสำคัญในการแก้ปัญหาเรื่องคุณภาพข้อมูล

  1. เลือกเชื่อมต่อ Oracle node เข้ากับ data provider ที่น่าเชื่อถือเพื่อให้ความมั่นใจกับลูกค้าที่เป็น smart contract ว่าจะได้รับการเข้าถึงข้อมูลคุณภาพสูง ดังนั้น oracle protocol ต้องมีระบบจัดการตัวตนและ password ได้ Node จึงสามารถจัดเก็บ API key และจัดการการเข้าสู่ระบบ (login) สำหรับการสมัครสมาชิกแบบ subscription ได้อย่างปลอดภัย
  2. มี Node ข้อมูลราคา (price data) ที่เป็นผู้ให้บริการข้อมูลคุณภาพสูงที่เชี่ยวชาญในการสร้างข้อมูลราคาที่แม่นยำ โดยเฉพาะผู้รวบรวมข้อมูล (data aggregator) ที่ดูแลครอบคลุมในทุกสภาพแวดล้อมของการซื้อ-ขาย การใช้กลไกของ Oracle เพื่อสร้างราคาตลาดกลาง (Global market price) จากการรวบรวมข้อมูลดิบของ data feed นั้นทำได้ยากและเปิดช่องว่างในการโจมตี Oracle จำนวนมาก เช่น การเปลี่ยนแปลงของ volume อย่างรวดเร็วรวมถึงค่าผิดปกติของข้อมูล (outlier) ซึ่งทั้งสองอย่างที่ยกตัวอย่างมาไม่ใช่เรื่องแปลกในตลาด cryptocurrency
  3. การกระจายอำนาจจะเป็นส่วนสำคัญในความปลอดภัย (security) และความน่าเชื่อถือ (reliability) ของ Oracle โดยควรรวบรวมข้อมูลจาก Node จำนวนมากเพื่อให้ Oracle นั้นทนทานต่อการบิดเบือนข้อมูล (Manipulation) และพร้อมใช้งานเมื่อต้องการส่งข้อมูลไป smart contract การดึงข้อมูลจากผู้ให้บริการข้อมูลคุณภาพสูงหลายเจ้าช่วยเพิ่มการกระจายอำนาจของข้อมูล (data source)
  4. ระบบที่ให้ทั้ง User และ Developer ใช้งานพร้อมกับมีข้อมูล on-chain เชิงลึกด้านประสิทธิภาพในอดีตและปัจจุบันของแต่ละ Node และ Oracle Network ให้คอยติดตาม เพื่อลดความเสี่ยงด้านความปลอดภัย และให้คนจำนวนมากที่สุดเท่าที่จะเป็นไปได้สามารถช่วยตรวจปัญหาที่อาจเกิดขึ้นได้ตั้งแต่เนิ่นๆ ก่อนที่จะกลายเป็นปัญหาใหญ่ภายหลัง
  5. หลีกเลี่ยงความเสี่ยงขนาดใหญ่ เช่น การใช้แหล่งข้อมูลจาก exchange เดียว และ/หรือการลดคุณภาพข้อมูลจาก Oracle ที่ปลอดภัยด้วยข้อมูลคุณภาพต่ำจาก Oracle ที่มีความปลอดภัยต่ำ การกระจายอำนาจโดยที่ไม่มีมาตรฐานการควบคุมคุณภาพจะทำให้ contract มีโอกาสถูกโจมตีมากขึ้น ซึ่งมักนำไปสู่ผลที่ตามมาโดยไม่ได้ตั้งใจ

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

องค์ประกอบของ Decentralize Oracle Network ที่ปลอดภัย

Oracle เป็นตัวกลางที่เป็นสะพานเชื่อมระหว่าง blockchain กับโลกภายนอก ช่วยให้ smar tcontract ได้รับข้อมูลที่อยู่ภายนอก blockchain เพื่อให้รับรู้ถึงเหตุการณ์ภายนอกในโลกแห่งความเป็นจริง การเชื่อมต่อกับภายนอกนี้เพิ่มโอกาสในการเขียน smart contract ได้อย่างมหาศาล ทำให้ developer สามารถหาโอกาสใหม่ๆ ในตลาดได้มากขึ้น แต่ด้วยการเชื่อมต่อที่เพิ่มขึ้นทำให้เกิดโอกาสการถูกโจมตีที่เพิ่มขึ้นซึ่งต้องได้รับการรักษาความปลอดภัยแก่ผู้เขียน smart contract ในด้านความต้านทานการงัดแงะ (tamper resistance) การไม่เปลี่ยนรูป (immutability) และความพร้อมใช้งาน (availability)

Decentralize Oracle Network เป็นตัวกลางที่ปลอดภัยสำหรับการเชื่อมต่อระหว่าง on-chain และ off-chain ให้ framework ในการสร้างความปลอดภัยและความน่าเชื่อถือสำหรับ user ในการใช้งาน smart contract ที่เชื่อมต่อโลกภายนอกด้วยเงิน user หลาย 1,000 ล้านดอลลาร์ หากไม่มี Oracle ที่มีมาตรฐานความปลอดภัยและความน่าเชื่อถือเดียวกันบน blockchain ต่อให้ code ของ smart contract นั้นจะไร้ที่ติ แต่ smart contract นั้นก็ยังคงมีความเสี่ยงอยู่ดี

Chainlink Data Feeds เป็นชุดของ Decentralize Oracle Network ที่ให้ข้อมูลราคาที่ใหญ่ที่สุดบน Ethereum ecosystem ซึ่ง DeFi ชั้นนำจำนวนมากใช้งานอยู่ การออกแบบ Oracle Network ราคาเหล่านี้เป็นไปตามการรักษาความปลอดภัยตามแนวทางการกระจายอำนาจที่ตรวจสอบได้ และปฏิบัติตามแนวทางคุณภาพข้อมูลที่ดีที่สุดเพื่อนำความปลอดภัยสูงสุดมาสู่ user ต่อไปนี้เป็นหลัก 4 ข้อ ของ Chainlink Data Feeds ซึ่ง Decentralize Oracle Network ที่ต้องการรับประกันคุณภาพของข้อมูลควรนำไปใช้

ข้อมูลคุณภาพสูงจาก Data provider ระดับพรีเมียม

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

การสร้างข้อมูลคุณภาพสูงนั้นต้องใช้เงินทุนมาก ต้องมีสัญญาที่มีผลทางกฎหมายและข้อมูลรับรองในการเข้าถึง Node ต้องมีการสมัครสมาชิก (subscription) กับ Data provider (API) หรือได้รับอนุญาตเฉพาะจาก Data provider (เช่น ข้อมูลภายในองค์กร) โมเดลทั้งสองแบบนี้ต้องการความสามารถในการจัดการข้อมูล Credential กับ password เพื่อเชื่อมโยงการโต้ตอบระหว่าง Node และ API ดังนั้น Node operator จึงต้องมีความสามารถในการจัดเก็บ API key และจัดการการเข้าสู่ระบบบัญชีเพื่อโต้ตอบกับ Data provider ระดับพรีเมียมเหล่านี้

Oracle ที่ไม่สามารถเชื่อมต่อกับ API ระดับพรีเมียมได้เนื่องจากขาดความสามารถในการจัดการ Credential จะขาดโอกาสในการใช้งาน API แบบเปิดและฟรี โดยทั่วไป API เหล่านั้นเป็นข้อมูลคุณภาพต่ำ ถูกควบคุมอัตราจำกัด เวลาตอบสนองที่ไม่ช้า และไม่มีการรับประกันความพร้อมใช้งานหรือคุณภาพบริการที่มีผลทางกฎหมาย ทำให้แหล่งข้อมูลดังกล่าวนั้นไม่เหมาะกับ use-case ที่มีมูลค่าสูง ปานกลาง หรือแม้แต่ขนาดเล็กจำนวนมาก Smart contract ที่ป้อนข้อมูลคุณภาพต่ำไม่มีการรับประกันความน่าเชื่อถือหรือความถูกต้องของข้อมูลที่ใช้ ซึ่งสร้างความเสี่ยงในการถูกการโจมตีที่มากขึ้นเช่นเดียวกับเทคโนโลยีอื่นที่ขับเคลื่อนด้วยข้อมูล

Chainlink Node ที่เข้าร่วมใน Price Reference Data Contract ใช้ External Adapter ทำให้สามารถเชื่อมต่อกับ API พรีเมียมได้ API เหล่านี้ให้ข้อมูลที่มีคุณภาพสูงกว่า เวลาตอบสนองที่เร็วกว่า และมีความพร้อมใช้งานและคุณภาพการบริการที่ดีกว่า External Adapter เป็น Modular สามารถเขียนด้วยภาษาใดก็ได้ และสามารถ host จาก Server อื่นที่ไม่ใช่ Chainlink Node ได้เช่นกัน สามารถใช้เพื่อดึงข้อมูลจาก Data provider , Web API , ระบบขององค์กร, IoT, payment system , blockchain อื่นๆ

การกระจายอำนาจของ Node operator คุณภาพสูง

คุณภาพของข้อมูลเป็นจุดที่ต้องระวังหากไม่มีกลไกของ Oracle ที่ปลอดภัยและเชื่อถือได้ในการส่งข้อมูลไปยัง Smart contract การกระจายอำนาจของ Node operator คุณภาพสูงเป็นรูปแบบการออกแบบที่สำคัญเพื่อป้องกันช่วงเวลาหยุดทำงาน (downtime) ที่ไม่สามารถคาดเดาได้ และลดความจำเป็นที่ต้องเชื่อใจบุคคลใดบุคคลหนึ่งในกระบวนการจัดส่งข้อมูล Decentralize consensus จะเพิ่มค่าใช้จ่ายในการโจมตีอย่างมาก เพราะแม้ว่าบาง Node จะประสบปัญหาการหยุดทำงานหรือเป็น Node ที่เป็นอันตราย แต่ก็จะส่งผลกระทบเพียงเล็กน้อยต่อโดยรวม

Price Reference Contracts ของ Chainlink ขับเคลื่อนโดย Decentralize Oracle Network ที่รวบรวมการตอบสนองจาก Oracle Node จำนวนมากที่เป็นอิสระ, ปลอดภัย และมีความทนทาน (Sybil-resistant) Node ของ Chainlink ดำเนินการโดย Blockchain DevOps ชั้นนำและทีม security ที่กระจายอยู่ทั่วโลก รวมทั้ง Server ทั้งแบบ Cloud และ Server แบบตั้งเองเพื่อหลีกเลี่ยงความเสี่ยงเพียงจุดเดียว (single point of failture) ในกลไกของ Oracle นอกจากนี้ยังมี Node operator โดยชุมชนจำนวนมากอยู่ในโหมด stand-by ที่สามารถพร้อมลงใน Network ตลอดเวลาเพื่อการกระจายอำนาจที่มากขึ้น

การกระจายอำนาจของแหล่งข้อมูลคุณภาพสูง

โซลูชัน Oracle จะสามารถมีประสิทธิภาพมากขึ้นได้โดยการรวมแหล่งข้อมูลหลายๆ แหล่ง ในขณะเดียวกันต้องไม่ลดทอนคุณภาพของแหล่งข้อมูลแต่ละแหล่ง การกระจายแหล่งข้อมูลคุณภาพสูงช่วยป้องกันไม่ให้ Data provider รายเดียวเป็นแหล่งความจริงเพียงที่เดียว และป้องกันสถานการณ์เมื่อ Data provider เดียวนั้น off-line แต่อย่างไรก็ตามอาจมีบางสถานการณ์ที่ใช้แหล่งข้อมูลคุณภาพสูงเพียงแหล่งเดียว ซึ่งเป็นเทคนิคการเข้ารหัสขั้นสูงสำหรับการรักษาคุณภาพของข้อมูล เช่น staking-backed service agreements (กล่าวถึงด้านล่าง), TLS verification (Town Crier, DECO) และ zero-knowledge proofs เริ่มมีความสำคัญมากขึ้น

Chainlink Price Reference Contracts มีการกระจายอำนาจที่ระดับแหล่งข้อมูล แต่ละ Price Reference Network จะรวบรวมแหล่งข้อมูลการตลาดจาก Data provider ที่อิสระและเชื่อถือได้สูงหลายราย Data provider เหล่านี้ประกอบด้วยผู้รวบรวมข้อมูล (data aggregator) ระดับพรีเมียมที่ครอบคลุมตลาดในทุกสภาพแวดล้อมการซื้อ-ขายอย่าง Brave New Coin, Kaiko, Amberdata และ data API ที่มีชื่อเสียงอื่นๆ อีกมากมาย จากนั้นจุดข้อมูลแต่ละที่จะถูกรวมเข้าด้วยกันเพื่อสร้างราคาอ้างอิงเดียวที่จัดเก็บไว้ใน Network สำหรับ Contract ที่ต้องการเข้าถึงด้วยการใช้ read function

การแสดงภาพ (Visualization) และการตรวจสอบ (Monitoring) แบบ Open-source

หาก Smart contract ของแอปพลิเคชัน DeFi เป็น Open-source ที่สาธารณะสามารถเข้ามาตรวจสอบแบบ real-time ได้ กลไกราคาของ Oracle ที่ให้ข้อมูลก็ควรจะโปร่งใสเช่นกัน หากไม่มีความโปร่งใสของโซลูชัน Oracle แล้ว User ของ dApp จะไม่สามารถตรวจสอบได้ว่าข้อมูลมาจากที่ไหน, Node ไหนกำลังให้ข้อมูล, เวลาแฝงของการตอบสนอง (latency), ประสิทธิภาพในอดีตของ Oracle Network, ความถูกต้องของข้อมูล และอื่นๆ

Chainlink Price Reference Data contracts แต่ละ contract มาพร้อมกับการแสดงภาพ (Visualization) ที่โปร่งใสซึ่งได้มาจากข้อมูล (on-chain) ซึ่งแสดงชุดข้อมูลที่มีรายละเอียดมาก เช่น:

  • ราคาล่าสุดของ reference data feed แต่ละรายการ
  • DeFi ใดบ้างที่สนับสนุน price feed แต่ละรายการ
  • Node operator เจ้าใดกำลังรักษาความปลอดภัย price feed
  • การ update จะเกิดขึ้นเมื่อไหร่
  • จำนวนของ Node ขั้นต่ำที่จำเป็นสำหรับการ aggregate เพื่อเริ่มต้น
  • ข้อมูลสำคัญอื่นๆ เกี่ยวกับ Oracle Network โดยรวมและ Node operator แต่ละราย
Chainlink Data Feeds ให้บริการ smart contract ด้วยข้อมูลราคาคุณภาพสูงโดยใช้ Decentralize network ของ Oracle node

นอกจากนี้ ประสิทธิภาพของแต่ละ Node สามารถวิเคราะห์ได้ตามการ request ข้อมูล เพื่อดูว่า Node สามารถดำเนินการตามคำขอได้หรือไม่ Chainlink Explorer ช่วยให้ Node operator, Data provider และ User ศึกษาประสิทธิภาพการทำงานของแต่ละ Node ภายใน Network และดูว่ามีขั้นตอนใดบ้างที่มีข้อผิดพลาดและต้องทำการแก้ไขบ้างหรือไม่

ความยืดหยุ่นในการหาข้อมูลโดยใช้ Chainlink

ความยืดหยุ่นเป็นองค์ประกอบสำคัญของ Oracle Network ที่สามารถกลายเป็นมาตรฐานที่ใช้ได้ทั่วทั้ง Ecosystem ของ DeFi ช่วยให้ developer สามารถออกแบบ Oracle เป็นรูปแบบที่พวกเขารู้สึกว่ามีความปลอดภัยและความน่าเชื่อถือที่พวกเขาต้องการ ในขณะที่Price Reference Data feeds ของ Chainlink ใช้ตัวรวบรวมข้อมูล (data aggregator) หลายที่เพื่อสร้างราคากลาง (global market price) ซึ่งโปรโตคอล Chainlink ไม่ได้บังคับด้านรูปแบบการออกแบบใดรูปแบบหนึ่งในวิธีการสร้าง Oracle Network หรือแหล่งที่มาของข้อมูลว่าต้องมาจากที่ไหน แต่ให้ framwork แบบ modular ที่เปิดกว้างที่สุดในตลาดเพื่อตอบสนองความต้องการเฉพาะของแต่ละคน

รวมข้อมูล, กลุ่มของ Node และ Aggregation model

Developer ใช้ External adapters เหล่านี้เพื่อเชื่อมต่อ smart contract กับแหล่งข้อมูลที่จำเป็นสำหรับการดำเนินการ พวกเขายังสามารถปรับแต่งการกระจายอำนาจตามที่พวกเขาต้องการ, แหล่งข้อมูลที่พวกเขาต้องการดึงข้อมูล, algorithm ใดที่ใช้ในการรวมข้อมูล และความถี่ในการ update ที่ควรเกิดขึ้น สิ่งเหล่านี้ให้ความยืดหยุ่นอย่างมากสำหรับการดึงข้อมูลจากภายนอกเข้ามายัง smart contract

Market.link เป็น 3rd party website ที่ developer สามารถหา external adapter ที่ให้แหล่งข้อมูลที่หลากหลาย

Framework ที่ปรับแต่งได้ช่วยให้ developer สามารถเพิ่มหรือลดขนาด Oracle network ได้อย่างง่ายดาย ขึ้นอยู่กับความปลอดภัยที่พวกเขาต้องการจ่าย Chainlink มีกลุ่มของ Node operator ที่ปลอดภัยที่ใหญ่ที่สุดพร้อมกับ Community node จำนวนมากที่แข่งขันกันเพื่อ stan-by และสามารถเพิ่มมายัง Oracle Network ได้อย่างรวดเร็วเพื่อความปลอดภัยเพิ่มเติมหากต้องการ นอกจากนี้ Developer ยังสามารถเข้าถึงแหล่งข้อมูลล่วงหน้าที่จัดรูปแบบไว้ที่มีจำนวนมากขึ้นเรื่อยๆ ซึ่งสามารถรวมในการ aggregate ข้อมูล โดยไม่ต้องพัฒนาใดๆ ล่วงหน้า

Chainlink ยังเปิดโอกาสให้สามารถปรับแต่งการ aggregate ข้อมูล โดยใช้ค่าเฉลี่ย (average), ค่ามัธยฐาน (median) หรือแม้แต่ Model ที่ซับซ้อนยิ่งขึ้นในการกำจัดค่าผิดปกติแบบถ่วงน้ำหนัก ซึ่งรวมถึงการให้ความยืดหยุ่นเรื่องความถี่ของการ update ไม่ว่าจะใช้การ update แบบ time-base, การ update แบบ price deviation (เช่น การเปลี่ยนแปลงราคาทุกๆ 0.5%) หรือวิธีการแบบ hybrid บางประเภทที่มี parameter หลายตัว

Data provider สามารถใช้ API แบบดั้งเดิม หรือรัน Chainlink Node

Framework ที่ยืดหยุ่นของ Chainlink ช่วยให้ Data providers สามารถปรับแต่งวิธีการให้ข้อมูลแก่ smart contract ที่เกิดขึ้นใหม่ได้ ไม่ว่าจะดำเนินการใช้ API แบบดั้งเดิมหรือโดยการรัน Chainlink Node โดยตรง

API แบบดั้งเดิม

Data provider สามารถเลือกดำเนินการแบบเดียวกับที่ทำอยู่ในทุกวันนี้ โดยให้ข้อมูลแก่ user ที่ชำระเงินผ่าน model การสมัครสมาชิกแบบ subscription ในสกุลเงิน fiat ซึ่ง Chainlink node สามารถ subscription API เหล่านี้และถ่ายทอดข้อมูล on-chain โดยใช้ external adapter ของ Chainlink ในการตั้งค่า Node โดยสามารถเชื่อมกับ data provider ใดๆ ที่มีอยู่ในปัจจุบัน รวมถึง data provider ที่กำลังทำงานอยู่ใน Data Feed oracle networks ของ Chainlink อยู่แล้ว ด้วย Node ที่ subscribe รับข้อมูลจาก data provider ระดับพรีเมียม เช่น Amberdata และ CoinGecko นอกจากนี้ Chainlink ยังมี External adapter ที่สร้างขึ้นสำหรับ exchange API ที่พร้อมใช้งานสำหรับ Node เช่น Binance และ Coinbase

Model นี้มีประสิทธิภาพเนื่องจาก Data provider ไม่จำเป็นต้องเปลี่ยนแปลง Business model หรือโครงสร้างพื้นฐานในปัจจุบันใดๆ เลย แม้ว่า Data provider เองจะลังเลที่จะให้บริการ smart contract โดยตรง แต่ Chainlink Node ก็สามารถให้ Developer สามารถเข้าถึงข้อมูลที่พวกเขาต้องการผ่าน External adapter แบบ Modular ได้ สิ่งนี้ทำให้ Node จะ subscribe รับข้อมูลจาก Dataprovider ที่รัน Chainlink Node ของตนเอง (อธิบายด้านล่าง) เพื่อให้ข้อมูลของพวกเขามีการกระจายอำนาจที่มากขึ้น

Data provider ที่เป็น Chainlink Node

อีก model คือสำหรับ data provider ที่รัน Chainlink Node และขายข้อมูลโดยตรงไปยัง smart contract นี่เป็นวิธีใหม่ในการสร้างรายได้จากข้อมูลและ Data provider ชั้นนำหลายรายกำลังใช้งาน model นี้ อย่างเช่น data aggregator อย่าง Kaiko, Alpha Vantage และ Huobi ที่เป็น exchange

ข้อดีอย่างหนึ่งที่ data provider ได้รับจากการรัน Chainlink Node ของตนเองคือความสามารถในการทำ sign ข้อมูลของตนเอง User และ smart contract สามารถมั่นใจได้ว่าข้อมูลราคาที่มาจาก Data provider โดยตรงหรือ Chainlink Node ของ exchange ไม่ได้ถูกแก้ไขระหว่างทางไปยัง smart contract เนื่องจากข้อมูลถูก sign แบบเข้ารหัสโดยใช้ private key ของ Node นั้น ก่อนที่จะเผยแพร่ไปยัง Network ข้อมูลที่ sign แล้วสามารถตรวจสอบได้บน Network ผ่าน public key ของ Node เพื่อให้มั่นใจว่าการส่งตรงข้อมูลจากต้นทางมีความน่าเชื่อถือ

ด้วย framework นี้ data provider สามารถเผยแพร่ข้อมูลไปยัง blockchain ได้โดยตรง โดยไม่จำเป็นต้องพึ่งพา external actor เพื่อกำหนดเส้นทางข้อมูล on-chain ให้กับพวกเขา สิ่งนี้ช่วยให้ data provider สามารถคุมความถี่ในการเผยแพร่ข้อมูลบน Network และช่วยให้พวกเขารักษาความปลอดภัยของข้อมูลได้ ตั้งแต่การสร้างข้อมูล (generation) ไปจนถึงการส่งมอบ (final delivery) ไปจนถึง smart contract ที่รับข้อมูล ดังนั้น Data provider จึงมีความยืดหยุ่นในการส่งข้อมูลไปยัง application ต่างๆ ที่หลากหลายด้วยวิธีที่ไม่เหมือนใคร เช่น. ให้การ update ทุกนาทีไปยัง application ชุดหนึ่ง ในขณะที่ให้บริการ application อื่นโดยใช้กลไก price deviation threshold ของการเปลี่ยนแปลงราคาทุก ๆ 0.5%

Data provider สามารถขายข้อมูลให้กับ Node operator ของ Chainlink หรือรัน Chainlink node โดยตรง

ขายไปยังทุก Blockchain environment ทั้งหมดจาก gateway เดียว

ไม่สามารถคาดหวังว่า Data provider จะเข้าใจทุก environment ของ Blockchain และการตั้งค่าการดำเนินการที่ปลอดภัยในแต่ละ environment โดยเฉพาะอย่างยิ่งเมื่อพิจารณาว่าความแปลกใหม่ของ blockchain และการขาด docs และ developer ที่เข้าใจในทุก environment

Chainlink Oracle Network สามารถเข้าถึงได้ด้วยทุก Blockchain environment ไม่ว่าจะโดยใช้ external adapter ที่มีอยู่ หรือจะสร้างใหม่เพื่อให้ blockchain ใหม่สามารถพร้อมใช้งานได้อย่างรวดเร็ว Chainlink เป็น Open-source ดังนั้น developer หลักจึงสามารถนำ Chainlink ไปใช้ได้โดยไม่ต้องขออนุญาตจ ซึ่งนำไปสู่ความสามารถในการ horizontal scale โดยไม่มีปัญหาคอขวดในการพัฒนา Blockchain ชั้นนำส่วนใหญ่ อย่าง Ethereum, Polkadot, Tezos, Cosmos และอีกมากมาย ได้นำ Chainlink เข้าไปใช้งานใน Network ของตนแล้ว

การตั้งค่านี้ช่วยให้ data providers และ smart contract developer มี gateway เดียวที่พวกเขาสามารถขายและเข้าถึงข้อมูลใน Network ใดก็ได้ ท้ายที่สุดแล้วจะนำข้อมูลบน Network มาสู่ dApps และทำให้ data provider สามารถสร้างรายได้ที่เพิ่มขึ้น ที่สำคัญความยืดหยุ่นของวิธีการนี้ทำให้ data provide ไม่ต้องเลือกตำแหน่งที่จะนำ resource ไปใช้งาน

การรับประกันด้านข้อมูลและคุณภาพบริการ

Chainlink oracle network จะดูแลข้อตกลงบริการ (Service Agreements) ที่มีผลผูกพันทางกฎหมายซึ่งลงนามโดย Node operator และ smart contract ที่รับข้อมูล ซึ่งกำหนด parameter ไว้ล่วงหน้าซึ่ง node จำเป็นต้องปฏิบัติตามตลอดช่วงเวลาทั้งหมดของข้อตกลง Parameter เหล่านี้กำหนดเงื่อนไขการส่งข้อมูล (latency), คุณภาพของข้อมูล (ความแม่นยำของการตอบสนอง), จำนวน LINK ที่ stake (ความปลอดภัยด้าน crypto economic), เงื่อนไขการ slash (ลงโทษยึดเงิน stake) และข้อกำหนดและเงื่อนไขล่วงหน้าอื่นๆ ที่กำหนด การชำระเงินแก่ Node operator นั้นขึ้นอยู่กับการปฏิบัติตาม parameter เหล่านี้ให้สำเร็จ และการส่งข้อมูลคุณภาพสูงบนเครือข่ายในเวลาที่เหมาะสม สิ่งนี้ทำให้มั่นใจว่า Node operator ที่รัน Chainlink node ของตนเองมีความยืดหยุ่นสูงเกิดกว่าเกณฑ์ของข้อมูลที่น่าเชื่อถือ ทำให้มีความน่าเชื่อถือ, คุณภาพ และความถูกต้องของข้อมูลที่มากขึ้น

Service Agreements ที่มีผลผูกพัน สร้างการรับประกันด้าน economic ของคุณภาพข้อมูลและการส่งมอบข้อมูล

ตัดสินใจโดยใช้ Reputation Frameworks และ Node Marketplace

สิ่งที่สำคัญของความยืดหยุ่นคือการให้เครื่องมือแก่ user ในการตัดสินใจส่วนต่างๆ ที่จะนำมารวมไว้ใน Oracle network ของตน ซึ่งประกอบด้วย 2 ส่วน: ระบบชื่อเสียง (Reputation Frameworks) และตลาด node (Node Marketplace)

ระบบชื่อเสียง (Reputation Frameworks)

ระบบชื่อเสียงช่วยให้ User มีบันทึกข้อมูล on-chain ที่เปลี่ยนแปลงไม่ได้แสดงประสิทธิภาพที่ผ่านมาของ Node operator และ Data provider จากนั้น Requester (smart contract)ในอนาคตจะมีหลักฐานการเข้ารหัสในอดีตเพื่อพิจารณาว่า Node ใดน่าเชื่อถือและ Node ใดไม่น่าเชื่อถือ ผ่านบริการของ 3rd party สามารถเปรียบเทียบ Chainlink Node กับ Node อื่นได้โดยตรงเพื่อดูว่า Oracle node ใดมีความน่าเชื่อถือมากกว่า site ข้อมูลเหล่านี้แสดงทั้งข้อมูลดิบและสถิติโดยละเอียดของ Chainlink Network โดยรวม รวมถึงข้อมูลเฉพาะเกี่ยวกับแต่ละ Oracle node, จำนวนธุรกรรม, เวลาตอบสนอง, การชำระเงินที่ได้รับ, success ratio และอื่นๆ

Reputation.link ช่วยให้ developer และ user สามารถวิเคราะห์ประสิทธิภาพของ Chainlink oracle network รวมถึง Node และแหล่งข้อมูล

Node marketplace

อีกส่วนประกอบที่สำคัญคือ การมีที่ในการค้นหา Node oracle เพื่อกรอง, เปรียบเทียบ และเลือก Node ที่จะใช้ภายใน Oracle network มี 3rd party site ที่แสดงรายการ Node หลายแห่งสำหรับ Chainlink node เช่น Chainlink Market ของ LinkPool ซึ่งช่วยให้ developer สามารถควบคุมจะมีโครงสร้าง Oracle network ได้อย่างเต็มที่ เพราะพวกเขาสามารถเลือกได้ว่า Node ใดที่พวกเขาเชื่อถือ และจำนวน Node เท่าไหร่ที่พวกเขายินดีจ่าย

นอกจากนี้ Node operator แต่ละรายยังสามารถแสดงใบรับรอง (certification), การรับรองความปลอดภัย (security review), หลักฐานยืนยันตัวตน, external adapter, แหล่งข้อมูล และข้อกำหนดที่ให้รายละเอียดอย่างชัดเจนว่าบริการ off-chain ใดที่พวกเขาสามารถบริการให้กับ smart contract ซึ่ง Operator สามารถกำหนดราคาและ parameter สำหรับแต่ละงานที่พวกเขาให้บริการ สร้างตลาดเสรีที่ Node แต่ละรายแข่งขันด้วยปัจจัยที่แตกต่างกัน

Node บน market.link สามารถสร้างชื่อเสียงเพื่อแสดงต่อ developer ที่กำลังมองหา Node ที่เชื่อถือได้

การสร้าง Price Oracle เพื่อหลีกเลี่ยงความเสี่ยงด้านแหล่งข้อมูล

เพื่อให้ข้อมูลมีคุณภาพสูง มีการโจมตีหลายตัวที่ต้องพิจารณาและป้องกันไว้ก่อนเมื่อออกแบบกลไกของ Oracle หากไม่คำนึงถึงสถานการณ์เหล่านี้ software developer กำลังเสี่ยงอย่างมากกับเงินของ user และท้ายที่สุดทำให้ dApp ทั้งหมดตกอยู่ในความเสี่ยง

Volume Shifts/Exchange Lock-In

ตลาด cryptocurrency แตกต่างจากตลาดการเงินแบบดั้งเดิม เนื่องจากไม่มี exchange ใดเป็นเจ้าของการออกสินทรัพย์แต่เพียงผู้เดียว ดังนั้นจึงไม่สามารถ lock ผู้ใช้และครอบคลุมตลาดการซื้อขายทั้งหมดของสินทรัพย์ใดๆ ได้ Blockchain นั้นไม่ต้องขออนุญาติ (permissionless) ดังนั้นใครก็สามารถลิส coins/token ของ cryptocurrency บน exchange ของพวกเขาเพื่อให้ trader เข้าถึงได้ตลอดเวลา ดังนั้น volume ของ cryptocurrency จึงกระจายไปทั่ว exchange ต่างๆ มากมาย และสามารถถ่ายโอนได้อย่างรวดเร็วระหว่างแต่ละ exchange สิ่งนี้ทำให้กลไกของ Oracle จำเป็นต้องคำนวนร่วมด้วย หากต้องหลีกเลี่ยงการโจมตีแบบ manipalation อย่าง volume ส่วนใหญ่ถูกโอนไปยัง exchange ที่ไม่รวมอยู่ในกระบวนการ aggregate ข้อมูล

Flash Crash

Cryptocurrency exchange โดยทั่วไปไม่มี circuit breaker มีความอ่อนไหวต่อ flash crash (การลดลงของราคาอย่างรวดเร็ว) เมื่อราคาตลาดเบี่ยงเบนไปไกลกว่า exchange อื่นในตลาดที่เหลือ แม้แต่ exchange ที่ใหญ่ที่สุดก็มีความเสี่ยงนี้และเคยประสบปัญหาเหล่านี้มาแล้วหลายครั้งในช่วงหลายปีที่ผ่านมา Kraken เกิด flash crash ซึ่งทำให้คู่ราคา BTC/CAD ร่วงจาก 11,200 ลงมาถึง 100 CAD หรือลดลงเกือบ 99% Coinbase เคยประสบกับปัญหา Flash Crash อย่างรุนแรง ซึ่งทำให้ ETH ดิ่งลงชั่วคราวจาก 322 มาเป็น 0.1 นอกจากนี้ เมื่อต้นปี 2020 Bitmex ซึ่งเป็นตลาดแลกเปลี่ยนอนุพันธ์ของ cryptocurrecy ประสบปัญหา Flash Crash โดยราคาของ XRP ลดลง 60% จาก 0.33 มาเป็น 0.13 ภายในหนึ่งนาที

Quality Dilution

สิ่งสำคัญคือต้องหลีกเลี่ยงการการกระจายอำนาจโดยไม่มีการควบคุมคุณภาพ เพื่อป้อองกันไม่ให้แหล่งข้อมูลคุณภาพต่ำมาเจือจางการ aggregation โดยรวม Data provider และ Node operator ที่มีประสิทธิภาพต่ำ, ไม่มีชื่อเสียง และโครงสร้างพื้นฐานด้านความปลอดภัยยังไม่ได้รับการพิสูจน์ควรถูกกีดกันไม่ให้ร่วมในกลไกของ Oracle เพื่อให้มั่นใจว่า Data provider และ Node operator มี resource และความรู้ที่จะสามารถแก้ไขปัญหาที่อาจเกิดขึ้น และตั้งค่าการ alert และรับประกันเมื่อเกิดข้อผิดพลาด

โปรดทราบว่า : ผู้ที่โจมตีด้วยวิธีการเหล่านี้อาจไม่จำเป็นต้องเป็น developer ที่มีประสบการณ์ อาจเป็น trader รายย่อยหรือกลุ่มของ trader เล็กๆ ที่เห็นโอกาสดังกล่าวสามารถใช้ UI ของ exchange เพื่อ manipulate ตลาดนั้นๆ และเบี่ยงเบนราคาอ้างอิงที่สร้างโดย Oracle ที่ไม่คลุมตลาดทั้งหมด ซึ่งจะเพิ่มโอกาสการโจมตีอย่างมากจากใครก็ตามที่มีการเชื่อมต่อ internet และบัญชี exchange เพราะเกิดจากสามารถออกแบบ Oracle ที่ไม่เหมาะสม

Price Reference Data Contracts ของ Chainlink ได้รับการออกแบบมาโดยเฉพาะเพื่อลดความเสี่ยงเหล่านี้โดยใช้ data aggregator แทน exchange API เพียงเจ้าเดียวหรือกลุ่มของ exchange API

Data Aggregator คุณภาพสูงครอบคลุมตลาดของ Price discovery ในทุก environment

Chainlink Data Feed ใช้ Data Aggregator โดยเฉพาะเนื่องจากให้ความคุ้มกันตลาดที่แข็งแกร่งที่สุด สิ่งที่มีความสำคัญอย่างยิ่งสำหรับการให้ข้อมูลที่ถูกต้องแก่ตลาดที่ยังมี volume ค่อนข้างต่ำเมื่อเทียบกับตลาดการเงินแบบดั้งเดิม เมื่อดึงข้อมูลจาก Data Aggregator บทบาทการรักษาความครอบคลุมของตลาดจะเปลี่ยนจากผู้สร้าง Oracle network ซึ่งอาจไม่มีประสบการณ์หรือ resource ในการติดตาม exchange volume อย่างต่อเนื่อง เป็น Data Aggregator ระดับมืออาชีพ

Data Aggregator เหล่านี้มีทีมงาน full-time กระจายอยู่ทั่วโลกซึ่งมีประสบการณ์สูงในการดูแลข้อมูลราคาที่ถูกต้องพร้อมความครอบคลุมตลาดที่สมบูรณ์ในทุก environment ของการซื้อขาย พวกเขาพิจารณาสิ่งที่สำคัญ เช่น สภาพคล่อง (liquidity), volume, เวลา และความแตกต่างของสิ่งเหล่านี้ในแต่ละ exchange พวกเขายังทำให้ค่าผิดปกติที่เกิดขึ้นกลับมาปกติ feature เหล่านี้ทำให้ Price Reference Contract ของ Chainlink มีความทนทานสูงต่อการเปลี่ยนแปลงอย่างรวดเร็วของ volume, flash crashes และการเจือจางคุณภาพ (Quality Dilution)

Price Reference Contract ของ Chainlink ยังใช้ data aggregators หลายตัวเพื่อทำให้ข้อมูลราคาแข็งแกร่งเมื่อเทียบกับแหล่งข้อมูลเดียว ทำให้มีความปลอดภัยและความน่าเชื่อถือที่มากขึ้นแก่ dApp developer และ end user นอกจากนั้นยังใช้ Node operator ที่ได้การตรวจสอบความปลอดภัยด้วยทีมตรวจสอบที่ดีที่สุด

กระบวนการครบวงจรของ Price Reference Data contract ของ Chainlink

ความเสี่ยงหลักของการใช้ความยืดหยุ่นของ Oracle อย่างไม่เหมาะสม

เพื่อให้เข้าใจถึงความเสี่ยงทั้งหมดจากการใช้ Oracle network ที่ไม่ได้คำนึงถึงการเปลี่ยนแปลง volume หรือแหล่งข้อมูลจาก API เจ้าเดียว เราจะมาดูตัวอย่างในโลกแห่งความเป็นจริงว่ามีข้อผิดพลาดอะไรบ้างและสิ่งนี้เกิดขึ้นได้อย่างไร

ข้อควรระวัง: หลีกเลี่ยงการออกแบบ Oracle จาก Exchange เพียงที่เดียว

Oracle Network ที่ดึงข้อมูลราคาจาก Exchange เดียว ไม่เพียงแต่ไม่มีการป้องกัน Exchange Downtime, Flash Crash และการ Manipulate เท่านั้น การทำเช่นนั้นยังมีความครอบคลุมตลาดที่ต่ำมาก แม้ว่าการตั้งค่า Oracle ดังกล่าวอาจเริ่มต้นทำงานในช่วงที่ตลาดมีความผันผวนต่ำ แต่เมื่อความผันผวนของตลาดเพิ่มขึ้น การค้นพบราคาและปริมาณสามารถเปลี่ยนแปลงได้บ่อยครั้งระหว่าง exchange ต่างๆ แม้ว่า Oracle จะ update เพื่อไปดึงราคาจาก exchange อื่น แต่ราคาใหม่อาจไม่แม่นยำขนากนั้น เนื่องจากการเปลี่ยนแปลงของตลาดไม่ได้เหมือนกันเสมอไป สิ่งนี้บ่งบอกว่าแม้แหล่งข้อมูลจะเปลี่ยนไป แต่ก็อาจจะไม่สามารถรักษาความครอบคลุมของตลาดได้

ใน video นี้ Sergey Nazarov (Co-founder ของ Chainlink) อธิบายถึงอันตรายของการใช้แหล่งข้อมูลด้วย exchange เดียว:

ด้านล่างนี้เป็น outline ทีละขั้นตอนของความอันตรายที่เกิดจากการดึงข้อมูลจาก exchange เพียงที่เดียว:

  • Joe ผู้เป็น Developer ได้เขียน smart contract ที่ต้องการข้อมูลราคาภายนอกของสินทรัพย์ crypto เขาตัดสินใจสร้าง Oracle Network ที่ดึงข้อมูลราคาจาก Exchange C ที่เขาต้องการ ในวันที่เขาสร้าง Oracle นั้น Exchange C มีปริมาณสินทรัพย์ถึง 80% เขาคิดว่ามันเป็นวิธีที่ “ดีพอ”
  • หนึ่งสัปดาห์ผ่านไป User เริ่มนำเงินมาวางใน smart contract ของ Joe มากขึ้น ในขณะที่ตอนนี้ Exchange C ครอบคลุมเพียงแค่ 50% ของปริมาณสินทรัพย์ทั้งหมด ความผันผวนตลาดยังอยู่ในระดับต่ำ และกลไก Oracle ยังดูเหมือนจะทำงานได้ดีอยู่ Joe คิดว่าจะมุ่งเน้นไปที่การพัฒนา feature ต่างๆ ของ dApp ต่อไป แทนที่จะคิดเกี่ยวกับความครอบคลุมตลาดของ Oracle ที่ลดลง เนื่องจาก “มันยังใช้งานได้”
  • อีกหนึ่งเดือนผ่านไป ในกลางดึก Joe ตื่นขึ้นมาและมีโทรศัพท์แจ้งว่าเงินของ User ที่ฝากไว้บน dApp ของเขาหลายล้านคนถูกนำออกไปจนหมด จนเขาพบว่า volume ส่วนใหญ่ไหลออกจาก Exchange C ซึ่งเป็นแหล่งข้อมูลเดียวที่ Oracle ดึงข้อมูลมา และตอนนี้คิดเป็นเพียงแค่ 5% ของปริมาณสินทรัพย์ Exchange นี้ถูก Manipulate โดย whale เจ้าใหญ่ ทำให้ Oraacle รายงานจุดราคาที่ผิดปกติ เปิดโอกาสในการดูดมูลค่าจำนวนมากอย่างไม่เป็นธรรมจาก User ที่โชคร้าย
  • ตอนนี้ dApp ของ Joe พังไปแล้วเนื่องจากเสียความไว้วางใจของ User และชื่อเสียงในฐานะ developer ก็พังลงไปพร้อมกัน สถานการณ์นี้สามารถหลีกเลี่ยงได้หาก Oracle ของเขามีครอบคลุมตลาดอย่างเหมาะสม

ตัวอย่างด้านบนแสดงให้เห็นถึงความเสี่ยงร้ายแรงเมื่อ Oracle network ทำการดึงข้อมูลจาก exchange เพียงที่เดียว ความครอบคลุมตลาดสามารถสร้างหรือทำลาย application ได้ และสถานการณ์อาจเลวร้ายยิ่งกว่าการเกิด flash crash

Fixed Exchange Aggregation Oracles ไม่คำนึงถึงการเปลี่ยนแปลงของ Volume

Oracles ที่ดึงข้อมูลโดยตรงจาก Exchange ที่เลือกไว้แบบเฉพาะเจาะจง มีความเสี่ยงต่อเหตุการณ์ที่ Volume ไหลไปที่ Exchange ใหม่ที่อื่นที่ไม่ได้ถูกคำนวนในกระบวนการรวมเดิม แม้ว่า Exchange เดิมที่เลือกให้เป็นแหล่งข้อมูลของ Oracle Network อาจมีสภาพคล่องในการสร้างครั้งแรก แต่ก็ไม่ได้หมายความว่า volume จะคงอยู่ใน Exchange เหล่านี้ต่อไป และเมื่อ Volume ลดลงจะทำให้ต้นทุนในการโจมตีจากผู้ไม่หวังดีลดลง เนื่องจาก Volume โดยรวมของสินทรัพย์ที่ผู้โจมตีต้องทำการ Manipulate มีสัดส่วนน้อยลง

ในวิดีโอนี้ Sergey Nazarov (Co-founder ของ Chainlink) พูดถึงความสำคัญของกลไก Oracle ที่มีความสามารถในการปรับตัวต่อการเปลี่ยนแปลงของ Volume ใน exchange ที่สำคัญต่อความน่าเชื่อถือของผลิตภัณฑ์ DeFi:

แม้สิ่งนี้อาจดูเหมือนเป็นการโจมตีที่ไม่รุนเเรง แต่ให้พิจารณาสถานการณ์ต่อไปนี้:

  • Bob ที่เป็น Smart contract developer อีกคนหนึ่ง เห็นความผิดพลาดของ Joe ในการใช้ exchange ที่เดียวสำหรับการดึงข้อมูล Bob ตัดสินใจว่าเขาจะสร้าง Oracle ที่ดึงข้อมูลสำหรับสินทรัพย์ crypto จากกลุ่ม array ของ exchange ที่เลือกไว้ล่วงหน้าแทน นั่นคือ A, B และ C โดยความต้องของเขาคือการใช้ค่ามัธยฐาน (median) ของ exchange หลายแห่ง ซึ่งจะช่วยบรรเทาการ Manipulate ตลาดลง
  • 2–3 สัปดาห์ผ่านไป Bob คิดว่าเขาตัดสินใจถูก เนื่องจาก Oracle ของเขาที่ดึงข้อมูลจาก exchange หลายแห่ง ยังคงให้การตอบสนองที่แม่นยำ แม้ว่าจะมี exchange เเห่งหนึ่งถุก Manipulate เขาจึงหันความสนใจไปที่การปรับปรุง logic ของธุรกิจหลักอย่างนั่นคือ Application ของเขา ในขณะที่ Bob กำลังทำ feature ใหม่ Bob ไม่ได้สังเกตว่ามี exchange เปิดใหม่ 2 แห่งเกิดขึ้นและครอง 85% ของปริมาณสินทรัพย์ crypto
  • อีกไม่กี่วันผ่านไป Bob พบว่า Smart contract ของเขาถูกหลอกและถูกขโมยเงินของ User นับล้านเช่นเดียวกับ Joe ผลลัพธ์คือ แม้ว่า exchange ที่ Bob เลือกใช้สำหรับดึงข้อมูล Oracle จะมีสภาพคล่องเมื่อวันที่เขาเริ่มสร้าง แต่เมื่อเวลาผ่านไป Volume ก็สามารถเปลี่ยนไปที่ exchange ใหม่ที่ไม่รวมอยู่ในกระบวนการ aggregate ข้อมูลเมื่อเริ่มต้นได้เช่นกัน ด้วยเหตุนี้ Oracle network ของเขาจึงครอบคลุมตลาดเพียง 15% และจากนั้นก็ถูก Manipulate โดยเทรดเดอร์ที่เห็นโอกาสโจมตีเพื่อสร้างผลประโยชน์จาก Smart contract ของ Bob
  • แม้ว่า Bob จะคิดถูกในการกระจายแหล่งข้อมูล Oracle แต่เขาไม่ได้คำนึงถึงการเปลี่ยนแปลงของ Volume ระหว่าง exchange หรือข้อเท็จจริงที่ว่า exchange ที่เกิดใหม่สามารถครอง volume ตลาดอย่างมีนัยสำคัญสำคัญของสินทรัพย์ได้ แม้ว่า exchange ใหม่จะไม่เกิดขึ้น แต่ volume ก็ยังสามารถกระจุกตัวอยู่ที่ exchange จำนวน 1–2 แห่งได้ ซึ่งจะทำให้ trader สามารถ manipulate กับ exchange ที่มี volume น้อยและบิดเบือนการคำนวณราคาได้

Oracle ทั้งของ Joe และ Bob ยังไม่ครอบคลุมตลาดเพียงพอ เนื่องจากพวกเขาพยายามสร้างข้อมูลโดยใช้ Oracle แต่พวกเขาสามารถหลีกเลี่ยงสิ่งเหล่านี้ได้โดยให้ Oracle ดึงข้อมูลจาก data aggregator ที่มีประสบการณ์มานานในการป้องกันการ manipulate ตลาดและปัญหาการครอบคลุมตลาด

การผสม Oracle คุณภาพต่ำกับ Oracle คุณภาพสูง

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

เราเห็นความเสี่ยงจากการผสมข้อมูลราคาที่เชื่อถือได้ของ Chainlink จาก Price Reference Data network เข้ากับข้อมูลคุณภาพต่ำของ Oracle ที่ไม่ได้รับการพิสูจน์และโปร่งใสน้อยกว่า ซึ่งยังไม่รองรับ API ระดับพรีเมียม และแหล่งข้อมูลโดยตรงจาก Exchange API ข้อกังวลนี้มีความสำคัญเมื่อมูลค่าบน DeFi เพิ่มขึ้น เนื่องจากแรงจูงใจในการโจมตี DeFi ผ่านจุดอ่อนในกลไกของ Oracle ก็จะเพิ่มขึ้นเช่นกัน

ลองนึกถึงสถานการณ์ที่มีการรวม Oracle จาก 3 แห่งเข้าด้วยกัน: ที่แรกคือ Price Reference Data ของ Chainlink ซึ่งใช้ Node คุณภาพสูงเพื่อดึงข้อมูลจาก data aggregator ระดับพรีเมียม ที่สองคือ Oracle ที่ดึงข้อมูลราคาจากกลุ่มของ exchange API ที่กำหนดไว้ และที่สุดท้ายคือ Oracle ที่ไม่รองรับการจัดการ credential จึงเชื่อมต่อกับแหล่งข้อมูลคุณภาพต่ำหรือ exchange API ได้เพียงที่เดียวเท่านั้น

การรวมข้อมูลคุณภาพสูงของ Chainlink เข้ากับข้อมูลคุณภาพต่ำจาก Oracle ที่ไม่ปลอดภัยจะลดคุณภาพของข้อมูลโดยรวม

ในตัวอย่างนี้ :

  • ทางด้านขวา Chainlink Data Feeds ดึงข้อมูลจาก data aggregator คุณภาพสูงหลายแห่ง ส่งผลให้มี volume และราคาที่ถ่วงน้ำหนักจากสภาพคล่องในตลาด ซึ่งครอบคลุมสภาพแวดล้อมการซื้อขายทั้งหมดที่ $100
  • Oracle ด้านซ้ายบนดึงข้อมูลจาก array ของ exchange API ที่กำหนดไว้ (A, B, C) ซึ่งในขณะนั้นครอบคลุมเพียง 15% ของ volume ตลาดทั้งหมด (ยกเว้น D และ E ซึ่งมี 85% ของปริมาณ) ทำให้ข้อมูลผิดเพี้ยน Oracle จึงรายงานราคาที่ไม่ถูกต้องเป็น $70
  • Oracle ด้านซ้ายล่างเชื่อมกับแหล่งข้อมูลคุณภาพต่ำแหล่งเดียวเท่านั้น ซึ่งเกิดการหยุดทำงานเพราะความผันผวนในตลาดสูง ความเสี่ยงเพียงจุดเดียวนี้ส่งผลให้ Oracle รายงานราคาเป็น $0

เมื่อ smart contract นำค่ามัธยฐาน (median) ของค่าทั้ง 3 ที่ได้รับ นั่นคือ 100, 70 และ 0 จะได้ราคาขั้นสุดท้ายที่เท่ากับ $70 แทนที่จะเป็นราคาที่เหมาะสมที่ volume ทั้งตลาดส่วนใหญ่คือที่ $100 ที่แย่กว่านั้นค่าเฉลี่ยของทั้งสามจะอยู่ที่ประมาณ $57 ข้อมูลคุณภาพต่ำจาก Oracle อีกสองแห่งทำให้ข้อมูลคุณภาพสูงที่จัดส่งโดย Price Reference Data ของ Chainlink เจือจางลง

สถานการณ์ดังกล่าวคือข้อมูลคุณภาพต่ำทำให้ข้อมูลคุณภาพสูงที่ส่งมอบโดย Chainlink เจือจางลง การกระจายอำนาจใน Oracle เป็นสิ่งสำคัญ แต่ไม่ควรกระทบค่าใช้จ่ายและคุณภาพของ Node การผสมข้อมูลจากที่อื่นทำให้คุณภาพมูลค่าของ Price Reference Data network ของ Chainlink ลดลง เราแนะนำอย่างยิ่งให้เลิกใช้ข้อมูลราคาจากแหล่งที่ไม่รู้จัก การใช้ Oracle การคำนวณที่ไม่รอบคอบ, Oracle ที่ไม่มีข้อมูลพรีเมียม หรือใช้ Oracle ที่มีความปลอดภัยทาง economics ต่ำ

Chainlink ให้ข้อมูลคุณภาพสูงแก่ Application ยุคใหม่

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

คู่มือนี้บอกรายละเอียดเรื่องวิธีประเมินความปลอดภัยของ blockchain oracle

หากคุณเป็น DeFi project และต้องการสร้าง price reference oracle network ของคุณเองหรือใช้แบบที่มีอยู่ โปรดไปที่ developer documentation ของเรา เข้าร่วมการ discuss ทางเทคนิคใน Discord หรือนัดหมายการโทรเพื่อพูดคุยเกี่ยวกับการทำงานร่วมกัน คุณสามารถใช้ Chainlink oracle network ได้อย่างง่ายดายบน mainnet และ testnet วันนี้ เพื่อเพิ่มความปลอดภัยและความสามารถให้กับ smart contract ของคุณ

--

--