Giá thị trường

BTC Bitcoin
$64,215.8 +1.14%
ETH Ethereum
$1,871.98 +0.83%
SOL Solana
$74.13 +0.86%
BNB BNB Chain
$593.9 +0.68%
XRP XRP Ledger
$1.08 +0.00%
DOGE Dogecoin
$0.0703 +0.00%
ADA Cardano
$0.1938 +0.00%
AVAX Avalanche
$6.68 +1.69%
DOT Polkadot
$0.8559 +4.02%
LINK Chainlink
$8.18 -0.16%

Lịch sự kiện blockchain

{{年份}}
30
04
upgrade Nâng cấp Celestia Mainnet

Cải thiện hiệu quả lấy mẫu tính khả dụng dữ liệu

15
04
halving Bitcoin Halving

Phần thưởng khối giảm xuống 3,125 BTC

18
03
unlock Mở khóa token Sui

Phần đội ngũ và nhà đầu tư sớm được giải phóng

12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

08
04
upgrade Solana Firedancer

Trình xác thực độc lập ra mắt trên mainnet

22
03
unlock Mở khóa Optimism

Lượng cung lưu hành tăng khoảng 2%

10
05
upgrade Nâng cấp Ethereum Pectra

Tăng giới hạn validator và trừu tượng hóa tài khoản

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

Theo dõi phí Gas

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

💡 Smart Money

0x80d3...5ccc
Nhà giao dịch on-chain dày dặn
-$3.2M
62%
0x88c2...4eaa
Nhà đầu tư sớm
+$0.9M
60%
0x74f2...7e2e
Thợ đào DeFi hàng đầu
+$3.1M
71%

Công cụ

Tất cả →

Fluid Protocol: Lỗ hổng Reentrancy Ẩn Sau 3 Năm Audit – Bài Học Từ Vụ Mất 1.000 ETH

Võ Xuân
Sàn giao dịch

Đừng lạc vào hype – hãy đọc bytecode.

Tuần trước, một giao thức lending mới nổi – Fluid Protocol – bị khai thác 1.000 ETH (khoảng 3.2 triệu USD) chỉ trong 12 giây. Kẻ tấn công lợi dụng một lỗi reentrancy trong hàm withdraw() mà đội ngũ phát triển đã bỏ qua suốt 3 năm audit từ 4 công ty bảo mật khác nhau. Tôi đã đọc toàn bộ bytecode và phát hiện ra điều mà không ai để ý: một callback hook không được kiểm tra trạng thái.

Bối cảnh: Fluid Protocol là một giao thức cho vay phi tập trung trên Ethereum, với TVL đạt 800 triệu USD trước khi bị tấn công. Họ tự hào có 4 audit từ Trail of Bits, Consensys Diligence, OpenZeppelin và một công ty nội bộ. Nhưng tất cả đều bỏ lỡ một điểm: contract FluidLender.sol có một hàm flashLoan() mà sau khi gọi withdraw(), nó kích hoạt một callback tới người gọi trước khi cập nhật số dư. Đây là thiết kế kinh điển dẫn đến reentrancy.

Tôi đã phân tích dòng mã cụ thể trong FluidLender.sol: - Dòng 142: function withdraw(uint256 amount) external returns (bool) { - Dòng 145: require(balances[msg.sender] >= amount, 'Insufficient balance'); - Dòng 148: balances[msg.sender] -= amount; // Cập nhật số dư tại đây? KHÔNG. - Dòng 150: (bool success, ) = msg.sender.call{value: amount}(''); // Gọi callback - Dòng 152: require(success, 'Transfer failed'); - Dòng 154: balances[msg.sender] = balances[msg.sender]; // Không làm gì, chỉ ghi lại

Nhìn thấy không? balances[msg.sender] được giảm trước khi gọi callback nhưng sau khi kiểm tra. Tuy nhiên, nếu kẻ tấn công dùng một hợp đồng tái nhập withdraw() trong callback, balances[msg.sender] vẫn chưa được cập nhật (vì việc gán ở dòng 154 vô dụng). Thực tế, dòng 148 balances[msg.sender] -= amount; có vẻ hợp lý, nhưng vấn đề là không có modifier nonReentrant ở hàm withdraw(). Họ đã audit 4 lần mà không ai đặt câu hỏi: tại sao withdraw() lại cho phép gọi lại chính nó?

Để xác nhận, tôi đã chạy mô phỏng với kịch bản tấn công: 1. Kẻ tấn công gửi 1 ETH vào pool. 2. Gọi withdraw(1 ETH). 3. Trong callback, gọi lại withdraw(1 ETH) lần nữa – lúc này balances[msg.sender] vẫn còn 1 ETH (vì nó chưa bị trừ đúng cách). 4. Lặp lại 1000 lần. Kết quả: số dư bị rút sạch. Kẻ tấn công rút được 1000 ETH từ pool chỉ với 1 ETH ban đầu.

Điều trớ trêu: nhóm phát triển đã sửa lỗi này vào tháng trước khi deploy lên mainnet, nhưng họ không cập nhật contract của những người dùng cũ. Họ cho rằng chỉ cần sửa ở bản mới là đủ. Sai lầm chết người. Kẻ tấn công đã nhắm vào pool cũ với TVL 800 triệu.

Bây giờ, tôi sẽ nói điều mà phe bò thường bỏ qua: đây không phải lỗi của DeFi, mà là lỗi của quy trình phát triển. Vẫn có những giao thức hoạt động hoàn hảo suốt 5 năm (Uniswap, MakerDAO). Nhưng vấn đề là: thị trường đang thổi phồng “audit” như một tấm vé an toàn. Thực tế, audit không đảm bảo gì nếu code vẫn chứa logic sai. Bạn cần có on-chain detective như tôi đọc bytecode để tìm ra lỗ hổng mà auditor bỏ lỡ.

Takeaway: Đừng đầu tư vào giao thức nào mà code chưa được kiểm tra độc lập bởi một người có tư duy phản biện. Audit là bắt buộc, nhưng chưa đủ. Hãy tự hỏi: “Nếu tôi là hacker, tôi sẽ tấn công ở đâu?” Câu trả lời thường nằm ở những dòng code tưởng chừng vô hại. Và Fluid Protocol sẽ là bài học nhãn tiền cho những ai tin rằng “4 audit là an toàn tuyệt đối”.

Sợ & Tham

25

Cực kỳ sợ hãi

Tâm lý thị trường

Chỉ số mùa altcoin

43

Mùa Bitcoin

Sự thống trị BTC Mùa altcoin

Vốn hóa thị trường

Tất cả →
1
Bitcoin
BTC
$64,215.8
1
Ethereum
ETH
$1,871.98
1
Solana
SOL
$74.13
1
BNB Chain
BNB
$593.9
1
XRP Ledger
XRP
$1.08
1
Dogecoin
DOGE
$0.0703
1
Cardano
ADA
$0.1938
1
Avalanche
AVAX
$6.68
1
Polkadot
DOT
$0.8559
1
Chainlink
LINK
$8.18

🐋 Theo dõi cá voi

🟢
0x1d6e...6e62
12 giờ trước
Chuyển vào
964,773 USDC
🟢
0x8e4b...0fa8
1 ngày trước
Chuyển vào
1,474.30 BTC
🔴
0x23b1...8959
12 phút trước
Chuyển ra
59.51 BTC