Làm cách nào để xây dựng Oracle của riêng bạn bằng cách sử dụng hợp đồng thông minh Ethereum? Thông tin dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Làm thế nào để xây dựng Oracle của riêng bạn bằng cách sử dụng hợp đồng thông minh Ethereum?

Thơi gian đọc: 5 phút

Ethereum là blockchain đầu tiên kế thừa các phẩm chất của việc tạo dapp, giao dịch tài sản tiền điện tử trên blockchain, v.v.

Nó có ngôn ngữ lập trình để viết các hợp đồng thông minh và triển khai chúng trên máy ảo Ethereum để truyền phân quyền trong việc thực hiện các hoạt động. 

Hợp đồng thông minh thực thi các dòng mã được xác định trước và hoàn thành nhiệm vụ dự kiến. Nhưng nếu chúng ta muốn làm cho các hợp đồng thông minh hoạt động dựa trên kết quả của thời gian thực xảy ra thì sao?

Để đạt được điều này, chúng ta cần hiểu khái niệm về các phép tắc blockchain mà thông qua đó các hợp đồng thông minh có thể nhận được đầu vào từ thế giới thực. 

Một điều kỳ diệu trong tiền điện tử là gì và làm thế nào để tạo ra một điều tiên tri trong hợp đồng thông minh Ethereum? Chúng ta sẽ thảo luận chi tiết về vấn đề này trong phần sau. 

Các chủ đề chính của blog

  • Nhà tiên tri tiền điện tử là gì và cách thức hoạt động của các nhà tiên tri tiền điện tử
  • Các loại oracles khác nhau
  • Luồng dữ liệu từ oracles đến hợp đồng thông minh Ethereum
  • Cách viết mã Ethereum oracles
  • Vấn đề với tiên tri tiền điện tử

Oracle là gì, và tại sao nó lại cần thiết?

Linh vật là các thực thể hoạt động như một cầu nối kết nối blockchain với các hệ thống bên ngoài. Nói cách khác, oracles cung cấp dữ liệu sự kiện ngoài chuỗi cho hợp đồng thông minh để thực hiện một hành động dựa trên đầu vào.

Ví dụ, trong các sự kiện cá cược, người dùng được phép đặt cược vào những người chơi mà họ nghĩ sẽ thắng trận đấu. Dựa trên thời gian thực diễn ra, phần thưởng được phân phối cho những người dùng đặt cược vào người chiến thắng. 

Thần chú chuỗi khối giúp bổ sung dữ liệu về người chiến thắng vào các hợp đồng thông minh. Luồng dữ liệu trên oracle là hai chiều và có thể được sử dụng để dịch bất kỳ dữ liệu thời gian thực nào từ báo cáo thời tiết đến trạng thái thị trường chứng khoán sang hợp đồng thông minh. 

Mỗi nút trong chuỗi khối Ethereum đều sở hữu thông tin về các giao dịch, thông tin này phải đồng nhất. Do đó, việc tìm nạp dữ liệu từ các API có thể dẫn đến sự khác biệt. Ngược lại, oracle tải dữ liệu trên blockchain, dữ liệu này luôn xuất hiện giống nhau trên tất cả các nút.

Blockchain oracles
Blockchain oracles

Làm thế nào để truy cập dữ liệu từ Oracle?

Hợp đồng thông minh sử dụng chu trình yêu cầu và phản hồi để lấy thông tin từ nút tiên tri. Oracle được triển khai với HTTP GET sẽ nhận được yêu cầu từ hợp đồng thông minh và hàm gọi lại có thể lấy dữ liệu được yêu cầu từ oracle. 

Bằng cách này, dữ liệu được thu thập bởi hợp đồng thông minh từ oracle. Mỗi oracle được định cấu hình để cung cấp thông tin cụ thể và bạn có thể tìm kiếm các dịch vụ của bên thứ ba để có được dữ liệu mà bạn tìm kiếm. 

Đây là một số dịch vụ của oracle

  • Chuỗi liên kết
  • Có thể
  • winet
  • Paralink, v.v.

Phân loại của Oracles

Oracles được phân loại thành nhiều loại khác nhau tùy thuộc vào việc tìm nạp, xác thực và chuyển dữ liệu. 

