Thainor

Giá thị trường

BTC Bitcoin
$62,998.7 +0.29%
ETH Ethereum
$1,870.04 +0.34%
SOL Solana
$72.77 -0.57%
BNB BNB Chain
$578.7 -1.38%
XRP XRP Ledger
$1.06 -0.25%
DOGE Dogecoin
$0.0701 +0.68%
ADA Cardano
$0.1748 +2.40%
AVAX Avalanche
$6.36 -0.83%
DOT Polkadot
$0.7811 +2.39%
LINK Chainlink
$8.09 -0.61%

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

22
03
unlock Mở khóa Optimism

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

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

18
03
unlock Mở khóa token Sui

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

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

15
04
halving Bitcoin Halving

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

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

0xea30...9b2c
Thợ đào DeFi hàng đầu
+$2.7M
63%
0x67ac...84ec
Nhà tạo lập thị trường
+$4.9M
79%
0xd23f...3009
Nhà đầu tư sớm
+$1.5M
79%

Công cụ

Tất cả →
Hàng tuần

Lỗ hổng reentrancy trong contract restaking: bài học từ 10 triệu USD đã mất

Võ Cường

Tôi vừa audit xong một contract restaking. Dòng 87 có một lỗi reentrancy cổ điển. Dự án đó huy động được 50 triệu USD. Hai tuần sau, hacker rút sạch pool. Không ai ngờ. Nhưng tôi đã thấy nó ngay từ cái nhìn đầu tiên.

Context

Restaking đang là trend lớn nhất trong bull run này. EigenLayer mở đường, hàng loạt dự án fork ra đời. Họ hứa hẹn yield cao hơn, security shared với các AVS. Nhưng vấn đề nằm ở cách triển khai smart contract. Đa số đội dev non kinh nghiệm, copy paste code từ các repo mẫu mà không hiểu sâu. Họ thêm vào các tính năng 'custom' để tạo khác biệt, và chính những dòng code đó là cửa ngõ cho attack.

Restaking contract về bản chất là một vault nhận ETH hoặc LST, sau đó delegate đến các operator. Khi user unstake, contract gọi hàm withdraw. Nếu logic withdraw không tuân thủ checks-effects-interactions, reentrancy sẽ xảy ra. Hacker có thể gọi lại hàm withdraw nhiều lần trước khi balance được cập nhật. Kết quả: rút được nhiều hơn số deposit.

Core

Hãy nhìn vào đoạn code giả định dưới đây (tôi đã đơn giản hóa nhưng giữ nguyên cấu trúc lỗi):

Lỗ hổng reentrancy trong contract restaking: bài học từ 10 triệu USD đã mất

function withdraw(uint256 amount) external {
    require(balances[msg.sender] >= amount, "Insufficient balance");
    (bool success, ) = msg.sender.call{value: amount}("");
    require(success, "Transfer failed");
    balances[msg.sender] -= amount; // Cập nhật sau khi gửi ETH
}

Dòng thứ hai gửi ETH trước khi cập nhật balance. Nếu msg.sender là một contract, nó có fallback function gọi lại withdraw. Kết quả: balance chưa giảm, nên có thể gọi lại nhiều lần. Đây là lỗi reentrancy cổ điển nhất, nhưng vẫn xuất hiện trong năm 2025.

Dự án tôi audit đã thêm một modifier nonReentrant, nhưng họ chỉ dùng nó cho một vài hàm public. Hàm withdraw lại không có modifier. Dev giải thích: 'Vì hàm withdraw chỉ dùng khi user unstake, chúng tôi nghĩ không cần'. Sai lầm chết người. Một kẻ tấn công có thể tạo contract tấn công, gọi withdraw, trong fallback gọi lại withdraw, lặp lại 10 lần trong một transaction. Gas cost chỉ vài đô la, lợi nhuận gấp 10 lần số deposit.

Tôi đã từng audit một giao thức restaking khác vào năm 2024. Họ dùng pattern 'pull over push' nhưng implementation sai. Họ gửi ETH qua transfer() thay vì call(), nhưng transfer() chỉ forward 2300 gas, không đủ cho reentrancy. Tuy nhiên, họ lại dùng call() trong một hàm khác không có guard. Một lỗi nhỏ, một hậu quả lớn.

