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ò rất quan trọng, nó là cầu nối giữa 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 ngoài chuỗi cho các hợp đồng thông minh trên blockchain, giúp hợp đồng có thể lấy và xử lý thông tin từ thế giới thực.
Lấy một ví dụ, giả sử 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 về 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 ngoài chuỗi, lúc này cần có Máy Oracle để hỗ trợ. Hợp đồng sẽ ghi thông tin cần thiết vào nhật ký sự kiện, sau đó quy trình ngoài chuỗi sẽ lắng nghe nhật ký này. Khi phát hiện yêu cầu, quy trình này sẽ gọi các phương thức liên quan đến hợp đồng bằng cách gửi giao dịch trên chuỗi, truyền dữ liệu khối lượng giao dịch dầu thô của ngày được chỉ định vào hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, Chainlink chiếm thị phần lớn nhất. Chainlink là một mạng lưới Máy Oracle phi tập trung, nhằm cung cấp dữ liệu thế giới thực cho blockchain một cách an toàn và đáng tin cậy. Nó xây dựng một hệ sinh thái dựa trên động lực kinh tế xoay quanh mã thông báo LINK, dựa trên nguyên lý Máy Oracle cơ bản. 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 nhượng mã thông báo LINK, trong khi LINK là một loại mã thông báo ERC677 đặc biệt trên mạng lưới Ethereum.
Tiêu chuẩn ERC677 được Chainlink đề xuất để đáp ứng 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 gọi transferAndCall để chuyển tiền, ngoài việc hoàn thành chức năng chuyển tiền ERC20, nếu địa chỉ nhận là địa chỉ hợp đồng, nó cũng sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trong thiết kế của Chainlink, phương thức onTokenTransfer của hợp đồng Oracle sẽ đầu tiên xác minh xem giao dịch có phải là mã thông báo LINK hay không, sau đó kiểm tra tính hợp lệ của dữ liệu yêu cầu. Sau một loạt các kiểm tra an toàn, hợp đồng sẽ phát ra một sự kiện OracleRequest, sự kiện này chứa các dữ liệu chi tiết về yêu cầu.
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 dữ liệu trong sự kiện, gọi API để lấy thông tin cần thiết, sau đó bằng cách nộp giao dịch, gọi phương thức fulfillOracleRequest của hợp đồng máy Oracle, gửi dữ liệu lên chuỗi. Phương thức này sẽ trả kết quả về cho hợp đồng yêu cầu sau khi thực hiện một loạt các xác minh 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ỉ cần lấy dữ liệu giá của các cặp tiền tệ hiện có, họ có thể trực tiếp sử dụng giao diện Price Feed do Chainlink cung cấp. Mỗi cặp giao dịch có một Price Feed riêng (còn được gọi là Aggregator), thực tế là một hợp đồng AggregatorProxy. Những giao diện này cung cấp một số phương thức truy vấn quan trọng, bao gồm lấy độ chính xác giá, mô tả cặp giao dịch, thông tin phiên bản, cũng như lấy dữ liệu giá lịch sử và giá mới nhất theo ID vòng.
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. Gọi phương thức latestRoundData() để lấy dữ liệu giá mới nhất, trong đó tham số answer chính là giá mới nhất. Đáng lưu ý là, hầu hết các cặp giao dịch được định giá bằng đô la Mỹ có độ chính xác giá chung là 8 chữ số thập phân, đ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.
Bằng cách này, Chainlink cung cấp một giải pháp Máy Oracle mạnh mẽ và linh hoạt cho thế giới blockchain, cho phép các hợp đồng thông minh có thể an toàn, đáng tin cậy lấy và sử dụng dữ liệu bên ngoài.
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.
10 thích
Phần thưởng
10
7
Chia sẻ
Bình luận
0/400
quiet_lurker
· 2giờ trước
chainlink gần đây vẫn ổn chứ?
Xem bản gốcTrả lời0
Blockwatcher9000
· 07-29 21:58
Nhìn vào link rất bình thường nha
Xem bản gốcTrả lời0
SchroedingerMiner
· 07-29 21:58
Đây chẳng phải là trạm thu phí cầu sao?
Xem bản gốcTrả lời0
metaverse_hermit
· 07-29 21:55
link thiên hạ đệ nhất!
Xem bản gốcTrả lời0
GateUser-9ad11037
· 07-29 21:53
Hệ sinh thái link gần đây rất mạnh mẽ.
Xem bản gốcTrả lời0
HypotheticalLiquidator
· 07-29 21:52
Máy Oracle cũng tồn tại nguy cơ kiểm soát dữ liệu. Ai sẽ là người đầu tiên nổ tung trong đợt bán phá giá lớn này?
Chainlink Máy Oracle: hợp đồng thông minh kết nối thế giới thực.
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ò rất quan trọng, nó là cầu nối giữa 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 ngoài chuỗi cho các hợp đồng thông minh trên blockchain, giúp hợp đồng có thể lấy và xử lý thông tin từ thế giới thực.
Lấy một ví dụ, giả sử 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 về 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 ngoài chuỗi, lúc này cần có Máy Oracle để hỗ trợ. Hợp đồng sẽ ghi thông tin cần thiết vào nhật ký sự kiện, sau đó quy trình ngoài chuỗi sẽ lắng nghe nhật ký này. Khi phát hiện yêu cầu, quy trình này sẽ gọi các phương thức liên quan đến hợp đồng bằng cách gửi giao dịch trên chuỗi, truyền dữ liệu khối lượng giao dịch dầu thô của ngày được chỉ định vào hợp đồng thông minh.
Trong số nhiều dự án Máy Oracle, Chainlink chiếm thị phần lớn nhất. Chainlink là một mạng lưới Máy Oracle phi tập trung, nhằm cung cấp dữ liệu thế giới thực cho blockchain một cách an toàn và đáng tin cậy. Nó xây dựng một hệ sinh thái dựa trên động lực kinh tế xoay quanh mã thông báo LINK, dựa trên nguyên lý Máy Oracle cơ bản. 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 nhượng mã thông báo LINK, trong khi LINK là một loại mã thông báo ERC677 đặc biệt trên mạng lưới Ethereum.
Tiêu chuẩn ERC677 được Chainlink đề xuất để đáp ứng 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 gọi transferAndCall để chuyển tiền, ngoài việc hoàn thành chức năng chuyển tiền ERC20, nếu địa chỉ nhận là địa chỉ hợp đồng, nó cũng sẽ gọi phương thức onTokenTransfer của địa chỉ đó.
Trong thiết kế của Chainlink, phương thức onTokenTransfer của hợp đồng Oracle sẽ đầu tiên xác minh xem giao dịch có phải là mã thông báo LINK hay không, sau đó kiểm tra tính hợp lệ của dữ liệu yêu cầu. Sau một loạt các kiểm tra an toàn, hợp đồng sẽ phát ra một sự kiện OracleRequest, sự kiện này chứa các dữ liệu chi tiết về yêu cầu.
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 dữ liệu trong sự kiện, gọi API để lấy thông tin cần thiết, sau đó bằng cách nộp giao dịch, gọi phương thức fulfillOracleRequest của hợp đồng máy Oracle, gửi dữ liệu lên chuỗi. Phương thức này sẽ trả kết quả về cho hợp đồng yêu cầu sau khi thực hiện một loạt các xác minh 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ỉ cần lấy dữ liệu giá của các cặp tiền tệ hiện có, họ có thể trực tiếp sử dụng giao diện Price Feed do Chainlink cung cấp. Mỗi cặp giao dịch có một Price Feed riêng (còn được gọi là Aggregator), thực tế là một hợp đồng AggregatorProxy. Những giao diện này cung cấp một số phương thức truy vấn quan trọng, bao gồm lấy độ chính xác giá, mô tả cặp giao dịch, thông tin phiên bản, cũng như lấy dữ liệu giá lịch sử và giá mới nhất theo ID vòng.
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. Gọi phương thức latestRoundData() để lấy dữ liệu giá mới nhất, trong đó tham số answer chính là giá mới nhất. Đáng lưu ý là, hầu hết các cặp giao dịch được định giá bằng đô la Mỹ có độ chính xác giá chung là 8 chữ số thập phân, đ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.
Bằng cách này, Chainlink cung cấp một giải pháp Máy Oracle mạnh mẽ và linh hoạt cho thế giới blockchain, cho phép các hợp đồng thông minh có thể an toàn, đáng tin cậy lấy và sử dụng dữ liệu bên ngoài.