Để tránh điểm lỗi đơn, một dự án Máy Oracle nổi tiếng đã áp dụng thiết kế phân tán để cung cấp dịch vụ cho người dùng. Lấy ví dụ về việc cung cấp giá BTC đô la Mỹ, dịch vụ này tổng hợp 31 Máy Oracle giá độc lập.
Cách triển khai cụ thể của bộ tổng hợp này có thể được xem qua mã nguồn hợp đồng thông minh của nó. Bằng cách gọi các phương thức cụ thể trong hợp đồng, có thể lấy được tất cả thông tin về Máy Oracle ngoại tuyến mà bộ tổng hợp này chứa.
Mỗi máy Oracle ngoài chuỗi có thể cung cấp dữ liệu giá bằng cách gọi các phương thức được chỉ định để đáp ứng yêu cầu của người dùng trong bộ tổng hợp. Những máy Oracle này thường là một số tài khoản bên ngoài sở hữu (EOA), không chỉ có thể cung cấp dữ liệu cho bộ tổng hợp BTC/USD mà còn có thể cung cấp dịch vụ cho các cặp giá khác ( như ETH/USD).
Quy trình xử lý hợp đồng trên chuỗi đại khái như sau:
Đầu tiên, đọc trạng thái hợp đồng hiện tại và thực hiện một loạt kiểm tra tuân thủ.
Sau khi kiểm tra được thông qua, tiến hành công việc chuẩn bị cần thiết.
Sau đó, xác minh dữ liệu chữ ký cho mỗi chữ ký, đảm bảo rằng người ký có quyền phù hợp và chữ ký không bị sử dụng lại.
Cuối cùng, kiểm tra thứ tự của các giá trị quan sát, chọn giá trị trung vị làm kết quả và đảm bảo nó không vượt quá ngưỡng đã được thiết lập. Sau khi tất cả các xác minh được thông qua, ghi lại kết quả vào lưu trữ hợp đồng.
Ngoài ra, còn sẽ tiến hành xác minh thêm kết quả. Ví dụ, một số ứng dụng có thể so sánh kết quả với các nguồn khác ( như giá từ sàn giao dịch phi tập trung ) để đảm bảo độ lệch nằm trong khoảng chấp nhận được.
Lợi ích của Feed Registry
Để đơn giản hóa quy trình sử dụng hơn nữa, một số dự án Máy Oracle còn cung cấp chức năng Feed Registry. Điều này có thể được coi là một bộ tổng hợp nhiều nguồn cấp giá, người dùng không cần phải thiết lập từng nguồn giá cho mỗi token mà có thể trực tiếp đọc dữ liệu giá cần thiết thông qua Feed Registry.
Cơ chế tổng hợp dữ liệu đa tầng
Các máy Oracle giá chất lượng cao thường sử dụng cơ chế tổng hợp dữ liệu đa lớp, chủ yếu bao gồm ba cấp độ: tổng hợp nguồn dữ liệu, tổng hợp nhà điều hành nút và tổng hợp mạng máy Oracle.
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 tập trung và phi tập trung, và được xử lý sơ bộ bởi các nhà cung cấp dịch vụ dữ liệu chuyên nghiệp.
Tập hợp nhà điều hành nút: Mỗi nhà điều hành nút độc lập lấy giá từ nhiều nhà cung cấp dịch vụ dữ liệu và tính toán giá trị trung bình để loại bỏ các giá trị bất thường.
Tập hợp mạng Máy Oracle: Tập hợp ở cấp độ mạng toàn bộ, thường sử dụng phương pháp lấy giá trị trung bình sau khi đạt được số lượng nút đã định.
Cần lưu ý rằng không phải mỗi lần cập nhật dữ liệu đều được đồng bộ ngay lập tức lên chuỗi. Thông thường sẽ thiết lập hai điều kiện kích hoạt là ngưỡng sai lệch và ngưỡng nhịp tim, chỉ khi thỏa mãn một trong hai điều kiện này thì dữ liệu trên chuỗi mới được cập nhật. Cơ chế này đảm bảo độ tin cậy của dữ liệu nhưng cũng có thể dẫn đến việc cập nhật giá tương đối chậm, do đó chủ yếu phù hợp với các tình huống ứng dụng không yêu cầu cao về tính thời gian của giá.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Máy Oracle phân tán làm thế nào để đảm bảo tính đáng tin cậy của dữ liệu giá
Nguyên lý hoạt động của Máy Oracle giá phân phối
Để tránh điểm lỗi đơn, một dự án Máy Oracle nổi tiếng đã áp dụng thiết kế phân tán để cung cấp dịch vụ cho người dùng. Lấy ví dụ về việc cung cấp giá BTC đô la Mỹ, dịch vụ này tổng hợp 31 Máy Oracle giá độc lập.
Cách triển khai cụ thể của bộ tổng hợp này có thể được xem qua mã nguồn hợp đồng thông minh của nó. Bằng cách gọi các phương thức cụ thể trong hợp đồng, có thể lấy được tất cả thông tin về Máy Oracle ngoại tuyến mà bộ tổng hợp này chứa.
Mỗi máy Oracle ngoài chuỗi có thể cung cấp dữ liệu giá bằng cách gọi các phương thức được chỉ định để đáp ứng yêu cầu của người dùng trong bộ tổng hợp. Những máy Oracle này thường là một số tài khoản bên ngoài sở hữu (EOA), không chỉ có thể cung cấp dữ liệu cho bộ tổng hợp BTC/USD mà còn có thể cung cấp dịch vụ cho các cặp giá khác ( như ETH/USD).
Quy trình xử lý hợp đồng trên chuỗi đại khái như sau:
Đầu tiên, đọc trạng thái hợp đồng hiện tại và thực hiện một loạt kiểm tra tuân thủ.
Sau khi kiểm tra được thông qua, tiến hành công việc chuẩn bị cần thiết.
Sau đó, xác minh dữ liệu chữ ký cho mỗi chữ ký, đảm bảo rằng người ký có quyền phù hợp và chữ ký không bị sử dụng lại.
Cuối cùng, kiểm tra thứ tự của các giá trị quan sát, chọn giá trị trung vị làm kết quả và đảm bảo nó không vượt quá ngưỡng đã được thiết lập. Sau khi tất cả các xác minh được thông qua, ghi lại kết quả vào lưu trữ hợp đồng.
Ngoài ra, còn sẽ tiến hành xác minh thêm kết quả. Ví dụ, một số ứng dụng có thể so sánh kết quả với các nguồn khác ( như giá từ sàn giao dịch phi tập trung ) để đảm bảo độ lệch nằm trong khoảng chấp nhận được.
Lợi ích của Feed Registry
Để đơn giản hóa quy trình sử dụng hơn nữa, một số dự án Máy Oracle còn cung cấp chức năng Feed Registry. Điều này có thể được coi là một bộ tổng hợp nhiều nguồn cấp giá, người dùng không cần phải thiết lập từng nguồn giá cho mỗi token mà có thể trực tiếp đọc dữ liệu giá cần thiết thông qua Feed Registry.
Cơ chế tổng hợp dữ liệu đa tầng
Các máy Oracle giá chất lượng cao thường sử dụng cơ chế tổng hợp dữ liệu đa lớp, chủ yếu bao gồm ba cấp độ: tổng hợp nguồn dữ liệu, tổng hợp nhà điều hành nút và tổng hợp mạng máy Oracle.
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 tập trung và phi tập trung, và được xử lý sơ bộ bởi các nhà cung cấp dịch vụ dữ liệu chuyên nghiệp.
Tập hợp nhà điều hành nút: Mỗi nhà điều hành nút độc lập lấy giá từ nhiều nhà cung cấp dịch vụ dữ liệu và tính toán giá trị trung bình để loại bỏ các giá trị bất thường.
Tập hợp mạng Máy Oracle: Tập hợp ở cấp độ mạng toàn bộ, thường sử dụng phương pháp lấy giá trị trung bình sau khi đạt được số lượng nút đã định.
Cần lưu ý rằng không phải mỗi lần cập nhật dữ liệu đều được đồng bộ ngay lập tức lên chuỗi. Thông thường sẽ thiết lập hai điều kiện kích hoạt là ngưỡng sai lệch và ngưỡng nhịp tim, chỉ khi thỏa mãn một trong hai điều kiện này thì dữ liệu trên chuỗi mới được cập nhật. Cơ chế này đảm bảo độ tin cậy của dữ liệu nhưng cũng có thể dẫn đến việc cập nhật giá tương đối chậm, do đó chủ yếu phù hợp với các tình huống ứng dụng không yêu cầu cao về tính thời gian của giá.