Một hợp đồng cho vay có thể đếm số ETH được gửi vào đó. Tuy nhiên, chỉ bằng cách kiểm tra số dư ví, hợp đồng không thể quyết định số ETH đó có giá trị bao nhiêu tính theo đô la. Thị trường dự đoán cũng gặp vấn đề tương tự: hợp đồng có thể nắm giữ tài sản thế chấp và tính toán khoản thanh toán, nhưng cần một cách thức được xác định rõ để thiết lập kết quả nào đã xảy ra.
Một oracle blockchain cung cấp thông tin mà hợp đồng thông minh có thể sử dụng ngoài trạng thái sẵn có của chính nó. Đó có thể là giá tài sản, kết quả sự kiện hoặc giá trị tài sản ròng được báo cáo của một quỹ. Oracle giúp những ứng dụng này trở nên khả thi, đồng thời tạo thêm các yếu tố phụ thuộc vào cách thông tin được thu thập, cung cấp và diễn giải.
Tại sao hợp đồng thông minh không thể chỉ đơn giản là mở một trang web
Trên Ethereum và các blockchain tương tự, các nút phải tạo ra cùng một kết quả từ cùng một giao dịch và trạng thái. Một trang web thông thường có thể thay đổi giữa các lần yêu cầu, không khả dụng hoặc trả về các câu trả lời khác nhau cho những khách truy cập khác nhau. Nếu cho phép mỗi trình xác thực độc lập truy xuất một trang web trực tiếp trong quá trình thực thi, kết quả chung đó sẽ bị phá vỡ. Tài liệu về oracle của Ethereum giải thích ranh giới giữa việc thực thi hợp đồng và thông tin bên ngoài này.
Thay vào đó, một quy trình bên ngoài đưa báo cáo vào định dạng mà blockchain có thể chấp nhận. Hợp đồng đọc một giá trị đã được công bố hoặc xác minh một báo cáo được cung cấp cùng với giao dịch. Hợp đồng không tự động có quyền truy cập internet không hạn chế.
Đồng thuận blockchain xác lập báo cáo nào được chấp nhận và quy tắc nào được thực thi. Đồng thuận không tự mình xác lập rằng một trạm thời tiết đã hoạt động, một công ty đã báo cáo trung thực hay một mức giá thị trường không bị thao túng.
Theo dõi thông tin từ nguồn đến quyết định
Một ứng dụng phụ thuộc vào giá thường bao gồm một số bước riêng biệt:
- Quan sát: các sàn giao dịch, công ty giao dịch hoặc nhà cung cấp khác tạo ra các quan sát về một tài sản. Các nguồn có thể đo lường những địa điểm giao dịch, khung giờ giao dịch hoặc công cụ khác nhau.
- Xử lý: một hệ thống oracle áp dụng các quy tắc tổng hợp và báo cáo của mình. Nhiều bên vận hành có thể giảm sự phụ thuộc vào một bên báo cáo duy nhất, nhưng các nguồn đầu vào chung ở thượng nguồn vẫn có thể tạo ra một điểm lỗi chung.
- Cung cấp: một giao dịch công bố một giá trị hoặc người gọi gửi một báo cáo đã được xác thực để kiểm tra. Blockchain đích quyết định thời điểm giao dịch đó được thực thi.
- Ứng dụng: hợp đồng sử dụng kiểm tra mã nhận diện nguồn cấp dữ liệu, đơn vị và thời hạn được phép, sau đó áp dụng các quy tắc riêng về vay, thanh toán hoặc các quy tắc khác.
Không nên gộp các trách nhiệm này vào tên của nhà cung cấp oracle. Ví dụ, mô hình dữ liệu phi tập trung của Chainlink phân tách việc lấy dữ liệu, báo cáo của các nút và tổng hợp on-chain. Ứng dụng vẫn phải tích hợp nguồn cấp dữ liệu kết quả một cách chính xác.
Các ứng dụng khác nhau cần những thiết kế oracle khác nhau
Push và pull mô tả cách các bản cập nhật đến được ứng dụng. Bản thân hai khái niệm này không cho biết hệ thống là tập trung hay phi tập trung.
| Thiết kế | Cách thông tin đến nơi | Điều ứng dụng phải cân nhắc |
|---|---|---|
| Feed push | Các bản cập nhật được công bố lên một nguồn cấp dữ liệu on-chain. Hợp đồng đọc giá trị mới nhất hiện có. | Các yếu tố kích hoạt việc công bố, độ trễ giao dịch và thời gian quan sát được lưu trữ có thể đã cũ đến mức nào. |
| Báo cáo pull | Người gọi lấy một báo cáo và gửi báo cáo đó khi ứng dụng cần. | Việc xác thực, độ cũ của quan sát và chi phí gửi bản cập nhật. |
| Oracle lạc quan | Một câu trả lời được đề xuất có thể bị phản đối trong một khoảng thời gian xác định; các tranh chấp tuân theo một quy trình giải quyết. | Tiêu chí giải quyết rõ ràng, động lực giám sát, tiền đặt cọc và thời gian thanh toán. |
Chainlink mô tả các yếu tố kích hoạt theo độ lệch và nhịp tim đối với những bản cập nhật cho các feed dựa trên cơ chế push. Nhịp tim không phải là cam kết rằng mọi bản cập nhật sẽ đến nơi bất chấp tình trạng tắc nghẽn hoặc sự cố ngừng hoạt động. Thay vào đó, oracle lạc quan của UMA cho người tham gia thời gian để phản đối các câu trả lời được đề xuất. Cơ chế này có thể phù hợp hơn với việc xác định kết quả sự kiện so với một mức giá cần có ngay lập tức cho một giao dịch.
Không phải mọi đầu vào của oracle đều bắt nguồn từ off-chain. Một hợp đồng có thể suy ra giá từ lịch sử on-chain của một sàn giao dịch phi tập trung. Thiết kế giá tích lũy của Uniswap v2 hỗ trợ giá trung bình có trọng số theo thời gian, hay TWAP. Việc lấy trung bình có thể khiến hành vi thao túng trong thời gian ngắn trở nên tốn kém hơn, nhưng kết quả vẫn phụ thuộc vào thanh khoản và khoảng thời gian quan sát được chọn. Khoảng thời gian dài hơn cũng phản ứng chậm hơn trước những thay đổi giá thực sự.
Một mức giá lỗi thời có thể thay đổi việc thanh lý như thế nào
Hãy xem xét một vị thế cho vay đơn giản với 10 ETH làm tài sản thế chấp, khoản nợ 12.000 USD và ngưỡng thanh lý 80%. Giả sử giá trị khoản nợ tính theo đô la không đổi và bỏ qua lãi suất cùng phí.
Ở mức 2.000 USD cho mỗi ETH, tài sản thế chấp có giá trị 20.000 USD và khoản nợ bằng 60% giá trị đó. Nếu ETH giảm xuống 1.400 USD, tài sản thế chấp giảm còn 14.000 USD; khi đó khoản nợ chiếm khoảng 85,7%, cao hơn ngưỡng giả định. Vị thế sẽ đáp ứng điều kiện thanh lý trong ví dụ này khi hợp đồng chấp nhận mức giá đó.
Nếu ứng dụng tiếp tục sử dụng quan sát cũ ở mức 2.000 USD, vị thế có thể trông vẫn lành mạnh trong khi giá trị bảo đảm về mặt kinh tế đã suy yếu. Một quan sát thấp giả tạo có thể tạo ra vấn đề ngược lại: thanh lý một vị thế lẽ ra vẫn lành mạnh. Trong cả hai trường hợp, hợp đồng vẫn có thể thực thi mã chính xác như đã viết.
Đây là lý do các hệ thống như giao thức cho vay EVAA cần được hiểu thông qua cả đầu vào giá và các quy tắc thanh lý. Các con số trên chỉ nhằm minh họa, không phải là thông số của EVAA.
Một chữ ký mới không nhất thiết đại diện cho thông tin mới
Ba câu hỏi quan trọng là: quan sát cơ sở được tạo ra khi nào, báo cáo được hình thành khi nào và blockchain chấp nhận báo cáo đó khi nào? Một giao dịch vừa được gửi có thể chứa một quan sát cũ hơn.
Hướng dẫn tích hợp của Pyth Pro phân biệt thời điểm cập nhật với độ mới của từng feed và khuyến nghị xử lý sự không chắc chắn trong các mức giá được báo cáo. Một chữ ký hợp lệ xác thực một báo cáo theo các quy tắc xác minh liên quan; chữ ký đó không khiến mọi giá trị trở nên hiện tại hoặc loại bỏ sự khác biệt giữa các thị trường.
Các nhà phát triển cũng cần có chính sách xử lý sự cố. Từ chối dữ liệu cũ, hạn chế hoạt động vay mới hoặc tạm dừng các hoạt động nhạy cảm với giá có thể hạn chế thiệt hại. Tự động chuyển sang một phương án dự phòng chưa được kiểm thử có thể tạo ra một yếu tố phụ thuộc khác. Chainlink nêu rõ trách nhiệm của nhà phát triển ứng dụng đối với việc kiểm tra dữ liệu, bộ ngắt mạch và logic dự phòng.
Trên một số mạng Layer 2, khả năng gửi giao dịch cũng là một mối lo khác. Sự cố ngừng hoạt động của sequencer có thể ngăn người dùng điều chỉnh vị thế. Hướng dẫn về thời gian hoạt động của sequencer của Chainlink mô tả các bước kiểm tra trạng thái và khoảng thời gian ân hạn khôi phục; chỉ riêng dấu thời gian của giá không giải quyết được vấn đề tiếp cận đó.
Điều cần tìm hiểu trước khi dựa vào một ứng dụng
Hãy tìm hiểu feed và mạng lưới cụ thể, thị trường hoặc nguồn báo cáo cơ sở, thời hạn tối đa được chấp nhận và điều gì xảy ra khi có sự cố ngừng hoạt động. Kiểm tra ai có thể thay thế oracle hoặc thay đổi các giới hạn đó. “Sử dụng oracle” là điểm khởi đầu để tìm hiểu một giao thức, không phải là mức xếp hạng bảo mật.
Sự phân biệt tương tự cũng quan trọng đối với các tài sản được token hóa. Việc công bố NAV của một quỹ không xác lập quyền lưu ký, quyền sở hữu hợp pháp hoặc quyền mua lại. Phần thảo luận của chúng tôi về Chainlink, Hanwha và cơ sở hạ tầng RWA giải thích tại sao việc cung cấp dữ liệu đáng tin cậy và quyền đối với tài sản là những phần riêng biệt của một sản phẩm.
Bạn có thể khám phá các thị trường thông qua Sàn giao dịch tiền mã hóa KTX. Đối với bất kỳ sản phẩm nào, hãy đọc các quy tắc định giá và thanh toán riêng của sản phẩm đó: một giá trị oracle on-chain không tự động là mức giá mà lệnh của bạn sẽ được thực hiện.
Câu hỏi thường gặp
Việc sử dụng oracle có nghĩa là tôi cần mua token của oracle đó không?
Không. Người dùng thường tương tác với một ứng dụng mà không cần nắm giữ token của nhà cung cấp oracle. Phí cập nhật và bên thanh toán các khoản phí đó phụ thuộc vào cách tích hợp. Token của nhà cung cấp cũng có những rủi ro thị trường riêng.
Oracle có thể di chuyển tài sản trong ví của tôi không?
Chỉ riêng một báo cáo dữ liệu không phải là chữ ký ví hoặc phê duyệt chi tiêu token. Hợp đồng có thể sử dụng báo cáo đó để kích hoạt các hành động liên quan đến những tài sản vốn đã chịu sự điều chỉnh của các quy tắc trong hợp đồng, bao gồm cả việc thanh lý tài sản thế chấp.
Giá oracle có giống với báo giá giao dịch có thể thực hiện không?
Không. Một mức giá tham chiếu có thể tổng hợp nhiều nguồn hoặc lấy trung bình trong một khoảng thời gian. Việc thực hiện lệnh của bạn phụ thuộc vào địa điểm giao dịch, thanh khoản hiện có, khối lượng lệnh và phí. Một mức giá tham chiếu được hiển thị không đảm bảo lệnh sẽ được khớp.
Cầu nối blockchain có giống với oracle không?
Chúng có thể trùng lặp về hạ tầng truyền tin và xác minh. Cầu nối thường cho phép chuyển tài sản hoặc gửi thông điệp xuyên chuỗi; oracle cung cấp thông tin cho một ứng dụng. Tên gọi của chúng không xác lập rằng các giả định bảo mật là giống nhau.
Oracle có thể giữ kín thông tin kinh doanh nhạy cảm không?
Không, không chỉ bằng cách đưa thông tin đó lên on-chain. Dữ liệu được công bố công khai có thể hiển thị với bất kỳ ai. Một ứng dụng nhạy cảm về quyền riêng tư cần có thiết kế riêng cho việc tiết lộ, truy cập và xác minh.
Thông báo rủi ro: Sự cố oracle, các nguồn bị thao túng và lỗi tích hợp có thể gây thua lỗ ngay cả khi blockchain vẫn hoạt động bình thường. Bài viết này chỉ nhằm mục đích cung cấp thông tin và không phải là lời khuyên đầu tư.