Thiết kế và triển khai hệ thống Máy Oracle giá phân tán
Dịch vụ Máy Oracle đang phải đối mặt với nhiều rủi ro tiềm ẩn, có thể dẫn đến độ trễ phản hồi hoặc điểm lỗi đơn. Để giải quyết vấn đề này, một số dự án đã áp dụng kiến trúc Máy Oracle giá phân tán để cung cấp dịch vụ đáng tin cậy hơn. Lấy dịch vụ giá BTC/USD làm ví dụ, một hệ thống đã tích hợp 31 Máy Oracle giá độc lập để cung cấp dữ liệu cho người dùng.
Hợp đồng thông minh của bộ tổng hợp này có thể được xem trên trình duyệt blockchain. Bằng cách gọi các phương thức cụ thể trong hợp đồng, người dùng có thể lấy thông tin về tất cả các Máy Oracle ngoại tuyến mà bộ tổng hợp này chứa. Mỗi Máy Oracle ngoại tuyến có thể cung cấp dữ liệu giá bằng cách gọi phương thức tương ứng để đáp ứng yêu cầu của người dùng trong bộ tổng hợp. Những Máy Oracle ngoại tuyến này thường là các tài khoản sở hữu bên ngoài (EOA), không chỉ cung cấp dữ liệu cho bộ tổng hợp BTC/USD mà còn có thể phục vụ cho các bộ tổng hợp khác như ETH/USD.
Quy trình xử lý hợp đồng trên chuỗi bao gồm các bước chính sau đây:
Đọc trạng thái hợp đồng hiện tại và thực hiện một loạt kiểm tra.
Thực hiện các công việc chuẩn bị cần thiết.
Sử dụng phương pháp mật mã để xác minh từng dữ liệu chữ ký, đảm bảo tính xác thực và toàn vẹn của dữ liệu.
Sắp xếp các giá trị quan sát, chọn số trung vị và đảm bảo rằng nó không vượt quá ngưỡng đã đặt.
Ghi lại câu trả lời của Máy Oracle lần này và tiến hành xác minh thêm.
Trong một số ứng dụng, còn có thể thực hiện xác minh bổ sung bằng cách so sánh sự chênh lệch giá giữa các Máy Oracle khác nhau. Phương pháp này có thể giảm hiệu quả rủi ro có thể xảy ra từ một nguồn dữ liệu duy nhất.
Để đơn giản hóa quy trình sử dụng và tăng cường tính linh hoạt, một số hệ thống đã giới thiệu khái niệm Feed Registry. Nó có thể được hiểu như là một bộ tổng hợp PriceFeeds, đã tích hợp nhiều giá feed khác nhau. Sử dụng Feed Registry, các nhà phát triển không cần phải tự thiết lập priceFeed cho từng token, mà có thể trực tiếp đọc dữ liệu giá thông qua giao diện thống nhất.
Cơ chế cung cấp giá của Máy Oracle thường liên quan đến việc tập hợp dữ liệu đa tầng:
Tập hợp nguồn dữ liệu: Thu thập dữ liệu giá gốc từ các nền tảng giao dịch lớn và sàn giao dịch phi tập trung.
Tập hợp nhà điều hành nút: Mỗi nút nhận giá từ nhiều nhà cung cấp dịch vụ tập hợp dữ liệu độc lập và tiến hành xử lý.
Tập hợp mạng Máy Oracle: Toàn bộ mạng thực hiện tập hợp dữ liệu nút cuối cùng, cách phổ biến là lấy giá trị trung bình.
Cần lưu ý rằng không phải mọi lần cập nhật dữ liệu đều được phản ánh ngay lập tức trên chuỗi. Thông thường cần phải đáp ứng các điều kiện cụ thể, chẳng hạn như ngưỡng sai lệch hoặc ngưỡng nhịp tim, thì mới kích hoạt cập nhật trên chuỗi. Cơ chế này mặc dù nâng cao tính ổn định của hệ thống, nhưng cũng có thể dẫn đến việc cập nhật giá chậm hơn, khoảng thời gian cập nhật có thể từ vài phút đến 24 giờ. Do đó, hệ thống Máy Oracle này chủ yếu phù hợp với các tình huống ứng dụng không nhạy cảm với cập nhật giá.
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.
Máy Oracle giá phân phối: thiết kế, triển khai và phân tích trường hợp ứng dụng
Thiết kế và triển khai hệ thống Máy Oracle giá phân tán
Dịch vụ Máy Oracle đang phải đối mặt với nhiều rủi ro tiềm ẩn, có thể dẫn đến độ trễ phản hồi hoặc điểm lỗi đơn. Để giải quyết vấn đề này, một số dự án đã áp dụng kiến trúc Máy Oracle giá phân tán để cung cấp dịch vụ đáng tin cậy hơn. Lấy dịch vụ giá BTC/USD làm ví dụ, một hệ thống đã tích hợp 31 Máy Oracle giá độc lập để cung cấp dữ liệu cho người dùng.
Hợp đồng thông minh của bộ tổng hợp này có thể được xem trên trình duyệt blockchain. Bằng cách gọi các phương thức cụ thể trong hợp đồng, người dùng có thể lấy thông tin về tất cả các Máy Oracle ngoại tuyến mà bộ tổng hợp này chứa. Mỗi Máy Oracle ngoại tuyến có thể cung cấp dữ liệu giá bằng cách gọi phương thức tương ứng để đáp ứng yêu cầu của người dùng trong bộ tổng hợp. Những Máy Oracle ngoại tuyến này thường là các tài khoản sở hữu bên ngoài (EOA), không chỉ cung cấp dữ liệu cho bộ tổng hợp BTC/USD mà còn có thể phục vụ cho các bộ tổng hợp khác như ETH/USD.
Quy trình xử lý hợp đồng trên chuỗi bao gồm các bước chính sau đây:
Trong một số ứng dụng, còn có thể thực hiện xác minh bổ sung bằng cách so sánh sự chênh lệch giá giữa các Máy Oracle khác nhau. Phương pháp này có thể giảm hiệu quả rủi ro có thể xảy ra từ một nguồn dữ liệu duy nhất.
Để đơn giản hóa quy trình sử dụng và tăng cường tính linh hoạt, một số hệ thống đã giới thiệu khái niệm Feed Registry. Nó có thể được hiểu như là một bộ tổng hợp PriceFeeds, đã tích hợp nhiều giá feed khác nhau. Sử dụng Feed Registry, các nhà phát triển không cần phải tự thiết lập priceFeed cho từng token, mà có thể trực tiếp đọc dữ liệu giá thông qua giao diện thống nhất.
Cơ chế cung cấp giá của Máy Oracle thường liên quan đến việc tập hợp dữ liệu đa tầng:
Cần lưu ý rằng không phải mọi lần cập nhật dữ liệu đều được phản ánh ngay lập tức trên chuỗi. Thông thường cần phải đáp ứng các điều kiện cụ thể, chẳng hạn như ngưỡng sai lệch hoặc ngưỡng nhịp tim, thì mới kích hoạt cập nhật trên chuỗi. Cơ chế này mặc dù nâng cao tính ổn định của hệ thống, nhưng cũng có thể dẫn đến việc cập nhật giá chậm hơn, khoảng thời gian cập nhật có thể từ vài phút đến 24 giờ. Do đó, hệ thống Máy Oracle này chủ yếu phù hợp với các tình huống ứng dụng không nhạy cảm với cập nhật giá.