Đèn Ấm Chain
BTC $78,406.5 -0.53%
ETH $2,461.16 -0.43%
SOL $96.68 -1.47%
BNB $701.9 +1.17%
XRP $1.41 -4.31%
DOGE $0.0863 -3.88%
ADA $0.2099 -3.14%
AVAX $7.31 -2.68%
DOT $0.8502 -4.13%
LINK $11.38 -1.35%
⛽ ETH Gas 28 Gwei
Sợ&Tham
65

Khi batchTransfer trở lại: Lỗ hổng ẩn mình trong cơn sốt thị trường tăng

Võ Thảo Pháp lý

Tháng 6/2017, tôi ngồi trước màn hình Remix với hợp đồng ERC-20 của ShibeCoin. Một token meme với logo chó shiba, nhưng tôi không quan tâm. Tôi chỉ muốn biết code của nó có chạy đúng không. Sau ba tuần cuối tuần audit, tôi phát hiện lỗi batchTransfer: hàm cho phép gửi token đến nhiều địa chỉ cùng lúc mà không kiểm tra msg.value. Kẻ tấn công có thể đúc token giả vô hạn. Tôi báo cáo 5 lỗi, trong đó có một lỗi chưa từng được ghi nhận trong OpenZeppelin lúc đó. Kết quả? Dự án shutdown sau ICO, nhưng tôi đã học được bài học đầu tiên: thị trường càng sốt, lỗi càng bị che giấu bởi marketing.

Bảy năm sau, giữa thị trường tăng 2025-2026, tôi thấy lại pattern cũ. Các dự án DeFi mới huy động hàng trăm triệu USD, code audit được quảng cáo nhưng thường bỏ qua các edge case trong logic batch. Một dự án AMM v2 mới ra mắt với tính năng 'batch swap' – cho phép người dùng swap nhiều token trong một giao dịch. Tôi mở mã nguồn, và mắt tôi dừng lại ở dòng 147 của router contract.

Khi batchTransfer trở lại: Lỗ hổng ẩn mình trong cơn sốt thị trường tăng

function batchSwapExactTokensForTokens(
    uint amountIn,
    uint minAmountOut,
    address[] memory path,
    address to,
    uint deadline
) external returns (uint[] memory amounts) {
    require(deadline >= block.timestamp, 'expired');
    // ...
    for (uint i = 0; i < path.length - 1; i++) {
        // swap logic
    }
    // ...
}

Nhìn qua thì ổn. Nhưng tôi nhận ra một chi tiết: amounts được trả về nhưng không được kiểm tra tính toàn vẹn trong các bước swap liên tiếp. Nếu một trong các swap trung gian thất bại (vì lý do trượt giá hoặc thanh khoản thấp), hàm vẫn tiếp tục chạy với giá trị amounts sai. Điều này cho phép kẻ tấn công thao túng giá đầu ra bằng cách gửi các path có độ dài khác nhau, kết hợp với một pool thanh khoản mỏng.

Tôi dựng môi trường test local với Hardhat, nhân bản pool thanh khoản của dự án trên Polygon testnet. Kết quả: tôi có thể làm giảm amountOut đến 30% so với giá trị thực tế, gây thiệt hại trực tiếp cho người dùng thực hiện batch swap. Báo cáo gửi đến team dự án, họ cảm ơn và fix trong vòng 48 giờ. Nhưng tôi tự hỏi: có bao nhiêu dự án khác đang chạy code tương tự?

Phân tích kỹ thuật cho thấy gốc rễ của vấn đề nằm ở thiết kế validation đầu vào. Trong Uniswap v2, hàm swapExactTokensForTokens kiểm tra amountOutMin ở cuối giao dịch, nhưng batch swap lại không có cơ chế này cho từng bước trung gian. Đây là một trade-off giữa gas optimization và bảo mật: các dev muốn giảm số lần gọi storage bằng cách gộp nhiều swap vào một loop, nhưng quên mất rằng mỗi swap có thể có trạng thái riêng.

Góc nhìn phản trực giác: thị trường tăng hiện tại đang tạo ra ảo tưởng rằng các dự án được audit kỹ lưỡng. Nhưng audit thường tập trung vào các vector tấn công phổ biến (reentrancy, overflow), bỏ qua các lỗi logic trong các hàm mới như batch hoặc multi-hop. Càng nhiều tính năng mới, càng nhiều điểm mù. Từ kinh nghiệm audit ShibeCoin đến Arbitrum Nitro bridge, tôi nhận thấy các lỗi nghiêm trọng nhất thường nằm ở những dòng code mà cả dev lẫn auditor đều cho là 'hiển nhiên đúng'.

Vậy điều gì sẽ xảy ra khi một dự án batch swap có TVL 500 triệu USD bị khai thác? Một câu hỏi mà tôi hy vọng các builder sẽ tự trả lời trước khi FOMO thúc đẩy họ deploy.

Khi batchTransfer trở lại: Lỗ hổng ẩn mình trong cơn sốt thị trường tăng

Giá thị trường

BTC Bitcoin
$78,406.5 -0.53%
ETH Ethereum
$2,461.16 -0.43%
SOL Solana
$96.68 -1.47%
BNB BNB Chain
$701.9 +1.17%
XRP XRP Ledger
$1.41 -4.31%
DOGE Dogecoin
$0.0863 -3.88%
ADA Cardano
$0.2099 -3.14%
AVAX Avalanche
$7.31 -2.68%
DOT Polkadot
$0.8502 -4.13%
LINK Chainlink
$11.38 -1.35%

Sợ & Tham

65

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

22
03
unlock Mở khóa Optimism

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

12
05
halving BCH Halving

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

15
04
halving Bitcoin Halving

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

08
04
upgrade Solana Firedancer

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

18
03
unlock Mở khóa token Sui

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

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ả →
# Tiền điện tử Giá
1
Bitcoin BTC
$78,406.5
1
Ethereum ETH
$2,461.16
1
Solana SOL
$96.68
1
BNB Chain BNB
$701.9
1
XRP Ledger XRP
$1.41
1
Dogecoin DOGE
$0.0863
1
Cardano ADA
$0.2099
1
Avalanche AVAX
$7.31
1
Polkadot DOT
$0.8502
1
Chainlink LINK
$11.38

🐋 Theo dõi cá voi

🔵
0x88b5...08b3
1 giờ trước
Stake
47,788 BNB
🔴
0x2057...bfa3
6 giờ trước
Chuyển ra
1,484,298 USDC
🔴
0xc0dc...5387
30 phút trước
Chuyển ra
3,741 ETH

💡 Smart Money

0x9e55...2416
Bot chênh lệch giá
+$3.1M
88%
0x974a...fc15
Nhà đầu tư sớm
-$2.3M
60%
0xc950...4243
Thợ đào DeFi hàng đầu
+$4.8M
93%