Apa Itu Proof of Knowledge dalam Kripto?
Proof of Knowledge adalah bukti kriptografi yang memungkinkan prover meyakinkan verifier bahwa prover mengetahui rahasia atau witness tertentu tanpa harus mengungkapkan rahasia tersebut.Dalam mata uang kripto, Proof of Knowledge paling sering dibahas dalam kaitannya dengan zero-knowledge proof, zk-SNARK, zk-STARK, sistem identitas, transaksi privat, rancangan proof-of-reserves, dan komputasi yang dapat diverifikasi.Proof of Knowledge berbeda dari bukti biasa yang hanya menunjukkan bahwa suatu pernyataan benar.Proof of Knowledge secara khusus menunjukkan bahwa prover memiliki pengetahuan tentang informasi tersembunyi yang membuat pernyataan tersebut benar.Proyek zero-knowledge proof NIST menjelaskan bahwa istilah zero-knowledge proof of knowledge sering kali berguna ketika suatu pernyataan dibuktikan dengan menunjukkan pengetahuan atas informasi rahasia, yang juga disebut witness, dan sesuai dengan instance publik.
Sederhananya, Proof of Knowledge menjawab pertanyaan: “Bisakah Anda membuktikan bahwa Anda mengetahui rahasianya tanpa menunjukkannya kepada saya?”Konsep ini sangat berguna bagi kripto karena blockchain membutuhkan verifikasi, sementara pengguna dan aplikasi sering kali memerlukan privasi.Wallet, protokol, atau pengguna mungkin perlu membuktikan pengetahuan atas kunci privat, kredensial, kata sandi, nilai pembuka, jalur Merkle, rahasia transaksi, atau witness komputasi.Proof of Knowledge memungkinkan hal tersebut tanpa mengekspos data sensitif secara langsung.Konsep ini merupakan salah satu komponen utama di balik sistem kripto modern yang menjaga privasi dan berfokus pada skalabilitas.Cara Kerja Proof of Knowledge
Sistem Proof of Knowledge biasanya melibatkan prover, verifier, pernyataan, dan witness.Prover adalah pihak yang mengklaim mengetahui informasi rahasia.Verifier adalah pihak atau smart contract yang memeriksa bukti.Pernyataan adalah klaim publik yang dibuktikan.Witness adalah informasi privat yang membuat pernyataan tersebut benar.Sebagai contoh, pernyataan publik dapat berupa klaim bahwa suatu hash memiliki preimage yang valid.Witness-nya adalah nilai rahasia yang menghasilkan hash tersebut.Prover membuat bukti menggunakan witness dan pernyataan publik.Verifier memeriksa bukti dan menerimanya jika bukti tersebut valid.Jika sistem bukti dirancang dengan baik, verifier akan yakin bahwa prover mengetahui witness tanpa mengetahui witness itu sendiri.Proof of Knowledge vs Zero-Knowledge Proof
Proof of Knowledge dan zero-knowledge proof berkaitan erat, tetapi bukan istilah yang identik.Zero-knowledge proof berfokus pada privasi.Zero-knowledge proof memungkinkan prover meyakinkan verifier bahwa suatu pernyataan benar tanpa mengungkapkan informasi tambahan selain kebenaran pernyataan tersebut.Dokumentasi zero-knowledge proof Ethereum menjelaskan bahwa zero-knowledge proof memungkinkan seseorang membuktikan kebenaran suatu pernyataan tanpa membagikan isi pernyataan atau mengungkapkan cara kebenaran itu diketahui.
Proof of Knowledge berfokus pada kepemilikan witness.Proof of Knowledge membuktikan bahwa prover mengetahui informasi privat yang memenuhi pernyataan publik.Sebuah bukti dapat menjadi Proof of Knowledge tanpa sepenuhnya bersifat zero-knowledge jika bukti tersebut membocorkan informasi yang tidak diperlukan.Sebuah bukti juga dapat bersifat zero-knowledge sekaligus membuktikan pengetahuan atas witness.Jika kedua sifat tersebut ada, hasilnya umumnya disebut zero-knowledge proof of knowledge.Inilah gagasan di balik banyak sistem zk-SNARK yang digunakan dalam kripto.Proof of Knowledge vs Proof of Work
Proof of Knowledge tidak boleh disamakan dengan Proof of Work.Proof of Work adalah mekanisme konsensus yang mengharuskan miner menggunakan sumber daya komputasi untuk mengamankan blockchain.Proof of Knowledge adalah konsep bukti kriptografi yang menunjukkan bahwa prover mengetahui sebuah witness.Proof of Work menanyakan, “Apakah Anda telah menggunakan komputasi yang cukup untuk membuat blok yang valid?”Proof of Knowledge menanyakan, “Apakah Anda mengetahui informasi rahasia yang membuat pernyataan ini benar?”Kedua konsep tersebut dapat menggunakan kriptografi, tetapi menyelesaikan masalah yang berbeda.Proof of Work terutama berkaitan dengan konsensus dan ketahanan Sybil.Proof of Knowledge terutama berkaitan dengan pengetahuan yang dapat diverifikasi, privasi, autentikasi, dan kebenaran.Blockchain dapat menggunakan Proof of Work untuk konsensus sekaligus menggunakan Proof of Knowledge dalam aplikasi yang dibangun di atasnya.Misalnya, chain PoW tetap dapat mendukung zero-knowledge proof dalam alat privasi atau sistem bukti.Proof of Knowledge vs Proof of Stake
Proof of Knowledge juga berbeda dari Proof of Stake.Proof of Stake adalah mekanisme konsensus yang memungkinkan validator mengunci token sebagai jaminan untuk membantu mengamankan blockchain.Proof of Knowledge sendiri tidak mengharuskan staking token.Proof of Knowledge mengharuskan prover membuktikan pengetahuan atas witness yang valid.Proof of Stake berkaitan dengan siapa yang dapat membantu mengusulkan atau mengonfirmasi blok.Proof of Knowledge berkaitan dengan apa yang dapat dibuktikan prover tanpa mengungkapkan data privat.Blockchain Proof of Stake dapat menggunakan Proof of Knowledge dalam aplikasi, rollup, bridge, atau sistem identitasnya.Misalnya, chain smart contract PoS dapat memverifikasi bukti zk-SNARK yang dikirimkan pengguna atau rollup.Validator chain mengamankan ledger dasar, sedangkan Proof of Knowledge memverifikasi klaim atau komputasi privat tertentu.Kedua lapisan ini dapat bekerja bersama, tetapi jangan disamakan.Peran Witness
Witness adalah informasi rahasia yang diketahui prover.Dalam Proof of Knowledge, witness merupakan kunci dari seluruh sistem.Pernyataan publik dirancang agar bukti yang valid hanya dapat dibuat jika prover mengetahui witness yang tepat.Contoh witness mencakup kunci privat, kata sandi, angka acak, jalur bukti Merkle, rahasia note, nilai kredensial, atau detail transaksi tersembunyi.Verifier tidak perlu melihat witness secara langsung.Verifier hanya perlu mengetahui bahwa prover memiliki witness yang valid dan memenuhi aturan.Hal ini penting karena banyak sistem kripto membutuhkan bukti otoritas atau kelayakan tanpa mengekspos data sensitif.Pengguna mungkin perlu membuktikan keanggotaan dalam kelompok tanpa mengungkapkan anggota yang mana.Wallet mungkin perlu membuktikan kendali atas suatu rahasia tanpa mengekspos kunci privat.Protokol mungkin perlu membuktikan bahwa transaksi privat valid tanpa memublikasikan seluruh detail transaksi privat.Prover dan Verifier
Sistem Proof of Knowledge bergantung pada prover dan verifier.Prover menghasilkan bukti.Verifier memeriksa bukti.Biasanya prover melakukan lebih banyak komputasi daripada verifier.Ketidakseimbangan ini berguna dalam kripto karena satu pihak dapat membuat bukti yang berat secara off-chain, sementara banyak pihak dapat memverifikasi hasilnya dengan biaya rendah.Dalam sistem smart contract, verifier dapat berupa kontrak on-chain yang memeriksa bukti sebelum mengizinkan suatu tindakan.Dalam rollup, verifier dapat memeriksa bukti bahwa sekumpulan transaksi telah diproses dengan benar.Dalam sistem identitas, verifier dapat memeriksa bahwa pengguna memiliki kredensial tanpa mengetahui semua detail kredensial tersebut.Verifier tidak perlu memercayai prover secara pribadi.Verifier hanya perlu memercayai soundness sistem bukti dan kebenaran logika verifier.Soundness dalam Proof of Knowledge
Soundness berarti prover yang tidak jujur seharusnya tidak dapat membuat bukti valid tanpa benar-benar mengetahui witness.Sifat ini sangat penting karena sistem bukti yang lemah akan memungkinkan klaim palsu.Misalnya, jika pengguna dapat membuktikan bahwa mereka mengetahui kunci privat tanpa benar-benar mengetahuinya, sistem tersebut tidak akan berguna.Jika prover rollup dapat membuktikan transisi kondisi yang valid tanpa mengetahui data transaksi yang valid, rollup tersebut tidak aman.Soundness biasanya bergantung pada asumsi matematika, rancangan sistem bukti, implementasi yang aman, dan konstruksi circuit yang benar.Bukti matematis hanya valid untuk pernyataan persis yang dikodekan dalam circuit atau program.Jika developer menulis circuit yang salah, bukti tersebut mungkin membuktikan hal yang keliru.Karena itu, audit circuit sangat penting dalam sistem kripto zero-knowledge.Soundness melindungi dari bukti palsu, tetapi hanya jika pernyataan yang dibuktikan memang tepat.Completeness dalam Proof of Knowledge
Completeness berarti prover yang jujur dan benar-benar mengetahui witness seharusnya dapat membuat bukti yang diterima verifier.Jika sistem bukti tidak lengkap, pengguna yang valid mungkin gagal membuktikan klaim yang benar.Hal ini akan menjadi masalah serius bagi kegunaan dan keamanan.Misalnya, pengguna dengan kredensial valid seharusnya dapat membuktikan kelayakannya.Operator rollup dengan data transaksi valid seharusnya dapat menghasilkan bukti yang valid.Pemilik wallet dengan rahasia yang tepat seharusnya dapat membuktikan pengetahuan atas rahasia tersebut.Completeness bergantung pada software yang benar, parameter yang tepat, komputasi yang memadai, dan sistem bukti yang dirancang dengan baik.Dalam aplikasi kripto nyata, proses pembuktian dapat gagal akibat bug, keterbatasan memori, input yang buruk, atau versi circuit yang tidak kompatibel.Artinya, Proof of Knowledge bukan hanya konsep matematika.Proof of Knowledge juga merupakan masalah rekayasa.Sifat Zero-Knowledge
Sifat zero-knowledge berarti bukti tidak mengungkapkan informasi yang tidak diperlukan tentang witness.Sifat ini sangat penting ketika witness memuat data sensitif.Proof of Knowledge tetap berguna tanpa zero-knowledge, tetapi banyak aplikasi kripto membutuhkan kedua sifat tersebut.Misalnya, pengguna mungkin ingin membuktikan bahwa mereka memiliki kredensial valid tanpa mengungkapkan identitas lengkap.Sistem transaksi privat mungkin perlu membuktikan bahwa input dan output seimbang tanpa mengungkapkan pengirim, penerima, atau jumlahnya.Sistem proof-of-reserves mungkin perlu membuktikan kendali atas aset tanpa memublikasikan setiap alamat atau saldo.Penjelasan zk-SNARK Zcash menjelaskan zero-knowledge proof sebagai cara bagi prover untuk membuktikan suatu pernyataan kepada verifier tanpa mengungkapkan informasi selain validitas pernyataan itu sendiri.
Dalam zero-knowledge proof of knowledge, verifier mengetahui bahwa prover mengetahui witness, tetapi tidak mengetahui witness tersebut.Keseimbangan antara bukti dan privasi ini adalah salah satu gagasan terpenting dalam kriptografi modern.Proof of Knowledge dalam zk-SNARK
zk-SNARK adalah singkatan dari Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.Bagian terakhir namanya, “Argument of Knowledge”, berkaitan langsung dengan Proof of Knowledge.zk-SNARK memungkinkan prover membuat bukti berukuran kecil yang dapat diverifikasi dengan cepat.zk-SNARK dapat menunjukkan bahwa prover mengetahui witness yang valid untuk suatu pernyataan tanpa mengungkapkan witness tersebut.Riset akademis tentang Zcash menggambarkan zk-SNARK sebagai argumen pengetahuan zero-knowledge non-interaktif yang ringkas dan ringan untuk diverifikasi secara komputasi.Hal ini menjadikan zk-SNARK berharga bagi blockchain karena verifikasi on-chain membutuhkan biaya besar.Bukti singkat yang dapat diverifikasi dengan biaya rendah bisa mengurangi biaya gas dan membuat aplikasi privat atau skalabel lebih praktis.zk-SNARK digunakan dalam sistem privasi, rollup, bridge, rancangan proof-of-assets, identitas privat, dan komputasi yang dapat diverifikasi.Kompromi utamanya dapat mencakup asumsi trusted setup, kompleksitas circuit, biaya pembuktian, dan risiko implementasi, bergantung pada sistem SNARK tertentu.Proof of Knowledge merupakan salah satu alasan utama zk-SNARK dapat membuktikan fakta yang berguna tanpa mengekspos data privat.Proof of Knowledge dalam zk-STARK
Sistem zk-STARK merupakan keluarga besar lain dari sistem zero-knowledge dan bukti validitas.Sistem berbasis STARK dapat menawarkan karakteristik setup transparan dan fitur skalabilitas yang kuat.Dalam bukti bergaya STARK, prover dapat menunjukkan bahwa komputasi dijalankan dengan benar sesuai sekumpulan batasan.Witness dapat mencakup jejak eksekusi, input privat, atau nilai perantara.Verifier memeriksa bukti tanpa mengulangi seluruh komputasi.STARK sering dibahas dalam konteks rollup, komputasi yang dapat diverifikasi, dan skalabilitas blockchain.Seperti sistem bukti lainnya, kegunaannya bergantung pada pernyataan serta circuit atau program yang benar-benar dibuktikan.Bukti STARK dapat berfungsi sebagai Proof of Knowledge ketika membuktikan bahwa prover mengetahui witness yang memenuhi pernyataan.Perbedaan praktis antara SNARK dan STARK mencakup ukuran bukti, biaya verifikasi, biaya pembuktian, asumsi, dan alat developer.Pengguna tidak perlu memahami setiap detail, tetapi sebaiknya mengetahui bahwa kedua keluarga ini dapat menggunakan gagasan Proof of Knowledge.Proof of Knowledge Interaktif dan Non-interaktif
Proof of Knowledge dapat bersifat interaktif atau non-interaktif.Dalam bukti interaktif, prover dan verifier bertukar pesan selama proses pembuktian.Verifier dapat memberikan tantangan, lalu prover merespons dengan cara yang menunjukkan pengetahuan.Bukti interaktif penting dalam teori kriptografi dan sejumlah sistem autentikasi.Dalam bukti non-interaktif, prover membuat satu bukti yang dapat diperiksa verifier tanpa percakapan bolak-balik.Bukti non-interaktif sangat berguna bagi blockchain karena smart contract tidak dapat dengan mudah melakukan percakapan langsung dengan prover off-chain.Pengguna atau rollup dapat membuat bukti dan mengirimkannya secara on-chain.Kontrak verifier dapat memeriksa bukti tersebut dalam satu transaksi.Karena itulah argumen pengetahuan non-interaktif sangat penting bagi aplikasi kripto.Argumen ini membuat verifikasi bukti kompatibel dengan ledger publik, smart contract, dan jaringan asinkron.Proof of Knowledge dan Fiat-Shamir
Transformasi Fiat-Shamir adalah teknik yang dapat mengubah protokol bukti interaktif tertentu menjadi non-interaktif.Teknik ini mengganti tantangan acak dari verifier dengan tantangan yang dihasilkan dari fungsi hash.Hal ini penting karena blockchain sering membutuhkan bukti yang dapat dibuat sekali lalu diverifikasi oleh banyak pihak di kemudian hari.Bukti non-interaktif lebih cocok untuk lingkungan blockchain dibandingkan percakapan langsung antara prover dan verifier.Namun, penggunaan Fiat-Shamir dengan aman membutuhkan rancangan yang cermat.Fungsi hash, struktur transkrip, pemisahan domain, dan detail implementasi semuanya penting.Transformasi yang diimplementasikan dengan buruk dapat melemahkan keamanan.Developer kripto sebaiknya menggunakan pustaka bukti yang sudah mapan dan protokol yang telah ditinjau, bukan membuat sistem bukti khusus sendiri.Bagi pengguna, gagasan utamanya adalah bahwa bukti non-interaktif membuat Proof of Knowledge praktis digunakan secara on-chain.Bukti ini memungkinkan smart contract memverifikasi pengetahuan tanpa harus berulang kali berkomunikasi dengan prover.Proof of Knowledge dan Kepemilikan Wallet
Salah satu contoh sederhana Proof of Knowledge dalam kripto adalah membuktikan pengetahuan atas kunci privat.Pengguna dapat menandatangani pesan dengan kunci privat untuk membuktikan kendali atas alamat wallet.Hal ini tidak selalu disebut zero-knowledge proof, tetapi merupakan bukti praktis bahwa pengguna mengetahui kunci penandatanganan.Pengguna tidak mengungkapkan kunci privat itu sendiri.Verifier memeriksa tanda tangan menggunakan informasi kunci publik.Inilah cara kerja login wallet, penandatanganan pesan, dan pemeriksaan dasar kepemilikan alamat.Namun, tanda tangan biasa biasanya mengungkapkan alamat yang digunakan dan mungkin tidak memberikan privasi lebih luas.Zero-knowledge proof dapat mengembangkan gagasan ini dengan membuktikan klaim yang lebih selektif.Misalnya, pengguna dapat membuktikan keanggotaan dalam sekumpulan wallet tanpa mengungkapkan wallet mana yang dimiliki.Hal ini menunjukkan hubungan antara kepemilikan kunci dasar dan sistem Proof of Knowledge yang lebih canggih.Proof of Knowledge dalam Transaksi Privat
Sistem transaksi privat dapat menggunakan Proof of Knowledge untuk membuktikan bahwa transaksi valid tanpa mengungkapkan detail sensitif.Prover mungkin perlu membuktikan bahwa mereka mengetahui rahasia pembuka suatu commitment.Prover mungkin perlu membuktikan bahwa input note tercatat di dalam pohon commitment.Prover mungkin perlu membuktikan bahwa note tersebut belum pernah dibelanjakan.Prover mungkin perlu membuktikan bahwa nilainya seimbang dengan benar.Verifier memeriksa klaim ini tanpa melihat witness privat secara langsung.Hal ini memungkinkan blockchain menegakkan aturan sekaligus menyembunyikan detail transaksi tertentu.Sistem privasi harus dirancang dengan cermat karena metadata masih dapat membocorkan informasi.Zero-knowledge proof yang valid secara matematis belum tentu melindungi pengguna jika alamat, waktu, data jaringan, atau perilaku aplikasi mengungkapkan terlalu banyak.Proof of Knowledge merupakan bagian penting dari rancangan transaksi privat, tetapi privasi juga membutuhkan rancangan operasional yang kuat.Proof of Knowledge dalam ZK-Rollup
ZK-rollup menggunakan bukti validitas untuk menunjukkan bahwa kumpulan transaksi off-chain telah diproses dengan benar.Dokumentasi ZK-rollup Ethereum menjelaskan bahwa ZK-rollup menggunakan bukti validitas untuk memfinalisasi kumpulan transaksi di Ethereum.
Dalam banyak rancangan rollup, prover harus mengetahui witness yang dibutuhkan untuk membuktikan transisi kondisi yang valid.Witness ini dapat mencakup data transaksi, tanda tangan, kondisi akun, jalur Merkle, jejak eksekusi, dan nilai komputasi perantara.Bukti memungkinkan chain dasar memverifikasi hasil tanpa mengeksekusi ulang setiap transaksi.Proof of Knowledge membantu memastikan bahwa prover tidak sekadar mengklaim transisi kondisi valid.Prover harus membuat bukti berdasarkan data dan komputasi yang menjadikan transisi tersebut valid.Hal ini penting bagi skalabilitas karena chain dasar dapat menerima bukti ringkas alih-alih melakukan seluruh komputasi sendiri.Pengguna mungkin tidak melihat buktinya secara langsung, tetapi bukti tersebut memengaruhi keamanan rollup, finalitas, waktu penarikan, dan biaya.Dalam rollup, Proof of Knowledge mendukung verifikasi efisien yang meminimalkan kebutuhan akan kepercayaan.Proof of Knowledge dalam Sistem Identitas
Proof of Knowledge dapat mendukung sistem identitas dan kredensial privat.Pengguna mungkin ingin membuktikan bahwa mereka memiliki kredensial valid tanpa mengungkapkan kredensial secara lengkap.Misalnya, pengguna dapat membuktikan bahwa usianya melampaui batas minimum tanpa mengungkapkan tanggal lahir yang tepat.Pengguna dapat membuktikan bahwa mereka merupakan anggota kelompok yang disetujui tanpa mengungkapkan siapa anggota tersebut.Pengguna dapat membuktikan bahwa mereka telah melewati proses verifikasi tanpa memublikasikan dokumen pribadi secara on-chain.Sistem semacam ini biasanya bergantung pada commitment, kredensial, tanda tangan, dan zero-knowledge proof.Witness dapat memuat data kredensial privat.Pernyataan publik dapat memuat aturan seperti kelayakan, keanggotaan, atau pemenuhan ambang batas.Proof of Knowledge dapat mengurangi jumlah informasi pribadi yang terekspos kepada aplikasi.Namun, sistem identitas yang menjaga privasi tetap membutuhkan tata kelola penerbit, rancangan pencabutan, keamanan wallet, dan persetujuan pengguna yang cermat.Proof of Knowledge dalam Proof of Reserves
Proof of Knowledge dapat digunakan dalam rancangan proof-of-reserves atau proof-of-assets.Institusi atau protokol mungkin ingin membuktikan kendali atas aset tanpa mengungkapkan setiap kunci privat, alamat, atau detail operasional.Sebuah bukti dapat menunjukkan pengetahuan atas kunci privat yang terkait dengan dana atau commitment tertentu.Sistem yang lebih canggih dapat menggabungkan bukti aset dengan liabilitas, pohon Merkle, commitment, dan metode zero-knowledge.Tujuannya adalah meningkatkan transparansi sekaligus mengurangi kebocoran privasi yang tidak perlu.Namun, Proof of Knowledge saja tidak membuktikan solvabilitas.Bukti cadangan dapat menunjukkan kendali atas aset, tetapi pengguna juga membutuhkan informasi mengenai liabilitas dan kewajiban.Sistem dapat membuktikan bahwa mereka mengendalikan sejumlah wallet, tetapi tetap memiliki utang yang melebihi asetnya.Karena itu, rancangan proof-of-reserves harus dievaluasi dengan cermat.Proof of Knowledge dapat mendukung audit yang lebih baik, tetapi bukan audit keuangan lengkap dengan sendirinya.Proof of Knowledge dalam Autentikasi
Proof of Knowledge dapat digunakan untuk autentikasi karena memungkinkan seseorang membuktikan bahwa mereka mengetahui rahasia tanpa mengungkapkannya.Autentikasi tradisional sering menggunakan kata sandi, tetapi kata sandi dapat dicuri jika dikirim atau disimpan dengan buruk.Autentikasi kriptografi dapat membuktikan pengetahuan atas kunci rahasia melalui tanda tangan atau protokol challenge-response.Dalam wallet kripto, penandatanganan pesan merupakan bentuk umum autentikasi berbasis kunci.Situs web dapat meminta wallet menandatangani pesan, lalu tanda tangan tersebut membuktikan kendali atas alamat.Sistem yang lebih canggih dapat menambahkan sifat zero-knowledge agar pengguna bisa membuktikan kelayakan tanpa mengungkapkan identitas publik yang tetap.Hal ini dapat mengurangi pelacakan dan meningkatkan privasi.Namun, pengguna harus berhati-hati terhadap permintaan tanda tangan.Situs web jahat dapat menipu pengguna agar menandatangani sesuatu yang berbahaya atau melanggar privasi.Proof of Knowledge mendukung autentikasi yang lebih aman hanya jika antarmuka wallet dan logika aplikasi dirancang dengan jelas.Proof of Knowledge dan Commitment
Commitment sering digunakan bersama sistem Proof of Knowledge.Commitment memungkinkan pengguna menyembunyikan suatu nilai sekaligus mengikat dirinya pada nilai tersebut.Kemudian, pengguna dapat membuka commitment dengan mengungkapkan nilai dan randomness yang digunakan untuk membuatnya.Dalam sistem zero-knowledge, prover dapat membuktikan pengetahuan atas pembuka commitment tanpa mengungkapkan pembuka itu sendiri.Hal ini berguna untuk saldo privat, penawaran tersegel, voting tersembunyi, klaim identitas rahasia, dan note transaksi privat.Commitment bersifat publik, tetapi witness tetap privat.Bukti menunjukkan bahwa prover mengetahui nilai yang sesuai dengan commitment dan aturan protokol.Dengan demikian, sistem publik dapat menegakkan klaim privat.Commitment dan Proof of Knowledge sering dipasangkan karena memungkinkan informasi tersembunyi tetap dapat diverifikasi.Tanpa commitment, menghubungkan witness privat dengan kondisi blockchain publik secara aman akan lebih sulit.Proof of Knowledge dan Pohon Merkle
Pohon Merkle adalah alat lain yang umum digunakan bersama Proof of Knowledge.Pohon Merkle memungkinkan banyak data dirangkum dalam satu root.Bukti Merkle dapat menunjukkan bahwa satu item tercakup dalam pohon tanpa mengungkapkan setiap item di dalamnya.Dalam sistem zero-knowledge, prover dapat membuktikan pengetahuan atas jalur Merkle yang valid tanpa mengungkapkan leaf atau jalur sebenarnya kepada publik.Hal ini berguna untuk keanggotaan kelompok, allowlist privat, note terlindung, kumpulan kredensial, dan struktur proof-of-reserves.Input publiknya dapat berupa root Merkle.Witness privatnya dapat mencakup leaf dan jalur.Bukti menunjukkan bahwa leaf tersembunyi tersebut termasuk dalam kumpulan yang telah di-commit.Dengan demikian, aplikasi dapat memverifikasi keikutsertaan tanpa sepenuhnya mengungkapkan identitas atau data.Pohon Merkle membuat Proof of Knowledge lebih berguna untuk kumpulan data besar karena menyediakan commitment publik yang ringkas terhadap banyak catatan privat.Manfaat Proof of Knowledge
Manfaat pertama Proof of Knowledge adalah privasi.Prover dapat membuktikan pengetahuan atas rahasia tanpa mengungkapkan rahasia tersebut.Manfaat kedua adalah autentikasi.Pengguna dapat membuktikan kendali atas kunci atau kredensial tanpa mengekspos rahasia yang mendasarinya.Manfaat ketiga adalah skalabilitas.Rollup dan sistem komputasi yang dapat diverifikasi dapat membuktikan komputasi besar melalui bukti ringkas.Manfaat keempat adalah pengungkapan selektif.Pengguna dapat mengungkapkan hanya klaim yang relevan alih-alih seluruh data pribadi atau keuangan.Manfaat kelima adalah minimisasi kepercayaan.Verifier dapat memeriksa bukti secara matematis alih-alih memercayai klaim prover begitu saja.Manfaat keenam adalah composability.Smart contract dapat memverifikasi bukti dan menggunakannya dalam sistem DeFi, identitas, gaming, tata kelola, dan bridge.Manfaat ketujuh adalah auditabilitas.Institusi dan protokol dapat membuktikan fakta tertentu tanpa memublikasikan setiap catatan sensitif.Keterbatasan Proof of Knowledge
Keterbatasan pertama adalah kompleksitas.Sistem Proof of Knowledge dapat sulit dirancang, diaudit, dan dijelaskan.Keterbatasan kedua adalah biaya pembuktian.Pembuatan bukti dapat membutuhkan komputasi, memori, dan infrastruktur khusus yang besar.Keterbatasan ketiga adalah risiko circuit.Bukti hanya membuktikan pernyataan yang dikodekan dalam circuit, sehingga circuit yang buruk dapat menimbulkan keyakinan keliru.Keterbatasan keempat adalah asumsi setup.Sejumlah sistem bukti memerlukan upacara trusted setup atau parameter publik khusus.Keterbatasan kelima adalah kebocoran metadata.Zero-knowledge proof dapat menyembunyikan witness, sementara aktivitas di sekitarnya tetap mengungkap perilaku pengguna.Keterbatasan keenam adalah bug verifier.Bug implementasi pada verifier smart contract dapat membuatnya menerima bukti yang buruk atau menolak bukti yang baik.Keterbatasan ketujuh adalah kesalahpahaman pengguna.Banyak pengguna melihat kata “bukti” lalu menganggap seluruh sistem aman, padahal hanya satu klaim terbatas yang dibuktikan.Risiko Keamanan dalam Sistem Proof of Knowledge
Salah satu risiko utama adalah membuktikan pernyataan yang keliru.Jika ada aturan penting yang tidak dicakup circuit, bukti mungkin valid tetapi tidak aman.Risiko lainnya adalah randomness yang lemah.Sejumlah sistem bukti bergantung pada nilai acak, dan randomness yang buruk dapat membocorkan rahasia atau merusak soundness.Risiko lainnya adalah paparan witness.Jika layanan pembuktian menerima input privat, layanan tersebut dapat membocorkan atau menyalahgunakannya.Risiko lainnya adalah antarmuka depan yang jahat.Antarmuka yang menyesatkan dapat membuat pengguna menghasilkan bukti untuk klaim yang tidak mereka pahami.Risiko lainnya adalah software pembuktian yang kedaluwarsa.Sistem bukti berkembang pesat, dan pustaka lama mungkin memiliki bug atau asumsi yang lemah.Risiko lainnya adalah pemasaran bukti palsu.Proyek dapat mengklaim menggunakan zero-knowledge atau Proof of Knowledge tanpa menjelaskan apa yang sebenarnya dibuktikan.Pengguna dan developer sebaiknya selalu menanyakan apa pernyataannya, apa witness-nya, siapa yang membuat bukti, dan siapa yang memverifikasinya.Pertanyaan tersebut memberikan pemahaman lebih banyak daripada label saja.Proof of Knowledge dan Smart Contract
Smart contract dapat memverifikasi hasil Proof of Knowledge melalui kontrak verifier.Kontrak verifier memeriksa apakah bukti yang dikirimkan valid untuk input publik tertentu.Jika bukti valid, smart contract dapat mengizinkan tindakan seperti mencetak, menarik, melakukan voting, mengklaim, melakukan bridge, atau memperbarui kondisi.Rancangan ini memungkinkan aplikasi on-chain menggunakan pengetahuan privat off-chain.Namun, kontrak verifier harus benar dan efisien.Jika verifikasi terlalu mahal, pengguna dapat menanggung biaya gas yang tinggi.Jika verifikasi keliru, aplikasi dapat menjadi tidak aman.Developer sebaiknya menguji kontrak verifier dengan cermat dan menerbitkan dokumentasi yang jelas tentang input publik serta makna bukti.Pengguna sebaiknya tidak menganggap setiap kontrak yang memverifikasi bukti aman.Kontrak tersebut harus memverifikasi bukti yang tepat untuk pernyataan yang tepat sesuai aturan yang tepat.Proof of Knowledge dan DAO
DAO dapat menggunakan Proof of Knowledge untuk voting privat, pemeriksaan kelayakan, sistem anti-Sybil, dan kendali treasury.Pemilih dapat membuktikan bahwa mereka berhak memberikan suara tanpa mengungkapkan anggota berhak yang mana.Kontributor dapat membuktikan bahwa mereka memiliki kredensial tanpa mengekspos identitas lengkap.Pemohon hibah dapat membuktikan keanggotaan atau reputasi tanpa memublikasikan seluruh data pribadi.Voting privat sulit dilakukan karena DAO harus mencegah voting ganda sekaligus melindungi privasi pemilih.Proof of Knowledge dapat membantu dengan membuktikan pengetahuan atas kredensial atau nullifier yang valid tanpa mengungkapkan kredensial itu sendiri.Nullifier adalah nilai yang dapat mencegah penggunaan ganda sekaligus mempertahankan sebagian privasi.Sistem DAO tetap membutuhkan aturan tata kelola, proses sengketa, penerbitan kredensial, dan metode pencabutan.Proof of Knowledge dapat meningkatkan privasi, tetapi tidak menyelesaikan semua masalah tata kelola.Rancangan DAO yang baik harus memadukan kriptografi dengan perlindungan sosial dan prosedural.Proof of Knowledge dan Bridge
Bridge dapat menggunakan sistem bukti untuk memverifikasi fakta lintas chain.Prover dapat membuktikan pengetahuan atas data yang menunjukkan bahwa suatu peristiwa terjadi di chain sumber.Verifier di chain lain dapat memeriksa bukti sebelum merilis aset atau pesan.Bridge berbasis bukti dapat mengurangi ketergantungan pada penanda tangan terpusat, tetapi tetap kompleks.Bukti bridge mungkin perlu membuktikan header blok, finalitas, state root, inklusi Merkle, atau validitas eksekusi.Witness dapat mencakup data chain dan jalur yang diperlukan untuk mendukung klaim.Verifier harus memahami dengan tepat apa yang dibuktikan.Proof of Knowledge dapat membantu verifikasi lintas chain, tetapi tidak otomatis membuat bridge aman.Keamanan bridge juga bergantung pada asumsi finalitas, ketersediaan data, kendali upgrade, likuiditas, dan prosedur darurat.Pengguna sebaiknya menganggap bridge sebagai sistem berisiko tinggi meskipun menggunakan kriptografi canggih.Proof of Knowledge dan Kepatuhan
Proof of Knowledge dapat mendukung rancangan yang selaras dengan kepatuhan dengan membuktikan fakta tertentu tanpa mengekspos informasi yang tidak diperlukan.Misalnya, pengguna dapat membuktikan bahwa mereka memenuhi aturan kelayakan tanpa menempatkan dokumen identitas lengkap di blockchain.Protokol dapat membuktikan bahwa komputasi mengikuti kebijakan tanpa memublikasikan seluruh catatan yang mendasarinya.Pengguna dapat membuktikan bahwa mereka tidak tercantum dalam daftar terbatas tanpa mengungkapkan identitas lengkap kepada setiap aplikasi.Rancangan ini menjanjikan karena dapat mengurangi pengumpulan data dan meningkatkan privasi.Namun, rancangan tersebut tidak dengan sendirinya menghapus kewajiban hukum.Persyaratan regulasi berbeda-beda berdasarkan yurisdiksi, jenis aset, aplikasi, dan kategori pengguna.Proof of Knowledge dapat membantu mengurangi paparan data yang tidak perlu, tetapi rancangan hukum dan kepatuhan tetap memerlukan tinjauan profesional.Proyek sebaiknya tidak mengklaim bahwa teknologi zero-knowledge otomatis membuat semua aktivitas patuh.Kriptografi dapat membuktikan fakta, tetapi hukum menentukan fakta mana yang penting.Praktik Terbaik bagi Pengguna
Pengguna sebaiknya memahami klaim yang benar-benar dibuktikan sebelum memercayai bukti tersebut.Pengguna sebaiknya tidak menganggap bukti membuat seluruh protokol aman.Pengguna sebaiknya memeriksa apakah proyek menjelaskan input publik, witness privat, kontrak verifier, audit, dan asumsi keamanannya.Pengguna sebaiknya tidak membagikan kunci privat, seed phrase, atau rahasia mentah kepada layanan pembuktian.Pengguna sebaiknya berhati-hati menggunakan prover jarak jauh karena data witness privat dapat terekspos jika sistem tidak dirancang dengan aman.Pengguna sebaiknya memilih aplikasi yang menjelaskan keterbatasan privasinya secara jujur.Pengguna sebaiknya mengingat bahwa metadata masih dapat membocorkan informasi meskipun bukti bersifat zero-knowledge.Pengguna sebaiknya tidak menandatangani pesan wallet atau membuat bukti dari situs web yang tidak dikenal.Pengguna sebaiknya memverifikasi tautan resmi sebelum berinteraksi dengan aplikasi berbasis bukti.Pengguna sebaiknya memperlakukan Proof of Knowledge sebagai alat yang kuat, bukan jaminan ajaib.Praktik Terbaik bagi Developer
Developer sebaiknya mendefinisikan pernyataan yang dibuktikan dengan tepat.Developer sebaiknya menentukan input mana yang bersifat publik dan mana yang merupakan witness privat.Developer sebaiknya menggunakan sistem bukti yang telah ditinjau dengan baik dan pustaka yang diaudit.Developer sebaiknya menghindari kriptografi khusus kecuali telah ditinjau oleh ahli.Developer sebaiknya menulis circuit yang menegakkan setiap aturan yang diperlukan.Developer sebaiknya menguji circuit terhadap kasus ekstrem, witness tidak valid, dan input berbahaya.Developer sebaiknya melindungi data witness selama pembuatan bukti.Developer sebaiknya membuat kontrak verifier yang efisien dan aman.Developer sebaiknya mendokumentasikan hal-hal yang tidak dibuktikan oleh bukti tersebut.Developer sebaiknya membuat antarmuka pengguna yang menjelaskan permintaan bukti dengan jelas sebelum pengguna menandatangani atau membuat apa pun.Kesalahpahaman Umum tentang Proof of Knowledge
Salah satu kesalahpahaman adalah bahwa Proof of Knowledge mirip dengan Proof of Work karena keduanya menggunakan kata “proof”.Keduanya berbeda karena Proof of Work mengamankan konsensus melalui komputasi, sedangkan Proof of Knowledge membuktikan kepemilikan witness.Kesalahpahaman lainnya adalah bahwa setiap Proof of Knowledge otomatis bersifat zero-knowledge.Proof of Knowledge dapat membuktikan kepemilikan witness, tetapi tetap memerlukan sifat zero-knowledge agar tidak membocorkan informasi yang tidak diperlukan.Kesalahpahaman lainnya adalah bahwa bukti yang valid berarti seluruh proyek dapat dipercaya.Bukti yang valid hanya mengonfirmasi pernyataan tertentu yang diperiksa verifier.Kesalahpahaman lainnya adalah bahwa zero-knowledge menyembunyikan semua aktivitas.Bukti dapat menyembunyikan witness, tetapi waktu transaksi, hubungan wallet, atau metadata masih dapat mengungkap pola.Kesalahpahaman lainnya adalah bahwa pengguna tidak perlu memahami witness.Witness menentukan apa yang sebenarnya diketahui prover, sehingga penting untuk memahami bukti.FAQ
Apa arti Proof of Knowledge?
Proof of Knowledge berarti prover dapat meyakinkan verifier bahwa prover mengetahui witness rahasia yang membuat pernyataan publik menjadi benar.Apakah Proof of Knowledge sama dengan zero-knowledge proof?
Tidak. Proof of Knowledge berfokus pada pembuktian kepemilikan witness, sedangkan zero-knowledge berfokus pada penyembunyian informasi yang tidak diperlukan selama pembuktian.Apa itu zero-knowledge proof of knowledge?
Zero-knowledge proof of knowledge membuktikan bahwa prover mengetahui witness yang valid sekaligus tidak mengungkapkan informasi yang tidak diperlukan tentang witness tersebut.Apa itu witness dalam Proof of Knowledge?
Witness adalah informasi privat yang memungkinkan prover membuktikan pernyataan publik.Apa itu prover?
Prover adalah pihak, program, node, atau layanan yang menghasilkan bukti.Apa itu verifier?
Verifier adalah pihak, smart contract, atau sistem yang memeriksa validitas bukti.Apakah zk-SNARK merupakan sistem Proof of Knowledge?
Ya. zk-SNARK berarti Zero-Knowledge Succinct Non-Interactive Argument of Knowledge dan umum digunakan untuk membuktikan pengetahuan atas witness yang valid secara ringkas.Bisakah Proof of Knowledge membuktikan kepemilikan wallet?
Ya. Menandatangani pesan dapat membuktikan pengetahuan atas kunci privat, meskipun tanda tangan biasa tidak selalu bersifat zero-knowledge.Mengapa Proof of Knowledge berguna untuk privasi?
Proof of Knowledge memungkinkan pengguna membuktikan bahwa mereka mengetahui informasi privat yang valid tanpa mengungkapkan informasi tersebut secara langsung.Mengapa Proof of Knowledge berguna untuk rollup?
Proof of Knowledge membantu prover rollup menunjukkan bahwa mereka mengetahui data transaksi dan kondisi valid yang dibutuhkan untuk membuktikan eksekusi yang benar.Apakah Proof of Knowledge menjamin protokol aman?
Tidak. Proof of Knowledge hanya membuktikan pernyataan tertentu, sedangkan keamanan protokol juga bergantung pada circuit, kontrak verifier, implementasi, tata kelola, dan perilaku pengguna.Bisakah Proof of Knowledge digunakan untuk kepatuhan?
Ya. Proof of Knowledge dapat membantu membuktikan fakta tertentu terkait kelayakan atau kebijakan dengan lebih sedikit paparan data, tetapi tidak menggantikan analisis kepatuhan hukum.Kesimpulan
Proof of Knowledge adalah konsep dasar kriptografi yang memungkinkan prover menunjukkan pengetahuan atas witness rahasia tanpa harus mengungkapkan witness tersebut.Dalam kripto, konsep ini digunakan dalam zero-knowledge proof, zk-SNARK, zk-STARK, transaksi privat, rollup, sistem identitas, rancangan proof-of-reserves, bridge, DAO, dan komputasi yang dapat diverifikasi.Gagasan utamanya adalah verifier dapat memeriksa bukti matematis alih-alih memercayai klaim prover.Karena itu, Proof of Knowledge bernilai bagi sistem yang membutuhkan verifikasi sekaligus privasi.Konsep ini dapat membuktikan kendali wallet, kepemilikan kredensial, validitas transaksi, keanggotaan, kendali cadangan, atau komputasi yang benar dengan mengungkapkan lebih sedikit data sensitif.Namun, Proof of Knowledge bukan jaminan keamanan universal.Sebuah bukti hanya membuktikan pernyataan tertentu yang dikodekan dalam circuit, program, dan verifier.Jika pernyataan tidak lengkap, circuit keliru, witness bocor, atau kontrak verifier memiliki bug, pengguna tetap dapat menghadapi risiko.Cara terbaik memahami Proof of Knowledge adalah sebagai bukti kepemilikan informasi tersembunyi yang dapat diverifikasi.Jika dipadukan dengan sifat zero-knowledge, konsep ini menjadi salah satu alat paling kuat untuk membangun aplikasi kripto yang privat, skalabel, dan meminimalkan kepercayaan.Anda Mungkin Juga Menyukai
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

