Perkenalkan Pickles SNARK: Mengaktifkan “Smart Contract” pada Protokol Mina

Sage Knight
3 min readSep 5, 2020

oleh Izaak Meckler, CTO dan co-founder, O(1) Labs. Building
Protokol Mina.

Pickles adalah “proof system” baru dan toolkit terkait yang pertama mendeploy SNARK yang mampu membuat komposisi rekursif tanpa “trusted setup”.

Dalam testnet Mina kami yang akan datang (3.3), kami merilis Pickles: Pickles adalah “proof system” baru dan toolkit terkait yang pertama mendeploy SNARK yang mampu membuat komposisi rekursif tanpa
“trusted setup”
. Pickles akan berfungsi sebagai dasar bagi pengembang untuk membangun “Smart Contract Pribadi” yang dapat diskalakan di Mina.

“Trusted-set-ups” telah lama membingungkan pengguna SNARK: bagi yang paling skeptis di antara kita, mereka membuat penggunaan SNARK tidak menyenangkan karena memaksa Anda untuk memercayai beberapa pelaku node di masa lalu yang berperilaku baik.

Bagi mereka yang lebih mau percaya, mereka berdiri sebagai penghalang untuk menyebarkan aplikasi baru, sebagaimana sebelum munculnya pengaturan universal SNARK, pengaturan baru diperlukan untuk setiap sirkuit SNARK baru.

Untuk Mina secara khusus, kebutuhan akan “trusted setup” menghadirkan hambatan untuk memiliki eksekusi “Smart Contract” yang diverifikasi secara on-chain, karena membuat “Smart Contract” baru akan memerlukan kita membuat “trusted setup” baru, yang merupakan pekerjaan yang mahal dan rumit secara logistik.

Untungnya, pada testnet berikutnya (3.3), Mina akan berjalan di atas Pickles SNARK kami, yang tidak memerlukan “trusted setup” dan dibuat khusus untuk mengaktifkan “Smart Contract” berbasis Snapp di atas Mina.

Apa yang membuat Pickles begitu enak

Untuk pengembang yang mengerjakan aplikasi pribadi yang dapat diverifikasi (yang kami sebut Snapps), “proof system” dan perangkat pengembangnya membutuhkan tiga hal:

1. Cara mudah untuk pengembangan yang memenuhi kebutuhan “trusted setup” atau menghindarinya.
2. Alat pengembang yang kuat dan sebuah “library” fungsionalitas tingkat tinggi.
3. Prover dan verifier yang efisien, dan jalur menuju penskalaan.

Pickles memiliki dua komponen: inti zk-SNARK, dan toolkit pengembang (berisi beragam fungsionalitas “library” dan “proof system” Induktif Pickles) yang membuat penskalaan dengan rekursi menjadi cepat (permainan kata yang awalnya tidak disengaja). Bersama, mereka menyediakan poin 1–3.

Di dalam air garam: Inti Pickles zk-SNARK

Pickles’s zk-SNARK meningkat secara signifikan pada SNARK rekursif berbasis Groth16 Mina sebelumnya dalam beberapa cara.

Pertama, ini memungkinkan peningkatan efisiensi di seluruh Mina dengan beralih dari bidang besar 753 bit ke bidang kecil 255 bit. Ini telah menghasilkan:

  • Kecepatan evaluasi VRF meningkat 16x
  • Kecepatan hashing meningkat sekitar 8x
  • Mengurangi kebutuhan “storage” untuk “ledger” sebanyak 3x

Seperti yang telah disebutkan, ini menghilangkan kebutuhan untuk “trusted setup”. Ini menyelesaikannya dengan membangun di atas argumen produk sendiri Halo, menambahkannya dengan teknik batching, batasan khusus, dan banyak pengoptimalan lainnya.

Terakhir, ini mendukung batasan khusus yang disesuaikan untuk memungkinkan rekursi yang efisien, khususnya memungkinkan efisien:

  • Poseidon hashing
  • Penskalaan, penjumlahan, dan penggandaan kurva eliptik
  • Ini akan disertakan dalam rilis 4.1 Mina kami dan saat ini dinonaktifkan.

Selain itu, alat “Proof System” Induktif Pickles secara dramatis mengembangkan solusi yang ada untuk rekursi, dengan mengabstraksi semua detail berantakan dari kriptografi yang mendasarinya dan membuat perancangan “Proof System” rekursif dapat diakses oleh pengembang aplikasi.

Pengujian rasa: Bagaimana perbandingan Pickles

Pickles adalah satu-satunya zk-SNARK “setupless” yang mendukung rekursi percabangan “arbitrary” (yang penting untuk skalabilitas). Selain itu, ia memiliki “prover” (pembukti) yang cepat, dan tidak seperti STARKs berbasis AIR, keduanya memiliki ukuran “proof” yang kecil dan mendukung sirkuit umum. Tabel ini memberikan gambaran umum tentang bagaimana Pickles maju melawan sistem yang lain.

*Memperoleh data apples-to-apples dari masing-masing dengan kecepatan yang terbukti dari sistem ini sangat sulit, jadi saya telah mencoba memberikan ringkasan tingkat tinggi yang adil.

Menantikan snapps Pickled

Untuk sebagian besar aplikasi yang dapat diverifikasi, menjalankan secara terpisah tidaklah cukup, dan selain item 1–3 di atas (yaitu, jalan menuju penerapan, alat pengembang, skalabilitas), Anda juga menginginkan:

4. Kemampuan untuk secara kompos berinteraksi dengan aplikasi lain dalam ekosistem yang sepenuhnya diverifikasi

Pickles adalah teknologi fundamental yang memungkinkan Mina mendukung Snapps, komputasi umum, zero-knowledge “Smart Contract” yang dapat diverifikasi sepenuhnya. Kami akan segera menulis lebih banyak tentang topik ini, tetapi beberapa aplikasi yang paling kami sukai adalah desentralisasi pemungutan suara pribadi, permainan informasi parsial yang “trustless”, bukti pribadi kelayakan kredit, dan “oracle” universal. Anda dapat membaca lebih lanjut tentang yang terakhir di sini (dalam bahasa inggris).

Terima kasih banyak kepada tim di Electric Coin Co., Aztec, dan penulis ZEXE. Pickles tidak akan mungkin terjadi tanpa kontribusi mereka sebelumnya.

Jika Anda ingin berdiskusi tentang kriptografi dengan tim dan komunitas yang lebih luas, atau terlibat dalam testnet kami, komunitas teknis kami di Discord sangat aktif.

--

--