Trong hệ sinh thái blockchain, máy Oracle đóng vai trò cầu nối giữa hợp đồng thông minh trên chuỗi và thế giới bên ngoài, giữ vai trò cơ sở hạ tầng vô cùng quan trọng. Chức năng cốt lõi của nó là cung cấp dữ liệu bên ngoài cho hợp đồng thông minh trên blockchain.
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 bản thân hợp đồng không thể truy cập trực tiếp vào dữ liệu thế giới thực bên ngoài chuỗi, lúc này cần phải sử dụng máy Oracle để thực hiện. Quy trình cụ thể là: hợp đồng thông minh sẽ ghi nhu cầu khối lượng giao dịch dầu thô của ngày cần thiết vào nhật ký sự kiện, sau đó quá trình bên ngoài sẽ lắng nghe và đăng ký sự kiện này. Khi phát hiện yêu cầu liên quan, quá trình đó sẽ gọi phương thức cụ thể của hợp đồng thông qua việc gửi giao dịch trên chuỗi, tải thông tin khối lượng giao dịch dầu thô của ngày chỉ định lên hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, một dự án Máy Oracle phi tập trung đứng đầu về thị phần. Dự án này cam kết cung cấp dữ liệu từ thế giới thực cho blockchain một cách an toàn nhất. Ngoài việc thực hiện nguyên lý Máy Oracle cơ bản, dự án còn xây dựng một hệ sinh thái tuần hoàn tích cực xung quanh token gốc của nó, đảm bảo sự phát triển bền vững của hệ thống thông qua các động lực kinh tế. Trong hệ thống này, việc kích hoạt Máy Oracle cần được thực hiện thông qua việc chuyển nhượng token gốc, chức năng Máy Oracle dựa trên token này thuộc mô hình yêu cầu/phản hồi.
Dự án này sử dụng một tiêu chuẩn token đồng nhất cải tiến, bổ sung một phương thức transferAndCall trên cơ sở tiêu chuẩn ERC20. Phương thức này khéo léo kết hợp thanh toán và yêu cầu dịch vụ thành một, tốt đáp ứng nhu cầu của các tình huống kinh doanh 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 kiểm tra xem địa chỉ nhận có phải là địa chỉ hợp đồng hay không, nếu có, thì sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trong hợp đồng Máy Oracle, phương thức onTokenTransfer sẽ xác minh xem giao dịch có sử dụng đồng token đã chỉ định hay không, sau đó kiểm tra tính hợp pháp của dữ liệu yêu cầu. Sau một loạt kiểm tra an toàn, hợp đồng sẽ tạo ra một ID yêu cầu duy nhất, thiết lập thời gian hết hạn và ghi lại thông tin liên quan trong ánh xạ commitments. Quan trọng nhất, hợp đồng sẽ phát ra một sự kiện chứa dữ liệu yêu cầu, những dữ liệu này được mã hóa bằng định dạng đối tượng nhị phân nhẹ.
Nút ngoài chuỗi sau khi nhận được yêu cầu, sẽ gọi phương thức fulfillOracleRequest để phản hồi yêu cầu. Phương thức này trước tiên sẽ thực hiện một loạt xác minh, bao gồm kiểm tra quyền hạn của người gọi, tính hợp lệ của yêu cầu, v.v. Sau khi xác minh thành công, sẽ ghi lại số lượng token có thể rút, và xóa ID yêu cầu đó khỏi ánh xạ commitments. Cuối cùng, nếu gas còn lại đủ, sẽ gọi hàm callback của hợp đồng người yêu cầu.
Trong hàm callback, sẽ xác thực lại tính hợp lệ của yêu cầu và xử lý dữ liệu trả về theo nhu cầu cụ thể. Ví dụ, đối với máy Oracle giá, có thể cập nhật dữ liệu giá hiện tại.
Đối với các nhà phát triển, một dự án máy Oracle còn cung cấp giao diện tra cứu giá cả thuận tiện hơn. Mỗi cặp giao dịch đều có bộ tổng hợp giá độc lập, các nhà phát triển có thể gọi trực tiếp những giao diện này để lấy dữ liệu giá mới nhất, không cần tự chỉ định URL nguồn dữ liệu. Những giao diện này thường bao gồm các chức năng như độ chính xác truy vấn, mô tả, phiên bản, dữ liệu lịch sử và dữ liệu mới nhất, giúp đơn giản hóa quy trình phát triển.
Điều đáng chú ý là, trong hầu hết các trường hợp ứng dụng, hợp đồng có thể chỉ cần đọc giá mới nhất. Hơn nữa, đối với các cặp giao dịch tính bằng đô la Mỹ, độ chính xác giá thường được thống nhất là 8 chữ số, điều này giúp tránh rắc rối trong việc xử lý sự khác biệt về độ chính xác của các token 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.
Máy Oracle công nghệ: hợp đồng thông minh và cầu nối với thế giới thực
Máy Oracle công nghệ Độ sâu解析
Trong hệ sinh thái blockchain, máy Oracle đóng vai trò cầu nối giữa hợp đồng thông minh trên chuỗi và thế giới bên ngoài, giữ vai trò cơ sở hạ tầng vô cùng quan trọng. Chức năng cốt lõi của nó là cung cấp dữ liệu bên ngoài cho hợp đồng thông minh trên blockchain.
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 bản thân hợp đồng không thể truy cập trực tiếp vào dữ liệu thế giới thực bên ngoài chuỗi, lúc này cần phải sử dụng máy Oracle để thực hiện. Quy trình cụ thể là: hợp đồng thông minh sẽ ghi nhu cầu khối lượng giao dịch dầu thô của ngày cần thiết vào nhật ký sự kiện, sau đó quá trình bên ngoài sẽ lắng nghe và đăng ký sự kiện này. Khi phát hiện yêu cầu liên quan, quá trình đó sẽ gọi phương thức cụ thể của hợp đồng thông qua việc gửi giao dịch trên chuỗi, tải thông tin khối lượng giao dịch dầu thô của ngày chỉ định lên hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, một dự án Máy Oracle phi tập trung đứng đầu về thị phần. Dự án này cam kết cung cấp dữ liệu từ thế giới thực cho blockchain một cách an toàn nhất. Ngoài việc thực hiện nguyên lý Máy Oracle cơ bản, dự án còn xây dựng một hệ sinh thái tuần hoàn tích cực xung quanh token gốc của nó, đảm bảo sự phát triển bền vững của hệ thống thông qua các động lực kinh tế. Trong hệ thống này, việc kích hoạt Máy Oracle cần được thực hiện thông qua việc chuyển nhượng token gốc, chức năng Máy Oracle dựa trên token này thuộc mô hình yêu cầu/phản hồi.
Dự án này sử dụng một tiêu chuẩn token đồng nhất cải tiến, bổ sung một phương thức transferAndCall trên cơ sở tiêu chuẩn ERC20. Phương thức này khéo léo kết hợp thanh toán và yêu cầu dịch vụ thành một, tốt đáp ứng nhu cầu của các tình huống kinh doanh 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 kiểm tra xem địa chỉ nhận có phải là địa chỉ hợp đồng hay không, nếu có, thì sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trong hợp đồng Máy Oracle, phương thức onTokenTransfer sẽ xác minh xem giao dịch có sử dụng đồng token đã chỉ định hay không, sau đó kiểm tra tính hợp pháp của dữ liệu yêu cầu. Sau một loạt kiểm tra an toàn, hợp đồng sẽ tạo ra một ID yêu cầu duy nhất, thiết lập thời gian hết hạn và ghi lại thông tin liên quan trong ánh xạ commitments. Quan trọng nhất, hợp đồng sẽ phát ra một sự kiện chứa dữ liệu yêu cầu, những dữ liệu này được mã hóa bằng định dạng đối tượng nhị phân nhẹ.
Nút ngoài chuỗi sau khi nhận được yêu cầu, sẽ gọi phương thức fulfillOracleRequest để phản hồi yêu cầu. Phương thức này trước tiên sẽ thực hiện một loạt xác minh, bao gồm kiểm tra quyền hạn của người gọi, tính hợp lệ của yêu cầu, v.v. Sau khi xác minh thành công, sẽ ghi lại số lượng token có thể rút, và xóa ID yêu cầu đó khỏi ánh xạ commitments. Cuối cùng, nếu gas còn lại đủ, sẽ gọi hàm callback của hợp đồng người yêu cầu.
Trong hàm callback, sẽ xác thực lại tính hợp lệ của yêu cầu và xử lý dữ liệu trả về theo nhu cầu cụ thể. Ví dụ, đối với máy Oracle giá, có thể cập nhật dữ liệu giá hiện tại.
Đối với các nhà phát triển, một dự án máy Oracle còn cung cấp giao diện tra cứu giá cả thuận tiện hơn. Mỗi cặp giao dịch đều có bộ tổng hợp giá độc lập, các nhà phát triển có thể gọi trực tiếp những giao diện này để lấy dữ liệu giá mới nhất, không cần tự chỉ định URL nguồn dữ liệu. Những giao diện này thường bao gồm các chức năng như độ chính xác truy vấn, mô tả, phiên bản, dữ liệu lịch sử và dữ liệu mới nhất, giúp đơn giản hóa quy trình phát triển.
Điều đáng chú ý là, trong hầu hết các trường hợp ứng dụng, hợp đồng có thể chỉ cần đọc giá mới nhất. Hơn nữa, đối với các cặp giao dịch tính bằng đô la Mỹ, độ chính xác giá thường được thống nhất là 8 chữ số, điều này giúp tránh rắc rối trong việc xử lý sự khác biệt về độ chính xác của các token khác nhau.