Máy Oracle công nghệ chi tiết: Lấy Chainlink làm ví dụ
Trong hệ sinh thái blockchain, Máy Oracle đóng vai trò quan trọng trong việc kết nối hợp đồng thông minh trên chuỗi với thế giới bên ngoài. Như một loại hạ tầng, hệ thống Máy Oracle có khả năng cung cấp dữ liệu bên ngoài cho các hợp đồng thông minh trên blockchain, từ đó hiện thực hóa các trường hợp ứng dụng phức tạp hơn.
Ví dụ, nếu chúng ta triển khai một hợp đồng thông minh trên mạng Ethereum cần lấy dữ liệu giao dịch dầu thô vào một ngày cụ thể, vì hợp đồng không thể truy cập trực tiếp thông tin ngoài chuỗi, lúc này cần phải nhờ vào Máy Oracle để thực hiện. Quy trình cụ thể là: hợp đồng thông minh trước tiên ghi lại yêu cầu dữ liệu cần thiết vào nhật ký sự kiện, sau đó quá trình ngoài chuỗi lắng nghe và phản hồi yêu cầu này, bằng cách gửi giao dịch trên chuỗi để truyền thông tin đã chỉ định cho hợp đồng thông minh.
Chainlink là dự án máy Oracle phi tập trung có thị phần cao nhất hiện nay. Nó xây dựng một cơ chế khuyến khích kinh tế thông qua token LINK, tạo thành một hệ sinh thái tuần hoàn tích cực. Việc kích hoạt máy Oracle của Chainlink cần được thực hiện thông qua việc chuyển tiền token LINK, trong khi LINK là hợp đồng ERC677 dựa trên Ethereum.
Tiêu chuẩn ERC677 bổ sung phương thức transferAndCall trên nền tảng ERC20, thiết kế này đáp ứng nhu cầu đặc biệt của các kịch bản dịch vụ Máy Oracle. Khi người dùng gọi transferAndCall để thực hiện chuyển tiền, ngoài các thao tác chuyển tiền tiêu chuẩn của ERC20, còn kiểm tra xem địa chỉ nhận có phải là địa chỉ hợp đồng hay không, nếu có, sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trước khi yêu cầu dịch vụ Máy Oracle, người dùng cần xác nhận độ tin cậy của Máy Oracle đó. Độ tin cậy của Máy Oracle có thể được đánh giá dựa trên hiệu suất lịch sử, hệ thống danh tiếng và các yếu tố khác.
Khi Máy Oracle nhận được yêu cầu dịch vụ, nó sẽ xử lý thông qua phương thức onTokenTransfer. Phương thức này đầu tiên xác minh chuyển khoản có phải là token LINK hay không, sau đó kiểm tra tính hợp pháp của dữ liệu yêu cầu. Sau khi xác minh thành công, Máy Oracle sẽ phát ra một sự kiện OracleRequest, bao gồm thông tin chi tiết về yêu cầu.
Sau khi nút ngoài chuỗi nghe thấy sự kiện này, nó sẽ phân tích thông tin yêu cầu, gọi API để lấy dữ liệu cần thiết, sau đó thông qua phương thức fulfillOracleRequest để nộp dữ liệu lên chuỗi. Phương thức này sẽ trả kết quả về cho hàm callback của bên yêu cầu sau khi thực hiện một loạt các xác minh.
Đối với các nhà phát triển, Chainlink còn cung cấp dịch vụ máy Oracle giá cả đơn giản hơn. Mỗi cặp giao dịch đều có một Price Feed riêng (còn được gọi là Aggregator), thực chất là một hợp đồng AggregatorProxy. Những hợp đồng này cung cấp một số phương thức quan trọng, chẳng hạn như lấy dữ liệu giá mới nhất bằng latestRoundData(). Trong hầu hết các trường hợp ứng dụng, hợp đồng chỉ cần đọc giá mới nhất.
Cần lưu ý rằng các cặp giao dịch được định giá bằng đô la Mỹ có độ chính xác dữ liệu giá thường được đồng nhất là 8 chữ số, điều này đơn giản hóa vấn đề xử lý độ chính xác giá giữa các token khác nhau.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
13 thích
Phần thưởng
13
5
Đăng lại
Chia sẻ
Bình luận
0/400
DAOplomacy
· 08-10 12:47
tiền lệ lịch sử cho thấy bờ rào oracle vẫn... *căn chỉnh động lực không tối ưu* thật lòng mà nói
Máy Oracle Chainlink: cây cầu kết nối hợp đồng thông minh với thế giới bên ngoài
Máy Oracle công nghệ chi tiết: Lấy Chainlink làm ví dụ
Trong hệ sinh thái blockchain, Máy Oracle đóng vai trò quan trọng trong việc kết nối hợp đồng thông minh trên chuỗi với thế giới bên ngoài. Như một loại hạ tầng, hệ thống Máy Oracle có khả năng cung cấp dữ liệu bên ngoài cho các hợp đồng thông minh trên blockchain, từ đó hiện thực hóa các trường hợp ứng dụng phức tạp hơn.
Ví dụ, nếu chúng ta triển khai một hợp đồng thông minh trên mạng Ethereum cần lấy dữ liệu giao dịch dầu thô vào một ngày cụ thể, vì hợp đồng không thể truy cập trực tiếp thông tin ngoài chuỗi, lúc này cần phải nhờ vào Máy Oracle để thực hiện. Quy trình cụ thể là: hợp đồng thông minh trước tiên ghi lại yêu cầu dữ liệu cần thiết vào nhật ký sự kiện, sau đó quá trình ngoài chuỗi lắng nghe và phản hồi yêu cầu này, bằng cách gửi giao dịch trên chuỗi để truyền thông tin đã chỉ định cho hợp đồng thông minh.
Chainlink là dự án máy Oracle phi tập trung có thị phần cao nhất hiện nay. Nó xây dựng một cơ chế khuyến khích kinh tế thông qua token LINK, tạo thành một hệ sinh thái tuần hoàn tích cực. Việc kích hoạt máy Oracle của Chainlink cần được thực hiện thông qua việc chuyển tiền token LINK, trong khi LINK là hợp đồng ERC677 dựa trên Ethereum.
Tiêu chuẩn ERC677 bổ sung phương thức transferAndCall trên nền tảng ERC20, thiết kế này đáp ứng nhu cầu đặc biệt của các kịch bản dịch vụ Máy Oracle. Khi người dùng gọi transferAndCall để thực hiện chuyển tiền, ngoài các thao tác chuyển tiền tiêu chuẩn của ERC20, còn kiểm tra xem địa chỉ nhận có phải là địa chỉ hợp đồng hay không, nếu có, sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trước khi yêu cầu dịch vụ Máy Oracle, người dùng cần xác nhận độ tin cậy của Máy Oracle đó. Độ tin cậy của Máy Oracle có thể được đánh giá dựa trên hiệu suất lịch sử, hệ thống danh tiếng và các yếu tố khác.
Khi Máy Oracle nhận được yêu cầu dịch vụ, nó sẽ xử lý thông qua phương thức onTokenTransfer. Phương thức này đầu tiên xác minh chuyển khoản có phải là token LINK hay không, sau đó kiểm tra tính hợp pháp của dữ liệu yêu cầu. Sau khi xác minh thành công, Máy Oracle sẽ phát ra một sự kiện OracleRequest, bao gồm thông tin chi tiết về yêu cầu.
Sau khi nút ngoài chuỗi nghe thấy sự kiện này, nó sẽ phân tích thông tin yêu cầu, gọi API để lấy dữ liệu cần thiết, sau đó thông qua phương thức fulfillOracleRequest để nộp dữ liệu lên chuỗi. Phương thức này sẽ trả kết quả về cho hàm callback của bên yêu cầu sau khi thực hiện một loạt các xác minh.
Đối với các nhà phát triển, Chainlink còn cung cấp dịch vụ máy Oracle giá cả đơn giản hơn. Mỗi cặp giao dịch đều có một Price Feed riêng (còn được gọi là Aggregator), thực chất là một hợp đồng AggregatorProxy. Những hợp đồng này cung cấp một số phương thức quan trọng, chẳng hạn như lấy dữ liệu giá mới nhất bằng latestRoundData(). Trong hầu hết các trường hợp ứng dụng, hợp đồng chỉ cần đọc giá mới nhất.
Cần lưu ý rằng các cặp giao dịch được định giá bằng đô la Mỹ có độ chính xác dữ liệu giá thường được đồng nhất là 8 chữ số, điều này đơn giản hóa vấn đề xử lý độ chính xác giá giữa các token khác nhau.