Dompet MPC vs multisig

·8 mnt baca·Oleh SSP Editorial Team
Sampul SSP Academy: dompet MPC vs multisig

Dompet MPC vs multisig

Dompet MPC maupun dompet multisig menjanjikan tajuk yang sama: tidak ada satu titik kompromi. Keduanya menepatinya. Tetapi mereka sampai ke sana lewat jalur yang berbeda, dan jalur itu berbeda konsekuensinya bagi apa yang terjadi ketika segalanya berantakan — satu-satunya saat sebuah model keamanan benar-benar berarti.

Artikel ini adalah adu langsung secara teknis. Kalau Anda ingin panorama pilihan swakelola lebih dulu, membandingkan pilihan swakelola mencakup keseluruhan lapangan, termasuk dompet perangkat keras dan frasa benih polos.

Dua jawaban berbeda untuk masalah yang sama

Masalahnya dirumuskan sama pada kedua kasus: satu rahasia yang mengendalikan segalanya tidak bisa diterima, jadi sebarkan kewenangannya.

MPC memecah kuncinya. Secara konseptual ada satu kunci privat, tetapi ia tidak pernah dirakit di mana pun. Sebagai gantinya, bagian-bagiannya berada di tempat berbeda, dan sebuah protokol kriptografis memungkinkan bagian-bagian itu bekerja sama menghasilkan tanda tangan tanpa satu pihak pun mengetahui kunci utuhnya.

Multisig menuntut beberapa kunci. Di sini benar-benar ada beberapa kunci privat yang independen. Alamatnya mengodekan sebuah aturan — sekian dari kunci-kunci ini harus menandatangani — dan blockchain menegakkan aturan itu saat memvalidasi transaksi.

Pembedaan ini terdengar akademis. Bukan. Yang satu fakta tentang kriptografi; yang lain fakta tentang blockchain. Apa yang diketahui rantai menentukan apa yang terjadi ketika salah satu bagian sistem gagal.

Bagaimana MPC sebenarnya bekerja

MPC — komputasi multipihak, dalam konteks ini biasanya skema tanda tangan ambang — memungkinkan beberapa pihak bersama-sama menghitung tanda tangan atas sebuah pesan sementara masing-masing hanya memegang satu bagian dari kunci penandatanganan. NIST memelihara proyek kriptografi ambang kalau Anda ingin pembahasan formalnya.

Keluarannya adalah satu tanda tangan biasa. Di rantai, transaksi dompet MPC tak bisa dibedakan dari transaksi yang ditandatangani satu orang dengan satu kunci. Itu punya keunggulan nyata: berjalan di setiap rantai, berbiaya sama dengan transaksi tanda tangan tunggal, dan tidak mengungkap apa pun soal susunan keamanan Anda kepada siapa pun yang mengamati rantai.

Konsekuensi dari sifat yang sama itulah yang menuntut kehati-hatian. Karena rantai melihat tanda tangan biasa, rantai juga tidak menegakkan apa pun tentang kebijakan Anda. Ada berapa bagian, siapa yang memegangnya, dan berapa yang harus bekerja sama adalah fakta tentang perangkat lunak dan server, bukan tentang buku besar. Ubah perangkat lunaknya, Anda mengubah kebijakannya.

Hal kedua yang perlu dicermati adalah penyimpanan bagian-bagian itu. Banyak dompet MPC konsumen menyimpan satu bagian di infrastruktur penyedia. Kerap justru itulah yang membuat pengalaman pemulihan terasa mulus — dan sekaligus berarti keberlangsungan dan kesediaan penyedia untuk bekerja sama adalah bagian penyangga dari susunan Anda. Sebagian rancangan meredam hal ini dengan baik, lewat bagian yang bisa diekspor atau jalur cadangan yang independen. Pertanyaannya bukan apakah MPC bisa dikerjakan dengan baik; melainkan apakah produk tertentu yang sedang Anda timbang sudah mengerjakannya dengan cara yang bisa Anda verifikasi.

Bagaimana multisig sebenarnya bekerja

