Bulletproofs: Zero-Knowledge Proof Pendek Tanpa Trusted Setup

Penulis Bünz, Benedikt; Bootle, Jonathan; Boneh, Dan; Poelstra, Andrew; Wuille, Pieter; Maxwell, Greg
Tahun 2018
Proyek Bulletproofs
Lisensi Public Domain
Sumber Resmi eprint.iacr.org/2017/1066.pdf
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.

“Bulletproofs: Short Non-Interactive Zero-Knowledge Proofs” (2018, IEEE S&P) oleh Benedikt Bünz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille, dan Greg Maxwell memperkenalkan sistem zero-knowledge proof yang sangat pendek dengan tanpa trusted setup — keunggulan besar dibandingkan sistem ZK sebelumnya seperti Groth16. Aplikasi utamanya adalah range proof: membuktikan bahwa nilai yang dikomit berada dalam rentang [0, 2^n) tanpa mengungkapkan nilainya — esensial untuk transaksi rahasia.

Publikasi dan Konteks

Sebelum Bulletproofs, sistem ZK yang efisien (seperti Groth16) memerlukan trusted setup — upacara komputasi multi-pihak yang menghasilkan “toxic waste” (parameter rahasia yang jika bocor dapat memungkinkan pembuatan proof palsu). Ini merupakan risiko keamanan dan kepercayaan yang signifikan untuk sistem keuangan. Bulletproofs menghilangkan kebutuhan ini sepenuhnya, dengan mengorbankan waktu verifikasi yang lebih lambat.

Perbandingan Sistem ZK

Properti Bulletproofs Groth16 PLONK
Trusted Setup Tidak Ya (per-sirkuit) Ya (universal)
Ukuran Proof O(log n) Konstan (kecil) Konstan (kecil)
Waktu Verifikasi O(n) Konstan (cepat) Konstan (cepat)

Cara Kerja Bulletproofs: Inner Product Argument

Bulletproofs menggunakan inner product argument (IPA) sebagai primitif inti — cara untuk membuktikan pengetahuan dua vektor yang hasil kali dalamnya sama dengan nilai yang dikomit, menggunakan hanya O(log n) elemen field.

Untuk range proof:

  1. Komit nilai v sebagai Pedersen commitment: C = v·G + r·H
  2. Ekspresikan representasi biner v sebagai vektor
  3. Gunakan inner product argument untuk membuktikan vektor merepresentasikan bilangan biner valid tanpa mengungkapkan v

Ini menghasilkan proof berukuran ~600 byte untuk range proof 64-bit, vs. ~1,5 KB untuk sistem lama.

Aplikasi

  • Monero: Menggantikan ring signature awal dengan RingCT menggunakan Bulletproofs untuk jumlah transaksi rahasia (diluncurkan 2018). Mengurangi ukuran transaksi ~80%.
  • Grin / MimbleWimble: Menggunakan Bulletproofs untuk menyembunyikan semua nilai transaksi dalam blockchain MimbleWimble.
  • Verifikasi solvabilitas exchange: Bursa dapat membuktikan total aset melebihi total kewajiban tanpa mengungkapkan saldo individual.

Keterbatasan

Waktu verifikasi Bulletproofs O(n) berarti memverifikasi batch transaksi besar lebih lambat daripada sistem berbasis pairing. Namun Bulletproofs mendukung agregasi batch: membuktikan banyak range proof sekaligus memiliki biaya hampir sama dengan membuktikan satu.

Warisan

Bulletproofs membuka jalan bagi sistem ZK tanpa trusted setup yang lebih baru: Halo/Halo2 dan sistem IPA modern. Bersama-sama, Bulletproofs dan sistem turunannya membuktikan bahwa ZK fungsional tidak harus bergantung pada upacara trusted setup yang rumit.

Istilah Terkait

Referensi