Một bug trong logic giá của một sàn DEX nhỏ. Một lỗi reentrancy trong hàm withdraw. Một lỗi trọng số trong oracle AI. Tôi đã thấy tất cả những điều này, và chúng đều có chung một gốc rễ: sự tin tưởng mù quáng vào một nguồn duy nhất.
Tuần này, Jeff Currie, cựu giám đốc hàng hóa của Goldman Sachs, đã công bố kế hoạch IPO 50 triệu bảng Anh tại London cho một dự án dầu khí ở Vịnh Mexico. Đối với hầu hết mọi người, đây là một câu chuyện về năng lượng truyền thống. Đối với tôi, với tư cách là một DeFi Security Auditor, đây là một trường hợp kinh điển về sự tập trung và một lỗi thiết kế oracle đang chờ xảy ra. Oracle gãy, DEX mất trí nhớ. Lần này, thị trường chứng khoán có thể là DEX, và oracle là kỳ vọng về giá dầu.
Bối cảnh rất đơn giản. Currie, một trong những chuyên gia hàng hóa có uy tín nhất thế giới, đang dùng uy tín và nguồn lực của mình để đầu tư vào một dự án thượng nguồn dầu khí. Anh ấy muốn niêm yết cổ phiếu của dự án này trên sàn giao dịch chứng khoán London. Đây là một động thái tín hiệu mạnh mẽ, cho thấy rằng ngay cả trong thời đại ESG và chuyển đổi năng lượng, dầu khí truyền thống vẫn có sức hấp dẫn về mặt kinh tế. Nhưng với tôi, vấn đề nằm ở chỗ: toàn bộ kế hoạch này phụ thuộc vào một giả định duy nhất - giá dầu sẽ vẫn ở mức có lợi nhuận trong suốt vòng đời của dự án.
Đây là nơi mà phân tích oracle trở nên quan trọng. Trong DeFi, một oracle là một nguồn dữ liệu bên ngoài được đưa vào hợp đồng thông minh. Nếu oracle bị hỏng hoặc bị thao túng, toàn bộ giao thức có thể sụp đổ. Năm 2020, tôi đã audit một AMM trên testnet. Hàm lấy giá của nó sử dụng một oracle không cập nhật thường xuyên. Kết quả là, một giao dịch lớn có thể gây ra chênh lệch giá 2%. Tôi đã chạy ba lần mô phỏng Hardhat để xác nhận lỗi này. Sự cẩn trọng của ISTJ đã cứu dự án đó khỏi một thảm họa.
Trong trường hợp của Currie, oracle là kỳ vọng của thị trường về giá dầu thô. Nếu kỳ vọng này thay đổi đột ngột - do suy thoái kinh tế, một thỏa thuận OPEC+ bất ngờ, hoặc một bước đột phá công nghệ trong năng lượng tái tạo - thì toàn bộ định giá của dự án có thể sụp đổ. Rủi ro oracle ở đây không phải là một hàm getPrice() bị lỗi, mà là một giả định vĩ mô duy nhất, không đa dạng hóa.
Hãy nhìn vào điều này từ góc nhìn của một auditor. Khi tôi audit một giao thức cho vay, tôi luôn kiểm tra xem nó có sử dụng nhiều nguồn oracle hay không. Nếu nó chỉ phụ thuộc vào một nguồn duy nhất, tôi sẽ đánh dấu đó là một rủi ro nghiêm trọng. Ở đây, Currie đang đặt cược toàn bộ dự án của mình vào một oracle duy nhất: triển vọng giá dầu trong dài hạn. Điều này không khác gì việc một giao thức cho vay chỉ dựa vào giá BTC từ một nguồn duy nhất. Nó có thể hoạt động trong thời gian dài, nhưng khi nó sai, nó sẽ sai một cách thảm khốc.
Một khía cạnh khác cần xem xét là sự tập trung quyền lực. Currie, với tư cách là một chuyên gia, đang sử dụng uy tín của mình để thu hút vốn. Điều này tạo ra một điểm tập trung tương tự như việc một nhà phát triển chính có quyền nâng cấp hợp đồng thông minh. Nếu Currie đưa ra quyết định sai lầm, hoặc nếu anh ấy mất khả năng điều hành dự án, các nhà đầu tư sẽ phải gánh chịu hậu quả. Trong báo cáo post-mortem về Terra Luna, tôi đã chỉ ra rằng sự phụ thuộc vào một thực thể duy nhất để duy trì neo giá là một trong những điểm yếu chết người. Đây là một trường hợp tương tự: một cá nhân duy nhất đang trở thành oracle cho cả một dự án.
Tôi đã thấy điều này nhiều lần. Năm 2022, tôi đã phân tích mã nguồn của Anchor Protocol sau khi Terra Luna sụp đổ. Tôi đã so sánh cơ chế mint/burn UST với lý thuyết. Phát hiện chính là sự thiếu vắng một circuit breaker trên hợp đồng oracle. Khi giá UST bắt đầu mất neo, không có cơ chế tự động nào để dừng hoạt động mint mới. Hệ thống đã được thiết kế để tin tưởng vào oracle một cách mù quáng. Bài học tương tự có thể áp dụng ở đây. Nếu giá dầu giảm, dự án của Currie sẽ không có circuit breaker. Không có cơ chế nào để tự động dừng khoan, cắt giảm chi phí, hoặc chuyển đổi sang một kế hoạch kinh doanh khác.
Một điểm đáng chú ý khác là sự lựa chọn địa điểm niêm yết: London. Điều này có thể được so sánh với việc một dự án DeFi chọn triển khai trên một blockchain cụ thể. London có một khung pháp lý rõ ràng và một thị trường vốn sâu, nhưng nó cũng có những rủi ro riêng. Sự thay đổi trong chính sách thuế hoặc quy định về môi trường có thể ảnh hưởng đến dự án. Đây là một dạng rủi ro oracle khác: rủi ro về chính sách. Cũng giống như một giao thức DeFi phải đánh giá rủi ro của blockchain mà nó triển khai, các nhà đầu tư vào dự án này phải đánh giá rủi ro của môi trường pháp lý và chính trị tại London và Vương quốc Anh.
Bây giờ, hãy xem xét khía cạnh contrarian. Nhiều người sẽ nói rằng động thái của Currie là một tín hiệu tích cực cho thị trường năng lượng. Họ sẽ nói rằng nó cho thấy sự tự tin vào nhu cầu dầu mỏ trong tương lai. Tôi không đồng ý. Tôi nghĩ rằng nó cho thấy một điểm mù bảo mật lớn hơn trong cách thị trường tài chính truyền thống vận hành. Điểm mù là sự phụ thuộc vào một chuyên gia duy nhất làm nguồn sự thật. Trong DeFi, chúng tôi gọi đó là “gãy oracle”. Trong tài chính truyền thống, nó được gọi là “rủi ro người nổi tiếng” hoặc “rủi ro tập trung quyền ra quyết định”.
Hãy tưởng tượng nếu Currie bị ốm, hoặc nếu anh ấy thay đổi quan điểm về thị trường dầu mỏ. Toàn bộ dự án có thể mất đi động lực. Điều này tương tự như một giao thức DeFi có một admin key duy nhất. Nếu admin key bị xâm phạm, hoặc nếu admin quyết định rug pull, tất cả người dùng sẽ mất tiền. Trong cả hai trường hợp, vấn đề đều là sự tập trung quyền lực. Các nhà đầu tư đang đặt cược vào một người, chứ không phải vào một hệ thống.
Kinh nghiệm audit của tôi đã dạy tôi rằng sự đa dạng hóa là chìa khóa. Khi tôi audit một fork của Uniswap V3 tích hợp LayerZero vào năm 2024, tôi đã phát hiện ra 12 lỗi, trong đó có 3 lỗi nghiêm trọng liên quan đến slippage không đồng nhất. Vấn đề là code fork không hoàn toàn tương thích với code gốc. Tôi đã phải so sánh từng dòng code để tìm ra sự khác biệt. Bài học tương tự có thể áp dụng cho dự án của Currie: nó không nên sao chép mô hình kinh doanh của các công ty dầu khí khác một cách mù quáng. Nó cần phải có một cơ chế để xử lý các kịch bản khác nhau, chứ không chỉ một kịch bản lạc quan duy nhất.
Vậy, takeaway là gì? Đối với các nhà đầu tư, nó là một lời cảnh báo: đừng mù quáng tin tưởng vào một chuyên gia duy nhất. Hãy đa dạng hóa danh mục đầu tư của bạn. Hãy tìm kiếm các dự án có nhiều nguồn doanh thu và nhiều kịch bản khác nhau. Đối với các nhà phát triển DeFi, nó là một lời nhắc nhở: hãy luôn kiểm tra oracle của bạn. Hãy đảm bảo rằng bạn có nhiều nguồn dữ liệu và một cơ chế dự phòng. Và hãy nhớ rằng, ngay cả những chuyên gia giỏi nhất cũng có thể sai.
Reentrancy vẫn là một lỗi kinh điển, nhưng nó không phải là lỗi duy nhất. Lỗi thiết kế oracle mới là thứ thực sự có thể phá hủy một dự án. Và lần này, nó đang xảy ra trên một quy mô lớn hơn nhiều so với bất kỳ DeFi nào. Nó đang xảy ra trên thị trường chứng khoán London.