Chuỗi bài Oracle Chainlink (Phần 2)

avatar
ZAN Team
1tuần trước
Bài viết có khoảng 2285từ,đọc toàn bộ bài viết mất khoảng 3 phút
Khi người tiêu dùng yêu cầu dịch vụ oracle, oracle có thể không phản hồi kịp thời vì nhiều lý do, do đó gây ra một điểm lỗi duy nhất...

Oracle giá phân tán

Khi người tiêu dùng yêu cầu dịch vụ oracle, oracle có thể không phản hồi kịp thời vì nhiều lý do, dẫn đến một điểm lỗi duy nhất. Do đó, ChainLink áp dụng thiết kế oracle giá phân tán để cung cấp dịch vụ cho người dùng. Ví dụ, một dịch vụ cung cấp giá BTC USD sẽ tổng hợp 31 nguồn dữ liệu giá để cung cấp dịch vụ cho người dùng.

Chuỗi bài Oracle Chainlink (Phần 2)

Mã nguồn hợp đồng của trình tổng hợp có thể được xem trên Etherscan: https://etherscan.io/address/0xae74faa92cb67a95ebcab07358bc222e33a34da7#readContract

Trong số đó, bằng cách gọi phương thức truyền trong hợp đồng, bạn có thể xem tất cả các oracle ngoài chuỗi có trong trình tổng hợp.

Chuỗi bài Oracle Chainlink (Phần 2)

Chuỗi bài Oracle Chainlink (Phần 2)

Mỗi oracle ngoài chuỗi có thể cung cấp dữ liệu giá để đáp ứng yêu cầu từ người dùng trong bộ tổng hợp bằng cách gọi phương thức truyền. Các oracle ngoài chuỗi này là các tài khoản EOA cung cấp dữ liệu giá không chỉ cho đơn vị tổng hợp BTC/USD mà còn có thể cung cấp dữ liệu giá cho các đơn vị tổng hợp khác, chẳng hạn như ETH/USD.

Chuỗi bài Oracle Chainlink (Phần 2)

Hợp đồng trên chuỗi:

Chuỗi bài Oracle Chainlink (Phần 2)

1. Trước tiên, hãy đọc tình trạng hợp đồng hiện tại và thực hiện một loạt các kiểm tra:

Chuỗi bài Oracle Chainlink (Phần 2)

2. Sau khi hoàn tất tất cả những điều này, bạn có thể thực hiện một số công tác chuẩn bị:

Chuỗi bài Oracle Chainlink (Phần 2)

3. Tiếp theo, sử dụng ecrecover() để xác minh từng dữ liệu chữ ký và xác minh rằng giá trị băm là giá trị băm của _report. Đồng thời, cần kiểm tra vai trò của người ký có phải là Signer hay không và kiểm tra sự trùng lặp của chữ ký.

4. Cuối cùng, hãy kiểm tra xem các quan sát có đúng thứ tự không. Sau đó chọn trung vị từ các quan sát đã sắp xếp và đảm bảo rằng trung vị không vượt quá ngưỡng trên và ngưỡng dưới. Khi mọi thứ đều ổn, hãy ghi lại câu trả lời của oracle trong s_transmissions. Ngoài ra, câu trả lời phải được xác minh:

Chuỗi bài Oracle Chainlink (Phần 2)

Tại đây, sau một loạt các lệnh gọi (với hợp đồng Proxy ở giữa), phương thức xác thực của hợp đồng UniswapAnchoredView (oracle giá được Compound sử dụng) cuối cùng được gọi:

Chuỗi bài Oracle Chainlink (Phần 2)

Điều quan trọng là phải so sánh xem độ lệch giá do các nhà tiên tri đưa ra ở cả hai bên có nằm trong phạm vi cho phép hay không:

Chuỗi bài Oracle Chainlink (Phần 2)

Đăng ký nguồn cấp dữ liệu

Mặc dù cách sử dụng trước đây rất đơn giản, nhưng nếu bạn cần giá của nhiều token khác nhau, bạn phải thực hiện lệnh setPriceFeed cho từng token. Chi phí quản lý thực tế hơi cao và không linh hoạt trong một số trường hợp. Lúc này, bạn có thể cân nhắc sử dụng phương pháp Feed Registry để truy cập.

Feed Registry có thể được hiểu đơn giản là một công cụ tổng hợp PriceFeeds. Nó đã tổng hợp nhiều priceFeeds. Với nó, người dùng không cần phải tự thiết lập priceFeeds mà có thể đọc trực tiếp dữ liệu giá thông qua Feed Registry, như hình dưới đây:

Chuỗi bài Oracle Chainlink (Phần 2)

Cơ chế cung cấp giá

Đầu tiên, giá trong Price Feed được lấy bằng cách tổng hợp dữ liệu ở nhiều cấp độ. Trên thực tế có ba lớp tổng hợp dữ liệu: tổng hợp nguồn dữ liệu, tổng hợp toán tử nút và tổng hợp mạng Oracle.

Chuỗi bài Oracle Chainlink (Phần 2)

Dữ liệu giá gốc chủ yếu đến từ các nền tảng giao dịch tập trung như Binance, Huobi và Coinbase, cũng như các nền tảng giao dịch phi tập trung như Uniswap và Sushi. Có một số nhà cung cấp dịch vụ chuyên về tổng hợp dữ liệu (như Amberdata và Coingecko), thu thập dữ liệu giá thô từ các nền tảng giao dịch này và xử lý cũng như tích hợp các nguồn dữ liệu này, chẳng hạn như thực hiện các tính toán có trọng số dựa trên khối lượng giao dịch, tính thanh khoản và chênh lệch thời gian.

Đây là cấp độ tổng hợp đầu tiên, tổng hợp các nguồn dữ liệu. Chìa khóa để có nguồn dữ liệu giá đáng tin cậy là phải có phạm vi bao phủ thị trường toàn diện để đảm bảo rằng điểm giá thể hiện tổng hợp chính xác của tất cả các môi trường giao dịch, thay vì giá của một sàn giao dịch duy nhất hoặc một vài sàn giao dịch, nhằm ngăn chặn thao túng dữ liệu và sai lệch giá.

Lớp thứ hai là lớp tổng hợp được thực hiện bởi các Nhà điều hành nút Chainlink. Mỗi Nhà điều hành nút Chainlink chủ yếu chịu trách nhiệm chạy phần mềm cốt lõi Chainlink được sử dụng để thu thập và phát dữ liệu thị trường bên ngoài trên blockchain. Node Operators lấy dữ liệu giá từ nhiều dịch vụ tổng hợp dữ liệu độc lập và lấy giá trị trung bình giữa chúng, loại bỏ các giá trị ngoại lệ và thời gian ngừng hoạt động của API.

Lớp cuối cùng là tổng hợp toàn bộ mạng lưới oracle. Có nhiều cách để tổng hợp, nhưng phương pháp tổng hợp phổ biến nhất là lấy giá trị trung bình của dữ liệu khi số lượng nút phản hồi đạt đến giá trị đặt trước. Ví dụ, nếu có tổng cộng 31 nút và giá trị đặt trước là 21, nghĩa là sau khi nhận được phản hồi từ 21 nút, giá trung bình của dữ liệu giá của các nút này sẽ được coi là giá cuối cùng. Tuy nhiên, không phải mọi kết quả giá đều được cập nhật trên chuỗi. Chúng sẽ chỉ được cập nhật khi một trong hai tham số kích hoạt được đáp ứng: Ngưỡng độ lệch và Ngưỡng nhịp tim. Hơn nữa, giá trị của hai tham số này có thể khác nhau đối với các PriceFeeds khác nhau.

Tóm lại, giá của Chainlink rất dễ truy cập và có tính bảo mật tương đối cao. Tuy nhiên, do ngưỡng sai lệch của cơ chế cập nhật giá nên việc cập nhật giá tương đối chậm, chỉ từ vài phút hoặc vài chục phút cho đến cập nhật trong vòng 24 giờ. Do đó, phương pháp này thường chỉ phù hợp với các ứng dụng không nhạy cảm với việc cập nhật giá. Đây cũng là hạn chế của dự đoán giá Chainlink và không thể áp dụng trong mọi trường hợp.

Bài viết này được viết bởi XiG (tài khoản X @SHXiGi ) của ZAN Team (tài khoản X @zan_team ).

Bài viết gốc, tác giả:ZAN Team。Tuyển dụng: Nhân viên kinh doanh phần mềm theo dự án report@odaily.email;Vi phạm quy định của pháp luật.

Odaily nhắc nhở, mời đông đảo độc giả xây dựng quan niệm đúng đắn về tiền tệ và khái niệm đầu tư, nhìn nhận hợp lý về blockchain, nâng cao nhận thức về rủi ro; Đối với manh mối phạm tội phát hiện, có thể tích cực tố cáo phản ánh với cơ quan hữu quan.

Đọc nhiều nhất
Lựa chọn của người biên tập