Dalam multisig, kebijakan adalah bagian dari alamat. Di Bitcoin dan rantai UTXO lainnya, alamat diturunkan dari skrip yang menyebutkan kunci-kunci publik dan ambangnya; pembelanjaan yang tidak membawa cukup tanda tangan sah sekadar tidak valid, dan setiap simpul di jaringan menolaknya. Di rantai dengan kontrak pintar, padanannya adalah akun yang kodenya tidak akan bertindak tanpa persetujuan yang disyaratkan.

Tidak ada yang perlu dipercaya untuk menerapkan aturannya, sebab menerapkan aturan itulah yang dilakukan jaringan. Kalau besok semua perangkat lunak dompet yang terlibat lenyap, aturannya tetap berlaku, dan siapa pun yang memegang kunci beserta alat apa pun yang kompatibel tetap bisa membelanjakan.

Ongkosnya juga nyata. Anda mengelola beberapa kunci alih-alih satu, pencadangan jadi lebih rumit, dan transaksinya lebih besar — di Bitcoin, lebih banyak tanda tangan berarti lebih banyak byte dan biaya sedikit lebih tinggi. Kebijakan Anda juga terlihat di rantai, dan itu pertimbangan privasi: pengamat bisa melihat sebuah alamat itu 2-dari-3 meski tak bisa melihat siapa memegang apa.

Apa itu multisig, dan mengapa penting membahas modelnya lebih dalam.

Pengalih rantai di SSP Wallet, mode gelap

Di mana persisnya posisi SSP

SSP adalah multisig 2-dari-2, tetapi kejujuran menuntut satu detail di sini, sebab implementasinya tidak identik di setiap rantai.

Di Bitcoin dan rantai UTXO lain, ia multisig asli di tingkat skrip lewat BIP-48. Dua kunci, satu skrip, ditegakkan oleh konsensus.

Di Ethereum dan rantai EVM lain tidak ada skrip asli yang setara, jadi SSP memakai akun pintar yang memverifikasi tanda tangan Schnorr teragregasi yang dihasilkan dari kedua kunci. Kedua perangkat Anda menjalankan protokol bergaya MuSig2, dan rantai melihat satu tanda tangan — secara mekanis, bentuknya lebih dekat ke MPC ketimbang ke skrip multisig Bitcoin.

Pembedaan yang penting bukanlah "teragregasi atau tidak". Melainkan dua fakta berikut, yang berlaku di setiap rantai yang didukung SSP:

  • Kedua kunci dihasilkan di perangkat Anda dan hanya Anda yang memegangnya. SSP tidak memegang bagian mana pun, kunci mana pun, maupun rahasia parsial apa pun. Tidak ada bagian di server kami yang bisa hilang, disita, atau ditahan sebagai sandera.
  • Syaratnya ada di rantai. Di EVM, kode akun pintar tidak akan mengesahkan transaksi tanpa tanda tangan yang hanya bisa dihasilkan oleh kedua kunci Anda. Kode itu sudah diterapkan, terbuka, dan telah diaudit — ia bukan kebijakan yang dipilih perangkat lunak kami untuk diterapkan.

Di Solana ia program on-chain tanpa pembuat dan tanpa kunci admin, di mana alamat vault itu sendiri merupakan sidik jari dari himpunan anggota dan ambangnya. Mekanisme berbeda, jaminan sama.

Kalau kriptografi agregasi menarik bagi Anda, tanda tangan Schnorr dan agregasi multisig menjelaskan bagaimana satu tanda tangan bisa menuntut dua kunci.

Modus kegagalan berdampingan

Model keamanan paling baik dibandingkan dengan menanyakan apa yang rusak.

Satu perangkat dibobol. Kedua model bertahan. Penyerang memegang satu bagian atau satu kunci dan tak bisa menandatangani sendirian.

Penyedia lenyap. Multisig bertahan — kunci dan aturan di rantai sudah cukup. MPC bertahan hanya kalau Anda bisa memperoleh dan memakai bagian-bagian Anda tanpa perangkat lunak penyedia, dan itu sepenuhnya bergantung pada rancangannya.

