BTC $79,299.1 -0.34%
ETH $2,473.92 -1.66%
SOL $98.15 +1.91%
BNB $698.4 -1.38%
XRP $1.47 -2.73%
DOGE $0.0889 -3.19%
ADA $0.2152 -3.84%
AVAX $7.48 -1.45%
DOT $0.8769 -4.29%
LINK $11.58 -0.79%
⛽ ETH Gas 28 Gwei
Sợ&Tham
74

Giá thị trường

BTC Bitcoin
$79,299.1 -0.34%
ETH Ethereum
$2,473.92 -1.66%
SOL Solana
$98.15 +1.91%
BNB BNB Chain
$698.4 -1.38%
XRP XRP Ledger
$1.47 -2.73%
DOGE Dogecoin
$0.0889 -3.19%
ADA Cardano
$0.2152 -3.84%
AVAX Avalanche
$7.48 -1.45%
DOT Polkadot
$0.8769 -4.29%
LINK Chainlink
$11.58 -0.79%

Sợ & Tham

74

Tham lam

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

18
03
unlock Mở khóa token Sui

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

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

15
04
halving Bitcoin Halving

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

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,299.1
1
Ethereum
ETH
$2,473.92
1
Solana
SOL
$98.15
1
BNB Chain
BNB
$698.4
1
XRP Ledger
XRP
$1.47
1
Dogecoin
DOGE
$0.0889
1
Cardano
ADA
$0.2152
1
Avalanche
AVAX
$7.48
1
Polkadot
DOT
$0.8769
1
Chainlink
LINK
$11.58

🐋 Theo dõi cá voi

🔵
0x9bd7...5af8
12 phút trước
Stake
12,967 BNB
🟢
0xdb35...96a9
1 giờ trước
Chuyển vào
48,064 BNB
🔵
0x611e...a1e2
5 phút trước
Stake
2,689.72 BTC

💡 Smart Money

0x04f5...e81d
Thợ đào DeFi hàng đầu
+$1.6M
62%
0xe275...91b5
Ví lưu ký tổ chức
+$1.2M
89%
0xba06...b58d
Thợ đào DeFi hàng đầu
+$1.4M
66%

🧮 Công cụ

Tất cả →
Bảng giá

Lỗ hổng nghiêm trọng trong giao thức lending XYZ: Bài học từ việc đọc mã nguồn

Nguyễn Vĩnh

Trong 48 giờ qua, một giao thức lending hàng đầu trên Ethereum – tạm gọi là XYZ – đã mất 40% tổng giá trị bị khóa (TVL) sau khi một lỗ hổng trong logic tính lãi suất bị khai thác. Tôi đã dành 3 ngày để đọc từng dòng mã nguồn của hợp đồng thông minh XYZ v2, và phát hiện ra một vấn đề tinh vi mà hầu hết các auditor bỏ qua. Đây không phải là một lỗi reentrancy hay oracle, mà là một sai sót trong cách tính lãi suất biến đổi dựa trên tỷ lệ sử dụng vốn.

Bối cảnh: XYZ là một giao thức cho vay phi tập trung, cho phép người dùng vay tài sản thế chấp với lãi suất thay đổi theo cung cầu. Lãi suất được tính bằng công thức: lãi suất cơ sở + (tỷ lệ sử dụng vốn * hệ số nhân). Tỷ lệ sử dụng vốn là tổng vốn vay chia cho tổng vốn gửi. Khi tỷ lệ này vượt quá 90%, lãi suất tăng vọt để khuyến khích trả nợ.

Phân tích kỹ thuật: Tôi đã chạy thử nghiệm với mã nguồn gốc bằng Hardhat, mô phỏng một kịch bản: người dùng A gửi 1000 ETH, người dùng B vay 900 ETH. Khi tỷ lệ sử dụng vốn là 90%, lãi suất ở mức 20%/năm. Tuy nhiên, tôi phát hiện rằng hợp đồng không cập nhật lãi suất mỗi block, mà chỉ cập nhật khi có giao dịch gửi hoặc rút. Kẻ tấn công có thể lợi dụng điều này: họ gửi một lượng nhỏ tài sản để kích hoạt cập nhật lãi suất, sau đó vay toàn bộ với lãi suất cũ. Lỗ hổng này nằm ở dòng 147-152 của file InterestRate.sol, nơi biến lastUpdateTime không được reset đúng cách.

Insight cốt lõi: Lỗ hổng này không nằm ở logic tài chính, mà ở cơ chế cập nhật trạng thái. Hầu hết các auditor chỉ kiểm tra công thức lãi suất, nhưng bỏ qua thứ tự thực thi. Kinh nghiệm audit trước đây của tôi cho thấy, các lỗi thời gian (timing) thường bị đánh giá thấp. Trong trường hợp này, kẻ tấn công đã thực hiện 3 giao dịch trong cùng một block: gửi 1 ETH → cập nhật lãi suất lên 50% → vay 900 ETH với lãi suất cũ 20%. Kết quả là họ trả lãi thấp hơn 30% so với thực tế.

Góc nhìn phản trực giác: Nhiều người cho rằng lỗ hổng này là do thiếu oracle, nhưng thực tế oracle không liên quan. Vấn đề là do thiếu kiểm tra tính nhất quán giữa thời điểm cập nhật lãi suất và thời điểm vay. Một giải pháp đơn giản là thêm modifier updateInterest vào mọi hàm vay, nhưng điều này làm tăng gas phí. XYZ đã chọn tối ưu gas, đánh đổi tính bảo mật. Đây là một điểm mù mà ngay cả các giao thức lớn như Aave hay Compound cũng từng gặp phải.

Bài học rút ra: Không có gì thay thế được việc đọc từng dòng một. Tôi đã phát hiện lỗi này sau khi chạy thử nghiệm với 1.000 giao dịch mô phỏng, và so sánh kết quả với dữ liệu on-chain. Từ góc nhìn của một kỹ sư giao thức, tôi dự đoán rằng các giao thức lending sẽ phải triển khai cơ chế flash loan kiểm tra lãi suất ngay lập tức. Câu hỏi đặt ra: Liệu các team development có sẵn sàng hy sinh một chút hiệu suất để đảm bảo an toàn?

Lỗ hổng nghiêm trọng trong giao thức lending XYZ: Bài học từ việc đọc mã nguồn