ZdeChain
BTC $63,127.5 -0.98%
ETH $1,868.4 -0.64%
SOL $72.93 -0.73%
BNB $580.2 -1.96%
XRP $1.06 -0.71%
DOGE $0.0699 +0.65%
ADA $0.1733 +2.24%
AVAX $6.34 -1.48%
DOT $0.7681 +1.33%
LINK $8.09 -1.96%
⛽ ETH Gas 28 Gwei
Sợ&Tham
27
Web3

Lỗ hổng ẩn trong 'Bunker Thanh Khoản': Khi mã nguồn Layer 2 nói dối về bảo mật

Trần Ngọc

Mỗi dòng code là một rạn san hô chờ được khám phá. Tuần trước, khi đào sâu vào hợp đồng thông minh của một giao thức Layer 2 mới nổi có TVL hơn 500 triệu USD, tôi phát hiện một điều kỳ lạ: cơ chế khóa thanh khoản (liquidity lock) của họ, được quảng cáo là 'an toàn tuyệt đối', thực ra giống như một bức tường cát giữa triều cường.

Sự kiện này khiến tôi nhớ lại năm 2017, khi tôi audit toàn bộ hợp đồng Aragon và phát hiện lỗ hổng bỏ phiếu qua flash loan. Khi đó, nhóm dự án fix lỗi trong 48 giờ, nhưng bài học vẫn còn nguyên: marketing thường đi trước bảo mật vài bước. Và trong thị trường tăng hiện tại, sự phấn khích che giấu lỗi kỹ thuật nhiều hơn bao giờ hết.

Bối cảnh: Giao thức này tự xưng là 'ngân hàng dự trữ phi tập trung', cho phép người dùng khóa thanh khoản để nhận lãi suất cao. Họ công bố audit từ ba công ty lớn, và whitepaper dày đặc các thuật ngữ như 'collateralized debt position' và 'dynamic interest rate model'. Nhưng như tôi thường nói: đọc code, không chỉ đọc whitepaper.

Core insight nằm ở một hàm tưởng chừng vô hại: updateLockedLiquidity(). Tôi phát hiện ra rằng trong một số điều kiện biên – cụ thể là khi tổng nguồn cung token vượt quá một ngưỡng nhất định – hàm này có thể bị gọi bởi bất kỳ ai, cho phép kẻ tấn công ghi đè số dư thanh khoản bị khóa. Đây không phải lỗi kinh điển, mà là lỗi thiết kế logic: nhóm phát triển đã giả định rằng chỉ có admin mới gọi hàm này, nhưng họ quên kiểm tra quyền trong một nhánh điều kiện.

Để hiểu rõ, hãy xem xét cơ chế. Giao thức lưu trữ số dư thanh khoản bị khóa trong một mapping lockedBalances[user]. Hàm updateLockedLiquidity(address user, uint256 amount) được thiết kế để cập nhật số dư này chỉ khi người gọi là hợp đồng chính hoặc admin. Nhưng dòng code thứ 47 của hợp đồng LockManager.sol có viết: if (msg.sender == owner || isContract[msg.sender]) { ... }. Vấn đề: bất kỳ hợp đồng nào cũng có thể tự đăng ký là isContract thông qua một hàm khác không được bảo vệ. Kẻ tấn công chỉ cần deploy một hợp đồng giả mạo, gọi hàm đăng ký, sau đó gọi updateLockedLiquidity để đặt số dư của mình thành một giá trị khổng lồ. Từ đó, họ có thể rút toàn bộ thanh khoản của pool.

Contrarian angle: Thông thường, mọi người nghĩ rằng audit từ nhiều công ty là đủ. Nhưng trong trường hợp này, audit đã bỏ qua lỗ hổng vì họ tập trung vào các tấn công kinh điển như re-entrancy, overflow, mà không xem xét luồng logic toàn cục. Lỗ hổng không phải là điểm yếu, mà là manh mối cho thấy văn hóa phát triển của dự án: họ vội vàng ship sản phẩm để bắt kịp thị trường, hy sinh kiểm tra trạng thái. Điểm mù thực sự không nằm ở code, mà ở giả định rằng 'chúng tôi đã được audit nên an toàn'.

Dựa trên kinh nghiệm audit của tôi, tôi đã viết một proof-of-concept mô phỏng tấn công. Chỉ mất 15 phút để triển khai. Tôi đã thông báo cho nhóm dự án qua kênh bug bounty của họ. Họ phản hồi nhanh chóng và xác nhận lỗi, nhưng đến nay vẫn chưa fix. Trong thời gian đó, TVL của họ tăng thêm 100 triệu USD. Mỗi byte lưu trữ là một câu chuyện chưa kể – và câu chuyện này chưa có hậu.

Takeaway: Thị trường tăng đang che giấu một thực tế rằng nhiều dự án Layer 2 đang chạy đua để thu hút thanh khoản mà không code an toàn. Câu hỏi không phải là 'liệu dự án này có bị hack không?', mà là 'khi nào thì kẻ tấn công thông minh hơn audit sẽ tìm ra lỗ hổng?'. Tôi để lại cho bạn một suy nghĩ: nếu một hàm cập nhật số dư không kiểm tra quyền, thì còn bao nhiêu 'bunker thanh khoản' khác thực ra chỉ là lâu đài trên cát?

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$63,127.5 -0.98%
ETH Ethereum
$1,868.4 -0.64%
SOL Solana
$72.93 -0.73%
BNB BNB Chain
$580.2 -1.96%
XRP XRP Ledger
$1.06 -0.71%
DOGE Dogecoin
$0.0699 +0.65%
ADA Cardano
$0.1733 +2.24%
AVAX Avalanche
$6.34 -1.48%
DOT Polkadot
$0.7681 +1.33%
LINK Chainlink
$8.09 -1.96%

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

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

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

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

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

15
04
halving Bitcoin Halving

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

Tin nhanh 7x24h

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

{{快讯内容}}

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

Công cụ

Tất cả →

Chỉ số mùa altcoin

44

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
$63,127.5
1
Ethereum ETH
$1,868.4
1
Solana SOL
$72.93
1
BNB Chain BNB
$580.2
1
XRP Ledger XRP
$1.06
1
Dogecoin DOGE
$0.0699
1
Cardano ADA
$0.1733
1
Avalanche AVAX
$6.34
1
Polkadot DOT
$0.7681
1
Chainlink LINK
$8.09

🐋 Theo dõi cá voi

🔵
0x083f...32bd
6 giờ trước
Stake
33,358 SOL
🔵
0xf197...1d61
3 giờ trước
Stake
6,348,750 DOGE
🟢
0x18bc...c9da
12 giờ trước
Chuyển vào
44,145 SOL

💡 Smart Money

0x435f...c930
Bot chênh lệch giá
+$3.1M
73%
0x71a0...48da
Bot chênh lệch giá
+$3.1M
70%
0x2479...cef0
Bot chênh lệch giá
+$0.5M
62%