Sistem zk-SNARKs modern berasal dari makalah yang ditulis oleh Goldwasser, Micali, dan Rackoff pada tahun 1985. Makalah ini membahas jumlah pengetahuan yang perlu dipertukarkan untuk membuktikan kebenaran suatu pernyataan melalui interaksi berulang dalam sistem interaktif. Jika pertukaran pengetahuan dapat dilakukan tanpa mengungkapkan informasi, hal ini disebut zk-SNARKs. Sistem zk-SNARKs awal memiliki kekurangan dalam hal efisiensi dan kegunaan, dan sebagian besar masih berada di tingkat teori.
Dalam dekade terakhir, dengan munculnya kriptografi di bidang cryptocurrency, zk-SNARKs mulai berkembang pesat. Di antara itu, membangun protokol zk-SNARKs umum, non-interaktif, dengan ukuran bukti yang terbatas menjadi salah satu arah eksplorasi kunci. Inti dari zk-SNARKs adalah menyeimbangkan kecepatan bukti, kecepatan verifikasi, dan ukuran volume bukti.
Makalah yang diterbitkan oleh Groth pada tahun 2010 merupakan terobosan penting di bidang zk-SNARKs, yang meletakkan dasar teori untuk zk-SNARK. Pada tahun 2015, Zcash menggunakan sistem zk-SNARKs untuk melindungi privasi transaksi, menandai kemajuan penting teknologi ini di tingkat aplikasi. Sejak saat itu, zk-SNARKs digabungkan dengan kontrak pintar, memperluas skenario aplikasi yang lebih luas.
Hasil akademis penting lainnya meliputi:
Pinocchio 2013: Mengompresi bukti dan waktu verifikasi ke dalam rentang praktis
Groth16 tahun 2016: memperkecil skala bukti dan meningkatkan efisiensi verifikasi
Bulletproofs 2017: mengusulkan bukti nol interaktif pendek tanpa pengaturan yang dapat dipercaya
zk-STARKs 2018: Mengusulkan protokol ZK-STARK yang tidak memerlukan pengaturan yang dapat dipercaya
Kemunculan teknologi seperti PLONK dan Halo2 juga membawa perbaikan lebih lanjut untuk zk-SNARK.
Dua, Aplikasi zk-SNARKs
Dua aplikasi paling luas dari zk-SNARKs adalah perlindungan privasi dan skalabilitas. Proyek transaksi privasi awal seperti Zcash dan Monero pernah menjadi sorotan, tetapi karena kebutuhan nyata tidak sesuai harapan, mereka secara bertahap meredup dari arus utama. Dalam beberapa tahun terakhir, seiring dengan transisi Ethereum 2.0 ke jalur yang berfokus pada rollup, solusi skalabilitas berbasis ZK kembali menjadi sorotan.
transaksi privasi
Proyek perwakilan perdagangan privasi termasuk:
Menggunakan SNARK pada Zcash dan Tornado
Menggunakan Monero dengan Bulletproof
Sebagai contoh Zcash, proses transaksi zk-SNARKs-nya mencakup: pengaturan sistem, pembuatan kunci, pencetakan koin, transaksi, verifikasi, dan penerimaan. Namun, Zcash masih memiliki beberapa keterbatasan, seperti berbasis model UTXO, sulit untuk diperluas, dan lain-lain. Proporsi penggunaan transaksi privasi sebenarnya kurang dari 10%, menunjukkan bahwa promosi ini tidak berhasil.
Sebagai perbandingan, Tornado menggunakan metode kolam pencampuran besar yang tunggal yang lebih umum, dan berbasis pada jaringan Ethereum. Tornado pada dasarnya adalah kolam pencampuran yang menggunakan zk-SNARKs, yang dapat memberikan berbagai fitur perlindungan privasi.
Skalabilitas
Aplikasi ZK dalam skala dapat dibagi menjadi jaringan lapisan satu ( seperti Mina ) dan jaringan lapisan dua ( yaitu zk-rollup ). Gagasan inti dari zk-rollup pertama kali diusulkan oleh Vitalik pada tahun 2018.
zk-rollup terutama melibatkan dua jenis peran, yaitu Sequencer dan Aggregator. Sequencer bertanggung jawab untuk mengemas transaksi, sementara Aggregator bertanggung jawab untuk menggabungkan transaksi dan menghasilkan ZK bukti, yang digunakan untuk memperbarui pohon status Ethereum.
Keuntungan zk-rollup termasuk: biaya rendah, finalitas cepat, perlindungan privasi, dll. Kerugiannya meliputi: beban komputasi yang besar, pertimbangan keamanan ( seperti SNARK yang memerlukan pengaturan tepercaya ), kemungkinan mengubah urutan transaksi, dll.
Saat ini, proyek zk-rollup utama di pasar adalah: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, dan lain-lain. Proyek-proyek ini terutama memilih di antara SNARK( dan versi perbaikan ) serta STARK, serta tingkat dukungan untuk EVM.
Kompatibilitas sistem ZK dengan EVM selalu menjadi fokus perhatian industri. Saat ini, ada dua solusi utama: sepenuhnya kompatibel dengan opcode Solidity, atau merancang mesin virtual yang ramah ZK dan kompatibel dengan Solidity. Dalam beberapa tahun terakhir, iterasi teknologi yang cepat telah secara signifikan meningkatkan kompatibilitas EVM, memberikan lebih banyak kenyamanan bagi pengembang.
Tiga, Prinsip Dasar ZK SNARKs
zk-SNARKs harus memenuhi tiga sifat: integritas, keandalan, dan sifat nol-pengetahuan. zk-SNARK(Argumen Non-Interaktif Singkat Nol-Knowledge) sebagai salah satu skema bukti nol-pengetahuan yang penting, memiliki karakteristik berikut:
zk-SNARKs: proses pembuktian tidak mengungkapkan informasi tambahan
Sederhana: verifikasi ukuran kecil
Non-interaktif: tidak perlu interaksi berulang
Keandalan: Pembukti dengan kemampuan komputasi terbatas tidak dapat memalsukan bukti
Pengetahuan: Pembuktian harus mengetahui informasi yang valid untuk membangun bukti
Sebagai contoh zk-SNARK Groth16, prinsip pembuktiannya mencakup langkah-langkah berikut:
Mengubah masalah menjadi sirkuit
Mengonversi sirkuit ke bentuk R1CS
Mengonversi R1CS ke bentuk QAP
Membangun pengaturan yang tepercaya, menghasilkan parameter acak
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
zk-SNARKs: dari terobosan teori ke skenario aplikasi Web3
zk-SNARKs: Sejarah, Aplikasi, dan Prinsip
I. Perkembangan zk-SNARKs
Sistem zk-SNARKs modern berasal dari makalah yang ditulis oleh Goldwasser, Micali, dan Rackoff pada tahun 1985. Makalah ini membahas jumlah pengetahuan yang perlu dipertukarkan untuk membuktikan kebenaran suatu pernyataan melalui interaksi berulang dalam sistem interaktif. Jika pertukaran pengetahuan dapat dilakukan tanpa mengungkapkan informasi, hal ini disebut zk-SNARKs. Sistem zk-SNARKs awal memiliki kekurangan dalam hal efisiensi dan kegunaan, dan sebagian besar masih berada di tingkat teori.
Dalam dekade terakhir, dengan munculnya kriptografi di bidang cryptocurrency, zk-SNARKs mulai berkembang pesat. Di antara itu, membangun protokol zk-SNARKs umum, non-interaktif, dengan ukuran bukti yang terbatas menjadi salah satu arah eksplorasi kunci. Inti dari zk-SNARKs adalah menyeimbangkan kecepatan bukti, kecepatan verifikasi, dan ukuran volume bukti.
Makalah yang diterbitkan oleh Groth pada tahun 2010 merupakan terobosan penting di bidang zk-SNARKs, yang meletakkan dasar teori untuk zk-SNARK. Pada tahun 2015, Zcash menggunakan sistem zk-SNARKs untuk melindungi privasi transaksi, menandai kemajuan penting teknologi ini di tingkat aplikasi. Sejak saat itu, zk-SNARKs digabungkan dengan kontrak pintar, memperluas skenario aplikasi yang lebih luas.
Hasil akademis penting lainnya meliputi:
Kemunculan teknologi seperti PLONK dan Halo2 juga membawa perbaikan lebih lanjut untuk zk-SNARK.
Dua, Aplikasi zk-SNARKs
Dua aplikasi paling luas dari zk-SNARKs adalah perlindungan privasi dan skalabilitas. Proyek transaksi privasi awal seperti Zcash dan Monero pernah menjadi sorotan, tetapi karena kebutuhan nyata tidak sesuai harapan, mereka secara bertahap meredup dari arus utama. Dalam beberapa tahun terakhir, seiring dengan transisi Ethereum 2.0 ke jalur yang berfokus pada rollup, solusi skalabilitas berbasis ZK kembali menjadi sorotan.
transaksi privasi
Proyek perwakilan perdagangan privasi termasuk:
Sebagai contoh Zcash, proses transaksi zk-SNARKs-nya mencakup: pengaturan sistem, pembuatan kunci, pencetakan koin, transaksi, verifikasi, dan penerimaan. Namun, Zcash masih memiliki beberapa keterbatasan, seperti berbasis model UTXO, sulit untuk diperluas, dan lain-lain. Proporsi penggunaan transaksi privasi sebenarnya kurang dari 10%, menunjukkan bahwa promosi ini tidak berhasil.
Sebagai perbandingan, Tornado menggunakan metode kolam pencampuran besar yang tunggal yang lebih umum, dan berbasis pada jaringan Ethereum. Tornado pada dasarnya adalah kolam pencampuran yang menggunakan zk-SNARKs, yang dapat memberikan berbagai fitur perlindungan privasi.
Skalabilitas
Aplikasi ZK dalam skala dapat dibagi menjadi jaringan lapisan satu ( seperti Mina ) dan jaringan lapisan dua ( yaitu zk-rollup ). Gagasan inti dari zk-rollup pertama kali diusulkan oleh Vitalik pada tahun 2018.
zk-rollup terutama melibatkan dua jenis peran, yaitu Sequencer dan Aggregator. Sequencer bertanggung jawab untuk mengemas transaksi, sementara Aggregator bertanggung jawab untuk menggabungkan transaksi dan menghasilkan ZK bukti, yang digunakan untuk memperbarui pohon status Ethereum.
Keuntungan zk-rollup termasuk: biaya rendah, finalitas cepat, perlindungan privasi, dll. Kerugiannya meliputi: beban komputasi yang besar, pertimbangan keamanan ( seperti SNARK yang memerlukan pengaturan tepercaya ), kemungkinan mengubah urutan transaksi, dll.
Saat ini, proyek zk-rollup utama di pasar adalah: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, dan lain-lain. Proyek-proyek ini terutama memilih di antara SNARK( dan versi perbaikan ) serta STARK, serta tingkat dukungan untuk EVM.
Kompatibilitas sistem ZK dengan EVM selalu menjadi fokus perhatian industri. Saat ini, ada dua solusi utama: sepenuhnya kompatibel dengan opcode Solidity, atau merancang mesin virtual yang ramah ZK dan kompatibel dengan Solidity. Dalam beberapa tahun terakhir, iterasi teknologi yang cepat telah secara signifikan meningkatkan kompatibilitas EVM, memberikan lebih banyak kenyamanan bagi pengembang.
Tiga, Prinsip Dasar ZK SNARKs
zk-SNARKs harus memenuhi tiga sifat: integritas, keandalan, dan sifat nol-pengetahuan. zk-SNARK(Argumen Non-Interaktif Singkat Nol-Knowledge) sebagai salah satu skema bukti nol-pengetahuan yang penting, memiliki karakteristik berikut:
Sebagai contoh zk-SNARK Groth16, prinsip pembuktiannya mencakup langkah-langkah berikut: