Dompet tanpa pemilik. Setiap anggota menyimpan kuncinya sendiri di perangkatnya sendiri, dan uang bergerak ketika cukup banyak dari mereka sudah menandatangani — dua dari tiga mana saja, lima dari sembilan mana saja, apa pun yang grup tetapkan saat membuat dompet itu.
Tidak ada satu pun di bawah ini yang kami karang. Setiap rantai sudah punya cara agar beberapa orang memegang satu alamat, dan cara itulah yang dipakai di sini: P2WSH di Bitcoin, Safe di rantai-rantai EVM, sistem permission milik akun itu sendiri di Tron, Squads V4 di Solana. Alamat-alamat di halaman berikutnya adalah deployment yang diajak bicara oleh aplikasi ini.
CARA KERJANYA
Empat langkah, dan hanya yang terakhir ada di rantai
Sebuah pembayaran adalah percakapan sebelum ia menjadi transaksi. Di sini itu bukan kiasan: ia terjadi di dalam utas, sebagai pesan, dan rantai baru melihatnya setelah grup sepakat.
1
Grup menetapkan aturannya
Siapa yang menandatangani, dan berapa banyak yang dibutuhkan. Itu ditulis ke dalam dompet pada saat dompetnya dibuat, dan ditulis di rantai, bukan di aplikasi ini.
Aturan tidak disunting belakangan di sini: aturan lain berarti dompet lain, dengan alamatnya sendiri yang harus diisi dan dipindahi. Sebagian rantai mengizinkan perubahan itu dan aplikasi ini tidak melakukannya, jadi layarnya mengatakan begitu sebelum meminta ketukan kedua.
2
Seseorang mengusulkan pembayaran
Ia masuk ke percakapan sebagai pesan, dari orang yang membuatnya, menyebut apa yang dibayar dan kepada siapa. Sampai ditandatangani, ia hanyalah permintaan.
Usulan itu dibawa oleh grup terenkripsi yang sama dengan yang dipakai obrolan, jadi server membawanya tanpa membacanya.
3
Setiap penanda tangan menandatangani di perangkatnya sendiri
Kamu baca, ketuk sekali, dan ia sudah ditandatangani dengan kunci yang tidak pernah meninggalkan ponsel tempat kunci itu dibuat. Semua orang melihat hitungannya bergerak.
Tidak ada perangkat yang memegang kunci orang kedua, jadi tidak ada perangkat yang kehilangannya menyerahkan dompet itu kepada siapa pun.
4
Di ambang batas, ia pergi ke rantai
Tanda tangannya dirakit dan disiarkan. Sejak titik itu yang menegakkan aturan adalah rantai, bukan aplikasi ini — dan itulah gunanya menaruh aturan di sana.
Kalau aplikasi ini lenyap besok, dompetnya tetap dompet dan aturannya tetap berlaku.
LIMA RANTAI
Antarmuka yang seragam
Lima rantai, dan di bawahnya empat mekanisme berbeda: Bitcoin, Ethereum, BNB Smart Chain, Tron dan Solana memegang satu alamat bersama dengan caranya masing-masing. Tidak ada satu pun dari itu yang sampai ke layar: mengusulkan pembayaran, menandatanganinya dan mengirimnya sama di kelima rantai.
Bitcoin
P2WSH multisig · BIP 67 · PSBT
Sebuah witness script yang terbaca sebagai “m dari n kunci ini”, dan sebuah alamat yang merupakan hash-nya. Kuncinya diurutkan secara leksikografis, sehingga siapa pun yang menyusun script dari himpunan kunci yang sama sampai ke alamat yang sama, bukan ke n! alamat yang berbeda.
Pembayaran berjalan sebagai PSBT: satu berkas yang berkeliling ke para penanda tangan mengumpulkan tanda tangan, dan difinalkan ketika sudah cukup.
Script
OP_m <key>… OP_n OP_CHECKMULTISIG
Penanda tangan
sampai 15, ambang di mana saja di antaranya
Data rantai
sebuah server Electrum
Ethereum
Safe · canonical deployment
Kontrak tempat sebagian besar uang yang dipegang grup di Ethereum memang sudah berada. Sebuah proxy dibuat oleh factory kanonik dan menunjuk ke singleton kanonik; pemilik dan ambangnya ditetapkan dalam panggilan yang sama yang membuatnya.
Tidak ada yang di-fork dan tidak ada yang di-deploy ulang. Versinya dibaca dari kontraknya alih-alih diasumsikan, karena sebuah Safe yang dibuat orang lain adalah Safe yang bisa dibuka di sini.
Singleton
0x41675C099F32341bf84BFc5382aF534df5C7461a
Factory
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Penggabungan
MultiSend — beberapa perpindahan, satu persetujuan
BNB Smart Chain
Safe · the same addresses
Kontrak yang sama di alamat yang sama. Deployment Safe bersifat deterministik di seluruh rantai EVM, jadi tidak ada yang khusus per rantai untuk dipelajari di sini, dan tidak ada yang khusus per rantai di dalam kodenya.
Itu juga sebabnya sebuah akun di Ethereum adalah akun yang sama di BNB Smart Chain: satu tipe koin, satu kunci, dua rantai.
Kontrak
identik dengan milik Ethereum, di atas
Tipe koin
60 — dipakai bersama Ethereum
Tron
Account permissions · no contract
Tron menaruh aturannya di dalam akun. Sebuah permission membawa daftar kunci, bobot untuk masing-masing dan sebuah ambang, dan ditulis ke akun itu sendiri — tidak ada kontrak yang perlu di-deploy dan tidak ada kontrak yang perlu dipercaya.
Bobot berarti aturannya bisa lebih dari sekadar menghitung kepala: satu kunci senilai dua suara, tiga kunci senilai satu suara masing-masing.
Ditulis oleh
AccountPermissionUpdate
Aturan
kunci berbobot, satu ambang
Catatan
pembaruan menggantikan daftarnya, bukan mengubahnya
Solana
Squads Protocol V4
Program multisig yang dipakai sebagian besar kas Solana. Usulannya adalah sebuah akun di rantai: anggota menyetujuinya, dan ia dijalankan ketika persetujuannya mencapai ambang.
Id programnya menentukan dari mana setiap akun dompet diturunkan, jadi ia dipatok ke deployment yang dipublikasikan, dan id lain ditolak alih-alih dipercaya.
Program
SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf
Usulan
di rantai, disetujui terhadapnya
KENAPA YANG BAKU
Dompet yang hanya bisa dibuka di sini adalah dompet milik orang lain
Ada cara yang lebih gampang untuk membangun ini: satu kontrak milik kami sendiri di tiap rantai, satu format milik kami sendiri, satu aplikasi yang memahaminya. Kodenya akan lebih sedikit dan hasilnya akan lebih buruk, karena uang grup lalu bergantung pada apakah aplikasi ini terus ada.
Apa yang didapat dengan memakai yang baku
Masing-masing ini adalah akibat dari pilihan itu, bukan fitur yang ditambahkan.
Diaudit oleh lebih banyak orang daripada kami. Safe dan Squads bersama-sama memegang miliaran dan telah diperiksa sepadan dengan itu. P2WSH dan permissions milik Tron adalah aturan konsensus.
Terbaca oleh perkakas lain. Alamatnya adalah Safe biasa, multisig Squads biasa, alamat P2WSH biasa, permission Tron biasa — penjelajah blok dan antarmuka milik protokolnya sendiri membacanya tanpa tahu bahwa aplikasi ini ada.
Tidak ada yang perlu ditinggalkan. Tidak ada format milik sendiri untuk terjebak di dalamnya, jadi tidak ada saat nanti ketika pergi itu ada ongkosnya.
Aturannya hidup lebih lama dari kami. Ambangnya ditegakkan oleh rantai. Aplikasi ini adalah tempat grup membicarakan pembayarannya, bukan yang mengizinkannya.
AUDITS
Read by people who are not us
This is the argument for using each chain’s own multisig rather than writing one: the reports below exist, they were paid for by somebody else, and they are about exactly the contracts a wallet made here is made of. Every address and every program id on this page was checked against the projects’ own published deployment records while this section was written.
Safe
Ethereum · BNB Smart Chain
2 reports
The four contracts this application talks to are the canonical v1.4.1 deployments — singleton, proxy factory, fallback handler and MultiSend — each one matching the address in Safe’s own deployment registry.
Four reports, three firms and a formal verification. The program id this application pins is the one the program declares for itself in its own source.
There is nothing here for an auditor to be hired for, and that is the point: a multisig on Bitcoin is not a deployed program but a script the network’s own rules evaluate. What is worth reading instead is the specification.
The same again: the rule is a property of the account, enforced by the nodes rather than by code somebody deployed. There is no contract to audit because there is no contract.
Nothing to link, and that is the honest answer
An audit is a reading of a codebase at a commit, not a guarantee about the money in it — and none of these reports is about this application. They are about the contracts underneath it, which is exactly why they are worth more than a report we commissioned about ourselves would be.
KALAU KAMU MEMBAWA FRASA
Dua puluh empat kata yang sudah kamu pakai di tempat lain
Frasa pemulihan bukan satu kesepakatan, melainkan beberapa, dan mereka berselisih tepat pada hal yang sama: elemen jalur mana yang bergeser ketika kamu meminta “akun 2”. Setiap kesepakatan itu benar, dan sebuah frasa yang dibaca dengan kesepakatan yang salah menampilkan saldo nol untuk uang yang jaraknya persis satu baris aritmetika. Karena itu kesepakatannya tidak ditebak — ia sebuah pengaturan, satu per rantai, dan ia menawarkan daftar aplikasi alih-alih daftar spesifikasi. Uang yang tampak hilang adalah uang di jalur yang tidak sedang dilihat aplikasi ini.
Bitcoin
Native SegWitbawaan
m/84'/0'/{account}'/0/0
Electrum
BlueWallet
Sparrow
Exodus
Indeks alamat
m/84'/0'/0'/0/{account}
Trust Wallet
Muun
Phoenix
Ethereum & BNB Smart Chain
Indeks alamatbawaan
m/44'/60'/0'/0/{account}
MetaMask
Rabby
Trust Wallet
Rainbow
Phantom
Akun hardened
m/44'/60'/{account}'/0/0
Ledger Live
Trezor Suite
Exodus
Empat elemen
m/44'/60'/0'/{account}
MyEtherWallet (legacy)
Ledger (legacy)
Tron
Indeks alamatbawaan
m/44'/195'/0'/0/{account}
TronLink
Trust Wallet
Akun hardened
m/44'/195'/{account}'/0/0
Ledger Live
Trezor Suite
Solana
Empat elemenbawaan
m/44'/501'/{account}'/0'
Phantom
Solflare
Backpack
Hanya akun
m/44'/501'/{account}'
Ledger Live
Solflare (hardware)
Legacy
m/501'/{account}'/0/0
Sollet (legacy)
Tata letak legacy dan nested milik Bitcoin sengaja tidak ada. Pembangun alamatnya menurunkan native SegWit dan tidak yang lain, jadi sebuah m/44'/0'/… di sini akan menghasilkan bc1… di tempat setiap dompet lain menampilkan 1… atau 3… — sebuah string yang tampak benar, memang milik frasamu, dan bukan alamat yang dibaca siapa pun di jalur itu. Pilihan yang diam-diam berarti sesuatu selain apa yang dikatakannya lebih buruk daripada tidak ada pilihan.
KALAU KAMU MEMBAWA DOMPET
Kalau kamu datang dari tempat lain
Dua jalan masuk, dan keduanya di tahap yang berbeda
Dikatakan terus terang, karena halaman yang menceritakan rencana dengan suara yang sama seperti yang sudah jadi adalah halaman yang tidak bisa kamu pakai untuk memutuskan apa pun.
Frasa pemulihanmu — sudah bisa sekarang. Dua puluh empat kata, dan pertanyaan di dompet mana kamu memakainya. Setiap alamat yang dijelaskan tabel di atas diturunkan di perangkatmu dari frasa itu dan tidak disimpan di mana pun; sebuah akun EVM, akun Tron dan akun Solana adalah alamat yang sama di semua jaringan rantainya.
Multisig yang sudah ada — belum. Membacanya sudah selesai: pustaka di baliknya membuka sebuah Safe lewat alamat dan melaporkan pemilik, ambang dan versinya; ia membaca anggota dan ambang sebuah multisig Squads, penanda tangan dan bobot sebuah permission Tron, serta membongkar witness script Bitcoin kembali menjadi alamat, ambang dan kuncinya. Yang belum dibangun adalah layar yang menuntunmu melewati itu dan menempelkannya ke sebuah percakapan. Sampai itu ada, halaman ini tidak akan berpura-pura sebaliknya.
Sementara itu tidak ada yang menghentikanmu: sebuah Safe atau multisig Squads yang sudah kamu punya tetap bekerja di antarmuka tempat kamu membuatnya, karena ia memang tidak pernah menjadi apa pun selain sebuah Safe atau sebuah multisig Squads.
Tidak ada di situs ini yang merupakan nasihat keuangan: contoh hanyalah contoh, dan uang — serta risikonya — milikmu. Disklaimer.