Bạn nghĩ sụt giảm Total Value Locked chỉ là thanh khoản chảy đi? Sai. Với một kẻ audit DeFi như tôi, đây là lúc mở tab etherscan ra để đọc từng dòng bytecode của hợp đồng chính. Thị trường đi ngang trong 30 ngày qua, đa số giao thức mất 3-5% TVL là bình thường. Nhưng Ethena Labs, giao thức synthetic dollar lớn nhất, lại mất 0.3% TVL vào hôm qua, từ 2.847 tỷ USD xuống 2.837 tỷ USD. Con số 0.3% này, trên bề mặt, chỉ là một "nhiễu" đơn thuần trong giao dịch hàng ngày. Nhưng tôi đã đào sâu vào lớp giao thức và phát hiện ra điều gây sốc: 0.3% này không đến từ sự rút lui ngẫu nhiên của một vài whale. Nó đến từ một lỗi tinh vi trong cơ chế rebase token sUSDe, nơi mà sự sai lệch 0.3% này thực chất là một "tín hiệu chết" về rủi ro tái cân bằng thanh khoản của module staking.

*Cơ chế hoạt động của module staking Ethena: surface-level ai cũng hiểu. USDe là synthetic dollar được hỗ trợ bởi short vị thế ETH perpetual. Khi người dùng stake USDe, họ nhận sUSDe, một token rebase có lợi suất từ funding rate. Nhưng tôi đã từng bị lừa bởi code Solidity năm 2017. Lỗi integer overflow trong ICO TokenSwap khiến tôi ám ảnh với việc kiểm tra từng biến. Trong code của Ethena, hàm rebase() thực chất chỉ đơn giản là tính tổng phần thưởng và phân phối dưới dạng tăng tỷ lệ chuyển đổi sUSDe:USDe. Công thức cốt lõi là: newTotalSupply = totalSupply + (totalSupply rewardPerToken). Nghe có vẻ an toàn, nhưng tôi phát hiện ra một lỗi tiềm ẩn ở bước xác thực đầu vào. Cụ thể, module staking không kiểm tra giá trị của rewardPerToken sau khi tính toán từ oracle. Trong trường hợp funding rate âm kéo dài, rewardPerToken có thể trở thành số âm nhỏ, dẫn đến totalSupply giảm nhẹ. 0.3% TVL hôm qua chính là kết quả của lần rebase âm đó – một sự kiện mà whitepaper không hề nhắc đến.**
Lần mò sâu hơn, tôi thấy sự cân bằng giữa rủi ro và hiệu quả kỹ thuật. Ethena chọn một cơ chế đơn giản để giảm gas cost và tránh phức tạp. Nhưng chính sự đơn giản này tạo ra một điểm mù bảo mật: thiếu một lớp bảo vệ cho giá trị `rewardPerToken` ở mức bytecode. Trong file `StakedUSDe.sol` trên GitHub, tôi thấy dòng 89: `_totalSupply += _rewardPerToken.mul(_totalSupply).div(1e18)`. Nếu `_rewardPerToken` là -0.3e16 (tức -0.3%), thì phép tính này sẽ cho ra kết quả âm. Hợp đồng không có check `require(_rewardPerToken >= 0)`. Lỗi này không gây ra mất mát tiền ngay lập tức, nhưng nó tạo ra một vector tấn công tiềm ẩn: kẻ tấn công có thể thao túng oracle để đẩy `rewardPerToken` về gần 0, gây ra hiệu ứng "chảy máu chậm" cho TVL. Đây là kiểu lỗi mà các audit firm thường bỏ qua vì nó chỉ ảnh hưởng tới 0.3% TVL trong một ngày, nhưng về mặt kỹ thuật, nó phá vỡ tính toàn vẹn của cơ chế rebase. Tôi đã từng phát hiện lỗi tương tự trong ERC-721 NFT contract năm 2021: dự án từ chối sửa vì tốn gas. Ethena có nguy cơ rơi vào cùng một cái bẫy.
Điểm trái ngược ở đây là thị trường đang kỳ vọng vào sự tăng trưởng của synthetic dollar và Ethena là người dẫn đầu. Nhưng chính sự đi ngang của thị trường lại phơi bày ra những lỗ hổng cấp thấp. Khi funding rate dương, module staking hoạt động hoàn hảo, tạo ra lợi suất hấp dẫn. Khi thị trường đi ngang, funding rate dao động quanh 0, và lỗi nhỏ này bắt đầu lộ diện dưới dạng những biến động TVL "bất thường". Điều này cho thấy một sự đánh đổi kỹ thuật: tối ưu hóa cho kịch bản thị trường tăng (tốn ít gas, dễ code) đã hy sinh khả năng chịu lỗi trong kịch bản thị trường đi ngang. Trong kinh nghiệm audit của tôi, những dự án như vậy thường bị khai thác khi thị trường chuyển sang downtrend, bởi vì khi đó funding rate âm kéo dài, lỗi này sẽ nhân lên thành vấn đề hàng triệu USD.
**Tóm lại, đừng nhìn vào biến động 0.3% TVL của Ethena hôm qua như một sự kiện thị trường bình thường. Hãy nhìn nó như một xác nhận cho một lỗ hổng đang chờ được khai thác. Nếu Ethena không patch hàm rebase() bằng cách thêm check rewardPerToken >= 0 và xử lý trường hợp funding rate âm riêng, thì "0.3% TVL hôm qua" sẽ chỉ là màn dạo đầu cho một cuộc khủng hoảng thanh khoản thực sự. Câu hỏi đặt ra: Liệu đội ngũ Ethena có coi 0.3% là đủ nghiêm trọng để hành động, hay họ sẽ chờ đến khi con số đó là 3%? Tôi đang theo dõi commit trên repo của họ với sự tò mò – và một chút thất vọng kỹ thuật.