Crypto
Oracle
Definition
Trong lĩnh vực tiền điện tử, một oracle là dịch vụ cung cấp dữ liệu ngoài chuỗi (như giá tài sản) cho các hợp đồng thông minh để chúng có thể thực thi dựa trên thông tin từ thế giới thực.
Oracle là gì?
Một oracle trong blockchain là cầu nối giữa mã trên chuỗi và thực tế ngoài chuỗi.Hợp đồng thông minhchỉ có thể “nhìn thấy” những gì đã có trên blockchain, vì vậy một oracle cung cấp các đầu vào bên ngoài—như giá thị trường, lãi suất, số liệu thời tiết, kết quả thể thao, hoặc chứng minh rằng một khoản thanh toán đã xảy ra—để hợp đồng có thể đưa ra quyết định.
Điều này là nền tảng cho nhiều ứng dụng DeFi, đặc biệt là những ứng dụng được đề cập trong định nghĩa thực tiễn về tài chính phi tập trung, vì cho vay, giao dịch, và các sản phẩm phái sinhthường yêu cầu dữ liệu thực tế đáng tin cậy để hoạt động an toàn.
Tại sao hợp đồng thông minh cần oracles?
Hợp đồng thông minh là các chương trình xác định: mỗi nút phải đạt được cùng một kết quả từ cùng một đầu vào. Thiết kế đó khiến chúng đáng tin cậy, nhưng cũng có nghĩa là chúng không thể tự động lấy dữ liệu từ các trang web, API, hoặc các hệ thống truyền thống mà không phá vỡ sự đồng thuận.
Oracles giải quyết điều này bằng cách đưa các sự kiện bên ngoài vào chuỗi theo cách có thể xác minh, thường bằng cách cho các nút oracle độc lập lấy dữ liệu, tổng hợp nó và công bố nó cho một hợp đồng. Ví dụ, một giao thức cho vay cần một nguồn giá để định giá tài sản thế chấp; nếu không có oracle, nó không thể biết liệu tài sản thế chấp của người dùng có đủ giá trị để vay hay liệu một vị trí có nên bị thanh lý hay không.
Nếu bạn mới với khái niệm này, một hợp đồng thông minh được giải thích đơn giản là một mô hình tư duy hữu ích: oracles là các “đầu vào” cho phép thỏa thuận tự động đó phản ứng với thế giới bên ngoài.
Tấn công oracle là gì?
Một cuộc tấn công oracle là bất kỳ nỗ lực nào để thao túng, phá vỡ, hoặc khai thác đường ống dữ liệu mà các hợp đồng thông minh dựa vào. Rủi ro phổ biến nhất là thao túng giá: nếu một kẻ tấn công có thể ảnh hưởng đến giá được báo cáo của một tài sản, họ có thể vay quá nhiều, kích hoạt các vụ thanh lý không công bằng, hoặc rút thanh khoản từ một giao thức tin tưởng vào nguồn giá đó.
Các cuộc tấn công có thể xảy ra ở nhiều lớp—can thiệp vào các nguồn dữ liệu, hối lộ hoặc làm suy yếu các nút oracle, khai thác các thị trường có thanh khoản thấp được sử dụng để định giá, hoặc tận dụng các độ trễ cập nhật và giá trị lỗi thời. Bởi vì nhiều hệ thống DeFi tự động thực hiện dựa trên các đầu vào từ oracle, một cuộc tấn công oracle thành công có thể gây hại như một lỗi hợp đồng thông minh.
Các biện pháp giảm thiểu bao gồm sử dụng mạng lưới oracle phi tập trung, tổng hợp nhiều nguồn, áp dụng các bộ ngắt mạch và ngưỡng sai lệch, và thiết kế các giao thức để chịu đựng các bất thường ngắn hạn.
Aave sử dụng oracle nào?
Aave chủ yếu dựa vào Chainlink cho việc định giá trên chuỗi, sử dụng các nguồn giá Chainlink để định giá tài sản thế chấp và nợ trên các thị trường được hỗ trợ. Trong thực tế, các hợp đồng của Aave đọc giá từ các hợp đồng oracle được thiết kế để có khả năng phục hồi: chúng thường tổng hợp dữ liệu từ nhiều nguồn và cập nhật trên chuỗi theo các quy tắc đã định (như nhịp tim dựa trên thời gian và các kích hoạt dựa trên độ sai lệch).
Điều này quan trọng vì các chức năng cốt lõi của Aave—giới hạn cho vay, các yếu tố sức khỏe, và thanh lý—phụ thuộc vào giá cả chính xác và kịp thời. Trong khi Aave cũng có thể tích hợp các biện pháp bảo vệ bổ sung (như cơ chế dự phòng, các tham số do chính phủ kiểm soát, và giới hạn rủi ro), điểm chính là thiết kế oracle của nó nhằm giảm thiểu các điểm thất bại đơn lẻ.
Đối với người dùng, điều cần nhớ là đơn giản: lựa chọn oracle là một phần của mô hình rủi ro của giao thức, không chỉ là một chi tiết thực hiện.
Sự khác biệt giữa oracle đẩy và kéo là gì?
Một oracle đẩy chủ động công bố dữ liệu trên chuỗi theo các khoảng thời gian hoặc khi giá trị thay đổi vượt quá một ngưỡng; các hợp đồng thông minh sau đó đọc giá trị lưu trữ mới nhất bất cứ khi nào họ cần. Điều này phổ biến cho các dữ liệu được sử dụng rộng rãi như nguồn giá, vì nhiều ứng dụng có thể chia sẻ cùng một điểm tham chiếu trên chuỗi và truy cập nó một cách rẻ và nhanh chóng.
Ngược lại, một oracle kéo cung cấp dữ liệu theo yêu cầu: một hợp đồng (hoặc một người gọi bên ngoài) yêu cầu một cập nhật, và oracle phản hồi bằng cách lấy, xác minh, và cung cấp dữ liệu cho yêu cầu cụ thể đó. Các mô hình kéo có thể giảm thiểu các cập nhật không cần thiết cho dữ liệu hiếm khi được sử dụng, nhưng chúng có thể giới thiệu độ trễ và yêu cầu ai đó phải trả tiền cho yêu cầu vào thời điểm nó cần.
Trong DeFi, các oracle đẩy thường được ưa chuộng cho việc định giá tần suất cao, quan trọng cho hệ thống, trong khi các oracle kéo có thể phù hợp với nhu cầu dữ liệu tùy chỉnh hoặc các thị trường có mức sử dụng thấp.
Oracle trong thực tế
Oracles xuất hiện ở bất kỳ đâu mà một giao thức cần các đầu vào khách quan không có sẵn trên chuỗi. Trong cho vay DeFi, một oracle cung cấp giá tham chiếu được sử dụng để tính toán tỷ lệ tài sản thế chấp và ngưỡng thanh lý, đó là lý do thiết kế oracle là trung tâm cho sự an toàn của bất kỳ giao thức cho vay nào.
Trong các sản phẩm phái sinh và thị trường dự đoán, oracles có thể cung cấp các giá trị thanh toán (ví dụ, giá chỉ số tại thời điểm đáo hạn hoặc kết quả cuối cùng của một sự kiện). Trong các tài sản thế chấp hóa thực tế, oracles có thể xác nhận các trạng thái ngoài chuỗi như báo cáo giám sát hoặc các chỉ số lãi suất.
Ngoài dữ liệu giá, nhiều hệ thống sử dụng các oracle kiểu “chứng minh”: chúng chuyển tiếp thông điệp hoặc trạng thái từ một chuỗi hoặc hệ thống khác. Trong khi việc nhắn tin giữa các chuỗi thường được thảo luận riêng biệt với việc định giá, ý tưởng cơ bản là tương tự—một oracle là cơ sở hạ tầng đáng tin cậy (hoặc giảm thiểu sự tin cậy) cho phép logic trên chuỗi phản ứng với điều gì đó bên ngoài.
Tại sao Oracle quan trọng
Oracles là một phụ thuộc cốt lõi cho các hợp đồng thông minh nhằm làm nhiều hơn là chỉ di chuyển token. Nếu không có chúng, nhiều ứng dụng phi tập trung hữu ích nhất sẽ bị giới hạn ở các đầu vào hoàn toàn trên chuỗi, khiến cho việc cho vay, stablecoin, tài sản tổng hợp, và quản lý rủi ro tự động trở nên kém thực tiễn hơn. Nói cách khác, oracles mở rộng những gì mà các blockchain có thể tự động hóa một cách an toàn.
Cùng lúc đó, oracles tập trung rủi ro: nếu dữ liệu sai, ngay cả các hợp đồng thông minh được viết hoàn hảo cũng có thể hành xử “đúng” theo cách tạo ra kết quả xấu. Đó là lý do tại sao sự phân cấp oracle, chất lượng nguồn dữ liệu, thiết kế cập nhật, và các biện pháp bảo vệ ở cấp độ giao thức là những chủ đề chính trong phân tích rủi ro DeFi.
Nếu bạn đang khám phá hệ sinh thái rộng lớn hơn được mô tả trong định nghĩa thực tiễn về tài chính phi tập trung, việc hiểu về oracles là điều cần thiết vì chúng nằm ở ranh giới nơi các hệ thống crypto gặp thông tin thế giới thực.
Frequently Asked Questions
Oracle trong crypto là gì?
Oracle là một dịch vụ cung cấp dữ liệu bên ngoài cho các hợp đồng thông minh trên blockchain. Nó cho phép các ứng dụng trên chuỗi sử dụng thông tin như giá cả, tỷ lệ hoặc kết quả sự kiện để kích hoạt các hành động tự động.
Tại sao các hợp đồng thông minh không thể truy cập internet trực tiếp?
Các hợp đồng thông minh phải có tính xác định để mỗi nút có thể xác minh cùng một kết quả. Nếu các hợp đồng có thể tự do truy vấn internet, các nút khác nhau có thể thấy các câu trả lời khác nhau, phá vỡ sự đồng thuận.
Cuộc tấn công oracle trong DeFi là gì?
Cuộc tấn công oracle nhắm vào dữ liệu mà một giao thức dựa vào, thường bằng cách thao túng giá cả được báo cáo hoặc khai thác các cập nhật lỗi thời. Nếu thành công, nó có thể cho phép thanh lý không công bằng hoặc cho phép kẻ tấn công rút giá trị từ các hệ thống cho vay và giao dịch.
Aave sử dụng oracle nào để định giá?
Aave chủ yếu sử dụng các nguồn cấp dữ liệu giá Chainlink để định giá tài sản thế chấp và nợ. Các nguồn cấp này được thiết kế để tổng hợp các nguồn dữ liệu và cập nhật theo các quy tắc đã định sẵn nhằm cải thiện độ tin cậy.
Sự khác biệt giữa oracle push và pull là gì?
Oracle push chủ động công bố các cập nhật trên chuỗi, và các hợp đồng đọc giá trị mới nhất khi cần. Oracle pull lấy và cung cấp dữ liệu theo yêu cầu, điều này có thể giảm các cập nhật không cần thiết nhưng có thể làm tăng độ trễ và yêu cầu người yêu cầu phải trả phí vào thời điểm gọi.