Phân tích công nghệ Máy Oracle: Lấy Chainlink làm ví dụ
Máy Oracle là cơ sở hạ tầng chính trong lĩnh vực blockchain, chức năng chính của nó là cung cấp dữ liệu bên ngoài cho hợp đồng thông minh. Là cầu nối giữa hợp đồng thông minh và thế giới thực, Máy Oracle đóng vai trò không thể thiếu trong hệ sinh thái blockchain.
Ví dụ, nếu chúng ta triển khai một hợp đồng thông minh trên Ethereum cần lấy thông tin về khối lượng giao dịch dầu thô vào một ngày cụ thể, do hợp đồng không thể truy cập dữ liệu ngoài chuỗi trực tiếp, lúc này cần nhờ đến Máy Oracle. Quy trình cụ thể là: hợp đồng thông minh ghi thông tin cần thiết vào nhật ký sự kiện, quá trình ngoại tuyến lắng nghe và phản hồi yêu cầu này, sau đó truyền dữ liệu cần thiết cho hợp đồng thông minh qua giao dịch trên chuỗi.
Trong số nhiều dự án Máy Oracle, Chainlink nổi bật với đặc tính phi tập trung và thị phần của nó. Chainlink đã xây dựng một cơ chế khuyến khích kinh tế thông qua token LINK, hình thành một hệ sinh thái tuần hoàn tích cực. Chức năng cốt lõi của nó dựa trên mô hình yêu cầu/phản hồi dựa trên token LINK.
Chainlink áp dụng tiêu chuẩn ERC677, đây là một sự mở rộng trên cơ sở ERC20, bổ sung phương thức transferAndCall. Phương thức này kết hợp thanh toán và yêu cầu dịch vụ thành một, đáp ứng tốt hơn nhu cầu kinh doanh của Máy Oracle. Khi người dùng gọi transferAndCall để chuyển tiền, ngoài việc chuyển tiền ERC20 thông thường, nó còn kích hoạt phương thức onTokenTransfer của hợp đồng nhận.
Trong hợp đồng oracle của Chainlink, phương thức onTokenTransfer sẽ thực hiện một loạt các kiểm tra an toàn, bao gồm xác minh token chuyển khoản, độ dài dữ liệu và selector hàm. Sau khi kiểm tra, hợp đồng sẽ tạo ra một requestId duy nhất, thiết lập thời gian hết hạn và kích hoạt sự kiện OracleRequest. Sự kiện này chứa các thông tin chi tiết về yêu cầu, chẳng hạn như định dạng dữ liệu, địa chỉ callback, v.v.
Sau khi nút ngoài chuỗi lắng nghe sự kiện OracleRequest, nó sẽ phân tích thông tin yêu cầu, lấy dữ liệu cần thiết thông qua API, sau đó gọi phương thức fulfillOracleRequest của hợp đồng oracle để nộp dữ liệu lên chuỗi. Phương thức này sẽ thực hiện một loạt xác minh, sau đó gọi hàm callback của hợp đồng yêu cầu, hoàn thành toàn bộ quy trình dịch vụ máy Oracle.
Đối với các nhà phát triển, Chainlink còn cung cấp dịch vụ máy Oracle giá cả tiện lợi hơn. Mỗi cặp giao dịch đều có một Price Feed tương ứng (tức là AggregatorProxy), các nhà phát triển có thể gọi trực tiếp những hợp đồng này để lấy dữ liệu giá mới nhất mà không cần tự chỉ định URL nguồn dữ liệu. Trong hầu hết các tình huống ứng dụng, chỉ cần gọi phương thức latestRoundData() để lấy giá mới nhất.
Cần lưu ý rằng các cặp giao dịch được định giá bằng USD thường có độ chính xác giá统一为8位, điều này đơn giản hóa quy trình xử lý giá của các mã thông báo khác nhau.
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.
Phân tích công nghệ Máy Oracle Chainlink: cầu nối giữa hợp đồng thông minh và thế giới thực
Phân tích công nghệ Máy Oracle: Lấy Chainlink làm ví dụ
Máy Oracle là cơ sở hạ tầng chính trong lĩnh vực blockchain, chức năng chính của nó là cung cấp dữ liệu bên ngoài cho hợp đồng thông minh. Là cầu nối giữa hợp đồng thông minh và thế giới thực, Máy Oracle đóng vai trò không thể thiếu trong hệ sinh thái blockchain.
Ví dụ, nếu chúng ta triển khai một hợp đồng thông minh trên Ethereum cần lấy thông tin về khối lượng giao dịch dầu thô vào một ngày cụ thể, do hợp đồng không thể truy cập dữ liệu ngoài chuỗi trực tiếp, lúc này cần nhờ đến Máy Oracle. Quy trình cụ thể là: hợp đồng thông minh ghi thông tin cần thiết vào nhật ký sự kiện, quá trình ngoại tuyến lắng nghe và phản hồi yêu cầu này, sau đó truyền dữ liệu cần thiết cho hợp đồng thông minh qua giao dịch trên chuỗi.
Trong số nhiều dự án Máy Oracle, Chainlink nổi bật với đặc tính phi tập trung và thị phần của nó. Chainlink đã xây dựng một cơ chế khuyến khích kinh tế thông qua token LINK, hình thành một hệ sinh thái tuần hoàn tích cực. Chức năng cốt lõi của nó dựa trên mô hình yêu cầu/phản hồi dựa trên token LINK.
Chainlink áp dụng tiêu chuẩn ERC677, đây là một sự mở rộng trên cơ sở ERC20, bổ sung phương thức transferAndCall. Phương thức này kết hợp thanh toán và yêu cầu dịch vụ thành một, đáp ứng tốt hơn nhu cầu kinh doanh của Máy Oracle. Khi người dùng gọi transferAndCall để chuyển tiền, ngoài việc chuyển tiền ERC20 thông thường, nó còn kích hoạt phương thức onTokenTransfer của hợp đồng nhận.
Trong hợp đồng oracle của Chainlink, phương thức onTokenTransfer sẽ thực hiện một loạt các kiểm tra an toàn, bao gồm xác minh token chuyển khoản, độ dài dữ liệu và selector hàm. Sau khi kiểm tra, hợp đồng sẽ tạo ra một requestId duy nhất, thiết lập thời gian hết hạn và kích hoạt sự kiện OracleRequest. Sự kiện này chứa các thông tin chi tiết về yêu cầu, chẳng hạn như định dạng dữ liệu, địa chỉ callback, v.v.
Sau khi nút ngoài chuỗi lắng nghe sự kiện OracleRequest, nó sẽ phân tích thông tin yêu cầu, lấy dữ liệu cần thiết thông qua API, sau đó gọi phương thức fulfillOracleRequest của hợp đồng oracle để nộp dữ liệu lên chuỗi. Phương thức này sẽ thực hiện một loạt xác minh, sau đó gọi hàm callback của hợp đồng yêu cầu, hoàn thành toàn bộ quy trình dịch vụ máy Oracle.
Đối với các nhà phát triển, Chainlink còn cung cấp dịch vụ máy Oracle giá cả tiện lợi hơn. Mỗi cặp giao dịch đều có một Price Feed tương ứng (tức là AggregatorProxy), các nhà phát triển có thể gọi trực tiếp những hợp đồng này để lấy dữ liệu giá mới nhất mà không cần tự chỉ định URL nguồn dữ liệu. Trong hầu hết các tình huống ứng dụng, chỉ cần gọi phương thức latestRoundData() để lấy giá mới nhất.
Cần lưu ý rằng các cặp giao dịch được định giá bằng USD thường có độ chính xác giá统一为8位, điều này đơn giản hóa quy trình xử lý giá của các mã thông báo khác nhau.