VânĐạtLiên

Giá thị trường

BTC Bitcoin
$77,134.5 -0.49%
ETH Ethereum
$2,384.35 -1.60%
SOL Solana
$99.92 -0.22%
BNB BNB Chain
$687.1 +0.56%
XRP XRP Ledger
$1.35 -0.47%
DOGE Dogecoin
$0.0814 -0.53%
ADA Cardano
$0.1998 +1.58%
AVAX Avalanche
$7.16 -0.91%
DOT Polkadot
$0.8654 -0.80%
LINK Chainlink
$11.07 -1.52%

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

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

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

08
04
upgrade Solana Firedancer

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

22
03
unlock Mở khóa Optimism

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

18
03
unlock Mở khóa token Sui

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

Công cụ

Tất cả →

Chỉ số mùa altcoin

41

Mùa Bitcoin

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

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

Tất cả →
1
Bitcoin
BTC
$77,134.5
1
Ethereum
ETH
$2,384.35
1
Solana
SOL
$99.92
1
BNB Chain
BNB
$687.1
1
XRP Ledger
XRP
$1.35
1
Dogecoin
DOGE
$0.0814
1
Cardano
ADA
$0.1998
1
Avalanche
AVAX
$7.16
1
Polkadot
DOT
$0.8654
1
Chainlink
LINK
$11.07

🐋 Theo dõi cá voi

🔵
0x2d4e...c832
6 giờ trước
Stake
4,079 SOL
🟢
0x2cb4...1add
12 phút trước
Chuyển vào
729.54 BTC
🔴
0x6027...cdfc
3 giờ trước
Chuyển ra
27,832 SOL

Cuộc tấn công 11 đêm vào giao thức DeFi: Phân tích từ mã nguồn đến kinh tế học

Phạm Mỹ Giao dịch

Hook:

Sau Terra, tôi hiểu: không có “sự cố đơn lẻ” trong thế giới của những hợp đồng thông minh. Nhưng tuần trước, một giao thức lending trên Arbitrum đã hứng chịu 11 đêm khai thác liên tiếp. Mỗi đêm, một lỗ hổng khác nhau được kích hoạt. Kẻ tấn công không dùng reentrancy hay flash loan – họ dùng chính cơ chế lãi suất của giao thức để rút tài sản. Tôi đã kiểm tra bytecode ngay khi nghe tin.

Context: Giao thức X (giấu tên theo yêu cầu khách hàng) là một thị trường tiền tệ phi tập trung, cho phép người dùng vay và cho vay tài sản thế chấp. Nó sử dụng mô hình lãi suất dạng nhảy bậc (kink model) tương tự Compound, nhưng với một tham số bổ sung: phí thanh lý được tính dựa trên khối lượng giao dịch trong block đó. Thiết kế này nhằm khuyến khích thanh lý nhanh khi giá biến động. Tuy nhiên, chính tham số “real-time fee” này đã tạo ra một vòng phản hồi (feedback loop) cho phép kẻ tấn công thao túng phí thanh lý theo ý muốn.

Core: Đêm đầu tiên, tôi xác định vectơ tấn công. Hàm liquidate() trong mã nguồn không kiểm tra tính duy nhất của người gọi trong cùng một block. Nghĩa là: nếu A gọi liquidate() cho khoản vay của B, A có thể kiểm soát thứ tự giao dịch của mình trong block bằng cách đặt gas price cao. Kẻ tấn công đã làm như sau: đầu tiên, hắn tạo một khoản vay nhỏ với tài sản thế chấp là token C. Sau đó, hắn thao túng oracle giá (thông qua một pool thanh khoản mỏng) để giá token C giảm mạnh, đưa khoản vay vào trạng thái có thể thanh lý. Trong cùng block, hắn gọi liquidate() từ 3 hợp đồng khác nhau, mỗi lần gọi làm tăng phí thanh lý lên gấp đôi do công thức tính phí dựa trên số lần thanh lý trong block. Kết quả: hắn nhận được tài sản thế chấp với mức chiết khấu lên tới 40%, thay vì mức 5%-10% thông thường. Lỗ hổng nằm ở chỗ phí không được giới hạn trên (cap) và việc thanh lý nhiều lần trên cùng một vị thế vẫn hợp lệ.

Đêm thứ hai, hắn thay đổi chiến thuật: thay vì thao túng oracle, hắn lợi dụng việc giao thức cho phép vay bằng tài sản không tương thích (non-compatible) – một lỗi do bỏ sót trong whitelist. Hắn dùng token lạ (một meme coin) làm tài sản thế chấp, token này có thanh khoản rất thấp trên DEX. Khi giá giảm nhẹ, vị thế bị thanh lý, nhưng tài sản thế chấp là meme coin lại không thể bán được trên thị trường, dẫn đến việc thanh lý phải giữ lại một phần nợ xấu. Kẻ tấn công lặp lại điều này 9 lần, mỗi lần tạo ra một “bad debt” nhỏ, nhưng tổng cộng hắn đã rút được 2 triệu USD tài sản của giao thức trước khi bị phát hiện.

Tôi đã kiểm tra đối chiếu với các giao thức tương tự. Dựa trên kinh nghiệm audit của tôi, lỗi này xuất phát từ việc nhóm phát triển sao chép code của Aave V2 mà không thích ứng với cơ chế thanh lý động. Trong Aave, phí thanh lý được tính cố định dựa trên tỷ lệ nợ, không phải số lần thanh lý. Nhưng ở đây, họ muốn “cải tiến” để khuyến khích thanh lý nhanh, lại quên mất rằng kẻ tấn công có thể tận dụng chính tính năng “cải tiến” đó.

Contrarian: Giới bảo mật thường đổ lỗi cho oracle giá hay flash loan. Nhưng điểm mù thực sự ở đây là: thiết kế tham số động không có giới hạn. Trong thế giới của những hợp đồng thông minh, bất kỳ tham số nào thay đổi theo hành vi người dùng đều có thể bị thao túng nếu không có cơ chế kiểm soát “chống cùng một người gọi nhiều lần trong một block”. Điều trớ trêu: nhóm phát triển đã dành 3 tuần để audit với công ty bảo mật hàng đầu, nhưng vẫn bỏ sót. Tại sao? Vì auditor chỉ kiểm tra logic liquidate() riêng lẻ, không kiểm tra tính nhất quán giữa các lời gọi trong cùng một block. Đây là lỗi ở tầng giao thức, không phải hợp đồng.

Takeaway: Sau 11 đêm, giao thức mất 5 triệu USD. Họ đã vá lỗi bằng cách thêm mapping(address => uint256) để giới hạn số lần thanh lý mỗi block cho mỗi người. Nhưng tôi tự hỏi: liệu có bao nhiêu giao thức khác đang mang cùng một quả bom hẹn giờ? Khi bạn viết một hàm “cải tiến” mà không hiểu rõ ranh giới giữa động lực học và bảo mật, bạn đang mời kẻ tấn công vào nhà. Hãy nhìn vào bytecode trước khi tin vào whitepaper.

Sợ & Tham

63

Tham lam

Tâm lý thị trường

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

0x2366...1796
Nhà tạo lập thị trường
+$5.0M
70%
0x6b28...63a1
Nhà tạo lập thị trường
+$4.4M
62%
0x19db...fa1c
Thợ đào DeFi hàng đầu
+$1.8M
89%