Blockchain Basicsintermediatearticle30 min read

Thanh Toán Sổ Cái: zkRollup Giống Chạy Hàng Bán Buôn Bến Thành | ZK Scaling

zkRollup gom hàng nghìn giao dịch như container bán buôn — một proof, một calldata, phí chia nghìn cách. zk rollup phí giao dịch, l2 gom giao dịch, rollup phí rẻ.

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 31 tháng 8, 2026Updated 30 tháng 8, 2026

Một zk rollup là đối tác blockchain của người buôn bán buôn Bến Thành: đóng 500 áo sơ mi vào một container, vận chuyển một lần, chia chi phí flete cho mỗi áo — thay vì gửi từng áo qua bưu kiện nhanh. Kết quả: zk rollup phí giao dịch giảm từ đô la xuống xu, vì phần đắt đỏ nhất (đăng dữ liệu lên Ethereum) được chia sẻ.

Một câu tóm gọn: zkRollup gom hàng nghìn giao dịch vào một batch, tạo một bằng chứng ZK duy nhất, và chia chi phí calldata cho tất cả user — nên mỗi người chỉ trả một phần nhỏ.

Nếu bạn từng thắc mắc tại sao l2 gom giao dịch làm phí rẻ 10–20 lần so với Ethereum mainnet, hay tại sao rollup phí rẻ là phép màu đằng sau zkSync, Starknet, Linea — bài viết này giải mã bằng phép so sánh với thị trường bán buôn cho dễ hiểu.

So sánh bán lẻ vs bán buôn: 500 khách gửi lẻ vs 1 người buôn đóng container — zkRollup batch 1000 tx chia 1 proof + 1 calldata

Hình 1: Container Bán Buôn — 1000 giao dịch chia 1 bằng chứng và 1 calldata

Vấn Đề: Vận Chuyển Lẻ Rất Đắt

Trên Ethereum mainnet, mỗi giao dịch là một "bưu kiện nhanh" riêng biệt:

  • Bạn trả ghi trạng thái (state write) — cập nhật sổ cái blockchain
  • Bạn trả calldata — đăng dữ liệu giao dịch lên chuỗi
  • Bạn trả phí ưu tiên (priority fee) — tiền tip cho validator
  • Tổng cộng: $1–$5+ cho một transfer đơn giản

zkRollup thay đổi cuộc chơi: vận chuyển số lượng lớn (wholesale).

zkRollup Thực Sự Làm Gì

  1. User gửi giao dịch đến operator L2 (sequencer).
  2. Operator gom batch giao dịch — hàng trăm, hàng ngàn — off-chain.
  3. Operator tạo MỘT validity proof (ZK-SNARK hoặc ZK-STARK) chứng minh cả batch đúng.
  4. Operator đăng lên Ethereum: bằng chứng + dữ liệu batch nén (calldata).
  5. Ethereum kiểm tra proof — nếu hợp lệ, state root mới được chấp nhận.

Ma thuật ở chỗ: một proof, một lần đăng calldata, hàng nghìn giao dịch. Chi phí cố định (verify proof ~500k gas, state write) trả một lần. Chi phí biến đổi (calldata) được nén và chia.

Phân Tích Chi Phí: Tiền Bạn Đi Đâu

Thành phần chi phíEthereum L1 (mỗi tx)zkRollup (mỗi tx, batched)
State write~21,000 gas (cố định)~21,000 gas ÷ batch size
Calldata~100–200 byte × 16 gasNén (index thay address) ÷ batch
Phí operatorN/ATip nhỏ cho sequencer
Xác minh proofN/A~500,000 gas ÷ batch size
Tổng$1.00–$5.00+$0.05–$0.20

Dữ liệu thực (l2fees.info): zkSync Era ~$0.07 send ETH, Starknet ~$0.19, Ethereum L1 ~$1.10.

Phân tích chi phí: zkRollup batch 4 thành phần vs L1 đơn lẻ 3 thành phần — chia đều chi phí cố định, nén calldata

Hình 2: Phân Tích Chi Phí — chi phí cố định chia đều, calldata nén, batch thắng

