112 / 736BLIND

Blind Signature

Tanda tangan buta: mengesahkan pesan tanpa melihat isinya

Bayangkan voucer yang harus disahkan penerbitnya, tetapi penerbit tidak boleh mencatat nomor uniknya. Kelak, penerbit bisa mengenali voucer asli tanpa memakai tanda tangannya untuk mengetahui siapa yang mengambilnya. Blind Signature membantu menyelesaikan pertentangan ini. Inilah salah satu gagasan dasar uang tunai elektronik: memeriksa keabsahan uang tanpa membuat pemeriksaan itu sendiri menjadi catatan seluruh belanja pemiliknya.

Blind Signature adalah prosedur kriptografi: pemohon menyembunyikan pesan dari penanda tangan, memperoleh tanda tangan atas bentuk tersembunyi, lalu melepas penyembunyiannya. Tersisa tanda tangan yang bisa digunakan untuk pesan asli. David Chaum menerapkan gagasan ini pada uang tunai elektronik. Dalam protokol yang benar, penanda tangan tidak dapat menghubungkan token yang muncul kemudian dengan penerbitannya berdasarkan percakapan penandatanganan. Petunjuk lain, seperti waktu, nilai, atau alamat jaringan, tidak otomatis hilang.

Dalam pengesahan biasa, penerbit dapat mencatat nomor voucer bersama penerimanya. Ketika toko mengembalikannya, kedua catatan dapat dihubungkan. Chaum menjelaskan tanda tangan buta melalui amplop berlapis kertas karbon: cap di luar diteruskan ke kertas di dalam, tetapi nomor kertas itu tidak terlihat oleh penerbit. Setelah dikeluarkan, kertas membawa pengesahan yang sah. Ini analogi untuk belajar, bukan prosedur keamanan dengan kertas dan cap. Protokol sebenarnya memakai angka dan matematika agar pemisahan ini bekerja antarkomputer. [7] [1]

Anna menginginkan voucer digital senilai 100 sats. Sats adalah satuan kecil Bitcoin. Dompetnya, yaitu aplikasi untuk menyimpan voucer dan membayar dengannya, membuat nilai rahasia yang tidak dapat ditebak untuk membedakan voucer, lalu menutupinya secara matematis dengan nilai acak lain. Perubahan ini disebut blinding. Penerbit menerima pesan yang tertutup, bukan rahasia aslinya. Dompet menyimpan informasi untuk melepas penutup nanti. Mengganti nama berkas atau menghapus nama seseorang saja tidak cukup: blinding harus memenuhi sifat kriptografi yang ditentukan dengan jelas. Agar contoh ini sederhana, kita memakai satu voucer; dompet sebenarnya dapat menggabungkan beberapa voucer dengan nilai berbeda untuk mencapai jumlah yang diperlukan. [8] [2]

Tanda tangan buta bukan berarti menandatangani apa saja untuk siapa saja secara gratis. Penerbit dapat lebih dulu memeriksa pembayaran Anna atau mengurangi saldo terkait. Ia mengetahui nilai yang diminta, 100 sats, tetapi tidak perlu mengetahui nomor rahasia voucer. Kunci tanda tangan adalah nilai numerik rahasia yang dipakai perangkat lunak penerbit untuk membuat tanda tangan. Nilai voucer bisa diikat pada kunci tanda tangan khusus setiap pecahan; mengganti angka dalam berkas tidak menciptakan voucer bernilai lebih tinggi. Penerbit menandatangani masukan tersembunyi dan mengembalikan hasilnya. Hak Anna memperoleh voucer dipisahkan dari cara mengenali voucer tertentu itu kelak. [7] [8]

Anna tidak perlu membuka rahasia asli kepada penerbit. Dompetnya sendiri menghapus penutup acak dari hasil yang diterima. Tahap ini disebut unblinding. Prosedur yang dirancang dengan baik menyisakan pengesahan sah atas pesan awal, tanpa memberikan kunci tanda tangan privat penerbit kepada dompet. Pengguna melihat saldo baru; pembungkusan matematis berlangsung di belakang layar. Bukti digital ini sering disebut token. Ia bukan bitcoin tersendiri di blockchain, catatan bersama transaksi Bitcoin, melainkan hak tagih terhadap penerbitnya. [2] [8]

Verifikasi menanyakan apakah pengesahan cocok dengan pesan dan kunci penerbit yang benar. Untuk tanda tangan buta berbasis sistem kriptografi RSA, kunci publik cukup; konstruksi lain mungkin membutuhkan bukti tambahan atau bantuan penerbit. Ini tidak membuktikan bahwa voucer belum dipakai, tidak disalin orang lain, atau didukung cadangan yang cukup. Ketiganya pertanyaan terpisah. Seperti tiket asli yang sudah dipakai tidak memberi akses masuk kedua kali, bukti yang sah secara kriptografis bisa tidak berlaku untuk pembayaran berikutnya. [2] [10]

Anna mengirim voucer kepada Peter. Karena berupa data, ia bisa menyimpan salinan identik. Tanda tangan buta tidak menghapus berkas dari perangkatnya. Dalam sistem daring biasa, dompet penerima karena itu menyerahkan token ke penerbit. Penerbit memeriksa keabsahan dan apakah token dengan nilai rahasia yang sama sudah dibelanjakan. Jika diterima, token lama ditandai terpakai dan Peter bisa memperoleh token baru melalui proses tanda tangan buta yang sama. Anna tidak mengetahui rahasia baru Peter. Percobaan membelanjakan salinan lama kemudian ditolak berdasarkan catatan. Menggunakan kembali dana yang sama disebut double spend, atau pembelanjaan ganda; mencegahnya adalah bagian lain dari sistem pembayaran. [9] [8]

Perlindungan juga diperlukan ke arah sebaliknya: klien tidak boleh mengubah interaksi tanda tangan yang diizinkan menjadi bukti sah tambahan dengan rahasia baru. Ini sifat tidak dapat dipalsukan. Pada tanda tangan buta, one-more unforgeability khususnya menanyakan: setelah sejumlah interaksi penandatanganan, bisakah penyerang menghasilkan satu pasangan pesan dan tanda tangan baru yang sah melebihi jumlah itu? Menyalin pasangan yang sama adalah masalah sebelumnya. Kriptografi yang benar juga tidak menggantikan pemeriksaan hak, nilai, dan struktur token yang diizinkan di server. Bersama-sama, pemeriksaan ini dapat mencegah penerbitan nilai tanpa izin. [2] [3]

Penerbit mungkin tahu kapan Anna memperoleh token dan berapa nilainya. Saat penukaran, ia bisa mengetahui waktu, nilai, atau alamat jaringan penerima. Ini metadata, yaitu informasi yang menyertai bukti pembayaran. Dalam kelompok pengguna kecil, nilai yang tidak biasa atau pembayaran sesaat kemudian dapat mempermudah perkiraan hubungan. Kunci bersama yang telah diverifikasi juga penting: kunci khusus satu orang bisa menandainya. Sifat buta protokol melindungi hubungan tertentu antara tanda tangan dan penerbitannya, bukan semua informasi di sekitarnya. Ia juga tidak memperbaiki dompet yang dibobol atau memaksa penerbit memenuhi kewajiban. [7] [2]

Gagasan Chaum mendasari uang tunai elektronik yang secara historis terkait DigiCash. Cashu dan Fedimint menggunakannya dalam ekosistem Bitcoin; koneksi Lightning Network (jaringan untuk pembayaran Bitcoin yang cepat) memudahkan dana masuk dan keluar. Namun konstruksinya bukan RSA. Cashu dasar memeriksa token memakai kunci rahasia mint, yaitu pihak penerbit. NUT-12 menambahkan bukti agar tanda tangan dapat diverifikasi dengan data publik, bukan bukti token belum dibelanjakan. Fedimint membagi pengelolaan di antara sekelompok operator. Dalam keduanya, pengguna memegang hak tagih dan bergantung pada penyimpanan dana serta ketersediaan penerbit. GNU Taler, misalnya, menggabungkan privasi pembeli dengan pendapatan pedagang yang dapat ditelusuri. [5] [6] [10] [4]

Skema sederhana dapat ditulis dengan beberapa persamaan. Pesan dikodekan dengan aman sebagai angka m; kunci publik memuat n dan e, sedangkan d adalah bagian privat. Pemohon memilih r acak yang mempunyai invers perkalian r⁻¹ modulo n dan mengirim m′ = m·r^e mod n. Mod n berarti menghitung menggunakan sisa pembagian oleh n. Penanda tangan mengembalikan s′ = (m′)^d mod n, lalu pemohon memperoleh s = s′·r⁻¹ mod n. Verifikasi menghasilkan s^e mod n = m. Faktor r⁻¹ melepas penutup. Persamaan ini menjelaskan mekanisme, bukan program aman yang lengkap. RFC 9474 juga mengatur persiapan pesan, skema RSA-PSS dengan pengodean aman, pemeriksaan masukan, dan pemisahan kunci tanda tangan. Keacakan dan varian protokol yang tepat penting. [2] [3]

Untuk gambaran yang lebih utuh, baca entri ini bersama David Chaum, Chaumian eCash, DigiCash, Cashu, Fedimint, Privasi Bitcoin. Entri ini juga dirujuk dari DigiCash, Chaumian eCash, Reusable Proofs of Work, Fedimint.

DOC · 001David Chaum — Blind Signatures for Untraceable PaymentsSumber primer DOC · 002RFC 9474 — RSA Blind SignaturesSpesifikasi DOC · 003IRTF/CFRG — RFC 9474 publication recordSpesifikasi DOC · 004GNU Taler — PrinciplesSumber primer DOC · 005Cashu protocol specificationsSpesifikasi DOC · 006Fedimint — How Federations WorkSumber primer DOC · 007David Chaum — Security without IdentificationSumber primer DOC · 008Cashu NUT-00 — Notation and modelsSpesifikasi DOC · 009Cashu NUT-03 — Swapping tokensSpesifikasi DOC · 010Cashu NUT-12 — DLEQ proofsSpesifikasi
Direvisi: Utamakan sumber · Bukan nasihat investasi