Zcash Sapling: BLS12-381, JubJub, Groth16 SNARK, dan Ceremony Powers of Tau untuk Privasi Praktis

Penulis Bowe, Sean; Gabizon, Ariel; Miers, Ian
Tahun 2017
Proyek Zcash Sapling
Lisensi MIT
Sumber Resmi github.com/zcash/zips (Sapling Protocol)
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

Makalah Zcash Sapling (2017, deployed Oktober 2018) oleh Sean Bowe, Ariel Gabizon, dan Ian Miers merancang ulang secara mendasar kriptografi zk-SNARK Zcash — mengurangi waktu pembuktian dari ~40 detik menjadi ~1 detik dan memori yang dibutuhkan dari ~3 GB menjadi ~40 MB. Ini menjadikan shielded transaction Zcash layak untuk pertama kalinya pada perangkat mobile.

Sapling juga memperkenalkan hirarki kunci yang lebih kaya yang memungkinkan selective disclosure (berbagi full viewing key dengan auditor tanpa mengungkapkan spending key).

Konteks: Keterbatasan Zcash Sprout (Sebelum Sapling)

Zcash asli (Sprout, 2016) menggunakan SNARK berbasis kurva BN128 (BN254) dengan:

  • Waktu pembuktian: ~40 detik per transaksi shielded
  • Memori: ~3 GB RAM diperlukan untuk membuat proof
  • Hasilnya: Hampir tidak ada yang menggunakan shielded transaction dalam praktik — terlalu lambat dan membutuhkan hardware khusus

Inovasi Kriptografi Sapling

BLS12-381: Kurva Baru yang Lebih Efisien

Sapling beralih dari BN254 ke BLS12-381 — kurva pairing-friendly yang:

  • Memiliki keamanan ~128 bit (vs. keamanan yang dipertanyakan BN254 post-2015)
  • Scalar field lebih cocok untuk representasi sirkuit internal
  • BLS12-381 kini menjadi kurva standar industri untuk ZK proof (digunakan oleh Ethereum KZG/EIP-4844)

JubJub: Twisted Edwards Curve di Atas BLS12-381

JubJub adalah kurva elliptic twisted Edwards yang didefinisikan di atas scalar field BLS12-381. Ini memiliki properti luar biasa: operasi JubJub dapat direpresentasikan secara efisien di dalam sirkuit SNARK BLS12-381. Hasilnya: operasi tanda tangan dan hashing dalam sirkuit menjadi jauh lebih hemat constraint.

Pedersen Hash sebagai Pengganti SHA-256 dalam Sirkuit

Sprout menggunakan SHA-256 di dalam sirkuit SNARK untuk fungsi komitmen dan PRF. SHA-256 di dalam SNARK sangat mahal (ribuan constraint). Sapling menggantinya dengan Pedersen Hash (komitmen kriptografis berbasis kurva elliptic) yang jauh lebih efisien dalam sirkuit — mengurangi ukuran sirkuit secara dramatis.

RedJubjub Signatures

Sapling menggunakan RedJubjub (varian Schnorr/EdDSA di atas JubJub) untuk tanda tangan spend authorization — menggantikan ECDSA di atas BN254. Lebih efisien dalam sirkuit dan lebih mudah diimplementasikan dengan benar.

Hirarki Kunci Sapling

Sapling memperkenalkan hirarki kunci yang jauh lebih kaya:

Kunci Kemampuan
Spending Key Mengirim ZEC dari alamat shielded (kunci privat penuh)
Proof Authorizing Key Membuat spending proof tanpa dapat membelanjakan langsung
Full Viewing Key Melihat semua transaksi masuk dan keluar (untuk auditor)
Incoming Viewing Key Melihat transaksi masuk saja (untuk node pembayaran)

Hirarki ini memungkinkan selective disclosure: berbagi Full Viewing Key dengan auditor membuktikan riwayat transaksi tanpa menyerahkan kemampuan belanja.

Powers of Tau dan Sapling Ceremony (2018)

Sapling menggunakan Groth16 — SNARK yang memerlukan trusted setup (parameter publik yang harus dibuat dengan aman). Jika pembuat parameter menyimpan “toxic waste” (randomness yang digunakan), mereka dapat membuat proof palsu.

Zcash mengadakan Sapling MPC ceremony pada 2018 dengan ~100 peserta:

  • Setiap peserta menyumbangkan randomness mereka ke parameter, kemudian menghancurkannya
  • Parameter aman selama minimal satu peserta jujur menghancurkan toxic waste mereka
  • Ceremony ini menginspirasi Ethereum KZG ceremony (EIP-4844) yang menggunakan model multi-party ceremony serupa

Catatan Realistis

  • Sapling adalah lompatan teknis yang nyata: dari transaksi privat yang secara praktis tidak bisa digunakan (40 detik, 3 GB RAM) menjadi layak pada smartphone.
  • Adopsi shielded tetap rendah: Meski Sapling, mayoritas transaksi Zcash tetap transparent (tidak shielded) karena tekanan bursa untuk transparansi dan inertia pengguna. Privasi opt-in tidak berhasil sebagus privasi default (seperti Monero).
  • Warisan kriptografi: BLS12-381, JubJub, dan pola ceremony Powers of Tau kini banyak digunakan di luar Zcash — terutama BLS12-381 menjadi kurva pilihan untuk KZG commitments Ethereum.

Istilah Terkait

Referensi

  • Bowe, S.; Gabizon, A.; Miers, I. (2017). Scalable Multi-party Computation for zk-SNARK Parameters in the Random Beacon Model. github.com/zcash/zips