DeFi

Oracle (Nguồn dữ liệu blockchain)

Còn gọi là: oracle · price oracle · oracle giá

Định nghĩa

Oracle là dịch vụ đưa dữ liệu bên ngoài như giá tài sản, kết quả sự kiện hay số ngẫu nhiên vào blockchain để hợp đồng thông minh sử dụng.

Oracle hoạt động thế nào

Hợp đồng thông minh không tự đọc được giá BTC trên các sàn. Giao thức cho vay cần giá để tính thanh lý, DEX phái sinh cần giá để tính lãi lỗ, stablecoin thế chấp crypto cần giá để biết tài sản đảm bảo còn đủ không. Oracle như Chainlink, Pyth gom giá từ nhiều nguồn, tổng hợp và ghi lên chuỗi.

Oracle là điểm yếu nhạy cảm. Nếu giao thức lấy giá từ một pool DEX mỏng, kẻ tấn công có thể dùng flash loan đẩy giá trong pool đó, khiến hợp đồng tin vào giá sai và cho vay quá mức hoặc thanh lý sai. Oracle tốt dùng nhiều nguồn, giá trung bình theo thời gian và giới hạn độ lệch.

Với người dùng, giá oracle có thể khác giá bạn thấy trên một sàn cụ thể, và thanh lý trên DeFi thường căn cứ vào giá oracle chứ không phải giá trên sàn bạn đang xem.

Ví dụ

Giả sử bạn vay trên một giao thức có ngưỡng thanh lý khi ETH xuống 1.800 USD. Trên một sàn nhỏ, ETH chớp xuống 1.780 USD trong vài giây vì lệnh bán lớn. Oracle tổng hợp từ nhiều sàn lớn báo 1.850 USD, nên vị thế của bạn chưa bị thanh lý. Nếu giao thức chỉ dùng giá từ sàn nhỏ kia, bạn đã bị thanh lý vì một cú râu nến cục bộ.

Lỗi thường gặp

  • Chỉ theo dõi giá trên một sàn mà không biết giao thức dùng oracle nào để thanh lý.
  • Gửi tiền vào giao thức mới dùng giá từ một pool DEX mỏng làm oracle.
  • Nghĩ rằng oracle là một blockchain riêng chứ không phải một dịch vụ cung cấp dữ liệu.

Học và thực hành

Câu hỏi thường gặp

Vì sao blockchain cần oracle?

Blockchain chỉ biết dữ liệu trên chuỗi. Để dùng giá thị trường hay sự kiện ngoài đời, hợp đồng cần một nguồn đáng tin đưa dữ liệu đó vào.

Tấn công oracle là gì?

Là khi kẻ gian thao túng nguồn giá mà giao thức tin dùng, thường bằng vốn lớn hoặc flash loan, để vay quá mức hoặc rút tài sản với giá sai.