อ่านเวลา: 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
โพสต์ วิธีสร้าง Oracle ของคุณเองโดยใช้ Ethereum Smart Contracts ปรากฏตัวครั้งแรกเมื่อ Blog.quillhash.
- "
- a
- เกี่ยวกับเรา
- เข้า
- บรรลุ
- ได้รับ
- กระทำ
- การกระทำ
- กิจกรรม
- ความก้าวหน้า
- ทั้งหมด
- อื่น
- คำตอบ
- API
- APIs
- ปรากฏ
- สินทรัพย์
- ที่ได้รับมอบหมาย
- รับรองความถูกต้อง
- ความจริง
- ธนาคาร
- การพนัน
- ระหว่าง
- Bitcoin
- ราคา Bitcoin
- ปิดกั้น
- blockchain
- blockchains
- สะพาน
- นำมาซึ่ง
- สร้าง
- โทรศัพท์
- chainlink
- รหัส
- การคำนวณ
- แนวคิด
- เงื่อนไข
- ขัดกัน
- การเชื่อมต่อ
- การเชื่อมต่อ
- สัญญา
- สัญญา
- ได้
- สร้าง
- ที่สร้างขึ้น
- การสร้าง
- ครอสโซ่
- การเข้ารหัสลับ
- การเข้ารหัสลับสินทรัพย์
- CryptoCompare
- ปัจจุบัน
- DApps
- ข้อมูล
- การกระจายอำนาจ
- การตัดสินใจ
- ทั้งนี้ขึ้นอยู่กับ
- ลักษณะ
- รายละเอียด
- การกำหนด
- ต่าง
- สนทนา
- แสดง
- กระจาย
- แต่ละ
- หน่วยงาน
- โดยเฉพาะอย่างยิ่ง
- ethereum
- บล็อกเชน Ethereum
- เหตุการณ์
- เหตุการณ์
- ตัวอย่าง
- การปฏิบัติ
- เฟด
- ทางการเงิน
- ตลาดการเงิน
- ชื่อจริง
- ไหล
- ดังต่อไปนี้
- ข้างหน้า
- ราคาเริ่มต้นที่
- ฟังก์ชัน
- การทำงาน
- ลึกซึ้ง
- GitHub
- ให้
- ช่วย
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- HTTPS
- การดำเนินการ
- การดำเนินการ
- ในอื่น ๆ
- ข้อมูล
- อินพุต
- อินเตอร์เฟซ
- IT
- ภาษา
- ล่าสุด
- เส้น
- ดู
- เครื่อง
- ทำ
- ทำ
- ทำให้
- การทำ
- ตลาด
- การจับคู่
- เรื่อง
- วิธี
- หน่วยความจำ
- วิธีการ
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ธรรมชาติ
- เครือข่าย
- โหนด
- ที่ได้รับ
- การเสนอ
- บนโซ่
- คำพยากรณ์
- อื่นๆ
- ของตนเอง
- การชำระเงิน
- ที่มีประสิทธิภาพ
- ผู้เล่น
- เป็นไปได้
- อำนาจ
- ราคา
- ปัญหาที่เกิดขึ้น
- การเขียนโปรแกรม
- ให้
- ผู้จัดหา
- สาธารณะ
- คำถาม
- การอ่าน
- โลกแห่งความจริง
- เรียลไทม์
- ข้อมูลตามเวลาจริง
- รับ
- ที่ได้รับ
- ได้รับการยอมรับ
- หมายถึง
- เกี่ยวกับ
- ตรงประเด็น
- น่าเชื่อถือ
- รายงาน
- ขอ
- คำตอบ
- ผลสอบ
- รางวัล
- เดียวกัน
- ลด
- ความปลอดภัย
- บริการ
- บริการ
- สำคัญ
- สมาร์ท
- สัญญาสมาร์ท
- สัญญาสมาร์ท
- So
- SOL
- ความแข็งแรง
- ทางออก
- โซลูชัน
- บาง
- โดยเฉพาะ
- Status
- เข้าพัก
- สต็อก
- ตลาดหลักทรัพย์
- หุ้น
- การเก็บรักษา
- จัดเก็บ
- เก็บข้อมูล
- การพัฒนาอย่างยั่งยืน
- ระบบ
- วิชาการ
- พื้นที่
- ที่มา
- ดังนั้น
- บุคคลที่สาม
- ของบุคคลที่สาม
- ตลอด
- เวลา
- หัวข้อ
- เทรด
- การซื้อขาย crypto
- การทำธุรกรรม
- การถ่ายโอน
- การถ่ายโอน
- ที่เชื่อถือ
- ชนิด
- เข้าใจ
- USD
- ใช้
- ผู้ใช้
- ต่างๆ
- รุ่น
- เสมือน
- เครื่องเสมือน
- Web3
- อะไร
- WHO
- ชนะ
- คำ
- งาน
- โรงงาน
- โลก
- การเขียน
- ของคุณ