Phân tích công nghệ Máy Oracle: Lấy Chainlink làm ví dụ
Trong hệ sinh thái blockchain, Máy Oracle đóng vai trò là cầu nối giữa hợp đồng thông minh trên chuỗi và thế giới bên ngoài, đóng một vai trò cơ sở hạ tầng cực kỳ quan trọng. Chức năng chính của nó là cung cấp dữ liệu bên ngoài cho các 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 số 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 trực tiếp dữ liệu ngoài chuỗi, lúc này cần phải sử dụng Máy Oracle để thực hiện. Quá trình cụ thể là, hợp đồng thông minh trước tiên ghi thông tin cần thiết vào nhật ký sự kiện, sau đó quá trình bên ngoài lắng nghe và đăng ký nhật ký đó. Khi phát hiện yêu cầu, quá trình đó sẽ gọi các phương thức liên quan của hợp đồng thông qua việc gửi giao dịch trên chuỗi, tải dữ liệu số lượng giao dịch dầu thô vào ngày chỉ định lên 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 hệ sinh thái dựa trên động lực kinh tế xung quanh token LINK, cung cấp dữ liệu thế giới thực cho blockchain bằng cách an toàn nhất. Việc kích hoạt máy Oracle Chainlink cần phải thực hiện thông qua việc chuyển khoản token LINK, trong khi LINK là hợp đồng ERC677 trên mạng Ethereum.
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 thông thường, 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ỉ đó.
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 đó, vì việc cung cấp dịch vụ yêu cầu thanh toán trước. Độ tin cậy của Máy Oracle có thể được đánh giá dựa trên nhiều yếu tố, chẳng hạn như hiệu suất lịch sử, hệ thống danh tiếng, v.v.
Khi Máy Oracle nhận được yêu cầu dịch vụ, nó sẽ thực hiện một loạt kiểm tra an toàn, bao gồm xác minh xem giao dịch có phải là token LINK hay không, kiểm tra độ dài dữ liệu có vượt quá giới hạn hay không, xác minh selector hàm, v.v. Sau khi kiểm tra, Máy Oracle sẽ phát ra sự kiện OracleRequest, sự kiện này chứa thông tin chi tiết về yêu cầu.
Sau khi nút bên ngoài phát hiện sự kiện OracleRequest, nó sẽ phân tích thông tin yêu cầu cụ thể, gọi API để lấy dữ liệu cần thiết, sau đó thông qua việc gửi giao dịch để gọi phương thức fulfillOracleRequest của hợp đồng Oracle, đưa dữ liệu lên chuỗi. Cuối cùng, hợp đồng Oracle sẽ gửi kết quả trở lại cho bên yêu cầu qua địa chỉ và hàm callback đã ghi lại trước đó.
Đối với các nhà phát triển, nếu chỉ cần sử dụng dữ liệu giá của các cặp tiền tệ hiện có, có thể gọi trực tiếp vào giao diện Price Feed mà chính thức cung cấp. Mỗi cặp giao dịch đều có Price Feed độc lập (còn được gọi là Aggregator), thực chất là hợp đồng AggregatorProxy. Bằng cách gọi phương thức latestRoundData(), bạn có thể nhận được dữ liệu giá mới nhất, trong đó tham số answer chính là giá mới nhất mà bạn cần.
Cần lưu ý rằng các cặp giao dịch tính bằng USD thường có độ chính xác giá thống nhất là 8 chữ số thập phân, điều này đơn giản hóa sự phức tạp trong việc xử lý độ chính xác 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.
25 thích
Phần thưởng
25
7
Đăng lại
Chia sẻ
Bình luận
0/400
nft_widow
· 08-12 01:17
Hy vọng Link coin có thể tiếp tục To da moon.
Xem bản gốcTrả lời0
PumpAnalyst
· 08-11 11:40
chơi đùa với mọi người không được thì cứ đợi bị chơi đùa
Xem bản gốcTrả lời0
DancingCandles
· 08-11 01:37
Quá sâu sắc rồi! Có thể nói đơn giản hơn không?
Xem bản gốcTrả lời0
HalfIsEmpty
· 08-11 01:37
Toàn khoá bán khống link của đồ ngốc đến hỗ trợ nào
Xem bản gốcTrả lời0
WenAirdrop
· 08-11 01:34
明牛啊 Link yyds
Trả lời0
0xLuckbox
· 08-11 01:27
Ngồi xuống, có ai hiểu Máy Oracle không sử dụng chain không?
Chainlink phân tích: Kiến trúc kỹ thuật và ứng dụng của Máy Oracle Blockchain
Phân tích công nghệ Máy Oracle: Lấy Chainlink làm ví dụ
Trong hệ sinh thái blockchain, Máy Oracle đóng vai trò là cầu nối giữa hợp đồng thông minh trên chuỗi và thế giới bên ngoài, đóng một vai trò cơ sở hạ tầng cực kỳ quan trọng. Chức năng chính của nó là cung cấp dữ liệu bên ngoài cho các 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 số 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 trực tiếp dữ liệu ngoài chuỗi, lúc này cần phải sử dụng Máy Oracle để thực hiện. Quá trình cụ thể là, hợp đồng thông minh trước tiên ghi thông tin cần thiết vào nhật ký sự kiện, sau đó quá trình bên ngoài lắng nghe và đăng ký nhật ký đó. Khi phát hiện yêu cầu, quá trình đó sẽ gọi các phương thức liên quan của hợp đồng thông qua việc gửi giao dịch trên chuỗi, tải dữ liệu số lượng giao dịch dầu thô vào ngày chỉ định lên 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 hệ sinh thái dựa trên động lực kinh tế xung quanh token LINK, cung cấp dữ liệu thế giới thực cho blockchain bằng cách an toàn nhất. Việc kích hoạt máy Oracle Chainlink cần phải thực hiện thông qua việc chuyển khoản token LINK, trong khi LINK là hợp đồng ERC677 trên mạng Ethereum.
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 thông thường, 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ỉ đó.
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 đó, vì việc cung cấp dịch vụ yêu cầu thanh toán trước. Độ tin cậy của Máy Oracle có thể được đánh giá dựa trên nhiều yếu tố, chẳng hạn như hiệu suất lịch sử, hệ thống danh tiếng, v.v.
Khi Máy Oracle nhận được yêu cầu dịch vụ, nó sẽ thực hiện một loạt kiểm tra an toàn, bao gồm xác minh xem giao dịch có phải là token LINK hay không, kiểm tra độ dài dữ liệu có vượt quá giới hạn hay không, xác minh selector hàm, v.v. Sau khi kiểm tra, Máy Oracle sẽ phát ra sự kiện OracleRequest, sự kiện này chứa thông tin chi tiết về yêu cầu.
Sau khi nút bên ngoài phát hiện sự kiện OracleRequest, nó sẽ phân tích thông tin yêu cầu cụ thể, gọi API để lấy dữ liệu cần thiết, sau đó thông qua việc gửi giao dịch để gọi phương thức fulfillOracleRequest của hợp đồng Oracle, đưa dữ liệu lên chuỗi. Cuối cùng, hợp đồng Oracle sẽ gửi kết quả trở lại cho bên yêu cầu qua địa chỉ và hàm callback đã ghi lại trước đó.
Đối với các nhà phát triển, nếu chỉ cần sử dụng dữ liệu giá của các cặp tiền tệ hiện có, có thể gọi trực tiếp vào giao diện Price Feed mà chính thức cung cấp. Mỗi cặp giao dịch đều có Price Feed độc lập (còn được gọi là Aggregator), thực chất là hợp đồng AggregatorProxy. Bằng cách gọi phương thức latestRoundData(), bạn có thể nhận được dữ liệu giá mới nhất, trong đó tham số answer chính là giá mới nhất mà bạn cần.
Cần lưu ý rằng các cặp giao dịch tính bằng USD thường có độ chính xác giá thống nhất là 8 chữ số thập phân, điều này đơn giản hóa sự phức tạp trong việc xử lý độ chính xác giữa các token khác nhau.