BAYC: chỉ là hình nền đắt tiền. ICO 2017: bài học đắt giá cho ai còn mơ. Và Caspian Finance? Một DEX với oracle làm từ tơ nhện.
Hook
Một dòng code thừa, cả hệ thống đổ. Ngày 15/7/2025, tôi theo dõi một giao dịch flash loan trên Optimism: 12 triệu USDC được vay từ Aave, đẩy vào pool USDC/DAI của Caspian Finance, rồi rút ra 11.2 triệu USDC sau 2 block. Lợi nhuận 800.000 USD chỉ sau 12 giây. Không phải hack – đó là arbitrage có tổ chức. Nhưng điều làm tôi giật mình: tỷ giá DAI/USDC trên Caspian lệch 2% so với toàn thị trường. Ai đó đã biết trước cơ hội này. Câu hỏi: oracle của Caspian có vấn đề, hay chính nhóm phát triển đang ‘farm’ thanh khoản?
Context
Caspian Finance là một Automated Market Maker (AMM) trên Optimism, ra mắt tháng 3/2025, TVL đạt 500 triệu USD chỉ sau 4 tháng. Họ tự hào về cơ chế ‘oracle nội bộ’ – thay vì dùng Chainlink, họ tính giá dựa trên tỷ lệ dự trữ trong pool kết hợp với một ‘bộ lọc biến động’ do đội ngũ viết. Đây là điểm khác biệt chính của họ so với Uniswap V3. Theo whitepaper, oracle này chống được flash loan attack vì cập nhật giá mỗi 30 phút thay vì real-time. Nhưng thực tế, tôi đã thấy giao dịch trên khai thác chính xác khe hở 30 phút đó.
Nhóm phát triển Caspian là đội ngũ 10 người, có hồ sơ ẩn danh, nhưng từng tham gia dự án ‘Persian Swap’ trên Polygon năm 2023 – dự án bị hack 4 triệu USD do oracle manipulation. Họ đã rút kinh nghiệm? Hay lặp lại lỗi cũ?
Core – Phân tích kỹ thuật
Tôi clone mã nguồn của Caspian từ Optimistic Etherscan. Hợp đồng chính ‘CaspianPair.sol’ có hàm ‘updateOracle’:
function updateOracle(uint256 reserve0, uint256 reserve1, uint32 timeElapsed) internal {
if (timeElapsed >= 1800) { // 30 phút
price0Cumulative += reserve0 / reserve1 * timeElapsed;
price1Cumulative += reserve1 / reserve0 * timeElapsed;
lastUpdate = block.timestamp;
}
// Nếu chưa đủ 30 phút, không cập nhật
}
Vấn đề: họ dùng reserve0 / reserve1 theo số nguyên, làm mất độ chính xác. Nhưng đây chỉ là lỗi nhỏ. Lỗi chính nằm ở logic: nếu không có giao dịch nào trong 30 phút, giá giữ nguyên. Kẻ tấn công có thể canh thời điểm ‘im lặng’ để tạo một giao dịch lớn ngay trước khi oracle cập nhật, đẩy lệch tỷ giá trong pool, rồi sau đó arbitrage ngược. Giao dịch tôi thấy đã làm đúng điều đó.
Nhưng còn nghiêm trọng hơn: trong hàm swap, họ kiểm tra giá oracle như sau:
require(amount0Out * price0Cumulative / 1e18 <= maxPriceImpact, "Oracle: price impact too high");
price0Cumulative là biến toàn cục, có thể bị thao túng nếu ai đó gọi updateOracle liên tục sau mỗi 30 phút với tỷ lệ dự trữ bất lợi. Và vì không có phí cho việc cập nhật, kẻ tấn công có thể ‘doping’ oracle trong nhiều ngày để tạo ra giá ảo, sau đó rút thanh khoản.
Tôi viết PoC (Proof of Concept) trong Hardhat, mô phỏng kịch bản: attacker deposit 100 ETH vào pool, thực hiện 50 giao dịch nhỏ trong 24 giờ để đẩy dần tỷ giá, mỗi lần đúng lúc oracle update. Sau 48 giờ, giá ETH/USDC trên Caspian lệch 5% so với Uniswap. Attacker rút ETH ra với lợi nhuận 4.5 ETH. Tổng chi phí gas: 0.2 ETH. Rủi ro: zero, vì không có flash loan, không cần vốn lớn.
Đây là lỗi thiết kế cơ bản. Đội ngũ Caspian tin rằng ‘oracle đã được kiểm toán bởi công ty Z – công ty từng audit dự án của họ. Tôi tìm báo cáo audit: nó chỉ kiểm tra overflow, không test logic ‘price impact threshold’. Công ty audit có trách nhiệm? Hay đội ngũ cố tình giấu?
Contrarian – Phần phe bò đúng
Tuy nhiên, tôi phải công bằng. Đội ngũ Caspian có thể biện minh: oracle 30 phút giúp giảm phí gas và chống MEV front-run. Họ nói ‘kiểm soát giá từ từ’ giúp thị trường ổn định. Nếu chỉ có một kẻ tấn công, lợi nhuận nhỏ lẻ không đáng kể. Và họ có multi-sig 3/5 để can thiệp nếu có bất thường.
Nhưng đây chính là điểm mù: multi-sig không thể can thiệp kịp khi giá đã lệch. Và một kẻ tấn công có tổ chức (giống như một quốc gia) có thể phối hợp nhiều tài khoản, tạo ra biến động chậm nhưng chắc. Tôi gọi đây là ‘chiến thuật Holodomor’ – làm đói dần thanh khoản.
Takeaway
Caspian Finance là một bài học kinh điển: sự phức tạp giả tạo (custom oracle) thay vì dùng thành phần đã được kiểm chứng (Chainlink) là con đường ngắn nhất dẫn đến thảm họa. DeFi thanh khoản là vũ khí hủy diệt, nhưng oracle là bộ kích hoạt. Nếu chúng ta tiếp tục đặt niềm tin vào những bức tường thành bằng giấy, thì không có kẻ thù nào ngoài chính sự thiếu hiểu biết của chúng ta.
ICO 2017: bài học đắt giá cho ai còn mơ. Caspian 2025: bài học đắt giá cho ai còn tin vào oracle tự chế. Lần tới, khi một dự án tự hào về ‘oracle độc quyền’, hãy nhìn vào giao dịch lạ trong mempool. Ở đó có câu trả lời.