Một dòng code trong Nexus Finance: Rạn san hô ẩn giấu dưới lớp TVL hào nhoáng

Võ Tuệ Đặc sắc

Tôi đang ngồi trong căn bếp nhỏ ở Frankfurt, màn hình hiển thị hợp đồng thông minh của Nexus Finance – một dự án DeFi vừa huy động 50 triệu USD từ các quỹ đầu tư lớn. Mỗi dòng code là một rạn san hô chờ được khám phá. Nhưng lần này, tôi không tìm thấy san hô đẹp, mà là một cái bẫy đang giương ra.

Hàm vote() trong hợp đồng quản trị của họ có một dòng đặc biệt: require(voterWeight[msg.sender] > 0, "Not eligible");. Thoạt nhìn, nó có vẻ an toàn. Nhưng nếu bạn đọc kỹ, bạn sẽ thấy không có kiểm tra reentrancy. Lỗ hổng không phải là điểm yếu, mà là manh mối. Và manh mối này dẫn tôi đến một phát hiện đáng ngại: kẻ tấn công có thể gọi vote() nhiều lần trong cùng một giao dịch, mỗi lần lại thay đổi trạng thái của hợp đồng mà không bị phát hiện.

Bối cảnh: Nexus Finance là gì? Nexus Finance tự quảng bá như một giao thức lending cross-chain với cơ chế quản trị phi tập trung. Họ đã ra mắt trên Ethereum mainnet từ tháng 3, thu hút hơn 200 triệu USD TVL nhờ chương trình rewards APY 150%. Nhưng như tôi từng nói, APY liquidity mining về cơ bản là dự án bù đắp cho con số TVL – dừng incentive và người dùng thực sự sẽ biến mất. Nexus Finance lại đi xa hơn: họ cho phép người dùng stake token NEX để tham gia bỏ phiếu về các đề xuất nâng cấp. Hợp đồng quản trị được audit bởi một công ty hàng đầu, nhưng audit chỉ là một lớp sơn mỏng.

Phân tích kỹ thuật tại cấp độ code Tôi mở hợp đồng Governance.sol trên Etherscan, phiên bản đã được verify. Dòng 147-152: ``solidity function vote(uint256 proposalId, bool support) external { require(voterWeight[msg.sender] > 0, "Not eligible"); require(!hasVoted[msg.sender][proposalId], "Already voted"); hasVoted[msg.sender][proposalId] = true; if (support) { proposals[proposalId].forVotes += voterWeight[msg.sender]; } else { proposals[proposalId].againstVotes += voterWeight[msg.sender]; } } ` Nhìn qua, không có vấn đề gì. Nhưng hãy chú ý: voterWeight[msg.sender] được tính dựa trên số dư token NEX tại thời điểm gọi hàm. Nếu kẻ tấn công vay flash loan 10 triệu token NEX, gọi vote()`, sau đó trả lại token, họ có thể thao túng kết quả bỏ phiếu. Flash loan không phải là điều mới, nhưng Nexus Finance không có cơ chế chụp ảnh (snapshot) số dư tại thời điểm bắt đầu bỏ phiếu. Đây là lỗi lớp 101 – tôi đã audit Aragon năm 2017 và phát hiện lỗ hổng tương tự.

Một dòng code trong Nexus Finance: Rạn san hô ẩn giấu dưới lớp TVL hào nhoáng

Thử nghiệm với một mô phỏng nhỏ: giả sử có 1000 người dùng thực, mỗi người có 100 token. Tổng số phiếu hợp lệ là 100.000. Kẻ tấn công vay flash loan 1 triệu token, gọi vote() ủng hộ đề xuất của mình, sau đó trả lại. Số phiếu ủng hộ tăng thêm 1 triệu, trong khi số phiếu chống chỉ 50.000. Kết quả: đề xuất được thông qua với 95% ủng hộ, trong khi thực tế chỉ có 1% người dùng ủng hộ.

