Để tránh sự cố đơn điểm và nâng cao độ tin cậy, hệ thống máy Oracle giá cả hiện đại áp dụng thiết kế phân tán. Lấy một dịch vụ máy Oracle nổi tiếng làm ví dụ, dữ liệu giá BTC/USD được tổng hợp từ đầu vào của 31 nút máy Oracle độc lập.
Hợp đồng thông minh của bộ tổng hợp này có thể được xem công khai trên trình duyệt blockchain Ethereum. Bằng cách gọi phương thức transmitters trong hợp đồng, người dùng có thể lấy danh sách tất cả các nút máy Oracle ngoại tuyến mà bộ tổng hợp này chứa.
Mỗi nút Máy Oracle ngoài chuỗi có thể cung cấp dữ liệu giá cho bộ tổng hợp bằng cách gọi phương thức transmit để phản hồi yêu cầu của người dùng. Những nút này thường là tài khoản thuộc sở hữu bên ngoài (EOA), có thể cung cấp dữ liệu cho nhiều cặp giá khác nhau ( như BTC/USD, ETH/USD, v.v. ).
Hợp đồng tập hợp trên chuỗi khi nhận được dữ liệu từ nút Máy Oracle, sẽ thực hiện một loạt các bước xác minh:
Đầu tiên, đọc trạng thái hợp đồng hiện tại và thực hiện kiểm tra cơ bản.
Sau đó thực hiện công việc chuẩn bị cần thiết.
Sử dụng ecrecover() để xác minh dữ liệu chữ ký, đảm bảo giá trị hash nhất quán với _report. Đồng thời kiểm tra vai trò của người ký có phải là Signer hay không và ngăn chặn việc ký lại.
Cuối cùng, xác nhận xem các quan sát có được sắp xếp theo thứ tự hay không, chọn trung vị làm kết quả cuối cùng và đảm bảo kết quả nằm trong phạm vi ngưỡng đã thiết lập.
Sau khi tất cả các kiểm tra được thông qua, hợp đồng sẽ ghi lại câu trả lời của Máy Oracle trong s_transmissions. Ngoài ra, câu trả lời cũng sẽ được xác minh thêm, chẳng hạn như so sánh với các nguồn giá khác ( như giá của một DEX ) để đảm bảo độ lệch nằm trong phạm vi chấp nhận được.
Quy trình kết nối đơn giản hóa Feed Registry
Để đơn giản hóa thêm quy trình kết nối và giảm chi phí quản trị, một số dịch vụ Máy Oracle đã cung cấp Feed Registry. Điều này có thể hiểu là một bộ tổng hợp PriceFeeds, đã tích hợp nhiều nguồn giá khác nhau của các tài sản khác nhau. Sử dụng Feed Registry, các nhà phát triển không cần phải thiết lập priceFeed riêng cho mỗi tài sản, mà có thể trực tiếp đọc dữ liệu giá của các tài sản khác nhau thông qua một giao diện thống nhất.
Cơ chế tổng hợp dữ liệu đa cấp
Dịch vụ giá Máy Oracle chất lượng cao thường sử dụng cơ chế tổng hợp dữ liệu đa cấ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: Dữ liệu giá gốc đến từ nhiều nền tảng giao dịch tập trung và phi tập trung. Các nhà cung cấp dịch vụ tập hợp dữ liệu chuyên nghiệp sẽ thu thập những dữ liệu gốc này và thực hiện tính toán trọng số dựa trên khối lượng giao dịch, tính thanh khoản và các yếu tố khác để hình thành kết quả tập hợp ban đầu.
Tập hợp các nhà điều hành nút: Mỗi nhà điều hành nút Máy Oracle sẽ lấy dữ liệu giá từ nhiều nhà cung cấp dịch vụ tập hợp độc lập, chọn giá trị trung bình và loại bỏ các giá trị bất thường, tạo ra báo giá của nút đó.
Tập hợp mạng Máy Oracle: Toàn bộ mạng sẽ tập hợp lại dữ liệu từ tất cả các nút, phương pháp thường dùng là lấy giá trị trung bình sau khi nhận được một số lượng phản hồi nút đã được thiết lập.
Cuối cùng, khi giá được cập nhật lên chuỗi, nó cũng cần phải đáp ứng các điều kiện như ngưỡng sai lệch hoặc ngưỡng nhịp tim. Cơ chế tổng hợp nhiều cấp độ này đã nâng cao đáng kể độ chính xác và độ tin cậy của dữ liệu.
Tuy nhiên, do có cơ chế ngưỡng sai lệch, việc cập nhật giá của một số Máy Oracle có thể tương đối chậm, từ vài phút đến vài giờ. Điều này khiến chúng phù hợp hơn cho các tình huống ứng dụng không quá nhạy cảm với việc cập nhật giá, và có thể không phù hợp với tất cả các loại ứng dụng phi tập trung. Các nhà phát triển cần cân nhắc ưu điểm và hạn chế của dịch vụ Máy Oracle khi chọn lựa, và đưa ra quyết định dựa trên nhu cầu ứng dụng cụ thể.
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.
6 thích
Phần thưởng
6
5
Chia sẻ
Bình luận
0/400
AirdropGrandpa
· 15giờ trước
Ai là người định giá thực sự?
Xem bản gốcTrả lời0
GateUser-a606bf0c
· 15giờ trước
Dữ liệu Máy Oracle đáng tin cậy mới là cốt lõi
Xem bản gốcTrả lời0
MetaverseVagabond
· 15giờ trước
Đã chơi Máy Oracle từ lâu rồi, các bạn mới thấy.
Xem bản gốcTrả lời0
ForkTongue
· 15giờ trước
Không phải chứ, dữ liệu còn phải làm tổng hợp sao?
Phân tích Máy Oracle phân tán: Cách nhiều hợp nhất đảm bảo tính chính xác của dữ liệu giá trên chuỗi
Cơ chế hoạt động của Máy Oracle giá phân tán
Để tránh sự cố đơn điểm và nâng cao độ tin cậy, hệ thống máy Oracle giá cả hiện đại áp dụng thiết kế phân tán. Lấy một dịch vụ máy Oracle nổi tiếng làm ví dụ, dữ liệu giá BTC/USD được tổng hợp từ đầu vào của 31 nút máy Oracle độc lập.
Hợp đồng thông minh của bộ tổng hợp này có thể được xem công khai trên trình duyệt blockchain Ethereum. Bằng cách gọi phương thức transmitters trong hợp đồng, người dùng có thể lấy danh sách tất cả các nút máy Oracle ngoại tuyến mà bộ tổng hợp này chứa.
Mỗi nút Máy Oracle ngoài chuỗi có thể cung cấp dữ liệu giá cho bộ tổng hợp bằng cách gọi phương thức transmit để phản hồi yêu cầu của người dùng. Những nút này thường là tài khoản thuộc sở hữu bên ngoài (EOA), có thể cung cấp dữ liệu cho nhiều cặp giá khác nhau ( như BTC/USD, ETH/USD, v.v. ).
Hợp đồng tập hợp trên chuỗi khi nhận được dữ liệu từ nút Máy Oracle, sẽ thực hiện một loạt các bước xác minh:
Đầu tiên, đọc trạng thái hợp đồng hiện tại và thực hiện kiểm tra cơ bản.
Sau đó thực hiện công việc chuẩn bị cần thiết.
Sử dụng ecrecover() để xác minh dữ liệu chữ ký, đảm bảo giá trị hash nhất quán với _report. Đồng thời kiểm tra vai trò của người ký có phải là Signer hay không và ngăn chặn việc ký lại.
Cuối cùng, xác nhận xem các quan sát có được sắp xếp theo thứ tự hay không, chọn trung vị làm kết quả cuối cùng và đảm bảo kết quả nằm trong phạm vi ngưỡng đã thiết lập.
Sau khi tất cả các kiểm tra được thông qua, hợp đồng sẽ ghi lại câu trả lời của Máy Oracle trong s_transmissions. Ngoài ra, câu trả lời cũng sẽ được xác minh thêm, chẳng hạn như so sánh với các nguồn giá khác ( như giá của một DEX ) để đảm bảo độ lệch nằm trong phạm vi chấp nhận được.
Quy trình kết nối đơn giản hóa Feed Registry
Để đơn giản hóa thêm quy trình kết nối và giảm chi phí quản trị, một số dịch vụ Máy Oracle đã cung cấp Feed Registry. Điều này có thể hiểu là một bộ tổng hợp PriceFeeds, đã tích hợp nhiều nguồn giá khác nhau của các tài sản khác nhau. Sử dụng Feed Registry, các nhà phát triển không cần phải thiết lập priceFeed riêng cho mỗi tài sản, mà có thể trực tiếp đọc dữ liệu giá của các tài sản khác nhau thông qua một giao diện thống nhất.
Cơ chế tổng hợp dữ liệu đa cấp
Dịch vụ giá Máy Oracle chất lượng cao thường sử dụng cơ chế tổng hợp dữ liệu đa cấ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: Dữ liệu giá gốc đến từ nhiều nền tảng giao dịch tập trung và phi tập trung. Các nhà cung cấp dịch vụ tập hợp dữ liệu chuyên nghiệp sẽ thu thập những dữ liệu gốc này và thực hiện tính toán trọng số dựa trên khối lượng giao dịch, tính thanh khoản và các yếu tố khác để hình thành kết quả tập hợp ban đầu.
Tập hợp các nhà điều hành nút: Mỗi nhà điều hành nút Máy Oracle sẽ lấy dữ liệu giá từ nhiều nhà cung cấp dịch vụ tập hợp độc lập, chọn giá trị trung bình và loại bỏ các giá trị bất thường, tạo ra báo giá của nút đó.
Tập hợp mạng Máy Oracle: Toàn bộ mạng sẽ tập hợp lại dữ liệu từ tất cả các nút, phương pháp thường dùng là lấy giá trị trung bình sau khi nhận được một số lượng phản hồi nút đã được thiết lập.
Cuối cùng, khi giá được cập nhật lên chuỗi, nó cũng cần phải đáp ứng các điều kiện như ngưỡng sai lệch hoặc ngưỡng nhịp tim. Cơ chế tổng hợp nhiều cấp độ này đã nâng cao đáng kể độ chính xác và độ tin cậy của dữ liệu.
Tuy nhiên, do có cơ chế ngưỡng sai lệch, việc cập nhật giá của một số Máy Oracle có thể tương đối chậm, từ vài phút đến vài giờ. Điều này khiến chúng phù hợp hơn cho các tình huống ứng dụng không quá nhạy cảm với việc cập nhật giá, và có thể không phù hợp với tất cả các loại ứng dụng phi tập trung. Các nhà phát triển cần cân nhắc ưu điểm và hạn chế của dịch vụ Máy Oracle khi chọn lựa, và đưa ra quyết định dựa trên nhu cầu ứng dụng cụ thể.