Multisig single-signer: bagaimana SSP membuat dua perangkat terasa seperti satu dompet

·9 mnt baca·Oleh SSP Editorial Team
Sampul SSP biru navy dengan ikon kunci, petir, dan perisai pada gradien gelap, bab UX single-signer dari Multisig Deep Dive

Kalau kamu sudah bersama seri ini sejak apa itu multisig, kamu tahu protokolnya: lebih dari satu kunci privat harus menandatangani sebelum uang bergerak. Kamu sudah melihat pemilih m-of-n, perkabelan BIP48, horizon agregasi Schnorr, dan perbandingan social-recovery. Semua itu adalah mesin. Artikel ini tentang pengalaman.

Kritik historis yang jujur terhadap multisig adalah dia memusuhi penggunaan. Banyak dompet, pertukaran PSBT manual, perangkat lunak koordinator, pesta penandatanganan — protokolnya kokoh, tapi UX-nya adalah hukuman. Single-signer multisig adalah ide produk yang membenahi ini: dompet yang menggunakan aturan pembelanjaan multisig penuh on-chain, tapi terasa — bagi orang yang memakainya — seperti satu dompet dengan satu tombol. SSP dibangun di sekitar ide ini.

TL;DR

  • "Single-signer" tidak berarti satu kunci. Berarti protokolnya tetap memiliki m dari n kunci, tetapi UX penandatanganan dirangkum dalam satu alur. Pengguna menandatangani di satu tempat; dompet menangani koordinasi antar-perangkat.
  • Bentuk spesifik SSP: satu ekstensi browser, satu aplikasi seluler (SSP Key), satu identitas dompet. Kamu klik Send, konfirmasi di telepon, transaksi disiarkan. Dua tanda tangan terjadi; kamu mengalami satu.
  • Kemenangan adalah bahwa manfaat ambang (tahan pencurian, tanpa single-point-of-failure) dipertahankan sementara biaya koordinasi turun mendekati UX single-sig.
  • Biayanya adalah ini hanya bekerja selama kedua perangkatmu dapat dijangkau. Saat UX harus mengungkapkan multi-ke-an — pemulihan, penggantian perangkat, restorasi di pihak ketiga — abstraksi pecah, berdasarkan desain.
  • Pola ini adalah hal terdekat dengan jawaban "tanpa kompromi" untuk self-custody solo di skala retail. Itu taruhan SSP, dan semakin lama jadi taruhan setiap produk multisig modern (Coinbase Wallet, kisah custody yang berevolusi dari Phantom, alur smart-account Safe di Ethereum).

Ideal single-signer: apa yang sebenarnya pengguna inginkan

Kalau kamu bertanya kepada pengguna self-custody apa yang dia inginkan, kamu mendapat jawaban yang saling bertentangan:

  • "Saya ingin koin saya aman." — Mengimplikasikan multisig, hardware, redundansi.
  • "Saya ingin menandatangani transaksi dalam lima detik." — Mengimplikasikan satu perangkat, satu ketukan.
  • "Saya ingin pulih kalau saya kehilangan sesuatu." — Mengimplikasikan backup seed, redundansi.
  • "Saya tidak ingin menulis seed lagi." — Mengimplikasikan custody kunci yang dikelola platform.
  • "Saya ingin murah." — Mengimplikasikan jejak on-chain minimal.

Tujuan-tujuan ini tidak semuanya sejalan. Sejarah desain dompet self-custody adalah sejarah tentang tujuan mana yang dihormati dan mana yang ditolak dengan sopan. Dompet hardware menghormati keamanan dan pemulihan dengan biaya UX. Dompet smart-contract menghormati UX dan pemulihan dengan biaya jangkauan cross-chain. Hot wallet murni menghormati UX dan kemurahan dengan biaya keamanan.

Single-signer multisig adalah usaha untuk menghormati kelimanya — sebagian — dengan memisahkan semantik protokol dari semantik antarmuka. Dompet tetap melakukan tarian multisig penuh on-chain; pengguna hanya tidak harus berpartisipasi dalam tarian itu lebih dari sekali per transaksi.

Bagaimana SSP menyampaikannya