Penyedia dipaksa bertindak. Kalau penyedia memegang satu bagian, bagian itu berpotensi dikeluarkan di bawah paksaan hukum, dan tergantung skemanya hal itu bisa cukup — bersama satu bagian lain — untuk memindahkan dana. Kalau penyedia tidak memegang apa pun — seperti pada SSP, di mana kedua kunci milik Anda — tidak ada yang bisa dipaksakan.

Anda kehilangan satu kunci atau bagian. Ini bergantung pada ambangnya, bukan pada teknologinya. Susunan 2-dari-3 dari jenis mana pun menoleransi satu kehilangan; susunan 2-dari-2 dari jenis mana pun tidak. Apa yang terjadi kalau salah satu kunci Anda bocor menelusuri kasus SSP secara khusus.

Perangkat lunak dompet berbohong soal apa yang Anda tandatangani. Di sini tak satu model pun menolong, dan ini layak dinyatakan terang-terangan. Menyebar kewenangan melindungi dari kunci yang dicuri; ia tidak melindungi dari menyetujui transaksi yang keliru. Karena itu pertanyaan menarik bagi kedua model adalah apa yang diverifikasi perangkat Anda secara independen sebelum menandatangani — mendekode transaksi mentah alih-alih memercayai keterangan sebuah server.

Langkah sinkronisasi di SSP Key, mode gelap

Di mana masing-masing unggul

MPC unggul di rantai yang tak punya primitif multisig yang baik, unggul pada ukuran transaksi dan biaya, pada privasi susunannya, dan sering pada pengalaman pengguna — terutama pemulihan, di mana produk MPC yang dirancang baik bisa jauh lebih ramah daripada menjungkir-balikkan beberapa cadangan frasa benih.

Multisig unggul pada keterverifikasian. Aturannya ada di buku besar. Anda tak perlu memercayai deskripsi model keamanannya; Anda bisa membaca alamat atau kontraknya dan melihat kebijakannya. Ia juga unggul pada kemandirian: susunan multisig dengan kunci yang Anda pegang sama sekali tidak punya perusahaan di dalam model kepercayaannya.

Tidak ada kontradiksi dalam memilih jawaban berbeda untuk tujuan berbeda. Saldo harian yang kecil di dompet MPC yang dibangun dengan baik, dan simpanan jangka panjang di multisig dengan kunci yang disimpan terpisah, adalah susunan yang sepenuhnya koheren.

Apa yang perlu ditanyakan sebelum berkomitmen

Ke mana pun Anda condong, empat pertanyaan ini memisahkan implementasi yang kuat dari yang lemah.

  1. Siapa memegang tiap kunci atau bagian, dan bisakah saya memperoleh semuanya? Kalau jawaban jujurnya memuat "penyedianya, dan tidak", Anda memilih model dengan pihak lawan.
  2. Apa yang terjadi kalau besok penyedianya lenyap? Harus ada jalur terdokumentasi yang tidak melibatkan mereka. Ujilah sebelum Anda membutuhkannya.
  3. Di mana kebijakannya tinggal? Di skrip atau kontrak di rantai, atau di perangkat lunak? Keduanya bisa saja baik, tetapi hanya satu yang bertahan ketika perangkat lunaknya berubah.
  4. Apa yang diverifikasi tiap perangkat sebelum menandatangani? Kunci kedua tidak menambah apa pun kalau kedua perangkat menandatangani secara buta apa pun yang dikirim server. Modus kegagalan multisig dan bagaimana SSP meredamnya menelusuri hal ini dan cara-cara lain sebuah susunan berkunci banyak bisa dilemahkan dalam praktik.

Kalau Anda ingin model yang menjadi dasar SSP dijelaskan dari awal, mulailah dari apa itu multisig 2-dari-2. Dan kalau kekhawatiran yang membawa Anda ke sini adalah kehilangan sebuah kunci alih-alih kehilangan kendali atasnya, pemulihan sosial vs multisig membahas keluarga jawaban yang satunya.

Bagikan artikel ini

Artikel terkait