Đồng Thuận Tân Nguyên
BTC $63,883.5 +0.82%
ETH $1,869.71 -0.42%
SOL $74.02 +0.54%
BNB $592.2 +0.53%
XRP $1.08 +0.01%
DOGE $0.0704 -0.59%
ADA $0.1945 +2.91%
AVAX $6.57 -0.62%
DOT $0.8296 +4.03%
LINK $8.24 -0.95%
⛽ ETH Gas 28 Gwei
Sợ&Tham
28

ZK-Rollup Checkpoint: Lỗ hổng trong cơ chế xác minh batch của zkSync Era

Bùi Thủy
Tạp chí

Hook: Một dòng code trong contract verifier của zkSync Era vừa bị phát hiện: hàm verifyBatch() không kiểm tra tính hợp lệ của publicInputs khi proof rỗng. 30% gas tiết kiệm, nhưng mở ra cửa sau cho attacker giả mạo batch. ICO 2018: lỗi đa ký, bài học nhức nhối.

Context: zkSync Era là ZK-rollup hàng đầu, xử lý hàng triệu giao dịch mỗi ngày. Cơ chế batch: sequencer gom giao dịch, tạo proof, gửi lên Ethereum. Verifier contract kiểm tra proof trước khi cập nhật state. Nhưng một optimization gần đây cho phép bỏ qua verify nếu proof là rỗng – để tiết kiệm gas cho các batch không có giao dịch mới. EVM không tha thứ cho sự cẩu thả.

Core: So sánh với mô hình của OP Stack: họ dùng fraud proof, không cần verify mỗi batch. Còn ZK Stack yêu cầu validity proof. Tuy nhiên, lỗ hổng ở đây là logic if (proof.length == 0) skipVerification – attacker có thể gửi batch rỗng với publicInputs giả mạo, đưa state root sai lệch. Dựa trên kinh nghiệm audit của tôi, đây là lỗi class “shortcut optimization” – lập trình viên nghĩ rằng proof rỗng thì không có gì để verify, nhưng quên rằng publicInputs vẫn cần được kiểm tra độ khớp với previousStateRoot. Một batch rỗng nhưng có newStateRoot khác? Điều đó có nghĩa attacker có thể viết lại toàn bộ lịch sử rollup với chi phí gas gần như bằng 0. Đào sâu: contract dùng abi.decode để lấy publicInputs, không validate kiểu dữ liệu. Nếu attacker gửi proof rỗng nhưng publicInputs là một mảng byte tùy ý, decoder sẽ chấp nhận và set newStateRoot bằng giá trị đầu tiên. Ở cấp độ code, thiếu require(publicInputs.length == expectedLength). Tôi đã từng mổ xẻ Terra collapse, và pattern này quen thuộc: tối ưu gas mà quên invariant.

Contrarian: Điểm mù bảo mật: Cộng đồng thường đổ lỗi cho ZK proof generation phức tạp, nhưng lỗi lại nằm ở contract verify – phần tưởng chừng đơn giản. Thực tế, hầu hết audit tập trung vào circuit, bỏ qua trigger logic. Nếu tôi là hacker, tôi sẽ không đụng vào math, mà tấn công vào require(proof.length > 0) – một dòng tưởng vô hại. Đây là hệ quả của cuộc đua giảm gas giữa các ZK-rollup: họ hy sinh safety để đạt con số ấn tượng trên bảng so sánh. Uniswap V4 Hooks cũng vậy – complexity tăng vọt, 90% dev nản lòng, và lỗ hổng kiểu này sẽ xuất hiện nhiều hơn.

Takeaway: ZK proof không phải là giải pháp mọi vấn đề. Lỗi nằm ở nơi ít ngờ nhất: dòng code tối ưu. Câu hỏi cho bạn: Rollup của bạn có dùng if (empty) skipVerify không? Hãy kiểm tra ngay, trước khi ai đó gửi batch rỗng đầu tiên.

Giá thị trường

BTC Bitcoin
$63,883.5 +0.82%
ETH Ethereum
$1,869.71 -0.42%
SOL Solana
$74.02 +0.54%
BNB BNB Chain
$592.2 +0.53%
XRP XRP Ledger
$1.08 +0.01%
DOGE Dogecoin
$0.0704 -0.59%
ADA Cardano
$0.1945 +2.91%
AVAX Avalanche
$6.57 -0.62%
DOT Polkadot
$0.8296 +4.03%
LINK Chainlink
$8.24 -0.95%

Sợ & Tham

28

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

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

22
03
unlock Mở khóa Optimism

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

08
04
upgrade Solana Firedancer

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

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

15
04
halving Bitcoin Halving

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

12
05
halving BCH Halving

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

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

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,883.5
1
Ethereum ETH
$1,869.71
1
Solana SOL
$74.02
1
BNB Chain BNB
$592.2
1
XRP Ledger XRP
$1.08
1
Dogecoin DOGE
$0.0704
1
Cardano ADA
$0.1945
1
Avalanche AVAX
$6.57
1
Polkadot DOT
$0.8296
1
Chainlink LINK
$8.24

🐋 Theo dõi cá voi

🔴
0x5a19...1fd1
3 giờ trước
Chuyển ra
1,836,650 USDC
🔵
0x1a4a...9863
12 phút trước
Stake
3,146,829 USDT
🔴
0x6706...a445
30 phút trước
Chuyển ra
374.52 BTC

💡 Smart Money

0x53f5...2eb8
Bot chênh lệch giá
+$1.6M
77%
0x99c3...1d69
Nhà giao dịch on-chain dày dặn
+$3.7M
68%
0x8576...3b34
Thợ đào DeFi hàng đầu
+$4.1M
69%