Aplikasi dan Pengembangan Teknologi zk-SNARKs dalam Bidang Blockchain
Ringkasan
Artikel ini memberikan tinjauan sistematis tentang sejarah hampir empat puluh tahun literatur dan penelitian terbaru mengenai teknologi zk-SNARKs ( ZKP ). Pertama, diperkenalkan konsep dasar dan latar belakang sejarah dari ZKP, kemudian fokus menganalisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari model seperti zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs, dan Ligero. Dalam bidang lingkungan komputasi, artikel ini memperkenalkan ZKVM dan ZKEVM, serta membahas bagaimana keduanya meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi dari zero-knowledge Rollup sebagai solusi perluasan Layer 2, serta kemajuan terbaru dalam percepatan perangkat keras, solusi campuran, dan ZK EVM khusus.
Akhirnya, artikel ini mengulas konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam hal skalabilitas, interoperabilitas, dan perlindungan privasi blockchain. Dengan menganalisis teknologi terbaru dan tren perkembangan ini, artikel ini memberikan perspektif komprehensif 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
Pendahuluan
Satu, Pengetahuan Dasar zk-SNARKs
Ringkasan
Contoh zk-SNARKs
Dua, zk-SNARKs non-interaktif
Latar Belakang
Pengenalan NIZK
Transformasi Fiat-Shamir
Jens Groth dan penelitiannya
Penelitian Lain
Tiga, pembuktian nol pengetahuan berbasis sirkuit
Latar Belakang
Konsep dan Karakteristik Dasar Model Sirkuit
Desain dan Aplikasi Sirkuit dalam zk-SNARKs
Potensi cacat dan tantangan
Empat, model zk-SNARKs
Latar Belakang
Model algoritma umum
Skema berbasis PCP linier dan masalah logaritma diskrit
Rencana berbasis bukti orang biasa
Pembuktian yang dapat diverifikasi berdasarkan probabilitas ( PCP ) zk-SNARKs
Klasifikasi berdasarkan tahap pengaturan CPC
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, Gambaran dan Perkembangan zk-SNARKs Ethereum Virtual Machine
Latar Belakang
Cara kerja ZKEVM
Proses implementasi ZKEVM
Fitur 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 perkembangan lingkungan komputasi
Usulan dan perkembangan ZKML
Perkembangan teknologi ekspansi ZKP
Pengembangan interoperabilitas ZKP
Kesimpulan
Pendahuluan
Dalam beberapa tahun terakhir, pengembangan aplikasi blockchain (DApps) berkembang pesat, dengan aplikasi baru muncul setiap hari. Platform blockchain setiap hari menampung aktivitas jutaan pengguna, memproses miliaran transaksi. Jumlah data besar yang dihasilkan dari transaksi ini biasanya mencakup informasi pribadi sensitif seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo akun. Mengingat sifat terbuka dan transparan dari blockchain, data yang disimpan ini terbuka untuk 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 menyediakan bentuk tanda tangan digital yang khusus, mampu menyembunyikan identitas penandatangan, sehingga melindungi keamanan alamat akun, tetapi tidak dapat melindungi saldo akun dan jumlah transaksi. Komputasi multi-pihak yang aman memungkinkan distribusi 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 dalam 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 untuk memverifikasi kebenaran proposisi tertentu tanpa mengungkapkan data perantara apa pun. Protokol ini tidak memerlukan infrastruktur kunci publik yang kompleks, dan pelaksanaan ulangnya tidak memberikan kesempatan bagi pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, pemverifikasi dapat memverifikasi apakah pembuktian memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi melibatkan pembuatan bukti yang mencakup jumlah transaksi yang diklaim oleh pembuktian, kemudian bukti tersebut disampaikan kepada pemverifikasi, pemverifikasi melakukan perhitungan yang telah ditentukan sebelumnya pada bukti, dan menghasilkan hasil perhitungan akhir, sehingga mencapai kesimpulan apakah menerima pernyataan pembuktian atau tidak. Jika pernyataan pembuktian diterima, itu berarti mereka memiliki jumlah transaksi yang cukup. Proses verifikasi di atas dapat dicatat di Blockchain, tanpa adanya pemalsuan.
Fitur ZKP ini menjadikannya peran inti dalam transaksi Blockchain dan aplikasi cryptocurrency, terutama dalam perlindungan privasi dan skalabilitas jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga dianggap secara luas sebagai salah satu inovasi teknologi terpenting sejak implementasi sukses teknologi buku besar terdistribusi—terutama Bitcoin. Ini juga merupakan jalur utama untuk aplikasi industri dan investasi modal ventura.
Dengan demikian, 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 diluncurkan. Selain itu, pengembangan perangkat keras yang terkait dengan teknologi ZKP juga berjalan cepat, termasuk chip yang dioptimalkan khusus untuk ZKP. Misalnya, proyek-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 peralihan dari perangkat keras umum menuju perangkat keras khusus seperti GPU, FPGA, dan ASIC.
Kemajuan ini menunjukkan bahwa teknologi zk-SNARKs bukan hanya terobosan penting di bidang kriptografi, tetapi juga merupakan pendorong kunci untuk mewujudkan aplikasi 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 membuat keputusan investasi di masa depan. Untuk itu, kami telah meninjau secara komprehensif makalah akademis inti yang terkait dengan ZKP ( berdasarkan relevansi dan jumlah kutipan yang diterima ); pada saat yang sama, kami juga menganalisis secara rinci informasi dan whitepaper dari proyek-proyek terkemuka di bidang ini ( berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis informasi yang komprehensif ini memberikan dasar yang kuat untuk penulisan artikel ini.
Satu, Pengetahuan Dasar zk-SNARKs
1. Ringkasan
Pada tahun 1985, para akademisi Goldwasser, Micali, dan Rackoff pertama kali mengemukakan konsep zk-SNARKs dalam makalah berjudul "The Knowledge Complexity of Interactive Proof-Systems". Makalah ini menjadi fondasi bagi zk-SNARKs, ZKP( dan Interactive Zero-Knowledge, IZK). Makalah tersebut mendefinisikan banyak konsep yang mempengaruhi penelitian akademis selanjutnya. Misalnya, definisi pengetahuan adalah "output dari komputasi yang tidak dapat dilakukan(", yang berarti pengetahuan harus merupakan output dan merupakan komputasi yang tidak dapat dilakukan, yang menunjukkan bahwa itu tidak bisa menjadi fungsi sederhana, melainkan harus fungsi yang kompleks. Komputasi yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi kebenaran solusinya dalam waktu polinomial, di mana waktu polinomial mengacu pada waktu eksekusi algoritma yang 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 itu rumit, maka dianggap sebagai komputasi yang tidak dapat dilakukan; tetapi proses verifikasinya relatif sederhana, sehingga sangat cocok digunakan untuk verifikasi zk-SNARKs.
Salah satu contoh klasik masalah NP adalah masalah salesman perjalanan, di mana harus menemukan jalur terpendek untuk mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek mungkin sulit, tetapi diberikan sebuah jalur, memverifikasi apakah jalur tersebut adalah yang terpendek relatif mudah. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser et al. memperkenalkan konsep "knowledge complexity" ) knowledge complexity ( dalam makalah mereka, untuk mengukur jumlah pengetahuan yang diungkapkan oleh pembukti kepada verifier dalam sistem bukti interaktif. Mereka juga mengusulkan sistem bukti interaktif ) Interactive Proof Systems, IPS (, di mana pembukti ) Prover ( dan verifier ) Verifier ( membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan kawan-kawan adalah suatu jenis bukti interaktif yang khusus, di mana verifier tidak akan mendapatkan informasi tambahan selain nilai kebenaran dari pernyataan tersebut selama proses verifikasi; dan mereka mengusulkan tiga karakteristik dasar yang mencakup:
1.Kelengkapan)completeness(: Jika argumen itu benar, pembuktian yang jujur dapat meyakinkan verifikator yang jujur tentang fakta ini;
2.Keandalan ) soundness (: Jika pembuktian tidak mengetahui isi pernyataan, ia hanya dapat menipu verifier dengan probabilitas yang sangat kecil;
3.zk-SNARKs)zero-knowledge(: Setelah proses pembuktian selesai, verifier hanya mendapatkan informasi "pembuktian memiliki pengetahuan ini", dan tidak dapat memperoleh konten tambahan.
)# 2.zk-SNARKs contoh
Untuk lebih memahami zk-SNARKs dan atributnya, berikut adalah contoh untuk memverifikasi apakah seorang pembuktian memiliki informasi pribadi tertentu, yang dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: atur (Setup)
Pada langkah ini, tujuan pembuktian adalah untuk membuat sebuah bukti yang menunjukkan bahwa ia mengetahui angka rahasia s, tetapi tidak langsung menunjukkan s. Misalkan angka rahasia s=5;
Pilih dua bilangan prima besar p dan q, hitung produk mereka n. Misalkan bilangan prima p=11, q=13, maka n yang didapat adalah 143;
Hitung v=s^2 mod n, di sini, v sebagai bagian dari bukti dikirimkan kepada verifier, tetapi itu tidak cukup bagi verifier atau siapa pun yang mengawasi untuk menyimpulkan s. v=5^2 mod 143=25;
Pilih secara acak sebuah bilangan bulat r, hitung x=r^2 mod n dan kirimkan kepada validator. Nilai x ini digunakan untuk proses validasi selanjutnya, tetapi juga tidak mengungkapkan s. Misalkan bilangan bulat acak r=7, maka x yang dihitung adalah 49.
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 selanjutnya yang perlu diambil oleh prover.
Langkah ketiga: respons )Response(
Berdasarkan nilai a yang dikeluarkan oleh validator, penunjuk melakukan respons:
Jika a=0, maka pengirim mengirim g=r) di mana r adalah angka acak yang dia pilih sebelumnya (.
Jika a=1, pembuktian menghitung g=rs mod n dan mengirimnya. Misalkan bit acak yang dikirim oleh verifier a=1, berdasarkan nilai a, pembuktian menghitung g=75 mod 143=35;
Akhirnya, verifier memverifikasi apakah x sama dengan g^2/v^a mod n berdasarkan g yang diterima. Jika persamaan tersebut benar, verifier menerima bukti ini. Ketika a=0, verifier menghitung g^2 mod n, dan memverifikasi sisi kanan x=49; ketika a=1, verifier menghitung g^2/v mod n=35^2/25 mod 143=49, dan memverifikasi sisi kanan x=49.
Di sini, kita melihat x yang dihitung oleh validator menunjukkan bahwa pembuktian berhasil melewati proses verifikasi, tanpa mengungkapkan angka rahasia s. Di sini, karena a hanya dapat mengambil 0 atau 1, terdapat hanya dua kemungkinan, probabilitas pembuktian untuk berhasil melalui verifikasi secara kebetulan adalah )1/2() ketika a adalah 0. Namun, validator kemudian menantang pembuktian n kali, di mana pembuktian terus mengganti angka terkait, mengirimkannya kepada validator, dan selalu berhasil melewati proses verifikasi. Dengan demikian, probabilitas pembuktian untuk berhasil melalui verifikasi secara kebetulan adalah (1/2)^n( yang semakin mendekati 0), membuktikan bahwa pembuktian memang mengetahui angka rahasia s. 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 interaktif dan daring; misalnya, protokol Sigma biasanya memerlukan tiga hingga lima putaran interaksi untuk menyelesaikan autentikasi. Namun, dalam skenario seperti transaksi instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi berulang, terutama dalam aplikasi teknologi Blockchain, fungsi verifikasi offline menjadi sangat penting.
2.Penawaran NIZK
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengajukan konsep bukti non-interaktif nol pengetahuan ###NIZK(, membuktikan bahwa tidak diperlukan interaksi berulang.
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
2
Bagikan
Komentar
0/400
GweiTooHigh
· 17jam yang lalu
Jadi kode itu bernyanyi Dompet itu menyalin
Lihat AsliBalas0
GasSavingMaster
· 17jam yang lalu
zk begitu populer, karena terus-menerus tidak bisa mengalahkan sirkuit itu.
Penerapan dan tren perkembangan teknologi zk-SNARKs dalam Blockchain
Aplikasi dan Pengembangan Teknologi zk-SNARKs dalam Bidang Blockchain
Ringkasan
Artikel ini memberikan tinjauan sistematis tentang sejarah hampir empat puluh tahun literatur dan penelitian terbaru mengenai teknologi zk-SNARKs ( ZKP ). Pertama, diperkenalkan konsep dasar dan latar belakang sejarah dari ZKP, kemudian fokus menganalisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari model seperti zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs, dan Ligero. Dalam bidang lingkungan komputasi, artikel ini memperkenalkan ZKVM dan ZKEVM, serta membahas bagaimana keduanya meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi dari zero-knowledge Rollup sebagai solusi perluasan Layer 2, serta kemajuan terbaru dalam percepatan perangkat keras, solusi campuran, dan ZK EVM khusus.
Akhirnya, artikel ini mengulas konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam hal skalabilitas, interoperabilitas, dan perlindungan privasi blockchain. Dengan menganalisis teknologi terbaru dan tren perkembangan ini, artikel ini memberikan perspektif komprehensif 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
Pendahuluan
Satu, Pengetahuan Dasar zk-SNARKs
Dua, zk-SNARKs non-interaktif
Tiga, pembuktian nol pengetahuan berbasis sirkuit
Empat, model zk-SNARKs
Lima, Gambaran Umum dan Perkembangan zk-SNARKs Virtual Machine
Enam, Gambaran 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
Kesimpulan
Pendahuluan
Dalam beberapa tahun terakhir, pengembangan aplikasi blockchain (DApps) berkembang pesat, dengan aplikasi baru muncul setiap hari. Platform blockchain setiap hari menampung aktivitas jutaan pengguna, memproses miliaran transaksi. Jumlah data besar yang dihasilkan dari transaksi ini biasanya mencakup informasi pribadi sensitif seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo akun. Mengingat sifat terbuka dan transparan dari blockchain, data yang disimpan ini terbuka untuk 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 menyediakan bentuk tanda tangan digital yang khusus, mampu menyembunyikan identitas penandatangan, sehingga melindungi keamanan alamat akun, tetapi tidak dapat melindungi saldo akun dan jumlah transaksi. Komputasi multi-pihak yang aman memungkinkan distribusi 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 dalam 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 untuk memverifikasi kebenaran proposisi tertentu tanpa mengungkapkan data perantara apa pun. Protokol ini tidak memerlukan infrastruktur kunci publik yang kompleks, dan pelaksanaan ulangnya tidak memberikan kesempatan bagi pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, pemverifikasi dapat memverifikasi apakah pembuktian memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi melibatkan pembuatan bukti yang mencakup jumlah transaksi yang diklaim oleh pembuktian, kemudian bukti tersebut disampaikan kepada pemverifikasi, pemverifikasi melakukan perhitungan yang telah ditentukan sebelumnya pada bukti, dan menghasilkan hasil perhitungan akhir, sehingga mencapai kesimpulan apakah menerima pernyataan pembuktian atau tidak. Jika pernyataan pembuktian diterima, itu berarti mereka memiliki jumlah transaksi yang cukup. Proses verifikasi di atas dapat dicatat di Blockchain, tanpa adanya pemalsuan.
Fitur ZKP ini menjadikannya peran inti dalam transaksi Blockchain dan aplikasi cryptocurrency, terutama dalam perlindungan privasi dan skalabilitas jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga dianggap secara luas sebagai salah satu inovasi teknologi terpenting sejak implementasi sukses teknologi buku besar terdistribusi—terutama Bitcoin. Ini juga merupakan jalur utama untuk aplikasi industri dan investasi modal ventura.
Dengan demikian, 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 diluncurkan. Selain itu, pengembangan perangkat keras yang terkait dengan teknologi ZKP juga berjalan cepat, termasuk chip yang dioptimalkan khusus untuk ZKP. Misalnya, proyek-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 peralihan dari perangkat keras umum menuju perangkat keras khusus seperti GPU, FPGA, dan ASIC.
Kemajuan ini menunjukkan bahwa teknologi zk-SNARKs bukan hanya terobosan penting di bidang kriptografi, tetapi juga merupakan pendorong kunci untuk mewujudkan aplikasi 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 membuat keputusan investasi di masa depan. Untuk itu, kami telah meninjau secara komprehensif makalah akademis inti yang terkait dengan ZKP ( berdasarkan relevansi dan jumlah kutipan yang diterima ); pada saat yang sama, kami juga menganalisis secara rinci informasi dan whitepaper dari proyek-proyek terkemuka di bidang ini ( berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis informasi yang komprehensif ini memberikan dasar yang kuat untuk penulisan artikel ini.
Satu, Pengetahuan Dasar zk-SNARKs
1. Ringkasan
Pada tahun 1985, para akademisi Goldwasser, Micali, dan Rackoff pertama kali mengemukakan konsep zk-SNARKs dalam makalah berjudul "The Knowledge Complexity of Interactive Proof-Systems". Makalah ini menjadi fondasi bagi zk-SNARKs, ZKP( dan Interactive Zero-Knowledge, IZK). Makalah tersebut mendefinisikan banyak konsep yang mempengaruhi penelitian akademis selanjutnya. Misalnya, definisi pengetahuan adalah "output dari komputasi yang tidak dapat dilakukan(", yang berarti pengetahuan harus merupakan output dan merupakan komputasi yang tidak dapat dilakukan, yang menunjukkan bahwa itu tidak bisa menjadi fungsi sederhana, melainkan harus fungsi yang kompleks. Komputasi yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi kebenaran solusinya dalam waktu polinomial, di mana waktu polinomial mengacu pada waktu eksekusi algoritma yang 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 itu rumit, maka dianggap sebagai komputasi yang tidak dapat dilakukan; tetapi proses verifikasinya relatif sederhana, sehingga sangat cocok digunakan untuk verifikasi zk-SNARKs.
Salah satu contoh klasik masalah NP adalah masalah salesman perjalanan, di mana harus menemukan jalur terpendek untuk mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek mungkin sulit, tetapi diberikan sebuah jalur, memverifikasi apakah jalur tersebut adalah yang terpendek relatif mudah. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser et al. memperkenalkan konsep "knowledge complexity" ) knowledge complexity ( dalam makalah mereka, untuk mengukur jumlah pengetahuan yang diungkapkan oleh pembukti kepada verifier dalam sistem bukti interaktif. Mereka juga mengusulkan sistem bukti interaktif ) Interactive Proof Systems, IPS (, di mana pembukti ) Prover ( dan verifier ) Verifier ( membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan kawan-kawan adalah suatu jenis bukti interaktif yang khusus, di mana verifier tidak akan mendapatkan informasi tambahan selain nilai kebenaran dari pernyataan tersebut selama proses verifikasi; dan mereka mengusulkan tiga karakteristik dasar yang mencakup:
1.Kelengkapan)completeness(: Jika argumen itu benar, pembuktian yang jujur dapat meyakinkan verifikator yang jujur tentang fakta ini;
2.Keandalan ) soundness (: Jika pembuktian tidak mengetahui isi pernyataan, ia hanya dapat menipu verifier dengan probabilitas yang sangat kecil;
3.zk-SNARKs)zero-knowledge(: Setelah proses pembuktian selesai, verifier hanya mendapatkan informasi "pembuktian memiliki pengetahuan ini", dan tidak dapat memperoleh konten tambahan.
)# 2.zk-SNARKs contoh
Untuk lebih memahami zk-SNARKs dan atributnya, berikut adalah contoh untuk memverifikasi apakah seorang pembuktian memiliki informasi pribadi tertentu, yang dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: atur (Setup)
Pada langkah ini, tujuan pembuktian adalah untuk membuat sebuah bukti yang menunjukkan bahwa ia mengetahui angka rahasia s, tetapi tidak langsung menunjukkan s. Misalkan angka rahasia s=5;
Pilih dua bilangan prima besar p dan q, hitung produk mereka n. Misalkan bilangan prima p=11, q=13, maka n yang didapat adalah 143;
Hitung v=s^2 mod n, di sini, v sebagai bagian dari bukti dikirimkan kepada verifier, tetapi itu tidak cukup bagi verifier atau siapa pun yang mengawasi untuk menyimpulkan s. v=5^2 mod 143=25;
Pilih secara acak sebuah bilangan bulat r, hitung x=r^2 mod n dan kirimkan kepada validator. Nilai x ini digunakan untuk proses validasi selanjutnya, tetapi juga tidak mengungkapkan s. Misalkan bilangan bulat acak r=7, maka x yang dihitung adalah 49.
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 selanjutnya yang perlu diambil oleh prover.
Langkah ketiga: respons )Response(
Berdasarkan nilai a yang dikeluarkan oleh validator, penunjuk melakukan respons:
Jika a=0, maka pengirim mengirim g=r) di mana r adalah angka acak yang dia pilih sebelumnya (.
Jika a=1, pembuktian menghitung g=rs mod n dan mengirimnya. Misalkan bit acak yang dikirim oleh verifier a=1, berdasarkan nilai a, pembuktian menghitung g=75 mod 143=35;
Akhirnya, verifier memverifikasi apakah x sama dengan g^2/v^a mod n berdasarkan g yang diterima. Jika persamaan tersebut benar, verifier menerima bukti ini. Ketika a=0, verifier menghitung g^2 mod n, dan memverifikasi sisi kanan x=49; ketika a=1, verifier menghitung g^2/v mod n=35^2/25 mod 143=49, dan memverifikasi sisi kanan x=49.
Di sini, kita melihat x yang dihitung oleh validator menunjukkan bahwa pembuktian berhasil melewati proses verifikasi, tanpa mengungkapkan angka rahasia s. Di sini, karena a hanya dapat mengambil 0 atau 1, terdapat hanya dua kemungkinan, probabilitas pembuktian untuk berhasil melalui verifikasi secara kebetulan adalah )1/2() ketika a adalah 0. Namun, validator kemudian menantang pembuktian n kali, di mana pembuktian terus mengganti angka terkait, mengirimkannya kepada validator, dan selalu berhasil melewati proses verifikasi. Dengan demikian, probabilitas pembuktian untuk berhasil melalui verifikasi secara kebetulan adalah (1/2)^n( yang semakin mendekati 0), membuktikan bahwa pembuktian memang mengetahui angka rahasia s. 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 interaktif dan daring; misalnya, protokol Sigma biasanya memerlukan tiga hingga lima putaran interaksi untuk menyelesaikan autentikasi. Namun, dalam skenario seperti transaksi instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi berulang, terutama dalam aplikasi teknologi Blockchain, fungsi verifikasi offline menjadi sangat penting.
2.Penawaran NIZK
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengajukan konsep bukti non-interaktif nol pengetahuan ###NIZK(, membuktikan bahwa tidak diperlukan interaksi berulang.