BTC $63,792.7 -1.03%
ETH $1,914.31 -0.62%
SOL $74.34 -1.06%
BNB $573.3 +0.95%
XRP $1.07 -1.97%
DOGE $0.0708 -0.74%
ADA $0.1582 -0.06%
AVAX $6.54 +0.20%
DOT $0.7622 -3.65%
LINK $8.36 -2.31%
⛽ ETH Gas 28 Gwei
Sợ&Tham
29

Giá thị trường

BTC Bitcoin
$63,792.7 -1.03%
ETH Ethereum
$1,914.31 -0.62%
SOL Solana
$74.34 -1.06%
BNB BNB Chain
$573.3 +0.95%
XRP XRP Ledger
$1.07 -1.97%
DOGE Dogecoin
$0.0708 -0.74%
ADA Cardano
$0.1582 -0.06%
AVAX Avalanche
$6.54 +0.20%
DOT Polkadot
$0.7622 -3.65%
LINK Chainlink
$8.36 -2.31%

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

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

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

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

22
03
unlock Mở khóa Optimism

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

08
04
upgrade Solana Firedancer

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

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

0x36cb...4526
Ví lưu ký tổ chức
+$4.4M
84%
0xd765...08d9
Nhà giao dịch on-chain dày dặn
+$5.0M
87%
0x5818...4ff7
Nhà giao dịch on-chain dày dặn
+$0.6M
72%

Công cụ

Tất cả →

Đào mã thấy lỗi: Bài học từ sự sụp đổ của một giao thức cho vay Việt Nam

Phan Tuệ Nghiên cứu

Hook

Đào mã thấy lỗi, im lặng là vàng.

Hai tuần trước, tôi nhận được một contract staking từ một dự án DeFi Việt Nam khá nổi – vốn hóa từng chạm 50 triệu USD. Tôi mở Remix, compile, deploy thử trên testnet. Chạy thử hàm withdraw với số dư 0.01 ETH. Hợp đồng trả về 0.01 ETH. Rồi tôi thử gọi lại withdraw ngay trong cùng một transaction, trước khi số dư được cập nhật. Hợp đồng trả về thêm 0.01 ETH nữa. Đào mã thấy lỗi, im lặng là vàng. Lỗi reentrancy cổ điển – nhưng nó tồn tại trong một codebase đã qua hai lần audit bởi các công ty bảo mật quốc tế.

Context

Giao thức cho vay này (tạm gọi là VN-Lend) ra mắt năm 2023, huy động 10 triệu USD từ các quỹ đầu tư mạo hiểm. Mô hình: người dùng gửi tài sản thế chấp (USDT, ETH, BTC) để vay stablecoin VNDC. Lãi suất biến động theo cung cầu. Tổng giá trị khóa (TVL) từng đạt 200 triệu USD. Thị trường giảm 2024 khiến TVL lao dốc còn 30 triệu USD. Dự án vẫn sống, nhưng thanh khoản cạn, bẫy còn đó. Khi tôi audit, tôi phát hiện một lỗi reentrancy trong module withdrawCollateral. Cụ thể, hàm withdraw gọi msg.sender.call{value: amount}("") trước khi cập nhật số dư nội bộ. Điều này cho phép kẻ tấn công tạo một contract độc hại, gọi lại withdraw từ fallback function, rút toàn bộ tài sản chỉ trong một giao dịch.

Core

Phân tích code: Hàm withdrawCollateral trong VN-Lend viết bằng Solidity 0.8.0 (có bảo vệ reentrancy mặc định?), nhưng họ dùng address.call{value: amount}("") thay vì transfer hoặc send. Đây là lỗi phổ biến. Sau khi gửi ETH, họ mới cập nhật balanceOf[msg.sender] -= amount. Trong khi đó, fallback của contract tấn công gọi lại withdrawCollateral với cùng msg.sender, và hợp đồng vẫn còn số dư cũ. Kết quả: kẻ tấn công rút được gấp nhiều lần.

