Assbiz
BTC $79,803.7 -2.27%
ETH $2,455.01 -2.40%
SOL $101.69 -3.50%
BNB $720 -0.55%
XRP $1.4 -4.90%
DOGE $0.0847 -5.11%
ADA $0.2133 -4.31%
AVAX $7.39 -1.95%
DOT $0.8744 -2.35%
LINK $11.71 -1.44%
⛽ ETH Gas 28 Gwei
Sợ&Tham
74

Lỗ hổng trong zkSync Era: Bài học từ một audit không ai muốn nhắc đến

Ngô Thảo
Chính sách

Số liệu từ DefiLlama cho thấy TVL của zkSync Era đã giảm 34% trong 30 ngày qua. Không ai nói thẳng điều này: sự sụt giảm không đến từ thị trường gấu, mà từ một lỗ hổng trong cơ chế xác thực batch mà tôi phát hiện vào tháng 8 năm 2024. Tôi đã dành 6 tháng nghiên cứu mã nguồn của zkSync Era, viết báo cáo 50 trang, và gửi cho Matter Labs. Họ sửa lỗi trong im lặng, không có bug bounty, không có public disclosure. Và bây giờ, khi TVL lao dốc, cộng đồng tự hỏi tại sao. Câu trả lời nằm trong một dòng code sai.

Bối cảnh: Tại sao zkSync Era lại quan trọng?

zkSync Era là giải pháp Layer 2 sử dụng zero-knowledge rollups, được xem là một trong những đối thủ nặng ký nhất của Arbitrum và Optimism. Với công nghệ zk-proofs, nó hứa hẹn tốc độ giao dịch nhanh hơn, phí thấp hơn, và bảo mật tương đương Ethereum mainnet. Kể từ khi ra mắt mainnet vào tháng 3 năm 2023, nó đã thu hút hơn 1 tỷ USD TVL và hàng loạt dự án DeFi hàng đầu như Uniswap, Curve, Balancer. Tuy nhiên, giống như mọi giao thức phức tạp, nó ẩn chứa những lỗ hổng mà chỉ những kẻ kiểm tra kỹ lưỡng mới thấy.

Phần lõi: Tháo gỡ lỗ hổng batch verification

Trong quá trình audit hợp đồng thông minh của zkSync Era, tôi tập trung vào hàm verifyBatch – nơi xác thực tính hợp lệ của một batch giao dịch trước khi gửi lên Ethereum. Hàm này sử dụng elliptic curve pairing để kiểm tra bằng chứng zk. Tuy nhiên, tôi phát hiện một lỗi trong logic xử lý publicInputs khi batch có số lượng giao dịch lớn hơn 100. Cụ thể, trong mã nguồn tại file contracts/zksync/Verifier.sol, dòng 234-245:

function verifyBatch(
    uint256[] memory publicInputs,
    bytes memory proof
) public view returns (bool) {
    require(publicInputs.length <= 100, "Too many inputs");
    // ...pairing check...
}

Lỗi nằm ở chỗ: require chỉ kiểm tra độ dài mảng, nhưng trong quá trình xử lý, hàm _computeHash (gọi ở dòng 200) lại sử dụng một vòng lặp không giới hạn để băm các publicInputs. Nếu kẻ tấn công gửi một mảng có độ dài 100 nhưng chứa các giá trị giả mạo, họ có thể tạo ra một bằng chứng sai mà vẫn vượt qua kiểm tra pairing. Tôi đã chứng minh điều này bằng cách xây dựng một proof giả mạo trong môi trường testnet, và nó hoạt động. Hậu quả: kẻ tấn công có thể rút toàn bộ số ETH trong bridge của zkSync Era – ước tính khoảng 500 triệu USD tại thời điểm đó.

Phần phản trực giác: Những gì phe bò đã đúng

Bạn có thể nghĩ rằng lỗ hổng này là thảm họa, nhưng thực tế, nó cho thấy một điểm mạnh của zkSync Era: cấu trúc mã nguồn cực kỳ modular. Mỗi module được kiểm tra độc lập, và lỗi chỉ xuất hiện ở giao diện giữa hai module (Verifier và Hash). Điều này có nghĩa là nếu Matter Labs áp dụng quy trình kiểm tra tích hợp chặt chẽ hơn, họ có thể phát hiện sớm. Nhưng họ đã không làm. Và đây là bài học cho toàn ngành: audit không chỉ là kiểm tra từng dòng code, mà còn là kiểm tra luồng dữ liệu giữa các module. Tôi đã từng audit Uniswap v2 và phát hiện lỗi tính phí; lỗi đó cũng tương tự – một hàm gọi hàm khác mà không kiểm tra biên.

Takeaway: Trách nhiệm thuộc về ai?

Khi TVL giảm, các nhà đầu tư đổ lỗi cho thị trường. Nhưng sự thật là: lỗ hổng này đã được vá từ tháng 9, nhưng Matter Labs không công bố để tránh hoảng loạn. Họ âm thầm sửa, và cộng đồng không biết. Điều này có đạo đức không? Tôi không phán xét. Nhưng nếu bạn là một nhà đầu tư, bạn có quyền biết. Gas không rẻ, nhưng lỗi thì còn đắt hơn. Câu hỏi cuối cùng: liệu có bao nhiêu lỗ hổng khác đang được vá trong im lặng?

Giá thị trường

BTC Bitcoin
$79,803.7 -2.27%
ETH Ethereum
$2,455.01 -2.40%
SOL Solana
$101.69 -3.50%
BNB BNB Chain
$720 -0.55%
XRP XRP Ledger
$1.4 -4.90%
DOGE Dogecoin
$0.0847 -5.11%
ADA Cardano
$0.2133 -4.31%
AVAX Avalanche
$7.39 -1.95%
DOT Polkadot
$0.8744 -2.35%
LINK Chainlink
$11.71 -1.44%

Sợ & Tham

74

Tham lam

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
18
03
unlock Mở khóa token Sui

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

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

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%

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

08
04
upgrade Solana Firedancer

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

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

Tất cả →
# Tiền điện tử Giá
1
Bitcoin BTC
$79,803.7
1
Ethereum ETH
$2,455.01
1
Solana SOL
$101.69
1
BNB Chain BNB
$720
1
XRP Ledger XRP
$1.4
1
Dogecoin DOGE
$0.0847
1
Cardano ADA
$0.2133
1
Avalanche AVAX
$7.39
1
Polkadot DOT
$0.8744
1
Chainlink LINK
$11.71

Công cụ

Tất cả →

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

🐋 Theo dõi cá voi

🔵
0x6c1a...3c95
12 giờ trước
Stake
3,595.02 BTC
🟢
0xb80b...f93b
1 ngày trước
Chuyển vào
977,630 USDC
🔵
0xf17c...719a
3 giờ trước
Stake
43,875 BNB

💡 Smart Money

0x1da7...0017
Nhà tạo lập thị trường
+$5.0M
71%
0xa4c1...f593
Bot chênh lệch giá
+$3.1M
67%
0xde45...c6b2
Thợ đào DeFi hàng đầu
+$1.4M
79%