Bước đầu tiên trong hệ thống oracle là lấy dữ liệu cần thiết từ thế giới thực hoặc internet. Dữ liệu này có thể xuất phát từ giá trên sàn giao dịch, chỉ số thị trường tài chính, thông tin thời tiết, kết quả thể thao hoặc dữ liệu từ thiết bị IoT.
Trên thực tế, oracle thường thu thập dữ liệu từ nhiều nguồn thay vì chỉ dựa vào một nguồn duy nhất. Lý do là vì một nguồn dữ liệu đơn lẻ có thể bị sai lệch, chậm trễ hoặc bị thao túng. Nhờ việc lấy dữ liệu từ nhiều nguồn, hệ thống sẽ nâng cao độ tin cậy và giảm thiểu rủi ro.
Một số nguồn dữ liệu phổ biến bao gồm:
Việc thu thập dữ liệu thường do các node oracle đảm nhiệm. Các node này vận hành phần mềm chuyên dụng, liên tục giám sát các nguồn dữ liệu bên ngoài và chuyển thông tin mới nhất về mạng oracle để xử lý tiếp theo.
Nếu oracle chỉ đơn giản tải dữ liệu lên blockchain, hệ thống vẫn có nguy cơ gặp lỗi hoặc bị thao túng. Do đó, phần lớn các hệ thống oracle đều tiến hành xác thực và tổng hợp trước khi đưa dữ liệu lên chuỗi.
Quy trình này thường được thực hiện thông qua sự phối hợp của nhiều node. Mỗi node gửi dữ liệu mà mình thu thập được, sau đó hệ thống sẽ tổng hợp bằng các thuật toán như tính trung bình hoặc trung vị. Nhờ vậy, dù có node gửi dữ liệu sai lệch, kết quả cuối cùng vẫn không bị ảnh hưởng lớn.
Một số mạng oracle còn áp dụng các cơ chế bảo mật bổ sung như:
Nhờ các cơ chế này, hệ thống oracle có thể hạn chế rủi ro thao túng dữ liệu và nâng cao chất lượng dữ liệu tổng thể.
Sau xác thực và tổng hợp, các node oracle sẽ gửi kết quả cuối cùng lên blockchain và ghi vào hợp đồng thông minh cụ thể. Quy trình này thường được gọi là “price feed”.
Ở góc độ hợp đồng thông minh, dữ liệu oracle không đến trực tiếp từ thế giới bên ngoài mà được lưu trữ trong hợp đồng dữ liệu trên chuỗi. Các giao thức DeFi khác chỉ cần gọi giao diện hợp đồng này để lấy dữ liệu mới nhất.
Chẳng hạn, khi một giao thức cho vay xác định tài khoản có cần thanh lý hay không, quy trình logic sẽ gồm các bước:
Như vậy, oracle trở thành điểm đầu vào dữ liệu quan trọng cho các ứng dụng trên chuỗi, giúp hợp đồng thông minh thực thi tự động dựa trên thông tin thực tế.
Với các ứng dụng tài chính, tính kịp thời của dữ liệu đóng vai trò rất quan trọng. Nếu cập nhật giá quá chậm, có thể dẫn đến trễ thanh lý, tăng cơ hội arbitrage hoặc gây ra rủi ro hệ thống. Do đó, các hệ thống oracle thường triển khai các cơ chế cập nhật dữ liệu riêng biệt.
Từng kịch bản ứng dụng sẽ có yêu cầu khác nhau về tần suất cập nhật. Một số giao thức yêu cầu cập nhật giá gần như theo thời gian thực, trong khi các giao thức khác lại ưu tiên sự ổn định dữ liệu. Để cân bằng hiệu quả và chi phí, oracle thường áp dụng nhiều chiến lược cập nhật đồng thời.
Một số cơ chế phổ biến gồm:
Việc thiết kế các cơ chế này phải cân nhắc giữa chi phí mạng lưới, độ chính xác dữ liệu và biến động thị trường. Nếu cập nhật quá thường xuyên, chi phí giao dịch trên chuỗi sẽ tăng mạnh; nếu cập nhật quá chậm, giá có thể bị trễ nghiêm trọng.
Vì vậy, tìm được điểm cân bằng giữa hiệu quả, chi phí và bảo mật là thách thức lớn trong thiết kế hệ thống oracle.