Tại Sao Lại Rẻ Như Vậy?

  • Nén calldata: dùng index 4-byte thay address 20-byte (tiết kiệm 28 byte/tx). Byte zero = 4 gas, byte non-zero = 16 gas.
  • Chi phí cố định chia đều: 500k gas verify proof chia cho 1,000 tx = 500 gas/tx.
  • Không verify chữ ký mỗi tx trên L1: ZK proof cover cả batch.

Validity Proof: Phiếu Nhận Bao Quát Mọi Giao Dịch

Một validity proof (ZK-SNARK hoặc ZK-STARK) là biên nhận mật mã nói: "Tôi đã verify mọi tx trong batch này — sender đủ tiền, balance cập nhật đúng, không double-spend."

  • ZK-SNARK: proof nhỏ (~200 byte), verify thời gian hằng số, cần trusted setup (ceremony). Dùng bởi zkSync (Boojum), Polygon zkEVM.
  • ZK-STARK: proof lớn hơn (~50–100 KB), transparent (không trusted setup), kháng lượng tử, scale quasilinear. Dùng bởi Starknet.

Cả hai đều được verify trên Ethereum bởi verifier contract. Proof pass → state root mới là canonical. Không cần re-execute.

Mạch Chứng Minh: Cách Phiếu Nhận Được Tạo

Mạch chứng minh "lặp" qua mỗi tx trong batch:

` For each tx in batch: 1. Verify sender account exists in current state root (Merkle proof) 2. Check sender balance ≥ amount 3. Decrease sender balance, increase nonce 4. Hash updated account + Merkle proof → new intermediate state root 5. Verify receiver account exists in intermediate root 6. Increase receiver balance 7. Hash updated account + Merkle proof → new intermediate state root End loop Final state root = post-state root Batch root = Merkle root of all tx in batch `

Mạch đầu ra: pre-state root, post-state root, batch root, transaction inputs. Verifier check: proof valid + pre-state match on-chain root → accept post-state.

Recursive Proofs: Container Của Container

Recursive proofs đi xa hơn: thay vì verify một block proof một lần, mạch verify nhiều block proofs và ra MỘT proof.

` Block 1 proof → Block 2 proof → Recursive circuit → ONE recursive proof → Ethereum verify once Block 3 proof → ... Block N proof → `

Kết quả: finalize N blocks với một lần verify L1. Throughput multiplier. Đây là cách zkVM (RISC Zero, SP1) và rollup nâng cao scale thêm.

Bằng chứng đệ quy: 4 bằng chứng block → 1 mạch đệ quy → 1 bằng chứng đệ quy → Ethereum verify 1 lần → finalize 4 block

Hình 3: Bằng Chứng Đệ Quy — container của container, nhân throughput

Các Kỹ Thuật Nén Dữ Liệu

Kỹ thuậtTiết kiệm
Account index (4 byte) vs address (20 byte)28 byte/tx
Non-zero byte: 16 gas → Zero byte: 4 gasEncode giá trị thường gặp thành zero
Batch Merkle root onlyO(1) calldata cho batch inclusion
Transaction input compressionChỉ post field bắt buộc

zkSync Era's Boojum prover dùng Plonk + custom gates cho batch proving hiệu quả. Starknet's Cairo VM compile sang STARK-friendly AIR.

So Sánh Phí Thực Tế

NetworkSend ETHSwap TokensType
Ethereum L1$1.10$5.48Base layer
zkSync Era$0.07—ZK-Rollup (SNARK)
zkSync Lite$0.09$0.22ZK-Rollup (SNARK)
Loopring$0.04$0.59ZK-Rollup (SNARK)
Starknet$0.19$0.57ZK-Rollup (STARK)
Polygon zkEVM$0.19$2.75ZK-Rollup (SNARK)
Optimism / Arbitrum$0.09$0.18–$0.27Optimistic Rollup

Nguồn: l2fees.info (live data). ZK-rollups thường rẻ nhất cho transfer đơn giản.

Sự Đánh Đổi Trung Thực

Điều bạn nhận được:

  • Phí rẻ 10–20 lần
  • Finality gần như tức thì (proof verified → state final)
  • Self-custody: ai cũng tái tạo state từ calldata + rút qua Merkle proof

Điều bạn đánh đổi:

  • Rủi ro sequencer tập trung: hầu hết rollup dùng single operator (censorship có thể, giảm thiểu bằng forced exit via L1)
  • Hardware sinh proof: GPU/FPGA chuyên dụng cho prover (áp lực tập trung)
  • Trusted setup (SNARKs): rủi ro ceremony nếu all participant compromised
  • EVM compatibility: không phải opcode nào cũng support ngang nhau (Type 1–4 spectrum)

Các Câu Hỏi Thường Gặp Về Phí zkRollup

Tại sao phí zk rollup lại rẻ?

Batching chia chi phí cố định (verify proof, state write) cho hàng nghìn tx. Calldata nén (index vs address, zero-byte encoding).

"l2 gom giao dịch" là gì?

Tiếng Việt cho "L2 aggregates transactions" — operator gom nhiều user tx, thực hiện off-chain, chứng minh đúng bằng một ZK proof, đăng một batch lên Ethereum.

Batching giảm chi phí calldata như thế nào?

Ethereum tính 16 gas/byte non-zero, 4 gas/byte zero. Rollup nén: index 4-byte thay address 20-byte, encode giá trị lặp thành zero. 1000 tx → ~10 KB calldata vs ~200 KB raw.

Khác biệt ZK-SNARK vs ZK-STARK rollup?

SNARK: proof nhỏ, verify nhanh, trusted setup. STARK: proof lớn, transparent, kháng lượng tử. Cả hai verify batch correctness trên Ethereum.

Operator xấu có thể cướp tiền không?

Không — validity proof đảm bảo state transition đúng. Operator chỉ censor (bỏ tx của bạn), không thể execute tx sai. Forced exit via L1 bảo vệ chống censor.

Withdrawal hoạt động thế nào?

User gửi tx burn account trên L2. Sau batch finalized, user submit Merkle proof + batch root + tx data lên L1 contract. Contract verify inclusion → release funds. Gần như tức thì.

zk rollup nào đang live?

zkSync Era, Starknet, Polygon zkEVM, Scroll, Linea, Taiko, ZKsync Lite, Loopring. zkEVM types từ Type 1 (Ethereum-equivalent, Taiko) đến Type 4 (high-level language, zkSync).

Recursive proofs trong rollup là gì?

Một proof verify nhiều block proofs. Thay vì verify Block 1, rồi Block 2, rồi Block 3 trên L1 — recursive circuit verify cả ba, ra một proof. L1 verify một lần, finalize cả ba.

Kết Luận

Một zk rollup là container vận chuyển số cho giao dịch. Thay vì mỗi user trả full phí (L1 gas), operator gom hàng nghìn tx vào một batch, tạo một ZK receipt, đăng một calldata nén — và mọi người chia bill.

zk rollup phí giao dịch giảm xuống xu vì:

  1. Chi phí cố định chia đều (verify proof, state write)
  2. Calldata nén (index, zero-byte encoding)
  3. Một proof cover all (validity proof cho cả batch)
  4. Recursive proofs nhân lên (container của container)

Người buôn bán buôn Bến Thành không quan tâm thiết kế áo — họ quan tâm đóng đầy container. zkRollup không quan tâm purpose tx của bạn — nó quan tâm pack đầy batch. Container đầy = chi phí thấp nhất mỗi áo. Batch đầy = phí thấp nhất mỗi tx.


Tham Khảo Nhanh

Thuộc tínhzkRollup
Core mechanismBatch tx off-chain → 1 ZK proof → 1 calldata post
Fee per tx (simple transfer)~$0.05–$0.20 (vs $1–$5 L1)
Calldata cost16 gas/non-zero byte, 4 gas/zero byte (EIP-1559)
Compression4-byte index vs 20-byte address
Proof verification~500k gas fixed, split across batch
Recursive proofsAggregate N block proofs → 1 L1 verify
FinalityInstant after proof verified on L1
Self-custodyYes — reconstruct state from calldata
Main riskSequencer centralization (censorship)
Live exampleszkSync Era, Starknet, Polygon zkEVM, Scroll, Linea, Taiko

Tags:

zk rollup phí giao dịchl2 gom giao dịchrollup phí rẻ