Tanda tangan Schnorr dan agregasi multisig

·9 mnt baca·Oleh SSP Editorial Team
Sampul SSP biru navy dengan ikon kunci, perisai, CPU, dan petir pada gradien gelap, bab Schnorr dari seri Multisig Deep Dive

Di artikel sebelumnya, kita berjalan menelusuri bagaimana SSP sebenarnya membangun dompet multisig on-chain: jalur BIP48, dua xpubs dalam urutan leksikografis, sebuah redeem script yang dicek oleh chain. Seluruh mekanisme itu dibangun di atas sebuah skema tanda tangan tertentu — ECDSA pada kurva secp256k1, skema yang sama yang dirilis Bitcoin tahun 2009 dan diwarisi sebagian besar chain.

Artikel ini tentang skema tanda tangan yang lainSchnorr — dan apa yang berubah ketika kamu membangun multisig di atasnya. Perubahan utama adalah Schnorr mendukung agregasi: di bawah protokol yang tepat, n tanda tangan dari n cosigner bisa digabung menjadi satu tanda tangan yang, on-chain, terlihat seperti tanda tangan biasa dari kunci tunggal. Dompet berperilaku seperti dompet multisig, tapi chain tidak pernah melihat sifat multi-nya. Itu punya konsekuensi nyata bagi fee, privasi, dan jenis multisig mana yang menjadi layak secara ekonomi.

TL;DR

  • ECDSA adalah hal yang sebagian besar multisig saat ini (termasuk SSP hari ini) gunakan untuk menandatangani. Setiap cosigner menghasilkan satu tanda tangan terpisah; chain memeriksa semuanya. Biaya dan jejak berskala dengan n.
  • Schnorr adalah skema tanda tangan berbeda, diaktifkan di Bitcoin melalui upgrade Taproot 2021. Ia punya sifat matematis — linearitas — yang tidak dimiliki ECDSA. Linearitas memungkinkan beberapa tanda tangan Schnorr dijumlahkan menjadi satu tanda tangan tunggal yang valid untuk kunci gabungan.
  • MuSig2 adalah protokol modern dan praktis yang mengubah sifat matematis itu menjadi protokol multisig yang bisa dipakai. n cosigner menjalankan protokol interaktif singkat, masing-masing menyumbang satu putaran nonce dan satu tanda tangan parsial; hasilnya adalah satu tanda tangan Schnorr tunggal yang tidak bisa dibedakan dari tanda tangan kunci tunggal.
  • Ini adalah kemenangan jelas di sisi verifikasi — fee, kembungnya blockchain, dan privasi semuanya diuntungkan. Bukan kemenangan gratis di sisi penandatanganan: agregasi butuh penanganan nonce yang hati-hati, dan implementasi bermasalah bisa membocorkan kunci privat.
  • SSP hari ini memakai BIP48 + ECDSA multisig di seluruh chain yang didukungnya. Roadmap-nya adalah menambah jalur Schnorr/MuSig2 di tempat chain mendukungnya, tanpa merusak model 2-of-2 yang sudah ada yang sudah dimiliki pengguna.

Pengingat singkat: apa yang dilakukan tanda tangan

Tanda tangan digital membuktikan dua hal kepada verifikator: pesan persis ini ditandatangani oleh seseorang yang memegang kunci privat untuk kunci publik ini. On-chain, "pesan" adalah hash transaksi, "kunci publik" adalah alamat (atau yang menurunkan alamat), dan "verifikator" adalah setiap node di jaringan. Kalau tanda tangan cocok, transaksi valid; kalau tidak, ditolak.

ECDSA — skema yang dipakai Bitcoin dan sebagian besar chain EVM — dimengerti dengan baik, konservatif, dan bekerja baik untuk kasus penandatangan tunggal. Masalahnya adalah apa yang terjadi ketika kamu mau beberapa penandatangan mengotorisasi transaksi yang sama. ECDSA tidak punya cara menggabungkan tanda tangan. Kalau kamu mau two-of-two, chain harus menyimpan kedua tanda tangan dan memeriksa keduanya. Three-of-five, lima tanda tangan. Transaksi tumbuh seiring banyaknya cosigner.

What is multisig menjelaskan bagian protokolm dari n kunci, aturan redeem, chain memberlakukan ambang. Yang tidak terlalu didalami artikel sebelumnya itu adalah biayanya: di bawah ECDSA, semua tanda tangan itu tinggal di dalam transaksi. Transaksi P2WSH 2-of-2 sungguh-sungguh lebih besar dan lebih mahal untuk disiarkan ketimbang transaksi single-sig dengan efek yang sama.

Apa yang diubah Schnorr

Tanda tangan Schnorr, awalnya diusulkan akhir 1980-an, dihindari dalam desain awal Bitcoin karena ketidakpastian paten saat itu. Mereka secara matematis lebih bersih daripada ECDSA dalam satu sisi spesifik: mereka linear. Kalau s1 adalah tanda tangan valid untuk sebuah pesan di bawah kunci P1, dan s2 adalah tanda tangan valid untuk pesan yang sama di bawah kunci P2, maka s1 + s2 adalah tanda tangan valid untuk pesan itu di bawah P1 + P2. Baik kunci maupun tanda tangan saling menambah.

Kenapa ini penting: tiba-tiba mungkin untuk menggabungkan tanda tangan sebelum mereka menyentuh chain. Alih-alih menyimpan dua tanda tangan dalam transaksi, kamu menyimpan satu — jumlahnya. Verifikator memeriksa satu tanda tangan itu terhadap jumlah dua kunci publik, yang bisa dihitung oleh kedua penandatangan sebelumnya. Dari sudut pandang chain, transaksi yang dihasilkan terlihat tidak terbedakan dari transaksi yang ditandatangani satu kunci.

ECDSA tidak bisa melakukan ini. Matematika ECDSA melibatkan invers perkalian yang memecah linearitas; jumlah tanda tangan ECDSA bukan tanda tangan valid. Itu sebabnya multisig berbasis ECDSA harus mengirim semua tanda tangan individual on-chain. Chain memeriksa masing-masing secara terpisah.

Bitcoin merilis tanda tangan Schnorr (via BIP340) sebagai bagian dari soft fork Taproot 2021. Tanda tangannya sendiri sedikit lebih kecil dari tanda tangan ECDSA (64 byte versus ~71), tapi yang jauh lebih besar adalah apa yang dimungkinkan linearitas itu ketika kamu menggabungkannya dengan multisig.

MuSig2 — multisig yang on-chain terlihat seperti satu tanda tangan

Versi jujur dari "kamu bisa menjumlahkan tanda tangan Schnorr" adalah kamu harus melakukannya dengan hati-hati. Pendekatan naif — biarkan setiap cosigner memilih nonce, bagikan tanda tangan parsial mereka, jumlahkan semua — membocorkan materi kunci di bawah penandatanganan berulang dan rentan terhadap kelas serangan "rogue key". Protokol agregasi praktis harus bertahan dari keduanya.

MuSig2 adalah hasil sekitar satu dekade penyempurnaan terhadap masalah ini. Itu adalah standar de facto untuk multisig Schnorr n-of-n: saat penandatanganan, para cosigner saling tukar dua putaran nonce, masing-masing menghasilkan tanda tangan parsial, dan salah satu dari mereka menjumlahkan parsial menjadi tanda tangan gabungan akhir. Hasilnya adalah satu tanda tangan Schnorr tunggal, valid terhadap satu kunci publik gabungan, on-chain tidak terbedakan dari tanda tangan kunci tunggal.

Beberapa poin penting tentang MuSig2:

  • Saat ini dia n-of-n. Untuk mendapatkan m-of-n sejati (mis. 2-of-3) di bawah agregasi kamu butuh mesin tambahan — FROST adalah proposal terdepan — dan ini masih dipersiapkan untuk produksi. Jadi di 2026, yang SSP bisa agregasi dengan rapi adalah default 2-of-2. Konfigurasi 2-of-3 dan lebih tinggi dari artikel pemilih masih sebagian besar memakai visibilitas on-chain gaya ECDSA.
  • Masih butuh kedua cosigner online untuk menandatangani. Agregasi tidak mengurangi jumlah penandatangan yang dibutuhkan; ia hanya memampatkan keluaran akhir. UX-nya sama seperti hari ini — dua perangkat menandatangani transaksi yang sama — tapi jejak on-chain hasilnya lebih kecil.
  • Implementasi MuSig2 yang bermasalah bisa membocorkan kunci. Penanganan nonce halus. Penerapan produksi bersandar pada library yang diaudit baik (modul MuSig2 dari libsecp256k1, stack rust-bitcoin, dst.) karena alasan ini.

Apa artinya ini untuk SSP hari ini

SSP hari ini, di setiap chain yang didukungnya, memakai multisig ECDSA turunan BIP48. Dua perangkat, dua kunci privat, dua tanda tangan terpisah on-chain. Itu benar, diaudit (oleh Halborn — lihat referensi inside-ssp-2025-halborn-audits di artikel 2-of-2 yang ada), dan dapat dioperasikan bersama dompet patuh BIP48 lainnya. Kekurangannya adalah kamu membayar biaya on-chain penuh dari 2-of-2.

Roadmap dari sini, dalam bahasa sederhana: menambah jalur kode Schnorr/MuSig2 untuk Bitcoin (di mana Taproot hidup dan stabil) yang menandatangani dompet 2-of-2 yang sama menggunakan agregasi sebagai gantinya. Semantik ambang dompet tidak berubah — kedua perangkat masih harus menandatangani. Byte on-chain mengecil, dan transaksi yang dihasilkan terlihat seperti pengeluaran single-sig.

Untuk pengguna, ini sebagian besar akan muncul sebagai:

  • Fee Bitcoin sedikit lebih rendah per transaksi.
  • Privasi yang lebih baik — dompet berhenti meneriakkan "saya dompet multisig" kepada chain analytics.
  • Rekonsiliasi lebih cepat untuk UI dompet (sedikit lebih sedikit data untuk diambil dan dianalisis per alamat).

Ini bukan — dan ini layak dikatakan dengan jelas — upgrade keamanan. Kriptografinya keras secara setara, hanya distrukturkan berbeda. Alasan untuk mengadopsinya adalah efisiensi dan privasi, bukan keamanan mentah.

Apa artinya ini untuk biaya, privasi, dan UX

Tiga tempat ini mendarat begitu agregasi banyak diterapkan di sebuah chain:

Biaya. Bitcoin menagih fee kira-kira menurut ukuran transaksi dalam vbyte. Transaksi ECDSA P2WSH 2-of-2 secara berarti lebih besar dari transaksi Taproot-MuSig2 yang setara. Untuk dompet bersaldo rendah mengirim jumlah kecil, penghematan fee relatifnya bisa 20–30%. Untuk bisnis dengan throughput tinggi, penghematan absolut atas fee tahunan adalah uang nyata.

Privasi. Hari ini, ketika sebuah dompet menyiarkan pengeluaran P2WSH 2-of-2, fakta itu terlihat oleh siapa pun yang menjalankan eksplorer blockchain. Perusahaan chain-analytics canggih mengelompokkan alamat menurut pola pengeluaran, dan "alamat ini multisig" adalah sinyal cluster yang kuat. Pengeluaran ber-agregasi Schnorr terlihat identik dengan pengeluaran single-sig. Sinyal cluster lenyap.

UX. UX penandatanganan di SSP — tanda tangan di browser, lalu konfirmasi di ponsel — tidak berubah. Kedua perangkat tetap memproduksi tanda tangan parsial; dompet hanya menggabungkannya sebelum menyiarkan alih-alih menyiarkan keduanya. Dari sudut pandang pengguna, satu-satunya perubahan terlihat adalah "dompet terasa lebih murah dipakai".

Ada kemenangan UX yang lebih dalam di cakrawala juga. Begitu agregasi m-of-n (via FROST atau serupa) siap produksi, kamu bisa membayangkan dompet SSP 2-of-3 — seperti setup solo recovery yang dijelaskan artikel sebelumnya — yang on-chain terlihat seperti dompet single-sig biasa. Kunci "recovery" ketiga sungguh adalah kunci penandatanganan ketiga, tapi chain tidak perlu tahu.

Apa artinya ini untukmu

Tiga kesimpulan:

  1. Kamu tidak harus memikirkan Schnorr untuk memakai SSP dengan benar. Setup 2-of-2 yang kamu punya hari ini dibangun di atas multisig ECDSA yang diaudit baik, dan tetap begitu apa pun cara agregasi mendarat. Artikel selanjutnya dalam seri (social recovery vs multisig) sengaja mengabaikan agregasi karena pertanyaan siapa yang bisa membelanjakan lepas dari seperti apa tanda tangan terlihat on-chain.
  2. Agregasi adalah upgrade "fee dan privasi", bukan upgrade "keamanan". Kalau kamu pernah lihat dompet menjual "MuSig2 = lebih aman", curigalah. Keamanan kriptografis MuSig2 yang diimplementasikan baik sebanding dengan multisig ECDSA yang diimplementasikan baik; kemenangannya di tempat lain.
  3. Pantau dukungan chain, bukan pemasaran dompet. Schnorr hidup di Bitcoin dan diadopsi di dunia EVM via account abstraction. Chain yang mendukungnya baik adalah tempat SSP akan meluncurkan multisig ter-agregasi lebih dulu; di tempat lain, BIP48 + ECDSA tetap default yang benar dan aman.

Artikel berikutnya dalam seri ini, Social recovery vs multisig, menggeser fokus dari kriptografi ke operasi: kapan kamu mengambil multisig dan kapan social recovery menang? Keduanya melindungi dari hilangnya kunci; menjawab pertanyaan berbeda. Untuk penyegaran cepat tentang perangkat apa yang dipakai SSP hari ini dan kenapa, Meet SSP Wallet tetap titik awal.

Bagikan artikel ini

Artikel terkait