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, nó có thể cung cấp thông tin dữ liệu bên ngoài cho hợp đồng thông minh. Là phần mềm trung gian kết nối hợp đồng thông minh và thế giới bên ngoài, chức năng chính của máy Oracle là cung cấp dữ liệu bên ngoài cần thiết cho hợp đồng thông minh trên blockchain.
Lấy một ví dụ, giả sử chúng ta tạo một hợp đồng thông minh trên mạng Ethereum yêu cầu dữ liệu khối lượng giao dịch dầu thô vào một ngày nào đó. Do hợp đồng thông minh không thể tự mình truy cập dữ liệu thực tế 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ể như sau: hợp đồng thông minh trước tiên ghi khối lượng giao dịch dầu thô cần thiết vào nhật ký sự kiện, sau đó bên ngoài chuỗi sẽ kích hoạt một quy trình 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 ngày đã chỉ định lên hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, Chainlink nổi bật với thị phần lớn nhất. Chainlink là một dự án 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. Nó xây dựng một hệ sinh thái hình thành chu trình tốt thông qua các động lực kinh tế dựa trên nguyên tắc Máy Oracle cơ bản, xoay quanh token LINK. Máy Oracle Chainlink cần được kích hoạt thông qua việc chuyển nhượng token LINK, trong khi LINK là hợp đồng ERC677 trên mạng Ethereum. Chức năng Máy Oracle hoàn thành dựa trên token LINK ERC677 thuộc mô hình yêu cầu/phản hồi.
Tiêu chuẩn ERC677 bổ sung phương thức transferAndCall dựa trên ERC20, 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 của các tình huống kinh doanh Máy Oracle. Khi người dùng thực hiện chuyển khoản transferAndCall, ngoài việc chuyển khoản 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ó thì 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 xem Máy Oracle đó có đáng tin cậy hay không, vì Máy Oracle cần phải được thanh toán trước khi cung cấp dịch vụ cho người tiêu dùng. Độ tin cậy của Máy Oracle có thể được phân loại dựa trên nhiều yếu tố, chẳng hạn như độ tin cậy của nguồn dữ liệu, uy tín của nút, v.v.
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 kiểm tra an toàn. Sau khi kiểm tra thành công, nó 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 này sẽ tạo ra một requestId duy nhất, thiết lập thời gian hết hạn và phát hành sự kiện OracleRequest chứa dữ liệu yêu cầu.
Các nút ngoài chuỗi sẽ lắng nghe các sự kiện này, phân tích thông tin cụ thể của yêu cầu, và gọi API mạng để lấy dữ liệu cần thiết. Sau đó, thông qua việc nộp giao dịch, 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 trước khi trả kết quả về cho hợp đồng tiêu thụ qua địa chỉ và hàm callback đã được ghi lại trước đó.
Đối với các nhà phát triển, nếu chỉ muốn sử dụng giá của các cặp tiền tệ đã có mà không cần chỉ định URL API riêng, Chainlink cũng cung cấp một cách đơn giản hơn. Mỗi cặp giao dịch đều có một Price Feed(Aggregator) riêng, thực tế là một AggregatorProxy. Các nhà phát triển có thể gọi trực tiếp các phương thức của các hợp đồng Proxy này để lấy dữ liệu giá, không cần tự xử lý quá trình yêu cầu và phản hồi API.
Tổng thể mà nói, Chainlink thông qua thiết kế khéo léo, đã cung cấp một cầu nối dữ liệu an toàn và đáng tin cậy cho thế giới blockchain, mở rộng đáng kể các ứng dụng của hợp đồng thông minh. Với sự phát triển không ngừng của công nghệ blockchain, công nghệ Máy Oracle cũng sẽ tiếp tục tiến hóa, cung cấp hỗ trợ mạnh mẽ cho nhiều ứng dụng đổi mới.
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.
Giải mã Chainlink: Công nghệ Máy Oracle kết nối Blockchain với 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, nó có thể cung cấp thông tin dữ liệu bên ngoài cho hợp đồng thông minh. Là phần mềm trung gian kết nối hợp đồng thông minh và thế giới bên ngoài, chức năng chính của máy Oracle là cung cấp dữ liệu bên ngoài cần thiết cho hợp đồng thông minh trên blockchain.
Lấy một ví dụ, giả sử chúng ta tạo một hợp đồng thông minh trên mạng Ethereum yêu cầu dữ liệu khối lượng giao dịch dầu thô vào một ngày nào đó. Do hợp đồng thông minh không thể tự mình truy cập dữ liệu thực tế 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ể như sau: hợp đồng thông minh trước tiên ghi khối lượng giao dịch dầu thô cần thiết vào nhật ký sự kiện, sau đó bên ngoài chuỗi sẽ kích hoạt một quy trình 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 ngày đã chỉ định lên hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, Chainlink nổi bật với thị phần lớn nhất. Chainlink là một dự án 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. Nó xây dựng một hệ sinh thái hình thành chu trình tốt thông qua các động lực kinh tế dựa trên nguyên tắc Máy Oracle cơ bản, xoay quanh token LINK. Máy Oracle Chainlink cần được kích hoạt thông qua việc chuyển nhượng token LINK, trong khi LINK là hợp đồng ERC677 trên mạng Ethereum. Chức năng Máy Oracle hoàn thành dựa trên token LINK ERC677 thuộc mô hình yêu cầu/phản hồi.
Tiêu chuẩn ERC677 bổ sung phương thức transferAndCall dựa trên ERC20, 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 của các tình huống kinh doanh Máy Oracle. Khi người dùng thực hiện chuyển khoản transferAndCall, ngoài việc chuyển khoản 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ó thì 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 xem Máy Oracle đó có đáng tin cậy hay không, vì Máy Oracle cần phải được thanh toán trước khi cung cấp dịch vụ cho người tiêu dùng. Độ tin cậy của Máy Oracle có thể được phân loại dựa trên nhiều yếu tố, chẳng hạn như độ tin cậy của nguồn dữ liệu, uy tín của nút, v.v.
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 kiểm tra an toàn. Sau khi kiểm tra thành công, nó 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 này sẽ tạo ra một requestId duy nhất, thiết lập thời gian hết hạn và phát hành sự kiện OracleRequest chứa dữ liệu yêu cầu.
Các nút ngoài chuỗi sẽ lắng nghe các sự kiện này, phân tích thông tin cụ thể của yêu cầu, và gọi API mạng để lấy dữ liệu cần thiết. Sau đó, thông qua việc nộp giao dịch, 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 trước khi trả kết quả về cho hợp đồng tiêu thụ qua địa chỉ và hàm callback đã được ghi lại trước đó.
Đối với các nhà phát triển, nếu chỉ muốn sử dụng giá của các cặp tiền tệ đã có mà không cần chỉ định URL API riêng, Chainlink cũng cung cấp một cách đơn giản hơn. Mỗi cặp giao dịch đều có một Price Feed(Aggregator) riêng, thực tế là một AggregatorProxy. Các nhà phát triển có thể gọi trực tiếp các phương thức của các hợp đồng Proxy này để lấy dữ liệu giá, không cần tự xử lý quá trình yêu cầu và phản hồi API.
Tổng thể mà nói, Chainlink thông qua thiết kế khéo léo, đã cung cấp một cầu nối dữ liệu an toàn và đáng tin cậy cho thế giới blockchain, mở rộng đáng kể các ứng dụng của hợp đồng thông minh. Với sự phát triển không ngừng của công nghệ blockchain, công nghệ Máy Oracle cũng sẽ tiếp tục tiến hóa, cung cấp hỗ trợ mạnh mẽ cho nhiều ứng dụng đổi mới.