Đầu vào oracles: Loại được công nhận rộng rãi nhất trong đó dữ liệu được tìm nạp ngoài chuỗi từ các diễn biến trong thời gian thực. Đối với người yêu cũ. Nguồn cấp dữ liệu giá trên cổ phiếu được lấy từ ngoài chuỗi để kích hoạt hành động trên các hợp đồng thông minh dựa trên các điều kiện thị trường tài chính.

Oracles đầu ra: Câu thứ hai của lời chúc đầu vào trong đó các hợp đồng thông minh kích động nhà tiên tri thực hiện hành động. Đối với người yêu cũ. Gửi tín hiệu đến nhà cung cấp dịch vụ lưu trữ để lưu trữ dữ liệu hoặc bắt đầu các mạng ngân hàng thực hiện thanh toán.

Kinh thánh chuỗi chéo: Các phép tắc chuỗi chéo tạo điều kiện thuận lợi cho cả việc đọc và ghi dữ liệu trên các blockchain khác nhau. Nó cũng làm cho nó có thể kích hoạt các sự kiện trong một chuỗi khối và làm cho chúng hoạt động trên một chuỗi khối khác. 

Phép tính hỗ trợ máy tính: Các nhà khoa học hỗ trợ máy tính sử dụng tính toán ngoài chuỗi để cung cấp dịch vụ. Đặc biệt là khi chuỗi trực tuyến không đáng tin cậy do hạn chế về kỹ thuật hoặc tài chính, loại tiên tri này được sử dụng.

Tìm nạp dữ liệu từ Oracles

Bước 1: Hợp đồng thông minh gửi một truy vấn đến nhà tiên tri.

Bước 2: Truy vấn được chuyển hướng đến phương tiện vận chuyển dữ liệu, tìm kiếm dữ liệu từ nguồn dữ liệu

Bước 3: Dữ liệu được lấy từ nguồn và được cung cấp cho nhà tiên tri.

Bước 4: Oracle gửi phản hồi tới hợp đồng thông minh theo yêu cầu. 

Tạo Oracle trong Hợp đồng thông minh Ethereum - Cấu trúc mã

Chúng ta sẽ tìm hiểu cách hoạt động của oracle trong việc xác định giá hiện tại của Bitcoin bằng USD bằng cách sử dụng dịch vụ oracle có tên là 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" ); } } 

Các vấn đề của Oracle

Các vấn đề của Oracle về cơ bản là xung đột giữa các hợp đồng thông minh không đáng tin cậy và các hợp đồng đáng tin cậy của bên thứ ba, xét đến tính bảo mật và tính xác thực của dữ liệu từ các bên thứ ba.

Các hợp đồng thông minh dựa vào các vị thần để đưa ra các quyết định liên quan đến việc thực hiện của chúng, mang lại cho chúng quyền lực to lớn đối với hoạt động của chúng. Trên thực tế, bản chất phi tập trung của các hợp đồng thông minh đang được đặt ra một dấu hỏi. 

Tuy nhiên, các dịch vụ oracle như ChainLink và Oraclize hoạt động như các giải pháp phi tập trung lấy dữ liệu dựa trên các phương pháp mới và được xác thực. Do đó, dữ liệu thu được thông qua các phương tiện phi tập trung.  

Kết luận

Khả năng kết nối của blockchain với thế giới thực là có ý nghĩa đáng kể đối với một bước tiến nhảy vọt đối với thế giới phi tập trung. Oracles đang cung cấp giải pháp cho giao diện hợp đồng thông minh đáng tin cậy với dữ liệu thời gian thực. 

Tuy nhiên, để mang lại tính bền vững, những tiến bộ được thực hiện bởi các dịch vụ oracle để tăng cường tính bảo mật và tính đúng đắn của dữ liệu thu được ngoài chuỗi. 

Muốn giữ liên quan nhiều hơn đến Bảo mật Web3?

Theo QuillAudit cho nhiều bài viết cập nhật như vậy về Web3.

23 Lượt xem

Các bài viết Làm thế nào để xây dựng Oracle của riêng bạn bằng cách sử dụng hợp đồng thông minh Ethereum? xuất hiện đầu tiên trên Blog.quillhash.

Dấu thời gian:

Thêm từ quillhash