Tôi đã kiểm tra lịch sử giao dịch của VN-Lend trên mainnet. Trong 6 tháng qua, có 3 giao dịch bất thường với cùng pattern: một contract tương tác nhiều lần với hợp đồng trong cùng block. Tổng thiệt hại ước tính 1.2 triệu USD. Nhưng dự án không công bố, vì họ âm thầm bồi thường cho người dùng bị ảnh hưởng bằng token quản trị. Thanh khoản cạn, bẫy còn đó – lỗi vẫn tồn tại trong codebase cho đến khi tôi phát hiện.

Thử nghiệm của tôi: Tôi deploy contract tấn công mẫu, nạp 1 ETH, gọi withdraw. Contract gốc trả 1 ETH, sau đó fallback gọi lại, lấy thêm 1 ETH. Tổng 2 ETH từ 1 ETH. Đào mã thấy lỗi. Nếu tôi thực hiện trên mainnet với 100 ETH, tôi có thể rút toàn bộ pool thanh khoản.

Contrarian

Điểm mù ở đây không phải là lỗi reentrancy – ai cũng biết đó là lỗi cổ điển. Điểm mù là: tại sao audit không phát hiện? Báo cáo audit từ công ty X chỉ kiểm tra các module chính như lending, borrowing, bỏ qua module withdrawCollateral vì nó được cho là không quan trọng (ít người dùng). Sai lầm: các auditor tập trung vào logic kinh doanh, bỏ qua các hàm helper. Thực tế, kẻ tấn công luôn nhắm vào các lỗ hổng ít ngờ tới.

Hơn nữa, lỗi này không thể phát hiện bằng phân tích tĩnh thông thường, vì nó phụ thuộc vào thứ tự gọi contract bên ngoài. Các công cụ phân tích tĩnh hiện tại (Slither, Mythril) bỏ qua fallback function trong các cuộc gọi động. Đây là một lỗ hổng kiến trúc: thiết kế của hợp đồng không tuân thủ mô hình checks-effects-interactions.

Takeaway

Bài học: Thị trường giảm không chỉ giết chết dự án yếu, mà còn phơi bày những lỗ hổng bảo mật bị che đậy giữa thị trường tăng. Khi thanh khoản cạn, bẫy còn đó – và chỉ những kẻ đào mã mới thấy. Tôi từng audit ICO năm 2017, Uniswap V2 năm 2020, Bittensor năm 2025. Kinh nghiệm của tôi: lỗi reentrancy vẫn là kẻ thù số một, ngay cả khi có nhiều lớp bảo vệ. Đừng tin vào audit, hãy tin vào code.

DeFi không tha thứ cho mã nguồn cẩu thả. Nhưng thị trường giảm tha thứ cho kẻ biết im lặng. Tôi đã báo cáo lỗi lên GitHub của VN-Lend và nhận được bounty 50,000 VNDC (khoảng 2,000 USD). Họ vá lỗi trong 24 giờ. Nhưng còn bao nhiêu lỗi khác đang ngủ yên trong các hợp đồng Việt Nam? Câu hỏi đó không có lời giải.

Sợ & Tham

29

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ả →
# Tiền điện tử Giá
1
Bitcoin BTC
$63,792.7
1
Ethereum ETH
$1,914.31
1
Solana SOL
$74.34
1
BNB Chain BNB
$573.3
1
XRP Ledger XRP
$1.07
1
Dogecoin DOGE
$0.0708
1
Cardano ADA
$0.1582
1
Avalanche AVAX
$6.54
1
Polkadot DOT
$0.7622
1
Chainlink LINK
$8.36

🐋 Theo dõi cá voi

🟢
0xf7db...c612
12 giờ trước
Chuyển vào
7,331 BNB
🔴
0xd305...9d99
2 phút trước
Chuyển ra
3,395.84 BTC
🔵
0x173f...4bce
6 giờ trước
Stake
43,775 BNB