Implementasi spesifik SSP, dengan bahasa sederhana:

  1. Saat setup, kamu memasang ekstensi browser dan aplikasi seluler (SSP Key). Masing-masing menghasilkan seed sendiri, yang kamu backup terpisah (ini adalah langkah checklist 1000 pertama). Kedua perangkat menukar kunci publik; dari titik itu seterusnya, mereka berbagi identitas dompet di tingkat protokol.
  2. Saat penandatanganan harian, kamu klik Send di ekstensi browser, tinjau transaksi, dan setujui. Ekstensi membangun transaksi yang ditandatangani sebagian dan mendorong notifikasi ke teleponmu. Aplikasi seluler menampilkan detail transaksi, kamu ketuk setujui, dan aplikasi menghasilkan tanda tangan kedua. Ekstensi menggabungkan kedua tanda tangan dan menyiarkan. Total waktu yang berlalu: sekitar 8 detik ketika kedua perangkat ada di depanmu.
  3. Saat menerima, alamat yang ditampilkan adalah alamat multisig hasil derivasi BIP48 dari kedua xpubs. Kamu memindainya atau menyalin; pengirim tidak melihat hal yang tidak biasa. Dari sisinya itu terlihat seperti alamat kripto lainnya.
  4. Saat penyelesaian, dompet menunjukkanmu saldo, riwayat, fee, dan seterusnya, identik dengan dompet single-sig. Tidak ada "layar multisig" terpisah. Bentuk protokol tidak terlihat selama penggunaan normal.

Pilihan desain kunci adalah tanda tangan kedua adalah satu-satunya multi-ke-an yang harus dipikirkan pengguna. Setup adalah dua perangkat, penandatanganan adalah satu ketukan ekstra, dan itu adalah seluruh permukaan protokol multisig dari sudut pandang pengguna.

Detail kecil tapi penting: ekstensi browser SSP dan SSP Key tidak ditempatkan bersama. Mereka di OS berbeda, hardware berbeda, permukaan serangan berbeda. Itulah yang membuat setup dua-tanda-tangan menjadi penghalang pencurian nyata dan bukan hanya gundukan UX. (Kami membongkar ini di bagian tujuh mode kegagalan dan di Apa itu multisig 2-of-2.)

Yang tidak pernah pengguna lihat

Banyak pekerjaan dilakukan untuk menjauhkan pengguna dari harus menangani pipa multisig. Khususnya:

  • PSBT (Partially Signed Bitcoin Transactions) adalah struktur data besar yang bergerak antara perangkat cosigner. Dalam setup multisig tradisional kamu menyalin dan menempel ini secara manual. SSP menyerialkan dan mentransmisikan mereka melalui saluran koordinasinya sendiri; pengguna melihat notifikasi, bukan string base64.
  • Pertukaran xpubs cosigner adalah peristiwa setup sekali pakai. Dalam multisig tradisional, kamu mengimpor xpubs dari setiap cosigner secara eksplisit. SSP membungkus ini di alur pairing pada setup; kamu mengonfirmasi kode QR atau kode enam digit dan tidak pernah menyentuh materi yang mendasari.
  • Estimasi fee, penanganan kembalian, dan rotasi alamat ditangani oleh dompet persis seperti dompet single-sig melakukannya, meskipun dompet itu sendiri adalah multisig di bawah kap mesin.
  • Redeem script — script BIP48-kanonik yang menggambarkan aturan multisig — dibangun oleh dompet secara otomatis. Pengguna tidak melihatnya, tidak menyetujuinya baris demi baris, tidak perlu tahu bahwa itu ada. (Mereka bisa melihatnya di block explorer kalau mereka melihat, yang merupakan properti "tunjukkan kerjamu" terbersih dari dompet multisig.)

Semua abstraksi itu adalah pekerjaan yang diperlukan, tetapi juga risiko — setiap kali protokol disembunyikan dari pengguna, dompet mengambil tanggung jawab untuk membuat bagian yang tersembunyi tersebut benar. Pekerjaan audit SSP (Halborn) sebagian besar tentang jalur kode yang tidak terlihat itu.

Kapan tidak lagi terasa single-signer

Abstraksi tidak sempurna, dan penting tahu di mana ia pecah. UX single-signer bertahan saat kedua perangkat tersedia. Retakan muncul saat salah satu tidak:

  • Penggantian perangkat. Saat kamu mengganti ponsel, perangkat baru harus dipasangkan ulang. Itu langkah koordinasi multisig sekali pakai yang sungguh terlihat — dompet memandumu menampilkan kedua perangkat satu sama lain lagi.
  • Pemulihan seed. Kalau perangkat hancur, kamu memulihkannya dari seed phrase ke perangkat baru, lalu memasangkan ulang. Fakta bahwa kamu punya dua seed (satu per perangkat) menjadi terlihat pada momen ini dengan cara yang tidak ada selama penggunaan normal.
  • Pemulihan cross-software. Kalau suatu hari kamu memuat dua seed SSP-mu ke dompet multisig pihak ketiga (Sparrow, Electrum, dll), semua pipa multisig menjadi terlihat — itu fitur, bukan bug, karena itulah yang membuktikan dompetmu interoperable, tetapi itu bukan UX SSP.
  • Membelanjakan saat satu perangkat offline. Dompet tidak dapat cosign tanpa kedua perangkat; itu protokol. Kamu akan melihat status "menunggu tanda tangan kedua" sampai perangkat lain online.

Tiga yang pertama cukup jarang sehingga tidak benar-benar menurunkan UX rata-rata. Yang keempat adalah titik gesekan paling umum — dan titik gesekan yang benar. Kalau dompet membiarkanmu membelanjakan tanpa perangkat kedua, ia tidak lagi menjadi dompet 2-of-2. Gesekan itu adalah keamanan; kamu tidak dapat merekayasa itu untuk pergi tanpa menghilangkan properti yang kamu bayar.

Mendesain di sekitar UX single-signer

Tiga prinsip desain yang diikuti SSP — dan produk multisig modern lainnya — untuk menjaga abstraksi ini ketat:

  1. Kedua cosigner harus hidup di permukaan ancaman yang berbeda. Dompet yang menempatkan kedua kunci cosign pada OS yang sama tidak benar-benar memberikan manfaat keamanan; itu hanya menyebarkan satu permukaan serangan ke dua kunci. Pemisahan SSP antara ekstensi browser dan aplikasi seluler memberlakukan itu secara alami.
  2. Saluran koordinasi harus tidak dapat dipalsukan. PSBT yang dikirim oleh ekstensi browser ke aplikasi seluler harus terikat secara kriptografi ke dompet yang tepat dan transaksi yang tepat; jika tidak abstraksi menjadi permukaan serangan tersendiri. SSP menandatangani dan memvalidasi materi ini di lapisan protokol.
  3. Kontrak pengguna harus jujur tentang apa yang disembunyikan. Dompet yang berkata "pengalaman single-signer sepenuhnya trustless" tanpa menjelaskan apa yang terjadi pada pemulihan menyiapkan pengguna untuk kejutan tidak menyenangkan. Onboarding SSP secara eksplisit memandu kedua seed, kedua backup, dan kedua skenario pemulihan — abstraksi tersembunyi selama penggunaan tetapi diungkap selama onboarding sehingga tidak menyergap kamu di kemudian hari.

Dompet account abstraction di Ethereum mendapat alat keempat: lapisan smart-contract. Dengan ERC-4337, sebuah dompet dapat menyerap fee gas, membatch transaksi, dan menyajikan UX yang lebih "single-signer-like" dan mengimplementasikan multisig di bawah kap mesin. SSP tidak punya lapisan itu di Bitcoin (tidak ada smart contract), jadi abstraksi bersandar lebih pada rekayasa UX daripada penyerapan sisi-chain. Kedua jalan sah; jalan Ethereum lebih fleksibel dengan biaya menjadi chain-spesifik, jalan SSP lebih portabel dengan biaya pekerjaan UI lebih.

Apa artinya ini untukmu

Tiga kesimpulan:

  1. Pengalaman "terasa seperti satu dompet" adalah fitur utama, bukan multisig itu sendiri. Kalau temanmu bertanya "apakah SSP dompet multisig?", jawaban yang secara teknis benar adalah ya, tetapi jawaban yang berguna adalah "ini adalah dompet 2-perangkat di mana satu ketukan di ponsel mengonfirmasi pembelanjaan". Itu menangkap apa yang orang benar-benar rasakan.
  2. Gesekan yang kamu lihat sedang melakukan pekerjaan nyata. Setiap kali SSP memintamu mengonfirmasi di ponsel, ia menegakkan protokol yang menghentikan laptop yang dikompromikan dari menguras dananya. Gesekan itu adalah alasan utama kamu memakai dompet 2-of-2 daripada hot wallet pada awalnya.
  3. Perlakukan abstraksi sebagai kontrak, bukan sihir. Artikel terakhir di seri ini, Mode kegagalan multisig dan bagaimana SSP memitigasinya, melalui apa yang terjadi saat setiap potongan abstraksi pecah — kehilangan perangkat, kompromi kunci, gangguan server penandatanganan. Bacalah sekali. Abstraksi dirancang dengan baik, tetapi memahami mode kegagalan adalah hal yang membuatmu jenis pengguna self-custody yang dimaksudkan oleh seluruh seri ini.

Bagikan artikel ini

Artikel terkait