Tinjauan Teknologi zk-SNARKs dan Prospek Masa Depan
Ringkasan
zk-SNARKs(ZKP) sebagai salah satu teknologi kriptografi yang penting, secara luas dianggap sebagai salah satu inovasi paling revolusioner di bidang blockchain setelah teknologi buku besar terdistribusi. Artikel ini memberikan tinjauan sistematis tentang perkembangan teknologi ZKP selama hampir empat puluh tahun dan penelitian terbaru.
Pertama-tama diperkenalkan konsep dasar dan latar belakang sejarah ZKP, dengan fokus pada analisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari model zkSNARK, Pinocchio, Bulletproofs, dan lain-lain. Dalam hal lingkungan komputasi, artikel ini memperkenalkan ZKVM dan ZKEVM, mendiskusikan bagaimana mereka dapat meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi dari ZK Rollup sebagai solusi ekspansi Layer 2, serta kemajuan terbaru dalam akselerasi perangkat keras, solusi campuran, dan ZK EVM khusus.
Akhirnya, artikel ini melihat ke depan pada konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam skalabilitas blockchain, interoperabilitas, dan perlindungan privasi.
Dengan menganalisis teknologi terbaru dan tren perkembangan ini, artikel ini memberikan perspektif komprehensif untuk memahami dan menerapkan teknologi zk-SNARKs, 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 tentang zk-SNARKs
Ringkasan
Contoh zk-SNARKs
Dua, zk-SNARKs non-interaktif
Latar Belakang
Pengenalan NIZK
Transformasi Fiat-Shamir
Jens Groth dan penelitiannya
Penelitian lainnya
Tiga, pembuktian tanpa pengetahuan berbasis sirkuit
Latar Belakang
Konsep dan Ciri 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 diskrit
Rencana berbasis bukti orang biasa
Bukti nol pengetahuan yang dapat diverifikasi berdasarkan probabilitas
Klasifikasi tahap pengaturan berbasis CPC
Lima, Gambaran dan Perkembangan Zero-Knowledge Virtual Machine
Latar Belakang
Klasifikasi ZKVM yang ada
Paradigma Front-end dan Back-end
Kelebihan dan Kekurangan Paradigma ZKVM
Enam, Gambaran Umum dan Perkembangan zk-SNARKs Ethereum Virtual Machine
Latar Belakang
Cara Kerja ZKEVM
Proses Implementasi ZKEVM
Ciri-ciri ZKEVM
Tujuh, Ringkasan dan Perkembangan Solusi Jaringan Layer Dua Zero-Knowledge
Latar Belakang
Mekanisme kerja ZK Rollup
Kekurangan dan Optimasi ZK Rollup
Delapan, arah pengembangan masa depan zk-SNARKs
Mempercepat perkembangan lingkungan komputasi
Usulan dan pengembangan ZKML
Perkembangan terkait teknologi perluasan ZKP
Perkembangan interoperabilitas ZKP
Kesembilan, Kesimpulan
Pendahuluan
Dengan datangnya era Web3, aplikasi blockchain (DApps) menunjukkan pertumbuhan yang eksplosif, 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 mengandung informasi pribadi yang sensitif, seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo, dan sebagainya. Mengingat keterbukaan dan transparansi blockchain, data yang disimpan ini terbuka untuk semua orang, sehingga menimbulkan berbagai masalah keamanan dan privasi.
Saat ini, terdapat 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 alamat akun. Tanda tangan cincin menyediakan bentuk tanda tangan digital yang khusus, yang mampu menyembunyikan identitas penandatangan, sehingga melindungi alamat akun, tetapi tidak dapat 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 saldo akun dan jumlah transaksi, tetapi juga tidak dapat melindungi alamat akun. Selain itu, teknologi-teknologi ini tidak dapat memverifikasi apakah pembuktian dalam lingkungan blockchain memiliki jumlah transaksi yang cukup tanpa mengungkapkan jumlah transaksi, alamat akun, dan saldo akun.
zk-SNARKs(ZKP) 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 rumit, dan penerapan ulangnya juga tidak memberi kesempatan kepada pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, verifier dapat memverifikasi apakah prover memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi mencakup pembuatan bukti yang berisi jumlah transaksi yang diklaim oleh prover, kemudian bukti tersebut disampaikan kepada verifier, di mana verifier melakukan perhitungan yang telah ditentukan sebelumnya terhadap bukti dan menghasilkan hasil perhitungan akhir, sehingga mencapai kesimpulan apakah akan menerima pernyataan prover. Jika pernyataan prover 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 hal perlindungan privasi dan skalabilitas jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga secara luas dianggap sebagai salah satu inovasi teknologi terpenting sejak penerapan sukses teknologi buku besar terdistribusi (, terutama Bitcoin ). Selain itu, juga merupakan jalur utama untuk aplikasi industri dan investasi risiko.
Oleh karena itu, banyak proyek jaringan berbasis ZKP muncul berturut-turut, seperti ZkSync, StarkNet, Mina, Filecoin, dan Aleo. Seiring dengan perkembangan proyek-proyek ini, inovasi algoritma mengenai ZKP terus bermunculan, dilaporkan hampir setiap minggu ada algoritma baru yang diluncurkan. Selain itu, pengembangan perangkat keras terkait 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 peralihan 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 kunci untuk menerapkan teknologi blockchain yang lebih luas ( terutama dalam meningkatkan perlindungan privasi dan kapasitas 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 ( yang diurutkan berdasarkan relevansi dan jumlah sitasi ); sekaligus, kami juga menganalisis secara mendetail informasi dan buku putih proyek-proyek terkemuka di bidang ini ( yang diurutkan berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis informasi yang komprehensif ini memberikan dasar yang kokoh untuk penulisan artikel ini.
Satu, dasar pengetahuan zk-SNARKs
1. Ringkasan
Pada tahun 1985, para akademisi Goldwasser, Micali, dan Rackoff pertama kali mengajukan konsep zk-SNARKs dalam makalah mereka yang berjudul "The Knowledge Complexity of Interactive Proof-Systems". Makalah ini merupakan dasar bagi zk-SNARKs, ZKP( dan Interactive Zero-Knowledge, IZK). Makalah ini mendefinisikan banyak konsep yang memengaruhi penelitian akademis selanjutnya. Misalnya, definisi pengetahuan adalah "output yang tidak dapat dihitung", yaitu pengetahuan harus merupakan output, dan merupakan suatu perhitungan yang tidak dapat dilakukan, yang berarti itu tidak bisa menjadi fungsi sederhana, melainkan harus menjadi fungsi yang kompleks. Perhitungan yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi kebenaran solusinya dalam waktu polinomial, waktu polinomial berarti 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 yang kompleks, maka dianggap sebagai perhitungan yang tidak dapat dilakukan; tetapi proses verifikasinya relatif sederhana, sehingga sangat cocok digunakan untuk verifikasi zk-SNARKs.
Contoh klasik dari masalah NP adalah masalah perjalanan salesman, di mana kita harus menemukan jalur terpendek untuk mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek bisa sangat sulit, memverifikasi apakah jalur tertentu adalah yang terpendek relatif mudah. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser dan kawan-kawan dalam makalah mereka memperkenalkan konsep "kompleksitas pengetahuan", yang digunakan untuk mengukur jumlah pengetahuan yang bocor dari pembuktian kepada verifikator dalam sistem pembuktian interaktif. Mereka juga mengajukan sistem pembuktian interaktif (Interactive Proof Systems, IPS), di mana pembuktian (Prover) dan verifikator (Verifier) membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan lain-lain adalah sebuah jenis bukti interaktif khusus, di mana verifier tidak mendapatkan informasi tambahan selain kebenaran pernyataan selama proses verifikasi; dan diajukan tiga karakteristik dasar termasuk:
Keterlengkapan: Jika argumen itu benar, maka pembuktian yang jujur dapat meyakinkan verifier yang jujur akan fakta ini;
2.Keandalan: Jika pembuktian tidak mengetahui isi pernyataan, ia hanya dapat menipu verifier dengan probabilitas yang sangat kecil;
Sifat nol pengetahuan: Setelah proses pembuktian selesai, verifier hanya mendapatkan informasi "pembuktinya memiliki pengetahuan ini", tanpa mendapatkan konten tambahan apa pun.
(# 2.zk-SNARKs contoh
Untuk memahami zk-SNARKs dan atributnya dengan lebih baik, berikut adalah contoh untuk memverifikasi apakah seorang pembuktian memiliki informasi pribadi tertentu. Contoh ini dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: Atur
Pada langkah ini, tujuan pembuktian adalah untuk membuat sebuah bukti bahwa dia mengetahui suatu angka rahasia s, tetapi tidak menunjukkan s secara langsung. Misalkan angka rahasia s;
Pilih dua bilangan prima besar p dan q, hitung hasil kali mereka n. Tentukan bilangan prima p dan q, hitung n yang diperoleh.
Hitung v=s^2 mod n, di sini, v sebagai bagian dari bukti dikirim ke verifier, tetapi itu tidak cukup untuk memungkinkan verifier atau siapa pun yang mengamati 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 mengekspos s. Misalkan bilangan bulat acak r, hitung x yang diperoleh.
Langkah kedua: Tantangan
Validator secara acak memilih sebuah posisi a) yang bisa menjadi 0 atau 1###, kemudian mengirimkannya kepada prover. "Tantangan" ini menentukan langkah-langkah yang perlu diambil oleh prover selanjutnya.
Langkah ketiga: Respons
Berdasarkan nilai a yang dikeluarkan oleh validator, prover 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 verifikator, berdasarkan nilai a, penunjuk menghitung g;
Akhirnya, verifier menggunakan g yang diterima untuk memverifikasi apakah x sama dengan g^2 mod n. Jika persamaan tersebut benar, verifier menerima bukti ini. Ketika a=0, verifier menghitung g^2 mod n, kemudian memverifikasi x di sisi kanan; ketika a=1, verifier menghitung g^2 mod n, kemudian memverifikasi xv di sisi kanan.
Di sini, kita melihat bahwa x=g^2 mod n yang dihitung oleh validator menunjukkan bahwa penyetor berhasil melewati proses verifikasi, sambil tidak mengungkapkan angka rahasianya s. Di sini, karena a hanya dapat mengambil 0 atau 1, hanya ada dua kemungkinan, probabilitas penyetor untuk berhasil melewati verifikasi dengan mengandalkan keberuntungan adalah 50%( ketika a mengambil 0). Namun, validator kemudian menantang penyetor n kali, penyetor terus-menerus mengganti angka terkait, menyerahkannya kepada validator, dan selalu berhasil melewati proses verifikasi, sehingga probabilitas penyetor untuk berhasil melewati verifikasi dengan mengandalkan keberuntungan adalah (1/2)^n( yang mendekati 0), kesimpulan bahwa penyetor memang mengetahui angka rahasia s terbukti. Contoh ini membuktikan integritas, keandalan, dan sifat nol pengetahuan dari sistem bukti nol pengetahuan.
( 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 otentikasi. Namun, dalam skenario seperti transaksi instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi multi-putaran, terutama dalam aplikasi teknologi blockchain, di mana fungsi verifikasi offline menjadi sangat penting.
(# 2.Penawaran NIZK
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengusulkan konsep bukti nol interaktif non-interaktif )NIZK###, membuktikan kemungkinan bahwa pembuktian (Prover) dan verifier (Verifier) masih dapat menyelesaikan proses otentikasi tanpa memerlukan interaksi berulang. Terobosan ini membuat transaksi instan, pemungutan suara, dan aplikasi blockchain menjadi mungkin.
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.
15 Suka
Hadiah
15
7
Bagikan
Komentar
0/400
BlockDetective
· 07-15 23:55
zksnark sangat menarik
Lihat AsliBalas0
FunGibleTom
· 07-15 04:16
Siapa yang bisa mengerti ini... sudah hampir gila
Lihat AsliBalas0
FlashLoanLord
· 07-14 05:09
Baca tidak masuk, anjing saja tidak mengerti.
Lihat AsliBalas0
wagmi_eventually
· 07-14 05:05
zkSaya hanya pernah menggunakan stark, yang lainnya saya tidak mengerti.
Lihat AsliBalas0
JustHereForMemes
· 07-14 04:55
zk teknologi ini memang luar biasa
Lihat AsliBalas0
ImpermanentPhilosopher
· 07-14 04:55
DOGE dimana tidak berfungsi zkp tidak digunakan lebih awal?
Lihat AsliBalas0
DaoGovernanceOfficer
· 07-14 04:53
*sigh* sekali lagi survei yang kehilangan wawasan kritis vitalik dari makalah zk-nya tahun 2022...
Sejarah evolusi teknologi zk-SNARKs selama 40 tahun: dari dasar hingga analisis menyeluruh tentang ZK Rollup
Tinjauan Teknologi zk-SNARKs dan Prospek Masa Depan
Ringkasan
zk-SNARKs(ZKP) sebagai salah satu teknologi kriptografi yang penting, secara luas dianggap sebagai salah satu inovasi paling revolusioner di bidang blockchain setelah teknologi buku besar terdistribusi. Artikel ini memberikan tinjauan sistematis tentang perkembangan teknologi ZKP selama hampir empat puluh tahun dan penelitian terbaru.
Pertama-tama diperkenalkan konsep dasar dan latar belakang sejarah ZKP, dengan fokus pada analisis teknologi ZKP berbasis sirkuit, termasuk desain, aplikasi, dan metode optimasi dari model zkSNARK, Pinocchio, Bulletproofs, dan lain-lain. Dalam hal lingkungan komputasi, artikel ini memperkenalkan ZKVM dan ZKEVM, mendiskusikan bagaimana mereka dapat meningkatkan kapasitas pemrosesan transaksi, melindungi privasi, dan meningkatkan efisiensi verifikasi. Artikel ini juga menjelaskan mekanisme kerja dan metode optimasi dari ZK Rollup sebagai solusi ekspansi Layer 2, serta kemajuan terbaru dalam akselerasi perangkat keras, solusi campuran, dan ZK EVM khusus.
Akhirnya, artikel ini melihat ke depan pada konsep-konsep baru seperti ZKCoprocessor, ZKML, ZKThreads, ZK Sharding, dan ZK StateChannels, serta membahas potensi mereka dalam skalabilitas blockchain, interoperabilitas, dan perlindungan privasi.
Dengan menganalisis teknologi terbaru dan tren perkembangan ini, artikel ini memberikan perspektif komprehensif untuk memahami dan menerapkan teknologi zk-SNARKs, 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 tentang zk-SNARKs
Dua, zk-SNARKs non-interaktif
Tiga, pembuktian tanpa pengetahuan berbasis sirkuit
Empat, model zk-SNARKs
Lima, Gambaran dan Perkembangan Zero-Knowledge Virtual Machine
Enam, Gambaran Umum dan Perkembangan zk-SNARKs Ethereum Virtual Machine
Tujuh, Ringkasan dan Perkembangan Solusi Jaringan Layer Dua Zero-Knowledge
Delapan, arah pengembangan masa depan zk-SNARKs
Kesembilan, Kesimpulan
Pendahuluan
Dengan datangnya era Web3, aplikasi blockchain (DApps) menunjukkan pertumbuhan yang eksplosif, 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 mengandung informasi pribadi yang sensitif, seperti identitas pengguna, jumlah transaksi, alamat akun, dan saldo, dan sebagainya. Mengingat keterbukaan dan transparansi blockchain, data yang disimpan ini terbuka untuk semua orang, sehingga menimbulkan berbagai masalah keamanan dan privasi.
Saat ini, terdapat 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 alamat akun. Tanda tangan cincin menyediakan bentuk tanda tangan digital yang khusus, yang mampu menyembunyikan identitas penandatangan, sehingga melindungi alamat akun, tetapi tidak dapat 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 saldo akun dan jumlah transaksi, tetapi juga tidak dapat melindungi alamat akun. Selain itu, teknologi-teknologi ini tidak dapat memverifikasi apakah pembuktian dalam lingkungan blockchain memiliki jumlah transaksi yang cukup tanpa mengungkapkan jumlah transaksi, alamat akun, dan saldo akun.
zk-SNARKs(ZKP) 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 rumit, dan penerapan ulangnya juga tidak memberi kesempatan kepada pengguna jahat untuk mendapatkan informasi berguna tambahan. Melalui ZKP, verifier dapat memverifikasi apakah prover memiliki jumlah transaksi yang cukup tanpa mengungkapkan data transaksi pribadi apa pun. Proses verifikasi mencakup pembuatan bukti yang berisi jumlah transaksi yang diklaim oleh prover, kemudian bukti tersebut disampaikan kepada verifier, di mana verifier melakukan perhitungan yang telah ditentukan sebelumnya terhadap bukti dan menghasilkan hasil perhitungan akhir, sehingga mencapai kesimpulan apakah akan menerima pernyataan prover. Jika pernyataan prover 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 hal perlindungan privasi dan skalabilitas jaringan, sehingga tidak hanya menjadi fokus penelitian akademis, tetapi juga secara luas dianggap sebagai salah satu inovasi teknologi terpenting sejak penerapan sukses teknologi buku besar terdistribusi (, terutama Bitcoin ). Selain itu, juga merupakan jalur utama untuk aplikasi industri dan investasi risiko.
Oleh karena itu, banyak proyek jaringan berbasis ZKP muncul berturut-turut, seperti ZkSync, StarkNet, Mina, Filecoin, dan Aleo. Seiring dengan perkembangan proyek-proyek ini, inovasi algoritma mengenai ZKP terus bermunculan, dilaporkan hampir setiap minggu ada algoritma baru yang diluncurkan. Selain itu, pengembangan perangkat keras terkait 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 peralihan 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 kunci untuk menerapkan teknologi blockchain yang lebih luas ( terutama dalam meningkatkan perlindungan privasi dan kapasitas 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 ( yang diurutkan berdasarkan relevansi dan jumlah sitasi ); sekaligus, kami juga menganalisis secara mendetail informasi dan buku putih proyek-proyek terkemuka di bidang ini ( yang diurutkan berdasarkan skala pendanaan mereka ). Pengumpulan dan analisis informasi yang komprehensif ini memberikan dasar yang kokoh untuk penulisan artikel ini.
Satu, dasar pengetahuan zk-SNARKs
1. Ringkasan
Pada tahun 1985, para akademisi Goldwasser, Micali, dan Rackoff pertama kali mengajukan konsep zk-SNARKs dalam makalah mereka yang berjudul "The Knowledge Complexity of Interactive Proof-Systems". Makalah ini merupakan dasar bagi zk-SNARKs, ZKP( dan Interactive Zero-Knowledge, IZK). Makalah ini mendefinisikan banyak konsep yang memengaruhi penelitian akademis selanjutnya. Misalnya, definisi pengetahuan adalah "output yang tidak dapat dihitung", yaitu pengetahuan harus merupakan output, dan merupakan suatu perhitungan yang tidak dapat dilakukan, yang berarti itu tidak bisa menjadi fungsi sederhana, melainkan harus menjadi fungsi yang kompleks. Perhitungan yang tidak dapat dilakukan biasanya dapat dipahami sebagai masalah NP, yaitu masalah yang dapat memverifikasi kebenaran solusinya dalam waktu polinomial, waktu polinomial berarti 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 yang kompleks, maka dianggap sebagai perhitungan yang tidak dapat dilakukan; tetapi proses verifikasinya relatif sederhana, sehingga sangat cocok digunakan untuk verifikasi zk-SNARKs.
Contoh klasik dari masalah NP adalah masalah perjalanan salesman, di mana kita harus menemukan jalur terpendek untuk mengunjungi serangkaian kota dan kembali ke titik awal. Meskipun menemukan jalur terpendek bisa sangat sulit, memverifikasi apakah jalur tertentu adalah yang terpendek relatif mudah. Karena memverifikasi total jarak dari jalur tertentu dapat dilakukan dalam waktu polinomial.
Goldwasser dan kawan-kawan dalam makalah mereka memperkenalkan konsep "kompleksitas pengetahuan", yang digunakan untuk mengukur jumlah pengetahuan yang bocor dari pembuktian kepada verifikator dalam sistem pembuktian interaktif. Mereka juga mengajukan sistem pembuktian interaktif (Interactive Proof Systems, IPS), di mana pembuktian (Prover) dan verifikator (Verifier) membuktikan kebenaran suatu pernyataan melalui interaksi berulang.
Secara keseluruhan, definisi zk-SNARKs yang dirangkum oleh Goldwasser dan lain-lain adalah sebuah jenis bukti interaktif khusus, di mana verifier tidak mendapatkan informasi tambahan selain kebenaran pernyataan selama proses verifikasi; dan diajukan tiga karakteristik dasar termasuk:
2.Keandalan: Jika pembuktian tidak mengetahui isi pernyataan, ia hanya dapat menipu verifier dengan probabilitas yang sangat kecil;
(# 2.zk-SNARKs contoh
Untuk memahami zk-SNARKs dan atributnya dengan lebih baik, berikut adalah contoh untuk memverifikasi apakah seorang pembuktian memiliki informasi pribadi tertentu. Contoh ini dibagi menjadi tiga tahap: pengaturan, tantangan, dan respons.
Langkah pertama: Atur
Pada langkah ini, tujuan pembuktian adalah untuk membuat sebuah bukti bahwa dia mengetahui suatu angka rahasia s, tetapi tidak menunjukkan s secara langsung. Misalkan angka rahasia s;
Pilih dua bilangan prima besar p dan q, hitung hasil kali mereka n. Tentukan bilangan prima p dan q, hitung n yang diperoleh.
Hitung v=s^2 mod n, di sini, v sebagai bagian dari bukti dikirim ke verifier, tetapi itu tidak cukup untuk memungkinkan verifier atau siapa pun yang mengamati 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 mengekspos s. Misalkan bilangan bulat acak r, hitung x yang diperoleh.
Langkah kedua: Tantangan
Validator secara acak memilih sebuah posisi a) yang bisa menjadi 0 atau 1###, kemudian mengirimkannya kepada prover. "Tantangan" ini menentukan langkah-langkah yang perlu diambil oleh prover selanjutnya.
Langkah ketiga: Respons
Berdasarkan nilai a yang dikeluarkan oleh validator, prover 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 verifikator, berdasarkan nilai a, penunjuk menghitung g;
Akhirnya, verifier menggunakan g yang diterima untuk memverifikasi apakah x sama dengan g^2 mod n. Jika persamaan tersebut benar, verifier menerima bukti ini. Ketika a=0, verifier menghitung g^2 mod n, kemudian memverifikasi x di sisi kanan; ketika a=1, verifier menghitung g^2 mod n, kemudian memverifikasi xv di sisi kanan.
Di sini, kita melihat bahwa x=g^2 mod n yang dihitung oleh validator menunjukkan bahwa penyetor berhasil melewati proses verifikasi, sambil tidak mengungkapkan angka rahasianya s. Di sini, karena a hanya dapat mengambil 0 atau 1, hanya ada dua kemungkinan, probabilitas penyetor untuk berhasil melewati verifikasi dengan mengandalkan keberuntungan adalah 50%( ketika a mengambil 0). Namun, validator kemudian menantang penyetor n kali, penyetor terus-menerus mengganti angka terkait, menyerahkannya kepada validator, dan selalu berhasil melewati proses verifikasi, sehingga probabilitas penyetor untuk berhasil melewati verifikasi dengan mengandalkan keberuntungan adalah (1/2)^n( yang mendekati 0), kesimpulan bahwa penyetor memang mengetahui angka rahasia s terbukti. Contoh ini membuktikan integritas, keandalan, dan sifat nol pengetahuan dari sistem bukti nol pengetahuan.
( 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 otentikasi. Namun, dalam skenario seperti transaksi instan atau pemungutan suara, sering kali tidak ada kesempatan untuk melakukan interaksi multi-putaran, terutama dalam aplikasi teknologi blockchain, di mana fungsi verifikasi offline menjadi sangat penting.
(# 2.Penawaran NIZK
Pada tahun 1988, Blum, Feldman, dan Micali pertama kali mengusulkan konsep bukti nol interaktif non-interaktif )NIZK###, membuktikan kemungkinan bahwa pembuktian (Prover) dan verifier (Verifier) masih dapat menyelesaikan proses otentikasi tanpa memerlukan interaksi berulang. Terobosan ini membuat transaksi instan, pemungutan suara, dan aplikasi blockchain menjadi mungkin.