
Oracle trong DeFi là gì: Lớp dữ liệu quyết định giá cả, khoản vay và thanh lý
Một oracle trong DeFi là phần mềm trung gian lấy, xác minh và công bố dữ liệu bên ngoài, thường là giá thị trường, trên chuỗi để các hợp đồng thông minh có thể thực hiện logic mà chúng không thể tính toán chỉ từ trạng thái blockchain. Trong cho vay và hợp đồng vĩnh viễn, giá oracle đó không phải là tham chiếu UI, mà là đầu vào có thể thực thi quyết định sức mạnh vay và kích hoạt thanh lý.
Điểm chính
- Một oracle DeFi là phần mềm trung gian lấy, xác minh và công bố dữ liệu bên ngoài, thường là giá token, trên chuỗi để các hợp đồng thông minh có thể thực hiện logic tài chính.Các nguồn cấp giá chiếm ưu thế vì các giao thức cần một tham chiếu bên ngoài để định giá tài sản thế chấp, thiết lập sức mạnh vay và tự động kích hoạt các vụ thanh lý.Thiết kế oracle nguồn đơn tạo ra một điểm thất bại cấu trúc nơi một giá in sai có thể dẫn đến nhiều hợp đồng thực hiện "đúng" thành thua lỗ.Các giao thức giảm thiểu rủi ro thao túng oracle bằng cách sử dụng các nguồn tổng hợp và làm mịn theo kiểu TWAP để các biến dạng trong một khối khó bị khai thác.Cách giá oracle trở thành đầu vào có thể thực thi cho cho vay và hợp đồng vĩnh viễn
- Trên thực tế, một nguồn cấp oracle trở thành giá "chính thức" của giao thức bằng cách là giá trị mà các hợp đồng được lập trình để đọc tại thời điểm chúng thực thi các quy tắc.
- Một thị trường cho vay lấy bản cập nhật oracle trên chuỗi mới nhất, chuyển đổi tài sản thế chấp thành giá trị đô la, và sau đó kiểm tra các yếu tố sức khỏe, giới hạn vay và ngưỡng thanh lý dựa trên con số duy nhất đó.Các hợp đồng vĩnh viễn và hệ thống ký quỹ làm điều tương tự cho tài trợ, PnL và thanh lý. Đó là lý do tại sao các chi tiết xung quanh nguồn gốc của giá, cách nó được lọc hoặc tổng hợp, và tần suất cập nhật của nó quan trọng: oracle không phải là một báo giá tham chiếu, mà là đầu vào mà động cơ thanh lý thực sự thực hiện.Lý do mà các nhà giao dịch nên quan tâm là cơ học. Khi một giá được đưa lên chuỗi, nó trở thành có thể thực thi. Các giao thức cho vay sử dụng con số đó để định giá tài sản thế chấp, thiết lập giới hạn vay và quyết định khi nào một vị trí bị thiếu tài sản thế chấp. Các hợp đồng vĩnh viễn và hệ thống tổng hợp sử dụng nó để thanh toán các vị trí. Nếu oracle in ra một giá trị sai hoặc lỗi thời, hợp đồng thông minh vẫn thực hiện một cách xác định, có nghĩa là động cơ thanh lý có thể kích hoạt ngay cả khi thị trường "thực" chưa bao giờ giao dịch ở đó.Đây cũng là nơi sự khác biệt giữa "một oracle là một widget giá" và "một oracle là quản lý rủi ro" xuất hiện trên màn hình. Một UI có thể chậm, một biểu đồ có thể sai, và không có gì phải xảy ra. Cập nhật oracle thì khác vì nó là đầu vào cho toán học hợp đồng. Một in sai có thể thay đổi ngay lập tức sức mạnh vay trên mọi tài khoản tham chiếu nguồn cấp, và các vụ thanh lý chỉ là hợp đồng tuân theo quy tắc của nó.Giá là trường hợp sử dụng oracle chiếm ưu thế vì DeFi chủ yếu là tài chính có tài sản thế chấp. Nếu không có giá tham chiếu bên ngoài, một giao thức không thể tính toán giá trị của một khoản tiền gửi là bao nhiêu đô la, bao nhiêu có thể được vay dựa trên nó, hoặc liệu một khoản vay có nên bị thanh lý hay không.
- Tại sao DeFi cần oracles
- Các hợp đồng thông minh không thể "kiểm tra internet" một cách an toàn vì các blockchain là các hệ thống đóng, xác định. Một hợp đồng chỉ có thể đọc trạng thái trên chuỗi.
- Nó không thể gọi một điểm cuối API của sàn giao dịch, thu thập dữ liệu từ một trang web, hoặc truy vấn một thiết bị đầu cuối dữ liệu thị trường truyền thống và vẫn có mọi trình xác thực xác minh độc lập cùng một kết quả.Ràng buộc đó tạo ra vấn đề oracle: DeFi muốn tự động hóa các hành động tài chính cần dữ liệu tham chiếu bên ngoài, nhưng chuỗi cơ sở không thể nhập dữ liệu đó một cách tự nhiên. Các oracle tồn tại để cầu nối khoảng cách đó bằng cách lấy thông tin ngoài chuỗi và làm cho nó có sẵn dưới dạng mà chuỗi có thể xác minh và tiêu thụ.Đây là lý do tại sao câu hỏi DeFi cần oracles không phải là một câu hỏi trừu tượng về phân quyền. Nó liên quan đến việc liệu một thị trường cho vay có thể an toàn quyết định giá trị tài sản thế chấp và ngưỡng thanh lý hay không. Nếu một giao thức không thể quan sát một giá đáng tin cậy, nó không thể an toàn thiết lập sức mạnh vay. Nếu nó sử dụng một proxy có thể thao túng, như một thị trường giao ngay có thanh khoản mỏng, nó có thể kết thúc việc thực thi các cuộc gọi ký quỹ dựa trên một giá chỉ "đúng" cho một giao dịch.
Đồ thị phụ thuộc là quan trọng. Bất kỳ hợp đồng nào đọc một oracle đều thừa hưởng các giả định của oracle đó về các nguồn, tần suất cập nhật và xử lý thất bại. Khi nhiều giao thức chia sẻ cùng một nguồn cấp oracle, oracle trở thành một phần hạ tầng chung. Điều đó có thể là một sức mạnh khi nguồn cấp mạnh mẽ, và là một rủi ro hệ thống khi nguồn cấp yếu.
Cách các oracle hoạt động: từ dữ liệu ngoài chuỗi đến thực thi trên chuỗiMột quy trình oracle điển hình có bốn bước: chọn nguồn, lấy dữ liệu, tổng hợp hoặc xác thực, và công bố trên chuỗi. Các nguồn có thể là giá sàn giao dịch hoặc các API bên ngoài khác. Các nhà điều hành oracle lấy những giá trị đó, áp dụng quy tắc để lọc hoặc kết hợp chúng, sau đó đăng một kết quả trên chuỗi trong một giao dịch. Các hợp đồng thông minh đọc giá trị trên chuỗi đó và thực hiện các hành động như cập nhật tỷ lệ tài sản thế chấp hoặc kích hoạt thanh lý.Thiết kế cập nhật là nơi rủi ro chuyển thành thời gian. Chainlink vẽ một đường rõ ràng giữa các cập nhật dựa trên đẩy và các cập nhật dựa trên kéo. Các nguồn cấp dựa trên đẩy đăng trên chuỗi theo lịch trình hoặc khi một ngưỡng được đáp ứng, vì vậy chuỗi luôn có một giá trị gần đây có sẵn. Các thiết kế dựa trên kéo giữ dữ liệu được cập nhật ngoài chuỗi và chỉ đưa nó lên chuỗi khi một người dùng hoặc giao thức cần, điều này thay đổi ai trả tiền cho việc công bố và khi giá trị trở thành có thể thực thi.Không có mô hình nào là "an toàn" theo mặc định. Các cập nhật dựa trên đẩy có thể giảm độ lỗi thời nhưng tạo ra một nhịp điệu có thể dự đoán mà kẻ tấn công có thể nghiên cứu. Các cập nhật dựa trên kéo có thể giảm chi phí trên chuỗi và cho phép người dùng chọn khi nào công bố, nhưng chúng cũng có thể tạo ra những khoảnh khắc mà cập nhật đầu tiên trên chuỗi sau một khoảng thời gian yên tĩnh trở thành bản in quan trọng.Đây là nơi cách các oracle Chainlink hoạt động quan trọng đối với người dùng: sự lựa chọn giữa đẩy và kéo thay đổi chi phí, độ mới và kích thước của cửa sổ tấn công. Oracle không chỉ cung cấp thông tin. Nó quyết định khi nào động cơ thanh lý của giao thức nhận được một đầu vào mới.
Mô hình tin cậy oracle và đồng thuận: tập trung so với phi tập trung
Quyết định tin cậy đầu tiên là liệu giao thức có dựa vào một nhà xuất bản hay nhiều nhà xuất bản. Một oracle tập trung thì đơn giản: một thực thể đăng giá trị. Chế độ thất bại cũng đơn giản. Nếu nhà xuất bản đó sai, bị xâm phạm hoặc ngoại tuyến, mọi hợp đồng phụ thuộc đều thừa hưởng vấn đề.
Các mạng lưới oracle phi tập trung nhằm loại bỏ điểm thất bại đơn lẻ đó bằng cách sử dụng nhiều nhà điều hành độc lập và nhiều nguồn, sau đó tổng hợp chúng thành một câu trả lời trên chuỗi. Ở mức cao, cách các oracle phi tập trung đạt được đồng thuận trông như thế này: nhiều nút quan sát cùng một dữ liệu, gửi quan sát của họ, và một cơ chế tổng hợp tạo ra một giá trị cuối cùng mà các hợp đồng đọc.
Phân quyền giảm sự phụ thuộc vào bất kỳ nhà điều hành đơn lẻ nào, nhưng nó không đảm bảo tính chính xác hoặc độ mới. Hệ thống vẫn cần quy tắc về các nguồn nào được tính, cách xử lý các ngoại lệ, và khi nào các cập nhật được đăng. Một nguồn cấp có thể phi tập trung và vẫn yếu nếu nó phụ thuộc vào các thị trường mỏng, có nhịp điệu chậm, hoặc có quy tắc tổng hợp cho phép một đầu vào bị biến dạng chiếm ưu thế.
Đây cũng là nơi sự khác biệt giữa một oracle giá và một oracle dữ liệu quan trọng. Một oracle giá cung cấp giá thị trường đi thẳng vào logic tài chính như định giá tài sản thế chấp và kích hoạt thanh lý. Một oracle dữ liệu thì rộng hơn và có thể cung cấp nhiều loại thông tin bên ngoài ngoài giá cả.
Các nguồn cấp giá ngồi trực tiếp trên con đường thanh lý cho các vị trí có đòn bẩy, đó là lý do tại sao chúng thu hút sự chú ý đối kháng nhiều nhất.Các cuộc tấn công và phòng thủ oracle: thao túng, flashloans và TWAPMột cuộc tấn công oracle là một khai thác mà kẻ tấn công khiến một hợp đồng thông minh tiêu thụ dữ liệu bên ngoài không chính xác, thường là một giá không chính xác, và thu lợi từ việc hợp đồng thực hiện dựa trên đầu vào sai đó. Hợp đồng không "bị nhầm lẫn." Nó đang làm chính xác những gì nó được lập trình để làm với giá trị mà nó được cung cấp.
Hầu hết các sự cố xấu được gán cho các cuộc tấn công oracle là vấn đề thao túng giá. Kẻ tấn công nhắm vào thị trường cụ thể mà oracle tin tưởng, đẩy giá lên tạm thời, và sau đó sử dụng bản in tạm thời đó để vay quá nhiều, rút cạn tài sản thế chấp, hoặc buộc thanh lý. Flashloans là chất xúc tác vì chúng cho phép kẻ tấn công triển khai quy mô lớn trong một giao dịch.
Halborn báo cáo rằng 62,1% các cuộc tấn công thao túng giá liên quan đến flashloans, dựa trên phân tích của nó về 100 cuộc tấn công DeFi quan trọng nhất tính đến năm 2023. Halborn cũng cho biết các oracle bị lỗi là nguyên nhân hàng đầu của các cuộc tấn công thao túng giá và chiếm hơn 49% tổn thất trong các cuộc tấn công thao túng giá năm 2023.
Cách các giao thức ngăn chặn thao túng oracle phụ thuộc vào việc làm cho các biến dạng trong một khối trở nên không có lợi. Hai phòng thủ phổ biến xuất hiện lặp đi lặp lại. Đầu tiên là tổng hợp từ nhiều nguồn và nhà điều hành, để một địa điểm hoặc bể đơn lẻ không thể quyết định bản in.
Thứ hai là làm mịn theo kiểu TWAP, buộc một kẻ tấn công phải duy trì một giá bị biến dạng theo thời gian thay vì chỉ cho một giao dịch hoặc một khối.Thiết kế nguồn đơn không chỉ đơn giản là "ít phi tập trung hơn." Chúng là một điểm thất bại cấu trúc duy nhất. Một bản in xấu có thể lan truyền vào nhiều hợp đồng mà tất cả đều đọc cùng một số, và chuỗi sự kiện là một thực thi hợp lệ: giới hạn vay cập nhật, gọi ký quỹ kích hoạt, thanh lý diễn ra, và nợ xấu có thể được xã hội hóa tùy thuộc vào thiết kế giao thức.Những hiểu lầm phổ biến về oracle DeFi"Một oracle chỉ là một nguồn cấp giá" bỏ qua công việc. Oracle là phần mềm trung gian lấy, xác minh và công bố dữ liệu bên ngoài trên chuỗi. Giá cả là trường hợp sử dụng chính vì chúng kết nối trực tiếp vào định giá tài sản thế chấp và logic thanh lý, nhưng khái niệm này rộng hơn một bảng giá."Nếu hợp đồng thông minh được kiểm toán, tôi an toàn" nhầm lẫn giữa độ chính xác của mã và độ chính xác của đầu vào. Mã đã được kiểm toán vẫn có thể thanh lý vị trí nếu đầu vào oracle sai hoặc lỗi thời. Rác vào, rác ra không phải là một khẩu hiệu ở đây, đó là con đường thanh lý.
"Oracle phi tập trung có nghĩa là nó không thể thất bại" coi phi tập trung như một sự đảm bảo. Tập hợp giảm sự phụ thuộc vào một nhà điều hành hoặc nguồn duy nhất, nhưng nguồn cấp vẫn có thể sai nếu các nguồn cơ bản mỏng, tương quan hoặc có thể bị thao túng, hoặc nếu nhịp cập nhật tạo ra sự lỗi thời.
"Các cuộc tấn công oracle là kỳ lạ" là sai lầm. Nhiều cuộc tấn công là thao túng giá đơn giản, và flashloan làm cho yêu cầu vốn tạm thời. Dữ liệu của Halborn qua năm 2023 cho thấy flashloan chiếm 62,1% các cuộc tấn công thao túng giá, điều này nhắc nhở rằng những kẻ tấn công lập kế hoạch xung quanh các biến dạng một giao dịch.
"Giá DEX giao ngay bằng giá công bằng" là điều tốn kém cho các tài sản dài đuôi. Thanh khoản mỏng có nghĩa là một giao dịch đơn lẻ có thể làm thay đổi giá giao ngay đủ để quan trọng. Nếu một oracle đọc giá giao ngay đó trực tiếp mà không có sự tập hợp hoặc làm mịn theo kiểu TWAP, giao thức có thể kết thúc với việc coi một biến dạng một giao dịch là thị trường.
Nhận định
Tôi đã thấy mọi người coi oracle như một chi tiết nền và sau đó tỏ ra ngạc nhiên khi một vị trí bị thanh lý "từ hư không." Hợp đồng không tự dưng thức dậy và chọn bạo lực. Nó đã đọc một số và thực thi. Nếu số đó đến từ một thị trường giao ngay mỏng hoặc một nguồn cấp duy nhất, kích hoạt thanh lý luôn ngồi trên một đầu vào mong manh.
Tư thế sạch sẽ là coi oracle như một hệ thống ký quỹ của môi giới, không phải là một biểu đồ. Trước khi chạm vào một thị trường cho vay hoặc địa điểm perp, tôi muốn ba câu trả lời: giá đến từ đâu, nó cập nhật như thế nào, và điều gì xảy ra nếu nó sai trong một hoặc hai khối. Thống kê của Halborn rằng 62,1% các cuộc tấn công thao túng giá liên quan đến flashloan là nhắc nhở rằng "sự kỳ lạ một khối" không phải là giả thuyết. Đó là mô hình tấn công.
Nguồn
Halborn
Chainlink
Frequently Asked Questions
Tại sao DeFi cần oracles?
Hợp đồng thông minh chỉ có thể đọc trạng thái trên chuỗi và không thể gọi an toàn các API ngoài chuỗi hoặc nguồn giá web. Oracles công bố dữ liệu tham chiếu bên ngoài trên chuỗi để các giao thức có thể tính toán giá trị tài sản thế chấp, sức mạnh vay mượn và ngưỡng thanh lý.
Oracles Chainlink hoạt động như thế nào?
Chainlink sử dụng một mạng lưới oracle phi tập trung để đưa dữ liệu bên ngoài lên chuỗi cho các hợp đồng thông minh. Nó phân biệt giữa các cập nhật dựa trên đẩy, được đăng theo lịch trình hoặc khi các ngưỡng được đáp ứng, và các cập nhật dựa trên kéo, được giữ ngoài chuỗi và đưa lên chuỗi khi cần thiết.
Cuộc tấn công oracle trong DeFi là gì?
Một cuộc tấn công oracle là khi một kẻ tấn công khiến một hợp đồng thông minh tiêu thụ dữ liệu bên ngoài không chính xác, thường là một giá không chính xác, và thu lợi từ việc hợp đồng thực hiện dựa trên đầu vào đó. Nhiều trường hợp là thao túng giá, nơi một bản in thị trường bị biến dạng tạm thời được coi là sự thật bởi giao thức.
Các giao thức ngăn chặn thao túng oracle như thế nào?
Các giao thức thường giảm thiểu rủi ro thao túng bằng cách sử dụng các nguồn phi tập trung hoặc tổng hợp thay vì một địa điểm duy nhất và bằng cách áp dụng làm mịn theo kiểu TWAP. Những lựa chọn đó làm cho các biến dạng một khối hoặc một giao dịch khó bị khai thác hơn, bao gồm cả các động thái do flashloan thúc đẩy.
Sự khác biệt giữa oracle giá và oracle dữ liệu là gì?
Một oracle giá cung cấp các mức giá thị trường trực tiếp phục vụ cho logic tài chính như định giá tài sản thế chấp, giao dịch và thanh lý. Một oracle dữ liệu thì rộng hơn và có thể cung cấp nhiều loại dữ liệu bên ngoài ngoài giá cả, tùy thuộc vào những gì hợp đồng thông minh cần.