| Penulis | Bowe, Sean; Grigg, Jack; Hopwood, Daira |
|---|---|
| Tahun | 2021 |
| Proyek | Electric Coin Company / Zcash |
| Lisensi | MIT |
| Sumber Resmi | zcash.github.io/halo2/ |
Halo2 (2021) oleh Sean Bowe, Jack Grigg, dan Daira Hopwood (Electric Coin Company) adalah sistem recursive ZK proof yang mencapai komposisi proof rekursif tanpa trusted setup dengan menggabungkan aritmetisasi PLONK dengan skema komitmen polinomial yang diturunkan dari inner product argument (seperti Bulletproofs). Halo2 adalah implementasi produksi yang digunakan dalam Zcash Orchard dan diadopsi oleh tim zkEVM untuk membangun rollup Layer 2 yang kompatibel dengan Ethereum.
Publikasi dan Konteks
Paper “Halo” asli (2019) oleh Sean Bowe membuktikan bahwa komposisi rekursif dari proof dimungkinkan tanpa trusted setup. Halo2 adalah implementasi produksi yang menyempurnakan desain ini. Latar belakang: Groth16 (digunakan oleh Zcash Sapling) memerlukan trusted setup per-sirkuit yang tidak dapat digunakan kembali. Setiap perubahan pada sirkuit memerlukan upacara baru. PLONK memperkenalkan trusted setup universal, tetapi Halo2 menghilangkan kebutuhan ini sama sekali dengan menggunakan IPA daripada commitments berbasis KZG.
Konsep Inti
- Aritmetisasi PLONK: Sirkuit diekspresikan sebagai sistem constraint dengan custom gate (bukan hanya R1CS seperti di Groth16). Custom gate memungkinkan representasi sirkuit yang lebih efisien untuk operasi umum.
- Inner Product Argument (IPA): Halo2 menggunakan varian IPA untuk polynomial commitments — tanpa trusted setup, tetapi proof lebih besar dari sistem berbasis KZG. Trade-off: keamanan hanya berdasarkan asumsi discrete log hardness (tidak perlu “toxic waste” dari upacara setup).
- Recursive Composition: Skema “akumulasi” dalam Halo/Halo2 memungkinkan satu proof memverifikasi proof lain, memungkinkan kompresi proof: sistem dapat mengakumulasikan ribuan transaksi menjadi satu proof pendek yang diverifikasi on-chain.
Custom Gate di Halo2
Custom gate adalah inovasi kunci Halo2 dibandingkan PLONK standar:
- Mendefinisikan operasi spesifik sirkuit sebagai constraint polinomial
- Mengurangi jumlah baris yang diperlukan (efisiensi lebih baik daripada R1CS generik murni)
- Digunakan dalam sirkuit Orchard Zcash untuk tipe alamat Sapling/Orchard
Adopsi dalam zkEVM
Halo2 digunakan sebagai backend pembuktian oleh:
- Scroll: Membangun sirkuit zkEVM mereka di Halo2 (Type-2 EVM equivalence)
- Polygon zkEVM: Awalnya menggunakan SNARK + Halo2 secara komposisional
- PSE (Privacy and Scaling Explorations, Ethereum Foundation): Implementasi referensi Halo2
- Axiom: Menggunakan Halo2 untuk ZK coprocessor query on-chain
Halo2 mewakili jalur ZK tanpa trusted setup yang paling banyak diproduksi untuk zkEVM — trade-off ukuran proof yang lebih besar dibandingkan sistem berbasis KZG diterima mengingat tidak adanya risiko upacara setup.
Istilah Terkait
Referensi
- Bowe, S.; Grigg, J.; Hopwood, D. (2021). Halo2 Documentation. Electric Coin Company. zcash.github.io/halo2/
- Bowe, S.; Grigg, J.; Hopwood, D. (2019). Recursive Proof Composition without a Trusted Setup. eprint.iacr.org/2019/1021.pdf