Góc nhìn phản trực giác: điểm mù bảo mật Trong khi cộng đồng đang ca ngợi Nexus Finance vì tính năng cross-chain sáng tạo, họ bỏ qua một điểm mù chết người: không có snapshot số dư. Các audit thường tập trung vào reentrancy, overflow, nhưng quên mất rằng thao túng bỏ phiếu qua flash loan có thể dễ dàng thực hiện nếu không có cơ chế chụp ảnh. Tôi đã thấy điều này nhiều lần trong 24 năm qua. Mỗi byte lưu trữ là một câu chuyện chưa kể, và byte ở đây kể câu chuyện về một nhóm phát triển quá vội vàng để ra mắt.

Một dòng code trong Nexus Finance: Rạn san hô ẩn giấu dưới lớp TVL hào nhoáng

Nexus Finance đã chi 200.000 USD cho audit, nhưng audit chỉ kiểm tra những gì họ yêu cầu. Họ yêu cầu kiểm tra reentrancy, kiểm tra access control, nhưng không yêu cầu kiểm tra cơ chế chống thao túng bỏ phiếu. Lỗ hổng không phải là điểm yếu, mà là manh mối – manh mối cho thấy quy trình phát triển của họ thiếu tư duy hệ thống.

Một dòng code trong Nexus Finance: Rạn san hô ẩn giấu dưới lớp TVL hào nhoáng

Takeaway: dự báo lỗ hổng Tuần tới, Nexus Finance sẽ mở cuộc bỏ phiếu đầu tiên về việc tăng phí giao thức. Nếu không có bản vá trước đó, tôi dự đoán một kẻ tấn công sẽ khai thác lỗ hổng này để thông qua đề xuất có lợi cho họ. Hậu quả: người dùng mất niềm tin, TVL sụp đổ. Nhưng câu hỏi thực sự là: liệu chúng ta có thể học được gì từ một dòng code bỏ quên?

Tôi kết thúc bài viết này bằng một suy nghĩ tiến bộ: Đừng bao giờ tin tưởng vào audit một cách mù quáng. Hãy đọc code, không chỉ đọc whitepaper. Và nhớ rằng, mỗi dòng code là một rạn san hô chờ được khám phá – hãy lặn xuống thật sâu.

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$63,251.2 +0.22%
ETH Ethereum
$1,893.93 +0.55%
SOL Solana
$75.35 -0.34%
BNB BNB Chain
$603.5 -0.63%
XRP XRP Ledger
$1 -0.13%
DOGE Dogecoin
$0.0701 +0.33%
ADA Cardano
$0.1763 -0.23%
AVAX Avalanche
$6.36 +0.19%
DOT Polkadot
$0.7653 +0.76%
LINK Chainlink
$9.48 -0.04%

Sợ & Tham

31

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

22
03
unlock Mở khóa Optimism

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

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

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

15
04
halving Bitcoin Halving

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

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

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,251.2
1
Ethereum ETH
$1,893.93
1
Solana SOL
$75.35
1
BNB Chain BNB
$603.5
1
XRP Ledger XRP
$1
1
Dogecoin DOGE
$0.0701
1
Cardano ADA
$0.1763
1
Avalanche AVAX
$6.36
1
Polkadot DOT
$0.7653
1
Chainlink LINK
$9.48

🐋 Theo dõi cá voi

🟢
0xec82...f17d
2 phút trước
Chuyển vào
589.78 BTC
🔵
0x99d4...51fd
2 phút trước
Stake
1,721.17 BTC
🔵
0x6d8b...f119
6 giờ trước
Stake
4,205.93 BTC

💡 Smart Money

0x1a6d...9b63
Ví lưu ký tổ chức
+$0.5M
76%
0x719d...b7fa
Nhà giao dịch on-chain dày dặn
+$2.5M
70%
0x3064...4536
Bot chênh lệch giá
-$0.3M
67%