Trong thế giới blockchain, để hợp đồng thông minh truy cập dữ liệu thực tế, máy oracle là điều không thể thiếu. Thực ra, đây là phần nhiều người đánh giá thấp.



Hợp đồng thông minh rất mạnh khi làm việc với dữ liệu bên trong blockchain, nhưng hoàn toàn không thể truy cập thông tin từ thế giới bên ngoài. Ví dụ, nếu muốn phản ánh khối lượng giao dịch dầu thô hôm nay vào hợp đồng, thì thông tin đó nằm ngoài chuỗi, cần một trung gian nào đó. Đó chính là vai trò của máy oracle.

Cơ chế của máy oracle thực ra đơn giản theo phương thức yêu cầu và phản hồi. Hợp đồng thông minh gửi yêu cầu "Xin dữ liệu này" ra bên ngoài, và oracle sẽ nhận lấy, lấy dữ liệu thế giới thực về rồi trả lại chuỗi. Chuỗi các bước này chính là hoạt động cơ bản của máy oracle.

Trong ngành blockchain, dự án chiếm thị phần lớn nhất là Chainlink. Chainlink là một máy oracle phân tán, chuyên cung cấp dữ liệu thế giới thực vào blockchain một cách an toàn nhất. Với token LINK làm trung tâm, hệ sinh thái được xây dựng dựa trên thiết kế khuyến khích.

Để vận hành máy oracle của Chainlink, cần chuyển LINK. Token này được thực thi theo tiêu chuẩn ERC677 trên mạng Ethereum. Đây là điểm quan trọng. Trong tiêu chuẩn ERC20 thông thường, không thể thực hiện thanh toán và yêu cầu dịch vụ cùng lúc. Vì vậy, Chainlink đã đề xuất tiêu chuẩn riêng ERC677.

Phương thức cốt lõi của ERC677 là "transferAndCall". Nhờ đó, chuyển token và yêu cầu dịch vụ có thể hoàn tất trong một giao dịch duy nhất. Khi người dùng thực thi transferAndCall, ngoài việc chuyển ERC20, địa chỉ nhận sẽ tự động gọi phương thức onTokenTransfer.

Khi máy oracle nhận yêu cầu, đầu tiên sẽ thực hiện nhiều kiểm tra bảo mật. Xác minh xem nguồn gửi có thực sự là hợp đồng LINK, kích thước dữ liệu có phù hợp không, hàm chọn đúng không. Sau khi vượt qua các kiểm tra này, một requestId duy nhất sẽ được tạo ra và ghi vào nhật ký sự kiện.

Sự kiện này sẽ được các nút ngoài chuỗi theo dõi. Các nút sẽ đọc thông tin từ sự kiện, lấy dữ liệu thực qua API mạng, rồi gọi phương thức fulfillOracleRequest để trả dữ liệu về chuỗi. Chu trình này chính là vòng đời hoàn chỉnh của máy oracle.

Về mặt thực thi, Chainlink cung cấp các feed giá của các cặp giao dịch đã có, gọi là Aggregator. Nhờ đó, nhà phát triển không cần tự chỉ định API. Các cặp chính như ETH/USD đã có sẵn, chỉ cần gọi phương thức latestRoundData() để lấy giá mới nhất.

Trong hầu hết các ứng dụng, chỉ cần đọc dữ liệu giá mới nhất là đủ. Đặc biệt khi xử lý giá tính theo USD, độ chính xác đã được đặt cố định ở 8 chữ số, nên không cần xử lý phức tạp. Nói cách khác, việc triển khai feed giá bằng máy oracle khá đơn giản hơn bạn nghĩ.

Hệ thống này chính là nền tảng để các giao thức DeFi và các sản phẩm tài chính phức tạp hoạt động. Không có máy oracle, không thể kết nối blockchain với thế giới thực. Trên Gate.io cũng có thể thấy các dự án sử dụng oracle, nếu quan tâm, bạn nên xem qua.
ETH-0,79%
Xem bản gốc
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.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim