| Penulis | Wuille, Pieter; Nick, Jonas; Towns, Anthony |
|---|---|
| Tahun | 2020 |
| Proyek | Bitcoin Core |
| Lisensi | Public Domain |
| Sumber Resmi | github.com/bitcoin/bips — BIP-340 |
BIP-340 (2020) oleh Pieter Wuille, Jonas Nick, dan Anthony Towns mendefinisikan standar untuk tanda tangan Schnorr di kurva secp256k1 Bitcoin. Tanda tangan Schnorr tidak disertakan dalam Bitcoin di era Satoshi — ECDSA digunakan sebagai gantinya karena Schnorr saat itu dipatenkan. Patent tersebut kedaluwarsa, dan BIP-340 menstandarisasi Schnorr untuk Bitcoin, diaktifkan dengan Taproot (BIP-341) pada November 2021.
Mengapa Schnorr Lebih Baik dari ECDSA?
Linearitas: Key Aggregation
Tanda tangan Schnorr bersifat linear — jumlah tanda tangan adalah tanda tangan yang valid untuk jumlah kunci. Ini memungkinkan:
- Agregasi kunci: n penandatangan dapat berkolaborasi untuk menghasilkan satu kunci publik gabungan dan satu tanda tangan yang tidak dapat dibedakan dari transaksi penandatangan tunggal (fundamental untuk MuSig2)
- Multisig threshold: Multisig 2-dari-3 yang tampak on-chain sebagai pengeluaran kunci tunggal biasa
Batch Verification
Beberapa tanda tangan Schnorr dapat diverifikasi bersama lebih cepat daripada secara individual, mengurangi biaya verifikasi selama unduhan blok awal — speedup kira-kira sebanding dengan akar kuadrat dari ukuran batch.
Bukti Keamanan yang Lebih Ketat
Keamanan Schnorr dapat dibuktikan di bawah asumsi Discrete Logarithm dalam model generic group. Bukti keamanan ECDSA lebih kompleks dan bergantung pada asumsi tambahan. Keduanya dianggap aman dalam praktik, tetapi bukti Schnorr lebih bersih.
Pilihan Desain BIP-340
Kunci publik x-only: BIP-340 menggunakan koordinat-x saja untuk kunci publik (32 byte vs. 33 byte untuk ECDSA terkompresi). Paritas implisit dari konvensi even-y.
Tagged hashes: Input hash diawali dengan tag domain untuk mencegah serangan replay lintas-protokol.
Tanda tangan 64 byte: Tanda tangan Schnorr: (R, s) di mana R adalah koordinat-x 32 byte dan s adalah skalar 32 byte. Total: 64 byte (vs. 71–72 byte untuk encoding DER ECDSA).
BIP-340, BIP-341, dan MuSig2
BIP-340 memungkinkan:
- BIP-341 (Taproot): Menggunakan key-path spend Schnorr — terlihat seperti single-sig, mengaktifkan skrip kompleks yang hanya terungkap bila dibutuhkan
- MuSig2: Multisig n-dari-n menggunakan penandatanganan Schnorr kooperatif — satu tanda tangan on-chain untuk agregasi kunci mana pun
- Cross-input signature aggregation (masa depan): Mengagregasi tanda tangan di semua input dalam satu transaksi
Pieter Wuille
Pieter Wuille adalah co-founder Blockstream dan penulis library secp256k1 Bitcoin. Ia adalah salah satu kontributor kode Bitcoin Core paling produktif, bertanggung jawab atas SegWit, batchable ECDSA verification, dan sekarang BIP-340 Schnorr.
Istilah Terkait
Referensi
- Wuille, P., Nick, J., & Towns, A. (2020). BIP-340: Schnorr Signatures for secp256k1. github.com/bitcoin/bips/blob/master/bip-0340.mediawiki