Protokol Sigma & Identifikasi Schnorr
Implementasikan protokol Sigma dan telusuri cara kerja pembuktian Schnorr.
Protokol Sigma & Identifikasi Schnorr adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.
Struktur Protokol Sigma
Protokol Sigma memiliki 3 pesan: (1) Komitmen: pembukti mengirimkan komitmen terhadap nilai acak. (2) Tantangan: pemeriksa mengirimkan tantangan acak. (3) Respons: pembukti mengirimkan respons yang dihitung dari tantangan dan rahasia. Pemeriksa menerima atau menolak.
Identifikasi Schnorr
Pembukti mengetahui rahasia x (kunci privat); kunci publik = g^x mod p (atau titik X = x*G pada kurva eliptik). Tujuannya adalah membuktikan pengetahuan tentang x tanpa mengungkapkannya. Ini adalah bukti pengetahuan logaritma diskret.
Langkah-Langkah Protokol Schnorr
(1) Pembukti memilih r acak dan mengirimkan komitmen R = r*G. (2) Pemeriksa mengirimkan tantangan c (bilangan bulat acak). (3) Pembukti mengirimkan respons s = r + c*x. (4) Pemeriksa memeriksa s*G == R + c*X. Jika benar, pemeriksa menerima. Pembukti mengetahui x; respons s hanya dapat dihitung dengan x.
Analisis Keamanan
Kelengkapan: pembukti jujur selalu memenuhi s*G = r*G + c*x*G = R + c*X. Kekokohan: dua transkrip dengan R yang sama tetapi tantangan c dan c' yang berbeda menghasilkan s dan s', yang darinya x = (s-s')/(c-c') dapat dipulihkan — sehingga penipu tidak dapat menghasilkan dua respons valid untuk R yang sama.
Tanpa Pengetahuan pada Schnorr
Simulator (tanpa mengetahui x): pilih s dan c secara acak, tetapkan R = s*G - c*X. (R, c, s) ini memiliki distribusi transkrip yang valid. Pemeriksa tidak dapat membedakan transkrip nyata dari transkrip yang disimulasikan — Schnorr bersifat tanpa pengetahuan bagi pemeriksa jujur.
Transformasi Fiat-Shamir
Jadikan Schnorr non-interaktif: ganti tantangan pemeriksa dengan c = Hash(R || message). Pembukti menghitung sendiri c dan mengirimkan respons. Hasilnya: bukti yang terdiri dari 2 elemen (R, s) yang dapat diverifikasi oleh siapa pun. Ini adalah skema tanda tangan Schnorr.
Tanda Tangan Schnorr
Sign(x, m): r ← acak; R = r*G; c = Hash(R||m); s = r + c*x. Tanda tangan = (R, s). Verifikasi: s*G == R + Hash(R||m)*X. Ringkas (64 byte untuk P-256), dapat diverifikasi secara batch, dan terbukti aman dalam ROM. Diadopsi dalam Taproot Bitcoin (BIP-340).
Komitmen Pedersen
C = r*G + v*H, dengan H sebagai generator independen kedua. Komitmen ini menyatakan nilai v dengan keacakan r. Sifat mengikat: tidak dapat dibuka untuk v yang berbeda (logaritma diskret). Sifat penyembunyian: C terdistribusi secara seragam. Digunakan dalam bukti rentang berbasis Schnorr dan Bulletproofs.
Komposisi: Bukti AND
Buktikan pengetahuan tentang x1 AND x2 secara bersamaan: jalankan dua protokol Schnorr dengan tantangan yang sama (bagikan tantangan melalui Fiat-Shamir). Pemeriksa menerima hanya jika kedua bukti turunan valid. Ini memungkinkan pembuktian beberapa pernyataan dalam satu interaksi.
Komposisi: Bukti OR
Buktikan pengetahuan tentang x1 OR x2 tanpa mengungkapkan yang mana: gunakan simulator untuk satu cabang guna menghitung transkrip palsu, lalu bagi tantangan di antara keduanya. Pemeriksa melihat dua transkrip yang tampak valid dan jumlahnya sama dengan tantangan nyata. Ini disebut "tanda tangan cincin".
Penerapan
Identitas Schnorr: paspor elektronik (protokol PACE). Tanda tangan Schnorr: Taproot Bitcoin, Monero (RingCT menggunakan bukti-OR Schnorr), Protokol Signal (perjanjian kunci X3DH). Komitmen Pedersen: Transaksi Rahasia, Bulletproofs, enkripsi catatan Sapling Zcash.
Pemeriksaan Singkat
Dalam protokol identifikasi Schnorr, apa yang diperiksa oleh pemeriksa pada langkah terakhir?
Rangkuman
Protokol Sigma: komitmen–tantangan–respons. Schnorr membuktikan pengetahuan tentang logaritma diskret. Fiat-Shamir menjadikannya non-interaktif (tanda tangan Schnorr). Berikutnya: zk-SNARK untuk bukti non-interaktif ringkas.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Protokol Sigma & Identifikasi Schnorr” gratis?
Ya — teks lengkap “Protokol Sigma & Identifikasi Schnorr” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Protokol Sigma & Identifikasi Schnorr”?
Implementasikan protokol Sigma dan telusuri cara kerja pembuktian Schnorr. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cryptology Academy?
Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Protokol Sigma & Identifikasi Schnorr” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?
Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Intuisi ZKP: Gua Ali Baba
- Protokol Sigma & Identifikasi Schnorr
- zk-SNARK: Argumen Singkat Non-Interaktif
- Penerapan ZKP: ZK Rollup & Koin Privasi