Tầm quan trọng của hệ thống Máy Oracle trong Blockchain và cơ chế thực hiện của Chainlink
Máy Oracle là cơ sở hạ tầng thiết yếu trong lĩnh vực Blockchain, nó có khả năng cung cấp thông tin bên ngoài cho các hợp đồng thông minh trên chuỗi. Là một phần mềm trung gian kết nối hợp đồng thông minh và thế giới bên ngoài Blockchain, Máy Oracle đóng vai trò vô cùng quan trọng, chức năng chính của nó là cung cấp dữ liệu cho các hợp đồng thông minh trên Blockchain.
Lấy một 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 khối lượng giao dịch dầu thô vào một ngày cụ thể. Do hợp đồng thông minh không thể truy cập trực tiếp vào dữ liệu thực tế ngoài chuỗi, nên cần phải sử dụng Máy Oracle để thực hiện chức năng này. Trong trường hợp này, hợp đồng thông minh sẽ ghi khối lượng giao dịch dầu thô cho ngày cần thiết vào nhật ký sự kiện. Sau đó, một quy trình sẽ được khởi động bên ngoài chuỗi để theo dõi và đăng ký nhật ký sự kiện này. Khi phát hiện yêu cầu trong giao dịch, quy trình này sẽ thông qua việc gửi giao dịch trên chuỗi, gọi các phương thức liên quan của hợp đồng, để tải thông tin khối lượng giao dịch dầu thô vào hợp đồng thông minh.
Chainlink là dự án Máy Oracle có thị phần lớn nhất trong lĩnh vực Blockchain hiện nay. Nó là một hệ thống Máy Oracle phi tập trung, nhằm cung cấp dữ liệu phát sinh từ thế giới thực cho Blockchain một cách an toàn nhất. Chainlink đã xây dựng một hệ sinh thái thúc đẩy kinh tế tích cực dựa trên nguyên lý Máy Oracle cơ bản thông qua token LINK. Máy Oracle Chainlink cần được kích hoạt thông qua việc chuyển khoản token LINK, và LINK là hợp đồng ERC677 trên mạng Ethereum. Chức năng Máy Oracle được thực hiện dựa trên token LINK ERC677 thuộc mô hình yêu cầu/phản hồi.
Tiêu chuẩn token ERC677 được Chainlink đề xuất để đáp ứng nhu cầu của các tình huống dịch vụ Máy Oracle. Nó bổ sung phương thức transferAndCall dựa trên tiêu chuẩn ERC20, kết hợp thanh toán và yêu cầu dịch vụ thành một. Khi người dùng thực hiện chuyển khoản qua transferAndCall, ngoài chức năng chuyển khoản của ERC20, nó 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ó, thì gọi phương thức onTokenTransfer của địa chỉ đó.
Trong việc triển khai Chainlink, khi người tiêu dùng Máy Oracle sử dụng phương thức transferAndCall để thanh toán phí và yêu cầu dịch vụ, phương thức onTokenTransfer của hợp đồng Máy Oracle sẽ thực hiện một loạt các kiểm tra an toàn trước tiên. Điều này bao gồm việc xác minh xem giao dịch có phải là mã thông báo LINK hay không, kiểm tra độ dài dữ liệu có vượt quá giới hạn hay không, và xác minh bộ chọn hàm, v.v. Sau khi kiểm tra thành công, sẽ gọi phương thức oracleRequest của hợp đồng oracle hiện tại thông qua deleGatecall.
Phương thức oracleRequest sẽ tạo ra một requestId duy nhất, đặt thời gian hết hạn, và thêm thông tin liên quan vào bản đồ commitments. Quan trọng nhất, nó sẽ phát đi một sự kiện OracleRequest, sự kiện này chứa dữ liệu yêu cầu, sử dụng định dạng mã hóa đối tượng nhị phân gọn CBOR(.
![Máy Oracle chi tiết chuỗi của Chainlink (phần 1)])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Các nút ngoài chuỗi sẽ lắng nghe các sự kiện OracleRequest này. Khi phát hiện yêu cầu mới, nút sẽ phân tích thông tin trong sự kiện, gọi API để lấy dữ liệu cần thiết, sau đó gửi dữ liệu lên chuỗi thông qua phương thức fulfillOracleRequest của hợp đồng oracle. Phương thức này sẽ thực hiện một loạt các xác minh, sau đó gọi hàm callback của hợp đồng yêu cầu, trả kết quả về cho hợp đồng tiêu dùng.
Đối với các nhà phát triển, nếu chỉ cần sử dụng giá của các cặp tiền tệ đã có, có thể trực tiếp sử dụng Price Feed do Chainlink cung cấp ) còn được gọi là Aggregator (. Mỗi cặp giao dịch có một Price Feed riêng, thực 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 truy vấn, bao gồm lấy độ chính xác của giá, mô tả, phiên bản và dữ liệu giá mới nhất. Trong hầu hết các tình huống ứng dụng, hợp đồng có thể chỉ cần đọc giá mới nhất, tức là gọi phương thức latestRoundData )(.
Cần lưu ý rằng, đối với các cặp giao dịch được định giá bằng USD, độ chính xác giá thường được thố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ữa các token khác nhau. Thiết kế này cho phép các nhà phát triển dễ dàng sử dụng dữ liệu giá thời gian thực trong hợp đồng thông minh mà không cần xử lý các cuộc gọi API phức tạp và chuyển đổi định dạng dữ liệu.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
13 thích
Phần thưởng
13
8
Chia sẻ
Bình luận
0/400
staking_gramps
· 1giờ trước
Link nạp một chút?
Xem bản gốcTrả lời0
DegenWhisperer
· 13giờ trước
Chainke thật tuyệt nhưng hơi đắt.
Xem bản gốcTrả lời0
MidnightSnapHunter
· 13giờ trước
Chainlink khá đáng tin cậy.
Xem bản gốcTrả lời0
HalfPositionRunner
· 13giờ trước
Cảm giác link còn phải tăng lên
Xem bản gốcTrả lời0
GweiTooHigh
· 13giờ trước
link lại tăng lên rồi phải không? Không cần đoán nữa.
Chainlink: Máy Oracle如何连接 Blockchain与现实世界
Tầm quan trọng của hệ thống Máy Oracle trong Blockchain và cơ chế thực hiện của Chainlink
Máy Oracle là cơ sở hạ tầng thiết yếu trong lĩnh vực Blockchain, nó có khả năng cung cấp thông tin bên ngoài cho các hợp đồng thông minh trên chuỗi. Là một phần mềm trung gian kết nối hợp đồng thông minh và thế giới bên ngoài Blockchain, Máy Oracle đóng vai trò vô cùng quan trọng, chức năng chính của nó là cung cấp dữ liệu cho các hợp đồng thông minh trên Blockchain.
Lấy một 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 khối lượng giao dịch dầu thô vào một ngày cụ thể. Do hợp đồng thông minh không thể truy cập trực tiếp vào dữ liệu thực tế ngoài chuỗi, nên cần phải sử dụng Máy Oracle để thực hiện chức năng này. Trong trường hợp này, hợp đồng thông minh sẽ ghi khối lượng giao dịch dầu thô cho ngày cần thiết vào nhật ký sự kiện. Sau đó, một quy trình sẽ được khởi động bên ngoài chuỗi để theo dõi và đăng ký nhật ký sự kiện này. Khi phát hiện yêu cầu trong giao dịch, quy trình này sẽ thông qua việc gửi giao dịch trên chuỗi, gọi các phương thức liên quan của hợp đồng, để tải thông tin khối lượng giao dịch dầu thô vào hợp đồng thông minh.
Chainlink là dự án Máy Oracle có thị phần lớn nhất trong lĩnh vực Blockchain hiện nay. Nó là một hệ thống Máy Oracle phi tập trung, nhằm cung cấp dữ liệu phát sinh từ thế giới thực cho Blockchain một cách an toàn nhất. Chainlink đã xây dựng một hệ sinh thái thúc đẩy kinh tế tích cực dựa trên nguyên lý Máy Oracle cơ bản thông qua token LINK. Máy Oracle Chainlink cần được kích hoạt thông qua việc chuyển khoản token LINK, và LINK là hợp đồng ERC677 trên mạng Ethereum. Chức năng Máy Oracle được thực hiện dựa trên token LINK ERC677 thuộc mô hình yêu cầu/phản hồi.
Tiêu chuẩn token ERC677 được Chainlink đề xuất để đáp ứng nhu cầu của các tình huống dịch vụ Máy Oracle. Nó bổ sung phương thức transferAndCall dựa trên tiêu chuẩn ERC20, kết hợp thanh toán và yêu cầu dịch vụ thành một. Khi người dùng thực hiện chuyển khoản qua transferAndCall, ngoài chức năng chuyển khoản của ERC20, nó 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ó, thì gọi phương thức onTokenTransfer của địa chỉ đó.
Trong việc triển khai Chainlink, khi người tiêu dùng Máy Oracle sử dụng phương thức transferAndCall để thanh toán phí và yêu cầu dịch vụ, phương thức onTokenTransfer của hợp đồng Máy Oracle sẽ thực hiện một loạt các kiểm tra an toàn trước tiên. Điều này bao gồm việc xác minh xem giao dịch có phải là mã thông báo LINK hay không, kiểm tra độ dài dữ liệu có vượt quá giới hạn hay không, và xác minh bộ chọn hàm, v.v. Sau khi kiểm tra thành công, sẽ gọi phương thức oracleRequest của hợp đồng oracle hiện tại thông qua deleGatecall.
Phương thức oracleRequest sẽ tạo ra một requestId duy nhất, đặt thời gian hết hạn, và thêm thông tin liên quan vào bản đồ commitments. Quan trọng nhất, nó sẽ phát đi một sự kiện OracleRequest, sự kiện này chứa dữ liệu yêu cầu, sử dụng định dạng mã hóa đối tượng nhị phân gọn CBOR(.
![Máy Oracle chi tiết chuỗi của Chainlink (phần 1)])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Các nút ngoài chuỗi sẽ lắng nghe các sự kiện OracleRequest này. Khi phát hiện yêu cầu mới, nút sẽ phân tích thông tin trong sự kiện, gọi API để lấy dữ liệu cần thiết, sau đó gửi dữ liệu lên chuỗi thông qua phương thức fulfillOracleRequest của hợp đồng oracle. Phương thức này sẽ thực hiện một loạt các xác minh, sau đó gọi hàm callback của hợp đồng yêu cầu, trả kết quả về cho hợp đồng tiêu dùng.
![Máy Oracle])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Đối với các nhà phát triển, nếu chỉ cần sử dụng giá của các cặp tiền tệ đã có, có thể trực tiếp sử dụng Price Feed do Chainlink cung cấp ) còn được gọi là Aggregator (. Mỗi cặp giao dịch có một Price Feed riêng, thực 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 truy vấn, bao gồm lấy độ chính xác của giá, mô tả, phiên bản và dữ liệu giá mới nhất. Trong hầu hết các tình huống ứng dụng, hợp đồng có thể chỉ cần đọc giá mới nhất, tức là gọi phương thức latestRoundData )(.
![Máy Oracle])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Cần lưu ý rằng, đối với các cặp giao dịch được định giá bằng USD, độ chính xác giá thường được thố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ữa các token khác nhau. Thiết kế này cho phép các nhà phát triển dễ dàng sử dụng dữ liệu giá thời gian thực trong hợp đồng thông minh mà không cần xử lý các cuộc gọi API phức tạp và chuyển đổi định dạng dữ liệu.
![Máy Oracle详解系列之 Chainlink(上)])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(