Tinjauan Pengembangan dan Aplikasi Teknologi zk-SNARKs di Bidang Blockchain
Ringkasan
zk-SNARKs(ZKP) teknologi ini secara luas dianggap sebagai salah satu inovasi terpenting di bidang Blockchain setelah teknologi buku besar terdistribusi, dan juga merupakan bidang utama investasi risiko saat ini. Artikel ini secara sistematis meninjau perkembangan ZKP selama hampir empat puluh tahun dan hasil penelitian terbaru.
Artikel ini pertama-tama memperkenalkan konsep dasar dan latar belakang sejarah ZKP, dengan fokus pada analisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari solusi seperti zkSNARK, model Ben-Sasson, Pinocchio, Bulletproofs, dan Ligero. Dalam hal lingkungan komputasi, artikel ini membahas bagaimana ZKVM dan ZKEVM dapat meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi ZK Rollup sebagai solusi skala Layer 2, serta kemajuan terbaru dalam akselerasi perangkat keras, solusi hibrida, dan ZK EVM khusus.
Akhirnya, artikel ini melihat konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam hal skalabilitas Blockchain, interoperabilitas, dan perlindungan privasi.
Dengan analisis menyeluruh terhadap teknologi dan tren perkembangan terdepan ini, artikel ini memberikan perspektif sistematis untuk memahami dan menerapkan teknologi ZKP, menunjukkan potensi besar dalam meningkatkan efisiensi dan keamanan sistem Blockchain, serta memberikan referensi penting untuk keputusan investasi di masa depan.
Daftar Isi
Pendahuluan
I. Pengetahuan Dasar zk-SNARKs
Ringkasan
Contoh zk-SNARKs
Dua, zk-SNARKs non-interaktif
Latar Belakang
Usulan NIZK
Transformasi Fiat-Shamir
Jens Groth dan penelitiannya
Penelitian Lain
Tiga, bukti nol-pengetahuan berbasis sirkuit
Latar Belakang
Konsep dan Karakteristik Dasar Model Sirkuit
Desain dan Aplikasi Sirkuit dalam zk-SNARKs
Potensi Kekurangan dan Tantangan
Empat, model zk-SNARKs
Latar Belakang
Model Algoritma Umum
Skema berbasis PCP linier dan masalah logaritma diskret
Rencana berbasis bukti orang biasa
Pembuktian yang dapat diverifikasi berdasarkan probabilitas ( PCP ) zk-SNARKs
Klasifikasi tahap pengaturan konstruksi bukti umum CPC( berdasarkan )
Lima, Gambaran Umum dan Perkembangan zk-SNARKs Virtual Machine
Latar belakang
Klasifikasi ZKVM yang ada
Paradigma Frontend dan Backend
Kelebihan dan Kekurangan Paradigma ZKVM
Enam, Tinjauan dan Perkembangan zk-SNARKs Ethereum Virtual Machine
Latar Belakang
Cara kerja ZKEVM
Proses implementasi ZKEVM
Ciri-ciri ZKEVM
Tujuh, Gambaran Umum dan Perkembangan Solusi Jaringan Layer Dua zk-SNARKs
Latar Belakang
Mekanisme kerja ZK Rollup
Kekurangan dan Optimasi ZK Rollup
Delapan, arah pengembangan masa depan zk-SNARKs
Mempercepat pengembangan lingkungan komputasi
Usulan dan perkembangan ZKML
Perkembangan terkait teknologi ekspansi ZKP
Perkembangan Interoperabilitas ZKP
Sembilan, Kesimpulan
Pendahuluan
Dengan datangnya era Web3, aplikasi blockchain (DApps) sedang berkembang pesat, dengan aplikasi baru muncul setiap hari. Dalam beberapa tahun terakhir, platform blockchain setiap hari menampung aktivitas jutaan pengguna, memproses miliaran transaksi. Data besar yang dihasilkan dari transaksi ini sering kali mencakup informasi pribadi yang sensitif, seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo. Mengingat keterbukaan dan transparansi blockchain, data yang disimpan ini dapat dilihat oleh semua orang, sehingga menimbulkan berbagai masalah keamanan dan privasi.
Saat ini ada beberapa teknologi kriptografi yang dapat mengatasi tantangan ini, termasuk enkripsi homomorfik, tanda tangan cincin, komputasi multi pihak yang aman, dan zk-SNARKs. Enkripsi homomorfik memungkinkan operasi dilakukan tanpa mendekripsi ciphertext, membantu melindungi keamanan saldo akun dan jumlah transaksi, tetapi tidak dapat melindungi keamanan alamat akun. Tanda tangan cincin memberikan bentuk tanda tangan digital yang khusus, mampu menyembunyikan identitas penandatangan, sehingga melindungi keamanan alamat akun, tetapi tidak mampu melindungi saldo akun dan jumlah transaksi. Komputasi multi pihak yang aman memungkinkan pembagian tugas komputasi di antara beberapa peserta, tanpa peserta mana pun mengetahui data peserta lainnya, secara efektif melindungi keamanan saldo akun dan jumlah transaksi, tetapi juga tidak dapat melindungi keamanan alamat akun. Selain itu, enkripsi homomorfik, tanda tangan cincin, dan komputasi multi pihak yang aman tidak dapat digunakan untuk memverifikasi apakah pembuktian di lingkungan blockchain memiliki cukup jumlah transaksi tanpa mengungkapkan jumlah transaksi, alamat akun, dan saldo akun.
zk-SNARKs adalah solusi yang lebih komprehensif, protokol verifikasi ini memungkinkan verifikasi kebenaran proposisi tertentu tanpa mengungkapkan data perantara. Protokol ini tidak memerlukan infrastruktur kunci publik yang rumit, dan pelaksanaannya yang berulang juga tidak memberikan kesempatan bagi pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, validator dapat memverifikasi apakah pembuktian memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi meliputi pembuatan bukti yang mencakup jumlah transaksi yang diklaim oleh pembuktian, kemudian bukti tersebut disampaikan kepada validator, yang melakukan perhitungan yang telah ditentukan sebelumnya pada bukti tersebut dan menghasilkan hasil akhir dari perhitungan, sehingga mencapai kesimpulan apakah akan menerima pernyataan pembuktian. Jika pernyataan pembuktian diterima, itu berarti mereka memiliki jumlah transaksi yang cukup. Proses verifikasi yang disebutkan di atas dapat dicatat di Blockchain, tanpa adanya pemalsuan.
Fitur ZKP ini menjadikannya peran inti dalam transaksi Blockchain dan aplikasi cryptocurrency, terutama dalam hal perlindungan privasi dan perluasan jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga secara luas dianggap sebagai salah satu inovasi teknologi paling penting sejak implementasi sukses teknologi buku besar terdistribusi (, terutama Bitcoin ). Ini juga merupakan jalur utama untuk aplikasi industri dan investasi risiko.
Oleh karena itu, banyak proyek jaringan berbasis ZKP muncul, seperti ZkSync, StarkNet, Mina, Filecoin, dan Aleo. Seiring dengan perkembangan proyek-proyek ini, inovasi algoritma terkait ZKP terus bermunculan, dilaporkan hampir setiap minggu ada algoritma baru yang lahir. Selain itu, pengembangan perangkat keras yang terkait dengan teknologi ZKP juga berkembang pesat, termasuk chip yang dioptimalkan khusus untuk ZKP. Misalnya, proyek seperti Ingonyama, Irreducible, dan Cysic telah menyelesaikan penggalangan dana dalam skala besar, perkembangan ini tidak hanya menunjukkan kemajuan cepat teknologi ZKP, tetapi juga mencerminkan pergeseran dari perangkat keras umum ke perangkat keras khusus seperti GPU, FPGA, dan ASIC.
Kemajuan ini menunjukkan bahwa teknologi zk-SNARKs bukan hanya merupakan terobosan penting di bidang kriptografi, tetapi juga merupakan pendorong utama untuk penerapan teknologi Blockchain yang lebih luas ( terutama dalam meningkatkan perlindungan privasi dan kemampuan pemrosesan ).
Oleh karena itu, kami memutuskan untuk secara sistematis mengatur pengetahuan terkait zk-SNARKs ( ZKP ) untuk lebih baik membantu kami dalam mengambil keputusan investasi di masa depan. Untuk itu, kami telah mereview secara menyeluruh makalah akademis inti yang terkait dengan ZKP ( berdasarkan relevansi dan jumlah kutipan ); pada saat yang sama, kami juga menganalisis secara rinci informasi dan buku putih dari proyek-proyek terkemuka di bidang ini ( berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis data yang komprehensif ini memberikan dasar yang kokoh untuk penulisan artikel ini.
I. Pengetahuan Dasar zk-SNARKs
1. Ringkasan
Pada tahun 1985, Goldwasser, Micali, dan Rackoff pertama kali mengajukan konsep zk-SNARKs (ZKP) dan interaktif knowledge proof (IZK) dalam makalah mereka. Makalah tersebut merupakan dasar dari zk-SNARKs, mendefinisikan banyak konsep yang mempengaruhi penelitian akademis selanjutnya. Misalnya, pengetahuan didefinisikan sebagai "output yang tidak dapat dihitung", yaitu pengetahuan harus berupa output, dan merupakan perhitungan yang tidak dapat dilakukan, yang berarti bahwa itu tidak bisa berupa fungsi sederhana, tetapi harus fungsi yang kompleks. Perhitungan yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi keabsahan solusinya dalam waktu polinomial, waktu polinomial berarti bahwa waktu eksekusi algoritma dapat dinyatakan dengan fungsi polinomial dari ukuran input. Ini adalah standar penting dalam ilmu komputer untuk mengukur efisiensi dan kelayakan algoritma. Karena proses penyelesaian masalah NP kompleks, maka dianggap sebagai perhitungan yang tidak dapat dilakukan; namun, proses verifikasinya relatif sederhana, sehingga sangat cocok untuk verifikasi zk-SNARKs.
Salah satu contoh klasik dari masalah NP adalah masalah perjalanan salesman, di mana perlu untuk menemukan jalur terpendek yang mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek bisa sangat sulit, memverifikasi apakah jalur tersebut adalah yang terpendek relatif mudah jika diberikan sebuah jalur. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser dan rekan-rekannya memperkenalkan konsep "kompleksitas pengetahuan" dalam makalah mereka, yang digunakan untuk mengukur jumlah pengetahuan yang bocor dari penunjuk ke validator dalam sistem bukti interaktif. Mereka juga mengusulkan sistem bukti interaktif (IPS), di mana penunjuk (Prover) dan validator (Verifier) membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan rekan-rekannya adalah jenis pembuktian interaktif yang khusus, di mana verifikator tidak akan memperoleh informasi tambahan selain kebenaran pernyataan selama proses verifikasi; dan mereka mengajukan tiga karakteristik dasar termasuk:
Kecukupan ( completeness ): Jika argumen itu benar, maka pembuktian yang jujur dapat meyakinkan verifier yang jujur tentang fakta ini;
Keandalan ( soundness ): Jika penyaji tidak mengetahui isi pernyataan, ia hanya dapat menipu penguji dengan probabilitas yang sangat kecil;
zk-SNARKs (zero-knowledge ): Setelah proses pembuktian selesai, verifikator hanya mendapatkan informasi "pembuktian memiliki pengetahuan ini", tanpa bisa memperoleh konten tambahan.
2. contoh zk-SNARKs
Untuk memahami zk-SNARKs dan atributnya dengan lebih baik, berikut adalah contoh untuk memverifikasi apakah pembuktian memiliki informasi pribadi tertentu, yang dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: atur (Setup)
Dalam langkah ini, tujuan dari pembuktian adalah untuk membuat sebuah bukti yang menunjukkan bahwa dia mengetahui suatu angka rahasia s, tetapi tidak menampilkan s secara langsung.
Tetapkan angka rahasia s;
Pilih dua bilangan prima besar p dan q, hitung hasil kali mereka n. Misalkan bilangan prima p dan q, hitung n yang diperoleh;
Hitung v=s^2 mod n, di sini, v dikirim sebagai bagian dari bukti kepada verifier, tetapi itu tidak cukup untuk membuat verifier atau pengamat mana pun menyimpulkan s;
Pilih secara acak sebuah bilangan bulat r, hitung x=r^2 mod n dan kirimkan kepada verifier. Nilai x ini digunakan untuk proses verifikasi selanjutnya, tetapi juga tidak mengungkapkan s. Misalkan bilangan bulat acak r, hitung x yang diperoleh.
Langkah kedua: tantangan (Challenge)
Validator secara acak memilih sebuah posisi a( yang bisa berupa 0 atau 1), kemudian mengirimkannya kepada prover. "Tantangan" ini menentukan langkah-langkah yang perlu diambil oleh prover selanjutnya.
Langkah ketiga: respons (Response)
Berdasarkan nilai a yang dikeluarkan oleh validator, pembuktian memberikan respons:
Jika a=0, pembuktian mengirim g=r( di mana r adalah angka acak yang dia pilih sebelumnya ).
Jika a=1, penunjuk menghitung g=rs mod n dan mengirimkannya. Misalkan bit acak a yang dikirim oleh pemverifikasi, berdasarkan nilai a, penunjuk menghitung g;
Akhirnya, validator memverifikasi apakah x sama dengan g^2 mod n berdasarkan g yang diterima. Jika persamaan tersebut benar, validator menerima bukti ini. Ketika a=0, validator menghitung g^2 mod n, memverifikasi x di sisi kanan; ketika a=1, validator menghitung g^2 mod n, memverifikasi xv di sisi kanan.
Di sini, kita melihat bahwa validator menghitung x=g^2 mod n, yang menunjukkan bahwa pembuktian berhasil melewati proses verifikasi, sambil tidak mengungkapkan angka rahasianya s. Di sini, karena a hanya dapat mengambil 0 atau 1, ada hanya dua kemungkinan, probabilitas pembuktian berhasil melewati verifikasi bergantung pada keberuntungan ( ketika a mengambil 0, yaitu 1/2. Namun, validator kemudian menantang pembuktian n kali, pembuktian terus mengganti angka terkait, menyerahkannya kepada validator, dan selalu berhasil melewati proses verifikasi, sehingga probabilitas pembuktian berhasil melewati verifikasi bergantung pada keberuntungan menjadi )1/2(^n) yang mendekati 0(, kesimpulan bahwa pembuktian memang mengetahui angka rahasia tertentu s terbukti. Contoh ini membuktikan integritas, keandalan, dan sifat zero-knowledge dari sistem zero-knowledge proof.
Dua, zk-SNARKs non-interaktif
) 1. Latar Belakang
zk-SNARKs###ZKP( dalam konsep tradisional biasanya merupakan bentuk protokol yang interaktif dan online; misalnya, protokol Sigma biasanya memerlukan tiga hingga lima putaran interaksi untuk menyelesaikan otentikasi. Namun, dalam skenario seperti perdagangan instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi multi-putaran, terutama dalam aplikasi teknologi Blockchain, fungsi verifikasi offline menjadi sangat penting.
) 2. NIZK yang diusulkan
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengusulkan konsep bukti nol interaktif non-interaktif ###NIZK(, membuktikan bahwa tanpa memerlukan interaksi berulang, pembuktinya )Prover(.
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.
7 Suka
Hadiah
7
5
Bagikan
Komentar
0/400
TokenToaster
· 22jam yang lalu
Era zk akhirnya datang
Lihat AsliBalas0
ChainSpy
· 22jam yang lalu
Saya benar-benar tidak mengerti mengapa orang lain semua gila zk
Lihat AsliBalas0
GasFeeCrier
· 22jam yang lalu
Biaya saat ini tetap tinggi, membuat saya sangat marah.
Lihat AsliBalas0
StakeWhisperer
· 22jam yang lalu
Sekali lagi zk terlipat.
Lihat AsliBalas0
GreenCandleCollector
· 22jam yang lalu
Lagi satu teman baru zkvm, ada yang mencium aroma Dompet?
Teknologi zk-SNARKs dalam aplikasi dan tren perkembangan di bidang Blockchain
Tinjauan Pengembangan dan Aplikasi Teknologi zk-SNARKs di Bidang Blockchain
Ringkasan
zk-SNARKs(ZKP) teknologi ini secara luas dianggap sebagai salah satu inovasi terpenting di bidang Blockchain setelah teknologi buku besar terdistribusi, dan juga merupakan bidang utama investasi risiko saat ini. Artikel ini secara sistematis meninjau perkembangan ZKP selama hampir empat puluh tahun dan hasil penelitian terbaru.
Artikel ini pertama-tama memperkenalkan konsep dasar dan latar belakang sejarah ZKP, dengan fokus pada analisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari solusi seperti zkSNARK, model Ben-Sasson, Pinocchio, Bulletproofs, dan Ligero. Dalam hal lingkungan komputasi, artikel ini membahas bagaimana ZKVM dan ZKEVM dapat meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi ZK Rollup sebagai solusi skala Layer 2, serta kemajuan terbaru dalam akselerasi perangkat keras, solusi hibrida, dan ZK EVM khusus.
Akhirnya, artikel ini melihat konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam hal skalabilitas Blockchain, interoperabilitas, dan perlindungan privasi.
Dengan analisis menyeluruh terhadap teknologi dan tren perkembangan terdepan ini, artikel ini memberikan perspektif sistematis untuk memahami dan menerapkan teknologi ZKP, menunjukkan potensi besar dalam meningkatkan efisiensi dan keamanan sistem Blockchain, serta memberikan referensi penting untuk keputusan investasi di masa depan.
Daftar Isi
Pendahuluan
I. Pengetahuan Dasar zk-SNARKs
Dua, zk-SNARKs non-interaktif
Tiga, bukti nol-pengetahuan berbasis sirkuit
Empat, model zk-SNARKs
Lima, Gambaran Umum dan Perkembangan zk-SNARKs Virtual Machine
Enam, Tinjauan dan Perkembangan zk-SNARKs Ethereum Virtual Machine
Tujuh, Gambaran Umum dan Perkembangan Solusi Jaringan Layer Dua zk-SNARKs
Delapan, arah pengembangan masa depan zk-SNARKs
Sembilan, Kesimpulan
Pendahuluan
Dengan datangnya era Web3, aplikasi blockchain (DApps) sedang berkembang pesat, dengan aplikasi baru muncul setiap hari. Dalam beberapa tahun terakhir, platform blockchain setiap hari menampung aktivitas jutaan pengguna, memproses miliaran transaksi. Data besar yang dihasilkan dari transaksi ini sering kali mencakup informasi pribadi yang sensitif, seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo. Mengingat keterbukaan dan transparansi blockchain, data yang disimpan ini dapat dilihat oleh semua orang, sehingga menimbulkan berbagai masalah keamanan dan privasi.
Saat ini ada beberapa teknologi kriptografi yang dapat mengatasi tantangan ini, termasuk enkripsi homomorfik, tanda tangan cincin, komputasi multi pihak yang aman, dan zk-SNARKs. Enkripsi homomorfik memungkinkan operasi dilakukan tanpa mendekripsi ciphertext, membantu melindungi keamanan saldo akun dan jumlah transaksi, tetapi tidak dapat melindungi keamanan alamat akun. Tanda tangan cincin memberikan bentuk tanda tangan digital yang khusus, mampu menyembunyikan identitas penandatangan, sehingga melindungi keamanan alamat akun, tetapi tidak mampu melindungi saldo akun dan jumlah transaksi. Komputasi multi pihak yang aman memungkinkan pembagian tugas komputasi di antara beberapa peserta, tanpa peserta mana pun mengetahui data peserta lainnya, secara efektif melindungi keamanan saldo akun dan jumlah transaksi, tetapi juga tidak dapat melindungi keamanan alamat akun. Selain itu, enkripsi homomorfik, tanda tangan cincin, dan komputasi multi pihak yang aman tidak dapat digunakan untuk memverifikasi apakah pembuktian di lingkungan blockchain memiliki cukup jumlah transaksi tanpa mengungkapkan jumlah transaksi, alamat akun, dan saldo akun.
zk-SNARKs adalah solusi yang lebih komprehensif, protokol verifikasi ini memungkinkan verifikasi kebenaran proposisi tertentu tanpa mengungkapkan data perantara. Protokol ini tidak memerlukan infrastruktur kunci publik yang rumit, dan pelaksanaannya yang berulang juga tidak memberikan kesempatan bagi pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, validator dapat memverifikasi apakah pembuktian memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi meliputi pembuatan bukti yang mencakup jumlah transaksi yang diklaim oleh pembuktian, kemudian bukti tersebut disampaikan kepada validator, yang melakukan perhitungan yang telah ditentukan sebelumnya pada bukti tersebut dan menghasilkan hasil akhir dari perhitungan, sehingga mencapai kesimpulan apakah akan menerima pernyataan pembuktian. Jika pernyataan pembuktian diterima, itu berarti mereka memiliki jumlah transaksi yang cukup. Proses verifikasi yang disebutkan di atas dapat dicatat di Blockchain, tanpa adanya pemalsuan.
Fitur ZKP ini menjadikannya peran inti dalam transaksi Blockchain dan aplikasi cryptocurrency, terutama dalam hal perlindungan privasi dan perluasan jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga secara luas dianggap sebagai salah satu inovasi teknologi paling penting sejak implementasi sukses teknologi buku besar terdistribusi (, terutama Bitcoin ). Ini juga merupakan jalur utama untuk aplikasi industri dan investasi risiko.
Oleh karena itu, banyak proyek jaringan berbasis ZKP muncul, seperti ZkSync, StarkNet, Mina, Filecoin, dan Aleo. Seiring dengan perkembangan proyek-proyek ini, inovasi algoritma terkait ZKP terus bermunculan, dilaporkan hampir setiap minggu ada algoritma baru yang lahir. Selain itu, pengembangan perangkat keras yang terkait dengan teknologi ZKP juga berkembang pesat, termasuk chip yang dioptimalkan khusus untuk ZKP. Misalnya, proyek seperti Ingonyama, Irreducible, dan Cysic telah menyelesaikan penggalangan dana dalam skala besar, perkembangan ini tidak hanya menunjukkan kemajuan cepat teknologi ZKP, tetapi juga mencerminkan pergeseran dari perangkat keras umum ke perangkat keras khusus seperti GPU, FPGA, dan ASIC.
Kemajuan ini menunjukkan bahwa teknologi zk-SNARKs bukan hanya merupakan terobosan penting di bidang kriptografi, tetapi juga merupakan pendorong utama untuk penerapan teknologi Blockchain yang lebih luas ( terutama dalam meningkatkan perlindungan privasi dan kemampuan pemrosesan ).
Oleh karena itu, kami memutuskan untuk secara sistematis mengatur pengetahuan terkait zk-SNARKs ( ZKP ) untuk lebih baik membantu kami dalam mengambil keputusan investasi di masa depan. Untuk itu, kami telah mereview secara menyeluruh makalah akademis inti yang terkait dengan ZKP ( berdasarkan relevansi dan jumlah kutipan ); pada saat yang sama, kami juga menganalisis secara rinci informasi dan buku putih dari proyek-proyek terkemuka di bidang ini ( berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis data yang komprehensif ini memberikan dasar yang kokoh untuk penulisan artikel ini.
I. Pengetahuan Dasar zk-SNARKs
1. Ringkasan
Pada tahun 1985, Goldwasser, Micali, dan Rackoff pertama kali mengajukan konsep zk-SNARKs (ZKP) dan interaktif knowledge proof (IZK) dalam makalah mereka. Makalah tersebut merupakan dasar dari zk-SNARKs, mendefinisikan banyak konsep yang mempengaruhi penelitian akademis selanjutnya. Misalnya, pengetahuan didefinisikan sebagai "output yang tidak dapat dihitung", yaitu pengetahuan harus berupa output, dan merupakan perhitungan yang tidak dapat dilakukan, yang berarti bahwa itu tidak bisa berupa fungsi sederhana, tetapi harus fungsi yang kompleks. Perhitungan yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi keabsahan solusinya dalam waktu polinomial, waktu polinomial berarti bahwa waktu eksekusi algoritma dapat dinyatakan dengan fungsi polinomial dari ukuran input. Ini adalah standar penting dalam ilmu komputer untuk mengukur efisiensi dan kelayakan algoritma. Karena proses penyelesaian masalah NP kompleks, maka dianggap sebagai perhitungan yang tidak dapat dilakukan; namun, proses verifikasinya relatif sederhana, sehingga sangat cocok untuk verifikasi zk-SNARKs.
Salah satu contoh klasik dari masalah NP adalah masalah perjalanan salesman, di mana perlu untuk menemukan jalur terpendek yang mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek bisa sangat sulit, memverifikasi apakah jalur tersebut adalah yang terpendek relatif mudah jika diberikan sebuah jalur. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser dan rekan-rekannya memperkenalkan konsep "kompleksitas pengetahuan" dalam makalah mereka, yang digunakan untuk mengukur jumlah pengetahuan yang bocor dari penunjuk ke validator dalam sistem bukti interaktif. Mereka juga mengusulkan sistem bukti interaktif (IPS), di mana penunjuk (Prover) dan validator (Verifier) membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan rekan-rekannya adalah jenis pembuktian interaktif yang khusus, di mana verifikator tidak akan memperoleh informasi tambahan selain kebenaran pernyataan selama proses verifikasi; dan mereka mengajukan tiga karakteristik dasar termasuk:
Kecukupan ( completeness ): Jika argumen itu benar, maka pembuktian yang jujur dapat meyakinkan verifier yang jujur tentang fakta ini;
Keandalan ( soundness ): Jika penyaji tidak mengetahui isi pernyataan, ia hanya dapat menipu penguji dengan probabilitas yang sangat kecil;
zk-SNARKs (zero-knowledge ): Setelah proses pembuktian selesai, verifikator hanya mendapatkan informasi "pembuktian memiliki pengetahuan ini", tanpa bisa memperoleh konten tambahan.
2. contoh zk-SNARKs
Untuk memahami zk-SNARKs dan atributnya dengan lebih baik, berikut adalah contoh untuk memverifikasi apakah pembuktian memiliki informasi pribadi tertentu, yang dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: atur (Setup)
Dalam langkah ini, tujuan dari pembuktian adalah untuk membuat sebuah bukti yang menunjukkan bahwa dia mengetahui suatu angka rahasia s, tetapi tidak menampilkan s secara langsung.
Tetapkan angka rahasia s; Pilih dua bilangan prima besar p dan q, hitung hasil kali mereka n. Misalkan bilangan prima p dan q, hitung n yang diperoleh; Hitung v=s^2 mod n, di sini, v dikirim sebagai bagian dari bukti kepada verifier, tetapi itu tidak cukup untuk membuat verifier atau pengamat mana pun menyimpulkan s; Pilih secara acak sebuah bilangan bulat r, hitung x=r^2 mod n dan kirimkan kepada verifier. Nilai x ini digunakan untuk proses verifikasi selanjutnya, tetapi juga tidak mengungkapkan s. Misalkan bilangan bulat acak r, hitung x yang diperoleh.
Langkah kedua: tantangan (Challenge)
Validator secara acak memilih sebuah posisi a( yang bisa berupa 0 atau 1), kemudian mengirimkannya kepada prover. "Tantangan" ini menentukan langkah-langkah yang perlu diambil oleh prover selanjutnya.
Langkah ketiga: respons (Response)
Berdasarkan nilai a yang dikeluarkan oleh validator, pembuktian memberikan respons:
Jika a=0, pembuktian mengirim g=r( di mana r adalah angka acak yang dia pilih sebelumnya ).
Jika a=1, penunjuk menghitung g=rs mod n dan mengirimkannya. Misalkan bit acak a yang dikirim oleh pemverifikasi, berdasarkan nilai a, penunjuk menghitung g;
Akhirnya, validator memverifikasi apakah x sama dengan g^2 mod n berdasarkan g yang diterima. Jika persamaan tersebut benar, validator menerima bukti ini. Ketika a=0, validator menghitung g^2 mod n, memverifikasi x di sisi kanan; ketika a=1, validator menghitung g^2 mod n, memverifikasi xv di sisi kanan.
Di sini, kita melihat bahwa validator menghitung x=g^2 mod n, yang menunjukkan bahwa pembuktian berhasil melewati proses verifikasi, sambil tidak mengungkapkan angka rahasianya s. Di sini, karena a hanya dapat mengambil 0 atau 1, ada hanya dua kemungkinan, probabilitas pembuktian berhasil melewati verifikasi bergantung pada keberuntungan ( ketika a mengambil 0, yaitu 1/2. Namun, validator kemudian menantang pembuktian n kali, pembuktian terus mengganti angka terkait, menyerahkannya kepada validator, dan selalu berhasil melewati proses verifikasi, sehingga probabilitas pembuktian berhasil melewati verifikasi bergantung pada keberuntungan menjadi )1/2(^n) yang mendekati 0(, kesimpulan bahwa pembuktian memang mengetahui angka rahasia tertentu s terbukti. Contoh ini membuktikan integritas, keandalan, dan sifat zero-knowledge dari sistem zero-knowledge proof.
Dua, zk-SNARKs non-interaktif
) 1. Latar Belakang
zk-SNARKs###ZKP( dalam konsep tradisional biasanya merupakan bentuk protokol yang interaktif dan online; misalnya, protokol Sigma biasanya memerlukan tiga hingga lima putaran interaksi untuk menyelesaikan otentikasi. Namun, dalam skenario seperti perdagangan instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi multi-putaran, terutama dalam aplikasi teknologi Blockchain, fungsi verifikasi offline menjadi sangat penting.
) 2. NIZK yang diusulkan
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengusulkan konsep bukti nol interaktif non-interaktif ###NIZK(, membuktikan bahwa tanpa memerlukan interaksi berulang, pembuktinya )Prover(.