TÓM TẮT
Trusted Setup là quá trình khởi tạo tham số mật mã (CRS) cho ZK-SNARK. Các số bí mật được tạo ra trong ceremony phải bị destroy hoàn toàn — nếu còn tồn tại ("toxic waste"), kẻ có nó forge được ZK proof. Multi-party ceremony: chỉ cần 1 người honest là an toàn. ZK-STARK không cần trusted setup vì dựa trên hash function công khai.
ITrusted Setup là gì?
Trusted Setup (hay "ceremony") là quá trình khởi tạo tham số mật mã công khai (Common Reference String — CRS) dùng trong ZK-SNARK proof system. Quá trình này tạo ra một cặp: proving key (prover dùng để tạo proof) và verification key (verifier dùng để verify).
Vấn đề: để tạo CRS, cần các số ngẫu nhiên bí mật (secret randomness). Sau khi CRS được tạo xong, các số bí mật này phải bị destroy hoàn toàn — không được lưu giữ bởi bất kỳ ai. Nếu ai đó giữ lại, họ có thể tạo ZK proof giả cho bất kỳ statement nào, kể cả statement sai.
IITại sao ZK-SNARK cần Trusted Setup?
ZK-SNARK (Succinct Non-interactive ARgument of Knowledge) được xây trên elliptic curve pairing — một phép toán toán học cho phép verify proof ngắn gọn và nhanh chóng. Để hoạt động, pairing-based SNARK cần:
- Structured Reference String (SRS): Một chuỗi các điểm trên elliptic curve, được tạo từ các lũy thừa của số bí mật τ (tau): [τ⁰G, τ¹G, τ²G, ..., τⁿG] với G là generator của curve.
- Số bí mật τ: Phải random, không được biết bởi ai sau ceremony — nếu biết τ, có thể tạo fake proof cho bất kỳ circuit nào.
Về cơ bản: SRS là như một "khung" toán học cho phép prover "nhúng" computation vào và verifier "kiểm tra" mà không biết input. Nhưng để tạo khung này, cần secret τ — và secret đó phải biến mất.
IIICommon Reference String (CRS)
CRS là output của trusted setup — chuỗi tham số công khai mà cả prover và verifier đều dùng. CRS gồm:
- Proving key (pk): Prover dùng để generate ZK proof. Thường rất lớn (MB đến GB).
- Verification key (vk): Verifier dùng để verify proof. Nhỏ hơn nhiều (KB).
CRS có thể là:
- Universal CRS: Một CRS cho tất cả circuit có size ≤ N. PLONK, Marlin dùng loại này — ceremony một lần, dùng cho mọi ứng dụng.
- Circuit-specific CRS: Mỗi circuit khác nhau cần ceremony riêng. Groth16 dùng loại này — setup per-circuit, nhỏ và nhanh hơn nhưng kém linh hoạt.
IVPowers of Tau Ceremony
"Powers of Tau" là tên phổ biến cho trusted setup ceremony tạo universal SRS. Tên này đến từ cấu trúc SRS: [G, τG, τ²G, ..., τⁿG] — lũy thừa (powers) của tau (τ) nhân với elliptic curve generator G.
Cấu trúc Multi-Party Computation (MPC)
Thay vì một người tạo τ (phải tin tuyệt đối vào người đó), ceremony dùng MPC với nhiều participant:
- Participant 1 chọn τ₁ ngẫu nhiên, tính SRS₁ = [G, τ₁G, τ₁²G, ...], rồi destroy τ₁.
- Participant 2 nhận SRS₁, chọn τ₂, tính SRS₂ = [G, τ₁τ₂G, (τ₁τ₂)²G, ...], rồi destroy τ₂.
- Tiếp tục với N participants...
- SRS cuối = [G, τG, τ²G, ...] với τ = τ₁ × τ₂ × ... × τₙ.
Tính chất quan trọng: τ cuối là tích của tất cả τᵢ. Chỉ cần một participant nào đó destroy τᵢ của họ, τ cuối không thể bị reconstruct. An toàn miễn là ít nhất 1 trong N người là honest.
VGroth16 vs PLONK — Yêu cầu Setup Khác Nhau
| Tiêu chí | Groth16 | PLONK |
|---|---|---|
| Loại setup | Circuit-specific (per-circuit) | Universal (một setup cho mọi circuit) |
| Ceremony | Phase 1 (Powers of Tau) + Phase 2 (circuit-specific) | Chỉ Phase 1 (universal SRS) |
| Proof size | Nhỏ nhất: 3 group elements (~200 bytes) | Lớn hơn: ~500–800 bytes |
| Verify time | Nhanh nhất | Chậm hơn một chút |
| Flexibility | Phải ceremony lại khi thay đổi circuit | Update circuit không cần ceremony mới |
| Dùng bởi | Zcash Sapling, Filecoin, nhiều DeFi | zkSync Era, Polygon zkEVM, Aztec |
Xu hướng mới (2023–2025): PLONK và các biến thể (HyperPlonk, UltraPlonk, Halo2) ngày càng phổ biến hơn Groth16 vì universal setup linh hoạt hơn trong development.
VICeremony Thực Tế — Zcash và Ethereum
Zcash Ceremony 2016 ("The Sprout MPC")
Ceremony đầu tiên nổi tiếng cho ZK-SNARK. 6 người tham gia — mỗi người generate secret τᵢ riêng biệt, sau đó ceremony được thực hiện theo chuỗi. Để đảm bảo destroy toxic waste, các participant dùng airgapped computer, Faraday cage, thậm chí destroy máy tính bằng vật lý sau ceremony.
Ceremony Sapling 2018 mở rộng hơn — 90 participant từ khắp thế giới, phần lớn ceremony chạy online với cryptographic verification. Dù nhiều người hoài nghi về 6 người trong ceremony 2016, về mặt toán học: chỉ cần 1 trong 6 người honest là an toàn.
Ethereum KZG Ceremony 2023
KZG ceremony cho EIP-4844 (Proto-Danksharding) là trusted setup lớn nhất lịch sử — 141,416 người tham gia từ tháng 1 đến tháng 3/2023. KZG (Kate-Zaverucha-Goldberg) polynomial commitment scheme cần trusted setup để tạo SRS dùng cho blob verification.
Đặc điểm nổi bật: ceremony hoàn toàn web-based (sequencer.ceremony.ethereum.org), bất kỳ ai có Ethereum account có thể tham gia. Với 141K participants, xác suất tất cả đều không honest là cực kỳ thấp về mặt thực tế.
VIITại sao ZK-STARK không cần Trusted Setup?
ZK-STARK (Scalable Transparent ARgument of Knowledge) hoàn toàn tránh được trusted setup bằng cách thay đổi nền tảng toán học:
- SNARK: Dựa trên elliptic curve pairing — cần CRS với secret τ.
- STARK: Dựa trên hash function (collision-resistant hash) và FRI (Fast Reed-Solomon Interactive Oracle Proof). Hash function không cần secret initialization — chỉ cần chọn hash function công khai (SHA256, Keccak, Poseidon).
STARK proof "transparent" — mọi tham số đều public, không có secret nào cần destroy. Bất kỳ ai cũng có thể verify setup là legitimate chỉ bằng cách nhìn vào parameters.
| Tiêu chí | ZK-SNARK | ZK-STARK |
|---|---|---|
| Trusted Setup | ✅ Cần ceremony | ❌ Không cần |
| Proof size | Nhỏ (~200 bytes Groth16) | Lớn (~45–200 KB) |
| Verify time | Nhanh (ms) | Nhanh (ms–10ms) |
| Prover time | Nhanh hơn | Nhanh, scale tốt |
| Quantum resistance | Không (elliptic curve) | Có (hash-based) |
| Transparency | Không (cần trust ceremony) | Hoàn toàn transparent |
| Dùng bởi | Zcash, zkSync, Polygon zkEVM | StarkNet, StarkEx |
Trade-off: STARK proof lớn hơn nhiều (~10–100x) so với SNARK — tốn gas hơn khi verify on-chain. Đây là lý do StarkNet có on-chain cost cao hơn về proof verification, nhưng không có trusted setup risk.
VIIIRủi ro và Cách Bảo Vệ
Rủi ro nếu Ceremony bị Compromise
Nếu tất cả participants trong ceremony colllude (hoặc một số ít người độc quyền ceremony nhỏ), kẻ có toxic waste có thể:
- Với ZK currency (Zcash): mint coins vô hạn mà không ai phát hiện.
- Với ZK Rollup: forge proof để steal funds hoặc submit invalid state.
- Tổng quát: prove bất kỳ statement sai nào là đúng — phá vỡ toàn bộ hệ thống.
Cách Bảo Vệ
- Nhiều participants: Càng nhiều người tham gia, xác suất tất cả corrupt càng thấp.
- Diversity: Participants từ nhiều quốc gia, tổ chức khác nhau — khó collide.
- Verifiable contribution: Mỗi đóng góp có ZK proof, công khai audit.
- Dùng STARK thay SNARK: Loại bỏ hoàn toàn trusted setup risk.
- Universal setup (PLONK): Dùng Powers of Tau với hàng nghìn người — không cần per-circuit ceremony.
IXTrusted Setup trong Thực Tế
Groth16 Circuits trong DeFi
Nhiều DeFi protocol dùng Groth16 cho privacy features (Tornado Cash, Aztec v2, Dark Forest game). Mỗi circuit riêng cần ceremony Phase 2 riêng — team thường tự chạy ceremony nhỏ với 10–50 người. Đây là acceptable risk với nhiều team vì circuit-specific và scope nhỏ.
Zcash Sapling và Sprout
Zcash là case study nổi tiếng nhất — hai lần ceremony lớn (Sprout 2016, Sapling 2018). Mỗi lần ceremony, community theo dõi chặt chẽ. Đến nay chưa có bằng chứng compromise dù ceremony 2016 chỉ có 6 người.
Ethereum Ecosystem
Ethereum đang dùng 2 trusted setup: KZG ceremony cho EIP-4844 blobs (2023, 141K people), và các zkEVM (zkSync, Polygon zkEVM dùng PLONK ceremony). Cộng đồng Ethereum consensus: với hàng chục nghìn participants, risk thực tế của trusted setup gần như không đáng kể.
Xu hướng: Minimize Trusted Setup
Research 2023–2025 đang push toward "transparent" SNARK — SNARK nhỏ như Groth16 nhưng không cần trusted setup. Các scheme như Halo2 (dùng recursive proof và IPA commitment, không pairing-based) giảm bớt trusted setup requirement. Tương lai: có thể có SNARK-size proof không cần ceremony nào.
❓Câu Hỏi Thường Gặp
Không thể biết chắc 100%. Có thể verify: (1) chain đóng góp — mỗi participant tạo valid contribution theo protocol, (2) participant list đủ diverse và nhiều. Nếu bị compromise, chỉ biết khi attack xảy ra. Đây là lý do STARK được ưa thích cho high-security applications.
Về mặt thực tế, rất an toàn. 141,416 participants — để forge proof, kẻ tấn công cần toxic waste từ tất cả participants đó (vì τ = tích tất cả τᵢ). Nếu chỉ một người trong số đó đã destroy τᵢ của họ thật sự, toàn bộ ceremony là safe.
Ethereum KZG ceremony đã kết thúc (2023). Nhưng nhiều ZK project mở ceremony cho community — zkSync, Polygon đều có public ceremony. Để participate: thường cần wallet, browser, và đóng góp randomness từ máy tính của bạn. Contribution của bạn được verified on-chain.
Hoàn toàn khác. TEE (như Intel SGX) là hardware secure enclave — chạy code bí mật trong chip. Trusted Setup là quá trình toán học tạo tham số mật mã. Một số ceremony dùng TEE để generate và destroy τᵢ an toàn hơn — nhưng đây là implementation detail, không phải cùng khái niệm.
📚Tài liệu tham khảo
- Zcash. Parameter Generation. z.cash/technology/paramgen/
- Ethereum Foundation. KZG Ceremony. ceremony.ethereum.org
- Buterin, V. How do trusted setups work? vitalik.ca/general/2022/03/14/trustedsetup.html
- Bowe, S. et al. (2018). Multi-party computation for zkSNARK parameters. eprint.iacr.org/2017/1050
- Gabizon, A. et al. (2019). PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. eprint.iacr.org/2019/953
- Ben-Sasson, E. et al. (2018). Scalable, transparent, and post-quantum secure computational integrity. eprint.iacr.org/2018/046