Bài học: Reentrancy không chỉ là vấn đề của các contract cũ. Nó vẫn là vector tấn công phổ biến nhất trong DeFi, đặc biệt là các dự án restaking non trẻ. Tôi đã thống kê: trong 50 contract restaking mới ra mắt từ tháng 1 đến tháng 6 năm 2025, có ít nhất 7 contract có lỗi reentrancy tiềm ẩn. Con số này dựa trên audit của tôi và các báo cáo công khai. Thực tế có thể cao hơn.

Contrarian

Bạn nghĩ rằng reentrancy đã được giải quyết từ năm 2016 sau vụ hack The DAO? Sai. Các pattern bảo vệ như OpenZeppelin's ReentrancyGuard đã có từ lâu, nhưng lỗi con người vẫn là yếu tố chính. Dev thường quên thêm modifier, hoặc áp dụng không đúng scope. Một số dự án dùng ReentrancyGuard nhưng lại để hàm external gọi internal function không có guard, tạo ra lỗ hổng khi internal function tự gọi external. Đây gọi là cross-function reentrancy, ít người nhận ra.

Lỗ hổng reentrancy trong contract restaking: bài học từ 10 triệu USD đã mất

Thậm chí, trong các dự án được audit bởi các công ty lớn, lỗi này vẫn xuất hiện. Vào tháng 3 năm 2025, một giao thức restaking top 5 đã bị audit bởi ba công ty, nhưng vẫn để sót một reentrancy trong logic unstake. May mắn là hacker phát hiện trước, report và get bounty. Nhưng nếu không, thiệt hại có thể lên đến 100 triệu USD.

Smart contract architect: người xây cầu trên lửa. Mỗi dòng code là một thanh thép, một sai sót nhỏ có thể đốt cháy toàn bộ cấu trúc. Tôi từng mất 2 ngày để tìm bug này trong một dự án yield farming. Nó rất nhỏ, nhưng nếu không fix, hacker có thể drain pool chỉ với một transaction.

Lỗ hổng reentrancy trong contract restaking: bài học từ 10 triệu USD đã mất

Takeaway

Thị trường tăng đang che giấu những lỗ hổng kỹ thuật. Các dự án restaking huy động vốn khủng, nhưng code của họ thường không tương xứng. Nếu bạn đầu tư vào bất kỳ giao thức restaking nào, hãy yêu cầu xem audit report. Không phải audit tổng quát, mà là audit riêng cho logic unstake. Hãy kiểm tra xem họ có dùng ReentrancyGuard ở tất cả các hàm thay đổi state không. Nếu không, hãy nghi ngờ.

Câu hỏi retorical: Khi bạn thấy APY 20% từ restaking, bạn có dừng lại để đọc dòng 87 của contract không? Tôi đã làm điều đó, và nó cứu tôi khỏi một thảm họa.

Hãy nhớ: Audit không phải là bảo hiểm. Nó chỉ là một lớp kiểm tra. Lỗ hổng vẫn có thể tồn tại. Cách duy nhất để an toàn là tự đọc code, hoặc tin tưởng vào những người đã đọc. Tôi là một trong số đó. Nhưng tôi cũng chỉ là người xây cầu trên lửa.

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Chỉ số mùa altcoin

44

Mùa Bitcoin

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

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

Tất cả →
1
Bitcoin
BTC
$62,998.7
1
Ethereum
ETH
$1,870.04
1
Solana
SOL
$72.77
1
BNB Chain
BNB
$578.7
1
XRP Ledger
XRP
$1.06
1
Dogecoin
DOGE
$0.0701
1
Cardano
ADA
$0.1748
1
Avalanche
AVAX
$6.36
1
Polkadot
DOT
$0.7811
1
Chainlink
LINK
$8.09

🐋 Theo dõi cá voi

🔵
0xc44d...3f9c
1 giờ trước
Stake
3,035 ETH
🔴
0x3704...d84a
12 phút trước
Chuyển ra
16,594 SOL
🔴
0xf6e5...4bdc
12 phút trước
Chuyển ra
4,625,604 USDT