XoanLink
BTC $79,640.3 -2.30%
ETH $2,454.14 -2.35%
SOL $101.64 -3.57%
BNB $720.4 -0.58%
XRP $1.4 -4.86%
DOGE $0.0845 -5.48%
ADA $0.2131 -4.05%
AVAX $7.38 -1.91%
DOT $0.8720 -2.91%
LINK $11.7 -1.34%
⛽ ETH Gas 28 Gwei
Sợ&Tham
74

Lỗ hổng reentrancy trong AMM mới: bytecode không bao giờ nói dối

Phan Hải Tài chính

Tôi nhận được một hợp đồng Uniswap V3 fork vào tuần trước. Dự án vừa huy động 50 triệu USD, TVL đạt 200 triệu trong 48 giờ. Mở file .sol ra, tôi thấy ngay một hàm withdraw() không có reentrancy guard.

Đây là một dấu hiệu quen thuộc. Năm 2017, khi còn làm việc tại một quỹ đầu tư nhỏ ở Austin, tôi đã phát hiện lỗ hổng tương tự trong hợp đồng ICO của "Aragon One". Khi đó, tôi submit issue lên GitHub và yêu cầu đội phát triển vá lỗi trước khi triển khai. Họ nghe theo, và quỹ đã tránh mất 200 ETH.

Lần này, dự án có vẻ vội vàng. Họ copy code từ Uniswap V3, thêm tính năng flash loan, nhưng quên mất một điều cơ bản: reentrancy vẫn là kẻ thù số một.

Bytecode không bao giờ nói dối. Tôi chạy thử fuzz testing với foundry, chỉ sau 3 phút, test đã fail. Hàm withdraw() gọi lại chính nó qua một hợp đồng độc hại, rút hết thanh khoản. Audit? Tôi thích fuzz testing hơn, vì nó cho thấy thực tế, không phải báo cáo dài dòng.

Hãy nhìn vào mã nguồn:

function withdraw(uint amount) public {
    require(balances[msg.sender] >= amount);
    (bool success, ) = msg.sender.call{value: amount}("");
    balances[msg.sender] -= amount;
}

Dòng call ở giữa - nếu msg.sender là một hợp đồng, nó có thể gọi lại withdraw() trước khi balances được cập nhật. Đây là lỗ hổng cổ điển từ thời DAO hack 2016. Thế mà năm 2024, vẫn có dự án triệu USD mắc phải.

Sự thật phản trực giác: Các dự án lớn thường có bảo mật tồi tệ hơn các dự án nhỏ, vì họ tin vào thương hiệu thay vì code. Họ thuê audit từ các công ty lớn, nhưng audit chỉ là một phần. Tôi đã từng đọc báo cáo audit dài 50 trang, nhưng không một dòng nào đề cập đến reentrancy ở hàm withdraw. Tại sao? Vì auditor tập trung vào logic kinh doanh, không phải pattern an toàn cơ bản.

Hệ quả: Nếu lỗ hổng này bị khai thác, dự án sẽ mất toàn bộ TVL trong một block. Flash loan kết hợp reentrancy là combo chết người. Thị trường tăng đang che giấu những rủi ro này. Khi mọi người FOMO vào các dự án mới, họ quên kiểm tra code.

Takeaway: Đừng tin vào white paper, hãy đọc code. Nếu bạn không thể đọc Solidity, ít nhất hãy kiểm tra xem dự án có dùng OpenZeppelin ReentrancyGuard không. Một dòng import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; có thể cứu bạn khỏi mất tiền.

Trong thị trường tăng này, mỗi ngày có hàng chục dự án ra mắt. Và tôi cá rằng, ít nhất một trong số chúng có lỗ hổng reentranny. Câu hỏi là: bạn sẽ là người phát hiện ra nó, hay là nạn nhân?

Giá thị trường

BTC Bitcoin
$79,640.3 -2.30%
ETH Ethereum
$2,454.14 -2.35%
SOL Solana
$101.64 -3.57%
BNB BNB Chain
$720.4 -0.58%
XRP XRP Ledger
$1.4 -4.86%
DOGE Dogecoin
$0.0845 -5.48%
ADA Cardano
$0.2131 -4.05%
AVAX Avalanche
$7.38 -1.91%
DOT Polkadot
$0.8720 -2.91%
LINK Chainlink
$11.7 -1.34%

Sợ & Tham

74

Tham lam

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
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

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

08
04
upgrade Solana Firedancer

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

12
05
halving BCH Halving

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

22
03
unlock Mở khóa Optimism

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

18
03
unlock Mở khóa token Sui

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

Tin nhanh 7x24h

Thêm >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

🧮 Công cụ

Tất cả →

Chỉ số mùa altcoin

41

Mùa Bitcoin

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

Theo dõi phí Gas

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

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

Tất cả →
1
Bitcoin
BTC
$79,640.3
1
Ethereum
ETH
$2,454.14
1
Solana
SOL
$101.64
1
BNB Chain
BNB
$720.4
1
XRP Ledger
XRP
$1.4
1
Dogecoin
DOGE
$0.0845
1
Cardano
ADA
$0.2131
1
Avalanche
AVAX
$7.38
1
Polkadot
DOT
$0.8720
1
Chainlink
LINK
$11.7

🐋 Theo dõi cá voi

🔵
0x254c...1f40
12 phút trước
Stake
14,934 SOL
🔵
0xed76...dbab
12 giờ trước
Stake
2,093,556 USDC
🔴
0x9689...5cd3
12 phút trước
Chuyển ra
2,819,918 USDT

💡 Smart Money

0x056c...f2ca
Bot chênh lệch giá
+$1.7M
85%
0x9977...a101
Nhà tạo lập thị trường
+$2.0M
87%
0xde75...32fb
Nhà tạo lập thị trường
-$3.9M
83%