Artikel ini mencakup hal-hal berikut: 1. Apa yang dimaksud dengan bukti tanpa pengetahuan? 2. Mengapa kita membutuhkan bukti tanpa pengetahuan? 3. Skenario penerapan bukti tanpa pengetahuan. 4. Cara kerja pembuktian tanpa pengetahuan. 5. Klasifikasi dan kasus penerapan bukti tanpa pengetahuan. 6. Kelemahan pembuktian tanpa pengetahuan.
BAGIAN.01
Apa itu Bukti Tanpa Pengetahuan
**Bukti Tanpa Pengetahuan (Zero-Knowledge Proof) diusulkan oleh S.Goldwasser, S.Micali dan C.Rackoff pada awal 1980-an. Ini mengacu pada kemampuan pembukti untuk meyakinkan pemverifikasi bahwa pernyataan tertentu benar tanpa memberikan informasi yang berguna kepada pemverifikasi. **
Sebagai contoh sederhana, Puff mengatakan bahwa dia adalah seorang koki dan bisa memasak masakan Cina, Korea, dan Italia. Ibu saya menyatakan ketidakpercayaannya karena saya tidak memasak satu makanan pun di rumah. Jadi bagaimana saya bisa membuktikan bahwa saya bisa memasak saat ini?
Saya dapat membuat ibu saya melihat saya menyelesaikan makan di dapur dan membuktikan bahwa saya benar-benar tahu cara memasak. Tapi saya tidak ingin ibu saya melihat saya membuat kekacauan di dapur saat memasak, atau saya akan dimarahi lagi, jadi apa yang harus saya lakukan? Saya pergi ke dapur sendirian, dan orang tua saya menunggu di luar.Setelah saya selesai memasak dan berkemas, saya mengeluarkan piring. Ini masih membuktikan bahwa saya bisa memasak. Adapun bahan apa yang saya gunakan, bumbu apa yang saya masukkan, dan betapa berantakannya dapur selama proses itu, saya tidak membutuhkannya, selama ibu saya tahu bahwa saya bisa memasak, itu akan membuktikan bahwa saya tidak berbohong.
Sederhananya: Bukti tanpa pengetahuan mencoba membangun kepercayaan antara dua pihak dengan jumlah minimum informasi yang dipertukarkan. Tanpa mengungkapkan lebih banyak informasi, satu pihak (pembukti, pembukti) dapat membuktikan kepada pihak lain (pemverifikasi, pemverifikasi) bahwa satu hal itu benar.
BAGIAN.02
Mengapa Anda membutuhkan bukti tanpa pengetahuan
Melindungi data pribadi
Vendor nakal ingin mengumpulkan data pengguna sebanyak mungkin, dan beberapa tanda terima yang tidak ada hubungannya dengan bisnis mereka juga meminta izin kepada pengguna (sangat membencinya). Mereka menempatkan informasi identitas pribadi pengguna (PII) yang dikumpulkan dalam basis data terpusat. Basis data ini sangat rentan terhadap serangan. Sekali diserang, informasi identitas pribadi akan bocor, yang akan menyebabkan berbagai masalah penipuan.
Autentikasi
Saat menggunakan situs web, pengguna dapat membuktikan ke situs web bahwa dia memiliki kunci pribadi, atau mengetahui jawaban yang hanya dia yang tahu.Situs web tidak perlu mengetahui kuncinya, tetapi dapat mengonfirmasi identitas pengguna melalui bukti tanpa pengetahuan. Melalui penyimpanan terdesentralisasi, server dapat membuktikan kepada pengguna bahwa data disimpan dengan baik dan tidak bocor.
Kompresi komputasi dan ekspansi blockchain
Dalam arsitektur blok tradisional, perhitungan yang sama diulang berkali-kali, seperti verifikasi tanda tangan, verifikasi validitas transaksi, eksekusi smart contract dan tempat lainnya, karena dengan bukti perhitungan, perhitungan yang sama tidak perlu diulang berkali-kali, proses perhitungan dapat dibuktikan dikompresi oleh teknologi tanpa pengetahuan.
** Bukti tanpa pengetahuan benar-benar menyelesaikan kepercayaan data, menyadari perlindungan data pribadi, dan membuat blockchain benar-benar menyadari konsep mesin yang dapat dipercaya. **
BAGIAN.03
Skenario penerapan bukti tanpa pengetahuan
**Skenario aplikasi utama bukti tanpa pengetahuan adalah: pembayaran anonim, bukti identitas, perhitungan yang dapat diverifikasi, dan pemungutan suara anonim. **
Pembayaran anonim
Transaksi Cryptocurrency dapat dilihat secara publik di rantai publik. Pengguna bertransaksi secara anonim, tetapi juga ditautkan ke identitas dunia nyata (misalnya, dengan memasukkan alamat ETH di profil Twitter atau GitHub mereka), atau identitas dunia nyata mereka dapat diperoleh melalui analisis data on-chain dan off-chain.
Ada "koin privasi" khusus yang dirancang untuk transaksi yang sepenuhnya anonim. Contohnya termasuk Zcash dan Monero, yang menyembunyikan detail transaksi termasuk alamat pengirim/penerima, jenis aset, jumlah, dan garis waktu transaksi. Dengan memasukkan teknik tanpa pengetahuan ke dalam protokol, jaringan blockchain yang berfokus pada privasi memungkinkan node untuk memverifikasi transaksi tanpa memiliki akses ke data transaksi.
Bukti tanpa pengetahuan juga telah diterapkan pada transaksi anonim di blockchain publik. Seperti Tornado Cash, layanan non-penahanan terdesentralisasi yang memungkinkan pengguna melakukan transaksi pribadi di Ethereum. Tornado Cash menggunakan bukti tanpa pengetahuan untuk mengaburkan detail transaksi dan menjamin privasi finansial.
ID Pribadi
Dengan alasan tidak mengungkapkan informasi identitas tertentu, sertifikat identitas khusus dikeluarkan. Misalnya, menggunakan layanan online memerlukan pembuktian identitas pengguna dan hak untuk mengakses platform tersebut. Ini biasanya memerlukan penyediaan informasi pribadi seperti nama, alamat email, tanggal lahir, dll.
Bukti tanpa pengetahuan dapat menyederhanakan otentikasi platform dan pengguna. Bukti ZK dihasilkan menggunakan input publik (mis., data yang membuktikan bahwa pengguna adalah anggota platform) dan input pribadi (mis., detail pengguna), yang dapat dengan mudah disajikan oleh pengguna untuk memverifikasi identitas mereka saat mereka membutuhkan akses ke layanan. Misalnya, untuk membuktikan apakah pengguna sudah dewasa atau belum, tidak perlu mengeluarkan informasi KTP, atau tahun lahir tertentu, tetapi hanya kesimpulan apakah pengguna berusia delapan belas tahun atau belum.
Perhitungan yang Dapat Diverifikasi
Ketika perangkat pengguna tidak dapat mendukung komputasi yang diperlukan, atau biaya komputasi lokal terlalu tinggi, layanan pihak ketiga akan dipertimbangkan. Layanan pihak ketiga ini dapat mengembalikan hasil keluaran kepada pengguna dengan cepat dan murah (seperti layanan oracle Chainlink). Bukti tanpa pengetahuan dalam skenario ini memungkinkan penyedia daya komputasi pihak ketiga untuk mengeluarkan bukti integritas komputasi untuk memastikan bahwa hasil keluaran yang diterima oleh pengguna sudah benar.
Pemungutan Suara Anonim
Dengan alasan tidak mengungkapkan identitas spesifik, identitas pengguna dibuktikan dan otoritas pemungutan suara diperoleh untuk menyelesaikan pemungutan suara.
BAGIAN.04
Cara Kerja Bukti Tanpa Pengetahuan
Pembuktian tanpa pengetahuan pertama kali diusulkan oleh Shafi Goldwasser dan Silvio Micali dari MIT dalam makalah tahun 1985 berjudul "Kompleksitas Pengetahuan dari Sistem Pembuktian Interaktif". Penulis menyebutkan di makalah bahwa adalah mungkin bagi seorang pembukti untuk meyakinkan pemverifikasi tentang keaslian data tanpa mengungkapkan data spesifiknya. Bukti zero-knowledge dapat bersifat interaktif, yaitu pembuktian harus membuktikan keaslian data satu kali kepada setiap verifier; bisa juga non-interaktif, yaitu pembuktian dibuat oleh pembuktian, dan siapa saja yang menggunakan pembuktian ini dapat diverifikasi. Saat ini sudah banyak penerapan zero-knowledge proof, seperti zk-SNARKS, zk-STARKS, PLONK, dan Bulletproofs. Setiap metode memiliki kelebihan dan kekurangannya masing-masing dalam hal ukuran pembuktian, waktu pembuktian, dan waktu verifikasi.
Zero-knowledge proof memiliki tiga fitur dasar, yaitu:
Integritas: Jika pernyataan itu benar, pemverifikasi yang jujur dapat percaya bahwa pembukti yang jujur memang memiliki informasi yang benar.
Keandalan: Jika pernyataan itu salah, tidak ada pembukti yang tidak jujur yang dapat meyakinkan pemverifikasi yang jujur bahwa ia memiliki informasi yang benar.
Pengetahuan nol: Jika pernyataan itu benar, pemverifikasi tidak tahu apa-apa kecuali pernyataan itu benar dari pembukti.
Singkatnya, untuk membuat bukti tanpa pengetahuan, pemverifikasi perlu membuat pembukti melakukan serangkaian operasi yang hanya dapat dilakukan pembukti dengan benar jika mengetahui informasi yang mendasarinya. Jika pembukti membodohi suatu hasil, maka pemverifikasi sangat mungkin menemukan dan membuktikan kesalahannya dalam pembuktian.
BAGIAN.05
Klasifikasi bukti tanpa pengetahuan
Bukti tanpa pengetahuan dapat dibagi menjadi "bukti tanpa pengetahuan interaktif" dan "bukti tanpa pengetahuan non-interaktif" sesuai dengan metode interaksi.
Bukti tanpa pengetahuan interaktif
Prover dan verifikator perlu berinteraksi berkali-kali, verifikator akan terus mengajukan pertanyaan untuk menantang pembukti, dan verifikator akan terus menanggapi tantangan tersebut hingga verifikator yakin.
Bukti Tanpa Pengetahuan Interaktif - Game Buta Warna
Alice buta warna, tetapi Bob tidak buta warna. Bob memiliki dua bola dengan ukuran dan bentuk yang sama, tetapi warna kedua bola ini berbeda. Satu bola berwarna biru dan bola lainnya berwarna merah. Karena Alice buta warna, maka Alice tidak tahu apakah kedua bola itu sama, Bob perlu membuktikan kepada Alice bahwa kedua bola itu berbeda. Di sini, Alice disebut pemverifikasi, dan dia perlu memverifikasi apakah pernyataan Bob benar atau tidak. Bob disebut pembukti, dan dia perlu membuktikan pernyataannya (ada dua bola dengan warna berbeda). Dalam kasus warna dari dua bola, buktikan kepada Alice bahwa warna kedua bola itu berbeda, yang konsisten dengan definisi pembuktian tanpa pengetahuan.
Alice mengambil dua bola di depan Bob, bola biru di tangan kiri dan bola merah di tangan kanan, lalu meletakkan kedua tangan di belakang punggungnya sehingga Bob tidak bisa melihat bola di tangan Alice, dan Alice secara acak menukar bola di tangan kiri dan kanannya di belakang punggungnya, setelah pertukaran selesai, Alice mengulurkan tangannya dan bertanya kepada Bob apakah kedua bola telah bertukar posisi.Jika Bob dapat melihat warna pada bola, maka setiap kali Alice mengubah posisinya bola, Bob dapat menjawab pertanyaan Alice dengan benar.
Untuk pertama kalinya, Alice diam-diam menukar posisi bola di tangannya, lalu Alice bertanya kepada Bob apakah dia menukar posisi bola tersebut.Jika Bob menjawab Ya, maka Alice memiliki probabilitas 50% bahwa Bob dapat membedakan warna bola. dua bola, karena Bob Ada peluang 1/2 untuk melakukannya dengan benar, jadi Alice bisa mencoba lagi. Jika Bob menjawab Tidak, maka Alice dapat dipastikan bahwa Bob tidak dapat membedakan warna kedua bola tersebut.
Kedua kalinya, Alice tidak menukar posisi bola di tangannya, lalu Alice bertanya pada Bob apakah dia mengganti posisi bola. Jika Bob menjawab Tidak, maka Alice memiliki probabilitas 75% untuk percaya bahwa Bob dapat membedakan warna kedua bola tersebut.
Setelah iterasi pertama, Alice dapat mengatakan bahwa pernyataan yang dinyatakan oleh Bob memiliki kemungkinan 50% benar. Jika Bob menjawab dengan benar untuk kedua kalinya, maka Alice dapat mengatakan bahwa pernyataan Bob benar dengan probabilitas 75%. Setelah iterasi ketiga, akan menjadi 87,5%. Jika Bob telah melewati pemeriksaan sebanyak n kali berturut-turut, Alice memiliki probabilitas 1-(1/2)^n dan dapat berpikir bahwa apa yang dikatakan Bob benar, dan kedua bola tersebut memang berwarna merah dan biru.
Pembuktian tanpa pengetahuan interaktif adalah metode verifikasi berbasis probabilitas. Pemverifikasi mengajukan pertanyaan kepada pembukti berdasarkan keacakan tertentu. Jika pembukti dapat memberikan jawaban yang benar, itu berarti pembukti memiliki kemungkinan besar untuk memiliki semua pengetahuan yang Diklaim " ". Bukti tanpa pengetahuan bukanlah bukti dalam pengertian matematis, karena ia memiliki kemungkinan kesalahan yang kecil, dan pembukti yang curang dapat menipu pemverifikasi melalui pernyataan palsu. Dengan kata lain, bukti tanpa pengetahuan adalah bukti probabilistik daripada bukti deterministik, tetapi ada teknik yang dapat mengurangi kesalahan hingga nilai yang dapat diabaikan.
Pendekatan interaktif ini memiliki beberapa keterbatasan:
Setiap verifikasi membutuhkan proses yang panjang.
Pembukti dan pemverifikasi harus hadir pada waktu yang sama, baik online maupun tatap muka.
Hanya satu verifikator yang dapat dipercaya. Jika beberapa verifikator ingin dipercaya, setiap verifikator harus melalui proses pembuktian.
BUKTI ZERO-KNOWLEDGE NON-INTERAKTIF
Bukti tanpa pengetahuan interaktif membutuhkan dua pihak untuk siap sedia dan berinteraksi berulang kali. Bahkan jika pemverifikasi yakin bahwa pembukti jujur, bukti tidak dapat digunakan untuk verifikasi independen (menghitung bukti baru membutuhkan serangkaian pesan baru antara pembukti dan pemverifikasi).
Untuk memecahkan masalah yang dihadapi oleh bukti tanpa pengetahuan interaktif, muncullah bukti tanpa pengetahuan non-interaktif. Manuel Blum, Paul Feldman, dan Silvio Micali mengusulkan bukti tanpa pengetahuan interaktif pertama - di mana pembukti dan pemverifikasi memiliki rahasia bersama. Ini memungkinkan seorang pembukti untuk membuktikan pengetahuan mereka tentang beberapa informasi tanpa memberikan informasi itu sendiri.
Bukti tanpa pengetahuan non-interaktif---permainan Sudoku
Sudoku adalah permainan matematika yang berasal dari Swiss pada abad ke 18. Ini adalah permainan logika yang menggunakan kertas dan pena untuk melakukan perhitungan. Pemain harus menyimpulkan angka dari semua ruang yang tersisa berdasarkan angka yang diketahui pada papan berukuran 9×9, dan memastikan bahwa angka di setiap baris, setiap kolom, dan setiap istana garis tebal (3*3) berisi 1- 9. ulangi.
Untuk membuktikan kepada Bob bahwa dia telah memecahkan teka-teki Sudoku, Alice membuat mesin anti rusak untuk ini. Alice memasukkan jawaban Sudoku yang dihasilkan ke dalam mesin, dan mesin dapat mengirimkan bukti ke Bob. Mesin Alice mengikuti protokol yang dapat diverifikasi secara publik berikut ini: Pertama, Alice meletakkan teka-teki Sudoku asli yang belum terpecahkan ke dalam mesin, dan tiga kartu teka-teki di Sudoku menghadap ke atas. Selanjutnya, Alice meletakkan jawabannya menghadap ke bawah pada sel yang sesuai di mesin, juga menempatkan tiga kartu di setiap sel. Akhirnya, Bob memperoleh bukti dari mesin tersebut, dan mesin tersebut mengembalikan 27 kantong kepada Bob:
Mesin mengeluarkan 9 kartu dari setiap baris Sudoku, mencampurnya secara terpisah dan memasukkannya ke dalam tas, total ada 9 baris, dan menggunakan 9 kantong; mesin mengeluarkan 9 kartu dari setiap baris Sudoku, mencampurnya dan masukkan ke dalam Kantong, total ada 9 kolom, dan 9 kantong digunakan; mesin mengeluarkan kartu di setiap istana garis tebal (3*3) di Sudoku, mencampurnya dan memasukkannya ke dalam tas, total 9 , habiskan 9 tas;
Bob memeriksa masing-masing dari 27 tas satu per satu, dan jika kartu di setiap tas berisi angka 1 sampai 9, dan tidak ada angka yang hilang atau diulang, maka Bob dapat memastikan bahwa Alice memang telah memecahkan Sudoku dan Bob tidak mengambilnya. nomor apa saja dari mesin tersebut Pengetahuan tentang solusi Sudoku dapat diperoleh dari bukti yang dikembalikan, karena data yang dikembalikan oleh mesin ke tas Bob dikocok secara acak.
Bukti tanpa pengetahuan non-interaktif mengatasi beberapa kekurangan dari bukti tanpa pengetahuan interaktif, tidak memerlukan interaksi online yang panjang, dapat dipercaya oleh banyak orang (atau bahkan semua orang), dan pembuktiannya selalu valid, tetapi mesin dan program tambahan mungkin diperlukan untuk menentukan Orde eksperimental. Misalnya, dalam kasus Sudoku, terserah program untuk memutuskan kolom atau baris mana yang akan diverifikasi. Urutan verifikasi harus dirahasiakan, jika tidak, verifikator dapat lulus verifikasi tanpa mengetahui "pengetahuan" yang sebenarnya.
Bukti nol-pengetahuan interaktif VS bukti nol-pengetahuan non-interaktif
Setiap verifikasi bukti interaktif memerlukan babak komunikasi baru, dan pembuktian non-interaktif hanya memerlukan satu putaran komunikasi antara partisipan (prover dan verifikator). Prover meneruskan informasi rahasia ke algoritme khusus untuk menghitung bukti tanpa pengetahuan. Bukti ini dikirim ke pemverifikasi, yang menggunakan algoritme lain untuk memeriksa apakah pembukti mengetahui rahasianya.
Bukti non-interaktif mengurangi komunikasi antara pembukti dan pemverifikasi, menjadikan pembuktian ZK lebih efisien. Selain itu, setelah bukti dihasilkan, bukti tersebut dapat diverifikasi oleh orang lain (dengan akses ke rahasia bersama dan algoritme verifikasi).
**BAGIAN.**06
Solusi teknis dan aplikasi tanpa bukti pengetahuan
Teknologi tanpa pengetahuan memungkinkan pengembang untuk tidak hanya memanfaatkan keamanan blockchain yang mendasarinya seperti Ethereum, tetapi juga meningkatkan throughput dan kecepatan transaksi untuk dApps, dan pada saat yang sama menempatkan informasi pribadi pengguna di luar rantai untuk melindungi privasi pengguna. Transaksi akan dikemas dan diunggah ke rantai untuk mengurangi biaya penggunaan bagi pengguna akhir. Pada akhirnya, proyek dapat memanfaatkan kemampuan ini untuk membuat dApps canggih yang tidak hanya menyaingi sistem Web2 dalam performa, tetapi juga mempertahankan manfaat desentralisasi Web3.
(Sumber gambar: Chainlink)
Di Layer2, zk-rollup akan mengemas beberapa transaksi bersama dan menerbitkannya di blockchain Layer1, dan juga akan menerbitkan bukti tanpa pengetahuan untuk memverifikasi validitas perhitungan. Bukti yang diposting di rantai juga disebut "bukti validitas". **Teknologi bukti validitas dibagi menjadi dua jenis: SNARK dan STARK. **
zk-SNAR
Nama lengkap SNARK adalah "argumen non-interaktif singkat tanpa pengetahuan tentang pengetahuan" (bukti tanpa pengetahuan ringkas non-interaktif). Ini adalah bukti kriptografi bahwa file tersebut kecil dan mudah diverifikasi. Ini menghasilkan bukti kriptografi menggunakan kurva eliptik yang mengasumsikan bahwa logaritma diskrit dari elemen kurva eliptik acak tidak dapat ditemukan dari titik dasar publik. Biaya perhitungan kurva eliptik lebih rendah daripada fungsi hash STARK, sehingga biaya gas protokol SNARK lebih rendah.
Nama lengkap STARK adalah "argumen pengetahuan transparan terukur tanpa pengetahuan" (zero-knowledge scalable, bukti pengetahuan transparan). Pembuktian kriptografi ini hampir tidak memerlukan interaksi antara pembukti dan pemverifikasi. Keuntungan terbesar STARK dibandingkan SNARK adalah waktu pembuktian lebih singkat dan lebih mudah untuk diperluas. Selain itu, karena STARK menggunakan fungsi hash, mereka juga tahan terhadap serangan kuantum.
Perlu disebutkan bahwa penemu STARKs adalah Eli Ben-Sasson, salah satu pendiri StarkWare, tim yang juga mengembangkan StarkEx dan StarkNet.
Contoh: StarkEx, StarkNet, Immutable X, Starkware
BAGIAN.07
Kerugian bukti tanpa pengetahuan
Biaya perangkat keras tinggi
Bergantung pada sistem pembuktian, proses pembuatan bukti tanpa pengetahuan berbeda. Namun pada akhirnya, Anda akan menghadapi masalah yang sulit: perkalian vektor bilangan besar (bidang atau grup), terutama perkalian multiskalar (MSM) dengan basis variabel dan tetap, atau transformasi Fourier cepat (FFT) dan FFT terbalik.
Baik MSM dan FFT adalah operasi yang lambat. Dalam sistem di mana FFT dan MSM ada, sekitar 70% waktu pembuatan bukti dihabiskan untuk MSM dan 30% untuk FFT. Akselerasi perangkat keras diperlukan untuk mengimplementasikan dalam perhitungan yang rumit. Secara umum dianggap bahwa teknologi yang paling penting untuk akselerasi perangkat keras ZK adalah FPGA daripada GPU (karena efisiensi biaya dan energi) atau ASIC (karena ketidakfleksibelan dan siklus iterasi yang panjang). FPGA top-of-the-line sekitar 3x lebih murah daripada GPU top-of-the-line. Selain itu, FPGA 10 kali lebih hemat energi daripada GPU, terutama karena GPU perlu dihubungkan ke perangkat host, yang menghabiskan banyak daya.
Biaya Verifikasi
Memverifikasi bukti memerlukan banyak perhitungan rumit, yang juga meningkatkan biaya perhitungan. Misalnya, ZK-rolluos perlu membayar sekitar 500.000 gas untuk memverifikasi satu bukti AK-SNARK di Ethereum, dan ZK-STARK memerlukan biaya yang lebih tinggi.
Asumsi kepercayaan
Premis pembuktian tanpa pengetahuan adalah bahwa kedua belah pihak jujur dan ingin mengetahui jawaban yang sebenarnya, dan tidak akan memalsukan data. Di ZK-SNARK, menghasilkan parameter publik sekali dapat digunakan kembali oleh pihak yang berpartisipasi dalam protokol tanpa pengetahuan, yang berarti bahwa data yang diberikan oleh peserta sudah benar secara default.
Namun nyatanya, pengguna tidak memiliki cara untuk menilai kejujuran peserta, bahkan jika peserta memasukkan data yang salah, pengguna harus mempercayainya. Tidak ada asumsi kepercayaan di ZK-STARK, dan sekarang, peneliti sedang mengerjakan pengaturan yang tidak tepercaya untuk ZK-SNARK untuk meningkatkan keamanan mekanisme pembuktian.
Ancaman Komputasi Kuantum
ZK-SNARK menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) untuk enkripsi Tampaknya algoritma ECDSA saat ini aman, tetapi pengembangan komputer kuantum di masa depan kemungkinan akan memecahkan algoritma ini.
Secara umum diyakini bahwa ZK-STARK tidak akan terancam oleh komputasi kuantum karena dienkripsi menggunakan hashing anti-tabrakan.Tidak seperti pasangan kunci publik-swasta ECDSA, hashing anti-tabrakan lebih sulit dipecahkan oleh komputasi kuantum.
Lihat Asli
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
Menafsirkan Bukti Tanpa Pengetahuan
Artikel ini mencakup hal-hal berikut: 1. Apa yang dimaksud dengan bukti tanpa pengetahuan? 2. Mengapa kita membutuhkan bukti tanpa pengetahuan? 3. Skenario penerapan bukti tanpa pengetahuan. 4. Cara kerja pembuktian tanpa pengetahuan. 5. Klasifikasi dan kasus penerapan bukti tanpa pengetahuan. 6. Kelemahan pembuktian tanpa pengetahuan.
BAGIAN.01
Apa itu Bukti Tanpa Pengetahuan
**Bukti Tanpa Pengetahuan (Zero-Knowledge Proof) diusulkan oleh S.Goldwasser, S.Micali dan C.Rackoff pada awal 1980-an. Ini mengacu pada kemampuan pembukti untuk meyakinkan pemverifikasi bahwa pernyataan tertentu benar tanpa memberikan informasi yang berguna kepada pemverifikasi. **
Sebagai contoh sederhana, Puff mengatakan bahwa dia adalah seorang koki dan bisa memasak masakan Cina, Korea, dan Italia. Ibu saya menyatakan ketidakpercayaannya karena saya tidak memasak satu makanan pun di rumah. Jadi bagaimana saya bisa membuktikan bahwa saya bisa memasak saat ini?
Saya dapat membuat ibu saya melihat saya menyelesaikan makan di dapur dan membuktikan bahwa saya benar-benar tahu cara memasak. Tapi saya tidak ingin ibu saya melihat saya membuat kekacauan di dapur saat memasak, atau saya akan dimarahi lagi, jadi apa yang harus saya lakukan? Saya pergi ke dapur sendirian, dan orang tua saya menunggu di luar.Setelah saya selesai memasak dan berkemas, saya mengeluarkan piring. Ini masih membuktikan bahwa saya bisa memasak. Adapun bahan apa yang saya gunakan, bumbu apa yang saya masukkan, dan betapa berantakannya dapur selama proses itu, saya tidak membutuhkannya, selama ibu saya tahu bahwa saya bisa memasak, itu akan membuktikan bahwa saya tidak berbohong.
Sederhananya: Bukti tanpa pengetahuan mencoba membangun kepercayaan antara dua pihak dengan jumlah minimum informasi yang dipertukarkan. Tanpa mengungkapkan lebih banyak informasi, satu pihak (pembukti, pembukti) dapat membuktikan kepada pihak lain (pemverifikasi, pemverifikasi) bahwa satu hal itu benar.
BAGIAN.02
Mengapa Anda membutuhkan bukti tanpa pengetahuan
Melindungi data pribadi
Vendor nakal ingin mengumpulkan data pengguna sebanyak mungkin, dan beberapa tanda terima yang tidak ada hubungannya dengan bisnis mereka juga meminta izin kepada pengguna (sangat membencinya). Mereka menempatkan informasi identitas pribadi pengguna (PII) yang dikumpulkan dalam basis data terpusat. Basis data ini sangat rentan terhadap serangan. Sekali diserang, informasi identitas pribadi akan bocor, yang akan menyebabkan berbagai masalah penipuan.
Autentikasi
Saat menggunakan situs web, pengguna dapat membuktikan ke situs web bahwa dia memiliki kunci pribadi, atau mengetahui jawaban yang hanya dia yang tahu.Situs web tidak perlu mengetahui kuncinya, tetapi dapat mengonfirmasi identitas pengguna melalui bukti tanpa pengetahuan. Melalui penyimpanan terdesentralisasi, server dapat membuktikan kepada pengguna bahwa data disimpan dengan baik dan tidak bocor.
Kompresi komputasi dan ekspansi blockchain
Dalam arsitektur blok tradisional, perhitungan yang sama diulang berkali-kali, seperti verifikasi tanda tangan, verifikasi validitas transaksi, eksekusi smart contract dan tempat lainnya, karena dengan bukti perhitungan, perhitungan yang sama tidak perlu diulang berkali-kali, proses perhitungan dapat dibuktikan dikompresi oleh teknologi tanpa pengetahuan.
** Bukti tanpa pengetahuan benar-benar menyelesaikan kepercayaan data, menyadari perlindungan data pribadi, dan membuat blockchain benar-benar menyadari konsep mesin yang dapat dipercaya. **
BAGIAN.03
Skenario penerapan bukti tanpa pengetahuan
**Skenario aplikasi utama bukti tanpa pengetahuan adalah: pembayaran anonim, bukti identitas, perhitungan yang dapat diverifikasi, dan pemungutan suara anonim. **
Pembayaran anonim
Transaksi Cryptocurrency dapat dilihat secara publik di rantai publik. Pengguna bertransaksi secara anonim, tetapi juga ditautkan ke identitas dunia nyata (misalnya, dengan memasukkan alamat ETH di profil Twitter atau GitHub mereka), atau identitas dunia nyata mereka dapat diperoleh melalui analisis data on-chain dan off-chain.
Ada "koin privasi" khusus yang dirancang untuk transaksi yang sepenuhnya anonim. Contohnya termasuk Zcash dan Monero, yang menyembunyikan detail transaksi termasuk alamat pengirim/penerima, jenis aset, jumlah, dan garis waktu transaksi. Dengan memasukkan teknik tanpa pengetahuan ke dalam protokol, jaringan blockchain yang berfokus pada privasi memungkinkan node untuk memverifikasi transaksi tanpa memiliki akses ke data transaksi.
Bukti tanpa pengetahuan juga telah diterapkan pada transaksi anonim di blockchain publik. Seperti Tornado Cash, layanan non-penahanan terdesentralisasi yang memungkinkan pengguna melakukan transaksi pribadi di Ethereum. Tornado Cash menggunakan bukti tanpa pengetahuan untuk mengaburkan detail transaksi dan menjamin privasi finansial.
ID Pribadi
Dengan alasan tidak mengungkapkan informasi identitas tertentu, sertifikat identitas khusus dikeluarkan. Misalnya, menggunakan layanan online memerlukan pembuktian identitas pengguna dan hak untuk mengakses platform tersebut. Ini biasanya memerlukan penyediaan informasi pribadi seperti nama, alamat email, tanggal lahir, dll.
Bukti tanpa pengetahuan dapat menyederhanakan otentikasi platform dan pengguna. Bukti ZK dihasilkan menggunakan input publik (mis., data yang membuktikan bahwa pengguna adalah anggota platform) dan input pribadi (mis., detail pengguna), yang dapat dengan mudah disajikan oleh pengguna untuk memverifikasi identitas mereka saat mereka membutuhkan akses ke layanan. Misalnya, untuk membuktikan apakah pengguna sudah dewasa atau belum, tidak perlu mengeluarkan informasi KTP, atau tahun lahir tertentu, tetapi hanya kesimpulan apakah pengguna berusia delapan belas tahun atau belum.
Perhitungan yang Dapat Diverifikasi
Ketika perangkat pengguna tidak dapat mendukung komputasi yang diperlukan, atau biaya komputasi lokal terlalu tinggi, layanan pihak ketiga akan dipertimbangkan. Layanan pihak ketiga ini dapat mengembalikan hasil keluaran kepada pengguna dengan cepat dan murah (seperti layanan oracle Chainlink). Bukti tanpa pengetahuan dalam skenario ini memungkinkan penyedia daya komputasi pihak ketiga untuk mengeluarkan bukti integritas komputasi untuk memastikan bahwa hasil keluaran yang diterima oleh pengguna sudah benar.
Pemungutan Suara Anonim
Dengan alasan tidak mengungkapkan identitas spesifik, identitas pengguna dibuktikan dan otoritas pemungutan suara diperoleh untuk menyelesaikan pemungutan suara.
BAGIAN.04
Cara Kerja Bukti Tanpa Pengetahuan
Pembuktian tanpa pengetahuan pertama kali diusulkan oleh Shafi Goldwasser dan Silvio Micali dari MIT dalam makalah tahun 1985 berjudul "Kompleksitas Pengetahuan dari Sistem Pembuktian Interaktif". Penulis menyebutkan di makalah bahwa adalah mungkin bagi seorang pembukti untuk meyakinkan pemverifikasi tentang keaslian data tanpa mengungkapkan data spesifiknya. Bukti zero-knowledge dapat bersifat interaktif, yaitu pembuktian harus membuktikan keaslian data satu kali kepada setiap verifier; bisa juga non-interaktif, yaitu pembuktian dibuat oleh pembuktian, dan siapa saja yang menggunakan pembuktian ini dapat diverifikasi. Saat ini sudah banyak penerapan zero-knowledge proof, seperti zk-SNARKS, zk-STARKS, PLONK, dan Bulletproofs. Setiap metode memiliki kelebihan dan kekurangannya masing-masing dalam hal ukuran pembuktian, waktu pembuktian, dan waktu verifikasi.
Zero-knowledge proof memiliki tiga fitur dasar, yaitu:
Singkatnya, untuk membuat bukti tanpa pengetahuan, pemverifikasi perlu membuat pembukti melakukan serangkaian operasi yang hanya dapat dilakukan pembukti dengan benar jika mengetahui informasi yang mendasarinya. Jika pembukti membodohi suatu hasil, maka pemverifikasi sangat mungkin menemukan dan membuktikan kesalahannya dalam pembuktian.
BAGIAN.05
Klasifikasi bukti tanpa pengetahuan
Bukti tanpa pengetahuan dapat dibagi menjadi "bukti tanpa pengetahuan interaktif" dan "bukti tanpa pengetahuan non-interaktif" sesuai dengan metode interaksi.
Bukti tanpa pengetahuan interaktif
Prover dan verifikator perlu berinteraksi berkali-kali, verifikator akan terus mengajukan pertanyaan untuk menantang pembukti, dan verifikator akan terus menanggapi tantangan tersebut hingga verifikator yakin.
Bukti Tanpa Pengetahuan Interaktif - Game Buta Warna
Alice buta warna, tetapi Bob tidak buta warna. Bob memiliki dua bola dengan ukuran dan bentuk yang sama, tetapi warna kedua bola ini berbeda. Satu bola berwarna biru dan bola lainnya berwarna merah. Karena Alice buta warna, maka Alice tidak tahu apakah kedua bola itu sama, Bob perlu membuktikan kepada Alice bahwa kedua bola itu berbeda. Di sini, Alice disebut pemverifikasi, dan dia perlu memverifikasi apakah pernyataan Bob benar atau tidak. Bob disebut pembukti, dan dia perlu membuktikan pernyataannya (ada dua bola dengan warna berbeda). Dalam kasus warna dari dua bola, buktikan kepada Alice bahwa warna kedua bola itu berbeda, yang konsisten dengan definisi pembuktian tanpa pengetahuan.
Alice mengambil dua bola di depan Bob, bola biru di tangan kiri dan bola merah di tangan kanan, lalu meletakkan kedua tangan di belakang punggungnya sehingga Bob tidak bisa melihat bola di tangan Alice, dan Alice secara acak menukar bola di tangan kiri dan kanannya di belakang punggungnya, setelah pertukaran selesai, Alice mengulurkan tangannya dan bertanya kepada Bob apakah kedua bola telah bertukar posisi.Jika Bob dapat melihat warna pada bola, maka setiap kali Alice mengubah posisinya bola, Bob dapat menjawab pertanyaan Alice dengan benar.
Untuk pertama kalinya, Alice diam-diam menukar posisi bola di tangannya, lalu Alice bertanya kepada Bob apakah dia menukar posisi bola tersebut.Jika Bob menjawab Ya, maka Alice memiliki probabilitas 50% bahwa Bob dapat membedakan warna bola. dua bola, karena Bob Ada peluang 1/2 untuk melakukannya dengan benar, jadi Alice bisa mencoba lagi. Jika Bob menjawab Tidak, maka Alice dapat dipastikan bahwa Bob tidak dapat membedakan warna kedua bola tersebut.
Kedua kalinya, Alice tidak menukar posisi bola di tangannya, lalu Alice bertanya pada Bob apakah dia mengganti posisi bola. Jika Bob menjawab Tidak, maka Alice memiliki probabilitas 75% untuk percaya bahwa Bob dapat membedakan warna kedua bola tersebut.
Setelah iterasi pertama, Alice dapat mengatakan bahwa pernyataan yang dinyatakan oleh Bob memiliki kemungkinan 50% benar. Jika Bob menjawab dengan benar untuk kedua kalinya, maka Alice dapat mengatakan bahwa pernyataan Bob benar dengan probabilitas 75%. Setelah iterasi ketiga, akan menjadi 87,5%. Jika Bob telah melewati pemeriksaan sebanyak n kali berturut-turut, Alice memiliki probabilitas 1-(1/2)^n dan dapat berpikir bahwa apa yang dikatakan Bob benar, dan kedua bola tersebut memang berwarna merah dan biru.
Pembuktian tanpa pengetahuan interaktif adalah metode verifikasi berbasis probabilitas. Pemverifikasi mengajukan pertanyaan kepada pembukti berdasarkan keacakan tertentu. Jika pembukti dapat memberikan jawaban yang benar, itu berarti pembukti memiliki kemungkinan besar untuk memiliki semua pengetahuan yang Diklaim " ". Bukti tanpa pengetahuan bukanlah bukti dalam pengertian matematis, karena ia memiliki kemungkinan kesalahan yang kecil, dan pembukti yang curang dapat menipu pemverifikasi melalui pernyataan palsu. Dengan kata lain, bukti tanpa pengetahuan adalah bukti probabilistik daripada bukti deterministik, tetapi ada teknik yang dapat mengurangi kesalahan hingga nilai yang dapat diabaikan.
Pendekatan interaktif ini memiliki beberapa keterbatasan:
BUKTI ZERO-KNOWLEDGE NON-INTERAKTIF
Bukti tanpa pengetahuan interaktif membutuhkan dua pihak untuk siap sedia dan berinteraksi berulang kali. Bahkan jika pemverifikasi yakin bahwa pembukti jujur, bukti tidak dapat digunakan untuk verifikasi independen (menghitung bukti baru membutuhkan serangkaian pesan baru antara pembukti dan pemverifikasi).
Untuk memecahkan masalah yang dihadapi oleh bukti tanpa pengetahuan interaktif, muncullah bukti tanpa pengetahuan non-interaktif. Manuel Blum, Paul Feldman, dan Silvio Micali mengusulkan bukti tanpa pengetahuan interaktif pertama - di mana pembukti dan pemverifikasi memiliki rahasia bersama. Ini memungkinkan seorang pembukti untuk membuktikan pengetahuan mereka tentang beberapa informasi tanpa memberikan informasi itu sendiri.
Bukti tanpa pengetahuan non-interaktif---permainan Sudoku
Sudoku adalah permainan matematika yang berasal dari Swiss pada abad ke 18. Ini adalah permainan logika yang menggunakan kertas dan pena untuk melakukan perhitungan. Pemain harus menyimpulkan angka dari semua ruang yang tersisa berdasarkan angka yang diketahui pada papan berukuran 9×9, dan memastikan bahwa angka di setiap baris, setiap kolom, dan setiap istana garis tebal (3*3) berisi 1- 9. ulangi.
Untuk membuktikan kepada Bob bahwa dia telah memecahkan teka-teki Sudoku, Alice membuat mesin anti rusak untuk ini. Alice memasukkan jawaban Sudoku yang dihasilkan ke dalam mesin, dan mesin dapat mengirimkan bukti ke Bob. Mesin Alice mengikuti protokol yang dapat diverifikasi secara publik berikut ini: Pertama, Alice meletakkan teka-teki Sudoku asli yang belum terpecahkan ke dalam mesin, dan tiga kartu teka-teki di Sudoku menghadap ke atas. Selanjutnya, Alice meletakkan jawabannya menghadap ke bawah pada sel yang sesuai di mesin, juga menempatkan tiga kartu di setiap sel. Akhirnya, Bob memperoleh bukti dari mesin tersebut, dan mesin tersebut mengembalikan 27 kantong kepada Bob:
Mesin mengeluarkan 9 kartu dari setiap baris Sudoku, mencampurnya secara terpisah dan memasukkannya ke dalam tas, total ada 9 baris, dan menggunakan 9 kantong; mesin mengeluarkan 9 kartu dari setiap baris Sudoku, mencampurnya dan masukkan ke dalam Kantong, total ada 9 kolom, dan 9 kantong digunakan; mesin mengeluarkan kartu di setiap istana garis tebal (3*3) di Sudoku, mencampurnya dan memasukkannya ke dalam tas, total 9 , habiskan 9 tas;
Bob memeriksa masing-masing dari 27 tas satu per satu, dan jika kartu di setiap tas berisi angka 1 sampai 9, dan tidak ada angka yang hilang atau diulang, maka Bob dapat memastikan bahwa Alice memang telah memecahkan Sudoku dan Bob tidak mengambilnya. nomor apa saja dari mesin tersebut Pengetahuan tentang solusi Sudoku dapat diperoleh dari bukti yang dikembalikan, karena data yang dikembalikan oleh mesin ke tas Bob dikocok secara acak.
Bukti tanpa pengetahuan non-interaktif mengatasi beberapa kekurangan dari bukti tanpa pengetahuan interaktif, tidak memerlukan interaksi online yang panjang, dapat dipercaya oleh banyak orang (atau bahkan semua orang), dan pembuktiannya selalu valid, tetapi mesin dan program tambahan mungkin diperlukan untuk menentukan Orde eksperimental. Misalnya, dalam kasus Sudoku, terserah program untuk memutuskan kolom atau baris mana yang akan diverifikasi. Urutan verifikasi harus dirahasiakan, jika tidak, verifikator dapat lulus verifikasi tanpa mengetahui "pengetahuan" yang sebenarnya.
Bukti nol-pengetahuan interaktif VS bukti nol-pengetahuan non-interaktif
Setiap verifikasi bukti interaktif memerlukan babak komunikasi baru, dan pembuktian non-interaktif hanya memerlukan satu putaran komunikasi antara partisipan (prover dan verifikator). Prover meneruskan informasi rahasia ke algoritme khusus untuk menghitung bukti tanpa pengetahuan. Bukti ini dikirim ke pemverifikasi, yang menggunakan algoritme lain untuk memeriksa apakah pembukti mengetahui rahasianya.
Bukti non-interaktif mengurangi komunikasi antara pembukti dan pemverifikasi, menjadikan pembuktian ZK lebih efisien. Selain itu, setelah bukti dihasilkan, bukti tersebut dapat diverifikasi oleh orang lain (dengan akses ke rahasia bersama dan algoritme verifikasi).
**BAGIAN.**06
Solusi teknis dan aplikasi tanpa bukti pengetahuan
Teknologi tanpa pengetahuan memungkinkan pengembang untuk tidak hanya memanfaatkan keamanan blockchain yang mendasarinya seperti Ethereum, tetapi juga meningkatkan throughput dan kecepatan transaksi untuk dApps, dan pada saat yang sama menempatkan informasi pribadi pengguna di luar rantai untuk melindungi privasi pengguna. Transaksi akan dikemas dan diunggah ke rantai untuk mengurangi biaya penggunaan bagi pengguna akhir. Pada akhirnya, proyek dapat memanfaatkan kemampuan ini untuk membuat dApps canggih yang tidak hanya menyaingi sistem Web2 dalam performa, tetapi juga mempertahankan manfaat desentralisasi Web3.
(Sumber gambar: Chainlink)
Di Layer2, zk-rollup akan mengemas beberapa transaksi bersama dan menerbitkannya di blockchain Layer1, dan juga akan menerbitkan bukti tanpa pengetahuan untuk memverifikasi validitas perhitungan. Bukti yang diposting di rantai juga disebut "bukti validitas". **Teknologi bukti validitas dibagi menjadi dua jenis: SNARK dan STARK. **
zk-SNAR
Nama lengkap SNARK adalah "argumen non-interaktif singkat tanpa pengetahuan tentang pengetahuan" (bukti tanpa pengetahuan ringkas non-interaktif). Ini adalah bukti kriptografi bahwa file tersebut kecil dan mudah diverifikasi. Ini menghasilkan bukti kriptografi menggunakan kurva eliptik yang mengasumsikan bahwa logaritma diskrit dari elemen kurva eliptik acak tidak dapat ditemukan dari titik dasar publik. Biaya perhitungan kurva eliptik lebih rendah daripada fungsi hash STARK, sehingga biaya gas protokol SNARK lebih rendah.
Kasus:Zcash, Loopring, zkSync1.0, zkSync 2.0, Zigzag, Tambang
zk-STARK
Nama lengkap STARK adalah "argumen pengetahuan transparan terukur tanpa pengetahuan" (zero-knowledge scalable, bukti pengetahuan transparan). Pembuktian kriptografi ini hampir tidak memerlukan interaksi antara pembukti dan pemverifikasi. Keuntungan terbesar STARK dibandingkan SNARK adalah waktu pembuktian lebih singkat dan lebih mudah untuk diperluas. Selain itu, karena STARK menggunakan fungsi hash, mereka juga tahan terhadap serangan kuantum.
Perlu disebutkan bahwa penemu STARKs adalah Eli Ben-Sasson, salah satu pendiri StarkWare, tim yang juga mengembangkan StarkEx dan StarkNet.
Contoh: StarkEx, StarkNet, Immutable X, Starkware
BAGIAN.07
Kerugian bukti tanpa pengetahuan
Biaya perangkat keras tinggi
Bergantung pada sistem pembuktian, proses pembuatan bukti tanpa pengetahuan berbeda. Namun pada akhirnya, Anda akan menghadapi masalah yang sulit: perkalian vektor bilangan besar (bidang atau grup), terutama perkalian multiskalar (MSM) dengan basis variabel dan tetap, atau transformasi Fourier cepat (FFT) dan FFT terbalik.
Baik MSM dan FFT adalah operasi yang lambat. Dalam sistem di mana FFT dan MSM ada, sekitar 70% waktu pembuatan bukti dihabiskan untuk MSM dan 30% untuk FFT. Akselerasi perangkat keras diperlukan untuk mengimplementasikan dalam perhitungan yang rumit. Secara umum dianggap bahwa teknologi yang paling penting untuk akselerasi perangkat keras ZK adalah FPGA daripada GPU (karena efisiensi biaya dan energi) atau ASIC (karena ketidakfleksibelan dan siklus iterasi yang panjang). FPGA top-of-the-line sekitar 3x lebih murah daripada GPU top-of-the-line. Selain itu, FPGA 10 kali lebih hemat energi daripada GPU, terutama karena GPU perlu dihubungkan ke perangkat host, yang menghabiskan banyak daya.
Biaya Verifikasi
Memverifikasi bukti memerlukan banyak perhitungan rumit, yang juga meningkatkan biaya perhitungan. Misalnya, ZK-rolluos perlu membayar sekitar 500.000 gas untuk memverifikasi satu bukti AK-SNARK di Ethereum, dan ZK-STARK memerlukan biaya yang lebih tinggi.
Asumsi kepercayaan
Premis pembuktian tanpa pengetahuan adalah bahwa kedua belah pihak jujur dan ingin mengetahui jawaban yang sebenarnya, dan tidak akan memalsukan data. Di ZK-SNARK, menghasilkan parameter publik sekali dapat digunakan kembali oleh pihak yang berpartisipasi dalam protokol tanpa pengetahuan, yang berarti bahwa data yang diberikan oleh peserta sudah benar secara default.
Namun nyatanya, pengguna tidak memiliki cara untuk menilai kejujuran peserta, bahkan jika peserta memasukkan data yang salah, pengguna harus mempercayainya. Tidak ada asumsi kepercayaan di ZK-STARK, dan sekarang, peneliti sedang mengerjakan pengaturan yang tidak tepercaya untuk ZK-SNARK untuk meningkatkan keamanan mekanisme pembuktian.
Ancaman Komputasi Kuantum
ZK-SNARK menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA) untuk enkripsi Tampaknya algoritma ECDSA saat ini aman, tetapi pengembangan komputer kuantum di masa depan kemungkinan akan memecahkan algoritma ini.
Secara umum diyakini bahwa ZK-STARK tidak akan terancam oleh komputasi kuantum karena dienkripsi menggunakan hashing anti-tabrakan.Tidak seperti pasangan kunci publik-swasta ECDSA, hashing anti-tabrakan lebih sulit dipecahkan oleh komputasi kuantum.