วิธีสร้าง Oracle ของคุณเองโดยใช้ Ethereum Smart Contracts PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

วิธีสร้าง Oracle ของคุณเองโดยใช้ Ethereum Smart Contracts

อ่านเวลา: 5 นาที

Ethereum เป็นบล็อกเชนแห่งแรกที่สืบทอดคุณสมบัติในการสร้าง dapps ซื้อขายสินทรัพย์ดิจิทัลบนบล็อกเชน และอื่นๆ

มีภาษาการเขียนโปรแกรมสำหรับเขียนสัญญาอัจฉริยะและนำไปใช้บนเครื่องเสมือน Ethereum เพื่อรวมการกระจายอำนาจในการดำเนินกิจกรรม 

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

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

oracle ใน crypto คืออะไรและจะสร้าง oracle ในสัญญา Ethereum Smart ได้อย่างไร? เราจะหารือในรายละเอียดในส่วนต่อไปนี้ 

หัวข้อสำคัญของบล็อก

  • crypto oracle คืออะไรและ oracles ทำงานอย่างไร
  • ออราเคิลประเภทต่างๆ
  • การไหลของข้อมูลจาก oracles ไปยัง Ethereum smart contracts
  • วิธีโค้ด Ethereum oracles
  • ปัญหาเกี่ยวกับ crypto oracle

Oracle คืออะไร และเหตุใดจึงจำเป็น

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

ตัวอย่างเช่น ในเหตุการณ์การเดิมพัน ผู้ใช้จะได้รับอนุญาตให้เดิมพันกับผู้เล่นที่คิดว่าจะชนะการแข่งขัน ตามเหตุการณ์ที่เกิดขึ้นตามเวลาจริง รางวัลจะแจกจ่ายให้กับผู้ใช้ที่เดิมพันผู้ชนะ 

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

ทุกโหนดใน Ethereum blockchain มีข้อมูลเกี่ยวกับการทำธุรกรรมซึ่งควรจะเหมือนกัน ดังนั้น การดึงข้อมูลจาก API อาจส่งผลให้เกิดความคลาดเคลื่อน ในทางตรงกันข้าม oracle จะโหลดข้อมูลบน blockchain ซึ่งจะปรากฏเหมือนกันในทุกโหนด

ออราเคิลบล็อกเชน
ออราเคิลบล็อกเชน

วิธีการเข้าถึงข้อมูลจาก Oracle?

สัญญาอัจฉริยะใช้วงจรคำขอและการตอบสนองเพื่อรับข้อมูลจากโหนด oracle Oracle ที่ใช้งานกับ HTTP GET จะได้รับคำขอจากสัญญาอัจฉริยะ และฟังก์ชันเรียกกลับสามารถดึงข้อมูลที่ร้องขอจาก oracle ได้ 

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

นี่คือบริการ Oracle บางส่วน

  • chainlink
  • สามารถพิสูจน์ได้
  • วิทเน็ต
  • พาราลิงค์เป็นต้น.

การจำแนกประเภทของ Oracles

Oracles ถูกแบ่งออกเป็นประเภทต่างๆ ขึ้นอยู่กับการดึงข้อมูล ตรวจสอบ และถ่ายโอนข้อมูล 

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

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

ออราเคิลข้ามสายโซ่: cross-chain oracles ช่วยให้ทั้งการอ่านและการเขียนข้อมูลบนบล็อกเชนต่างๆ นอกจากนี้ยังทำให้สามารถทริกเกอร์เหตุการณ์ในบล็อกเชนหนึ่งและเปิดใช้งานในอีกบล็อกหนึ่งได้ 

ออราเคิลที่เปิดใช้งานคอมพิวเตอร์: oracles ที่เปิดใช้งานการคำนวณใช้ประโยชน์จากการคำนวณแบบ off-chain เพื่อให้บริการ โดยเฉพาะอย่างยิ่งเมื่อ on-chain ไม่น่าเชื่อถือเนื่องจากข้อจำกัดทางเทคนิคหรือทางการเงิน มีการใช้ oracle ประเภทนี้

การดึงข้อมูลจาก Oracles

ขั้นตอนที่ 1: สัญญาอัจฉริยะส่งแบบสอบถามไปยัง oracle

ขั้นตอนที่ 2: แบบสอบถามถูกส่งไปยังผู้ให้บริการข้อมูล ซึ่งค้นหาข้อมูลจากแหล่งข้อมูล

ขั้นตอนที่ 3: ข้อมูลมาจากแหล่งที่มาและป้อนให้กับ oracle

ขั้นตอนที่ 4: Oracle ส่งการตอบสนองต่อสัญญาอัจฉริยะตามที่ร้องขอ 

การสร้าง Oracle ใน Ethereum Smart Contract – โครงสร้างโค้ด

เราจะพบว่า oracle ทำงานอย่างไรในการกำหนดราคาปัจจุบันของ Bitcoin เป็น USD โดยใช้บริการ Oracle ที่เรียกว่า Provable 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

ปัญหาออราเคิล

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

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

อย่างไรก็ตาม บริการของ oracle เช่น ChainLink และ Oraclize ทำงานเป็นโซลูชันแบบกระจายศูนย์ที่ดึงข้อมูลมาจากวิธีการใหม่และการพิสูจน์ตัวตน ดังนั้น ข้อมูลที่ได้รับจึงผ่านวิธีการกระจายอำนาจ  

สรุป

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

อย่างไรก็ตาม เพื่อนำมาซึ่งความยั่งยืน บริการของ Oracle ได้พัฒนาความก้าวหน้าขึ้นเพื่อปลูกฝังการรักษาความปลอดภัยและความถูกต้องของข้อมูลที่ได้รับนอกเครือข่าย 

ต้องการอยู่ที่เกี่ยวข้องกับ .มากขึ้น ความปลอดภัยของ Web3?

ติดตาม QuillAudits สำหรับบทความล่าสุดมากมายเกี่ยวกับ Web3

23 เข้าชม

โพสต์ วิธีสร้าง Oracle ของคุณเองโดยใช้ Ethereum Smart Contracts ปรากฏตัวครั้งแรกเมื่อ Blog.quillhash.

ประทับเวลา:

เพิ่มเติมจาก ควิลแฮช