Hợp đồng không có reentrancy, nhưng oracle lại gãy.
Hai dòng code này tôi viết vào sổ tay audit năm 2021, sau khi phát hiện một DEX nhỏ dùng giá từ nguồn cập nhật mỗi 30 phút. Lỗi đơn giản, nhưng nó dạy tôi một bài học: mọi lớp trừu tượng đều có điểm yếu.
Hôm nay, đọc bản tin của Crypto Briefing về RedStone cung cấp dữ liệu NAV on-chain cho quỹ HINC của Neuberger Berman, tôi thấy bài học đó lặp lại.
Một quỹ đầu tư hàng trăm tỷ đô la, một giao thức oracle module hóa, và một mảnh ghép RWA nữa được đặt vào bức tranh. Nhưng với tư cách là một auditor, tôi không thể chỉ nhìn vào bề mặt của thông cáo báo chí. Tôi phải mổ xẻ từng lớp.
Hook: Bất thường trong code
Bản tin không có code. Đó là bất thường đầu tiên. Một bài viết về tích hợp kỹ thuật, nhưng không có địa chỉ hợp đồng, không có thông số kỹ thuật, không có kết quả kiểm thử. Chỉ có lời tuyên bố: RedStone sẽ cung cấp dữ liệu NAV.
Đối với một người quen với việc đọc bytecode, điều này giống như một công ty xây dựng tuyên bố đã hoàn thành tòa nhà chọc trời mà không công bố bản vẽ kết cấu.
Context: Cơ chế giao thức
RedStone, như tôi đã theo dõi từ năm 2022, là một oracle module hóa. Nó không giống Chainlink, nơi các node tập trung đẩy dữ liệu lên chuỗi. RedStone cho phép người dùng “pull” dữ liệu khi cần, giảm gas. Họ lưu trữ dữ liệu đã ký trên Arweave, một lớp lưu trữ vĩnh viễn.
NAV (Net Asset Value) là giá trị tài sản ròng của một quỹ. Trong thế giới tài chính truyền thống, nó được tính toán mỗi ngày một lần, thường là T+1. Đưa NAV lên on-chain có nghĩa là biến nó thành một nguồn dữ liệu có thể được các hợp đồng thông minh đọc được.
HINC, quỹ của Neuberger Berman, là một quỹ token hóa. Điều này có nghĩa là cổ phần của quỹ được đại diện bởi token trên blockchain. Để token này có thể được sử dụng trong DeFi, làm tài sản thế chấp chẳng hạn, nó cần một nguồn giá đáng tin cậy. Đó là lúc RedStone xuất hiện.
Core: Phân tích cấp code + Trade-offs
Hãy tưởng tượng một hợp đồng thông minh cho vay, chấp nhận token HINC làm tài sản thế chấp. Nó cần giá trị của HINC để tính tỷ lệ thế chấp. Giá trị đó đến từ oracle của RedStone.
Nhưng vấn đề nằm ở đây: NAV là một con số được tính toán off-chain, dựa trên sổ sách kế toán của quỹ. RedStone chỉ là người vận chuyển. Nó lấy dữ liệu từ nguồn của Neuberger Berman, ký nó, và đưa lên chuỗi.
Điểm yếu số 1: Trust Root.
Trong audit, tôi thường kiểm tra ai là người ký dữ liệu. Nếu là một node duy nhất của RedStone, hoặc tệ hơn, là một API của Neuberger Berman, thì toàn bộ hệ thống dựa trên một điểm tin cậy duy nhất. Một lỗi trong hệ thống kế toán của quỹ, một sự chậm trễ trong cập nhật, hoặc một cuộc tấn công vào máy chủ của họ, và dữ liệu on-chain sẽ sai.
Không giống với Chainlink, nơi nhiều node độc lập tổng hợp dữ liệu từ nhiều nguồn, thiết lập của RedStone ở đây có vẻ là một đường ống dẫn trực tiếp từ quỹ đến chuỗi. Điều này nhanh hơn, rẻ hơn, nhưng kém an toàn hơn.
Điểm yếu số 2: Tần suất cập nhật.
NAV truyền thống là T+1. Nhưng thị trường crypto hoạt động 24/7. Một biến động lớn trong danh mục đầu tư của HINC có thể xảy ra, nhưng giá on-chain sẽ không thay đổi cho đến ngày hôm sau. Điều này tạo ra cơ hội arbitrage. Nếu một kẻ tấn công có thể thao túng giá của một tài sản trong danh mục của quỹ, họ có thể vay một lượng lớn HINC với giá NAV cũ, và bán nó trước khi giá được cập nhật.
Điểm yếu số 3: Xung đột mô hình định giá.
NAV là giá trị của một rổ tài sản. Nhưng trên thị trường thứ cấp, token HINC có thể giao dịch ở mức premium hoặc discount so với NAV. Nếu một giao thức DeFi sử dụng NAV làm giá để thanh lý, nó có thể dẫn đến các tình huống bất công. Ví dụ, nếu thị trường giao dịch HINC ở mức 0.95 NAV, nhưng oracle báo cáo NAV đầy đủ, thì một vị thế thế chấp bằng HINC có vẻ an toàn hơn thực tế.
Dựa trên kinh nghiệm audit của tôi, tôi đã thấy những lỗ hổng tương tự trong các giao thức RWA khác. Một dự án cho vay bằng token bất động sản đã dùng giá từ một oracle duy nhất, và kết quả là một loạt thanh lý sai khi giá trị thị trường của bất động sản giảm nhanh hơn oracle cập nhật.
Contrarian: Điểm mù bảo mật
Điểm mù lớn nhất ở đây không phải là kỹ thuật, mà là niềm tin. Cộng đồng crypto thường tin rằng “on-chain là minh bạch”. Nhưng trong trường hợp này, dữ liệu on-chain chỉ minh bạch về quá trình vận chuyển, không phải về nguồn gốc.
Chúng ta đang tin tưởng vào một bảng tính Excel của Neuberger Berman.
Tôi thường nói với các đồng nghiệp: “Một oracle chỉ mạnh bằng điểm yếu nhất trong chuỗi cung ứng dữ liệu của nó.” Ở đây, điểm yếu nhất là hệ thống kế toán off-chain, thứ mà chúng ta không thể audit.
Một góc nhìn phản trực giác khác: Sự hợp tác này, trên thực tế, có thể làm suy yếu tính phi tập trung của DeFi. Nếu các quỹ lớn như HINC bắt đầu thống trị thị trường cho vay, các giao thức sẽ phải phụ thuộc vào dữ liệu của chúng. Điều này tạo ra một lớp kiểm soát tập trung mới, nơi các tổ chức tài chính truyền thống, thông qua oracle, có thể ảnh hưởng đến hoạt động của toàn bộ hệ sinh thái.
Takeaway: Dự báo lỗ hổng
Tôi dự đoán rằng trong vòng 12 tháng tới, sẽ có một sự cố liên quan đến NAV oracle của một quỹ token hóa. Không nhất thiết là của RedStone hay HINC, nhưng của một ai đó trong cùng lĩnh vực. Lỗ hổng sẽ đến từ sự chậm trễ cập nhật hoặc từ một cuộc tấn công vào nguồn dữ liệu off-chain.
Cho đến lúc đó, các auditor như tôi sẽ tiếp tục viết các checklist mới, kiểm tra từng lớp của chuỗi cung ứng dữ liệu. Và các nhà đầu tư sẽ học được một bài học đắt giá: Không phải mọi thứ trên chuỗi đều đáng tin cậy, chỉ có code là sự thật.
Còn bây giờ, tôi sẽ mở lại Hardhat, và chạy một mô phỏng nữa. Đề phòng trường hợp oracle lại gãy.