COMPAX

SKUPINOVÁ PENĚŽENKA

Peníze skupiny
bez pokladníka

Peněženka bez majitele. Každý člen si drží vlastní klíč na vlastním zařízení a peníze se pohnou, když jich dost podepíše — libovolní dva ze tří, libovolných pět z devíti, jak si to skupina nastavila, když peněženku zakládala.

Nic z toho, co následuje, si nevymýšlíme. Každý řetězec už má způsob, jakým několik lidí drží jednu adresu, a používá se právě ten: P2WSH na Bitcoinu, Safe na řetězcích EVM, vlastní systém permission účtu na Tronu, Squads V4 na Solaně. Adresy na dalších stránkách jsou ta nasazení, se kterými tato aplikace mluví.

JAK TO FUNGUJE

Čtyři kroky, a jen
ten poslední je na řetězci

Platba je rozhovor dřív, než se stane transakcí. Není to metafora: děje se ve vlákně, ve zprávách, a řetězec ji uvidí až ve chvíli, kdy se skupina shodla.

  1. 1

    Skupina stanoví pravidlo

    Kdo podepisuje a kolik jich je potřeba. Zapíše se to do peněženky ve chvíli, kdy vzniká, a zapíše se to na řetězec, ne do této aplikace.

    Pravidlo se tu potom neupravuje: jiné pravidlo je jiná peněženka, s vlastní adresou, kterou je třeba naplnit a na kterou je třeba se přestěhovat. Některé řetězce by změnu dovolily a tato aplikace ji nedělá — a obrazovka to řekne dřív, než si řekne o druhé ťuknutí.

  2. 2

    Někdo navrhne platbu

    Přijde do rozhovoru jako zpráva, od toho, kdo ji vytvořil, a říká, co platí a komu. Dokud není podepsaná, je to žádost a nic víc.

    Návrh nese stejná šifrovaná skupina jako chat, takže ho server přenáší, aniž by ho četl.

  3. 3

    Každý podepisující podepisuje na svém zařízení

    Přečtete si to, jednou ťuknete, a je to podepsané klíčem, který nikdy neopustil telefon, kde vznikl. Počítadlo se pohne všem před očima.

    Žádné zařízení nikdy nedrží klíč druhého člověka, takže neexistuje zařízení, jehož ztráta by někomu vydala peněženku.

  4. 4

    Na prahu to jde na řetězec

    Podpisy se poskládají a rozešlou. Odtamtud pravidlo vymáhá řetězec, ne tato aplikace — a přesně proto se pravidlo dává tam.

    Kdyby tato aplikace zítra zmizela, peněženka by zůstala peněženkou a pravidlo pravidlem.

PĚT ŘETĚZCŮ

Jednotné rozhraní

Pět řetězců a pod nimi čtyři různé mechanismy: Bitcoin, Ethereum, BNB Smart Chain, Tron a Solana drží společnou adresu každý po svém. Nic z toho se nedostane na obrazovku: navrhnout platbu, podepsat ji a poslat je ve všech pěti stejné.

Bitcoin

P2WSH multisig · BIP 67 · PSBT

Svědecký skript, který se čte jako „m z těchto n klíčů“, a adresa, která je jeho otiskem. Klíče jsou seřazené lexikograficky, takže každý, kdo skript sestaví ze stejné množiny klíčů, dojde ke stejné adrese, a ne k n! různým.

Platba jede jako PSBT: jeden soubor, který obchází podepisující a sbírá podpisy, a je finalizován, jakmile jich má dost.

Skript
OP_m <key>… OP_n OP_CHECKMULTISIG
Podepisující
až 15, práh kdekoli mezi tím
Data řetězce
server Electrum

Ethereum

Safe · canonical deployment

Kontrakt, ve kterém už leží většina peněz, které skupiny na Ethereu drží. Proxy vytvoří kanonická továrna a ukazuje na kanonický singleton; vlastníci a práh se nastavují ve stejném volání, které ji vytváří.

Nic není forknuté a nic není znovu nasazené. Verze se čte z kontraktu, místo aby se předpokládala, protože Safe, který vytvořil někdo jiný, je Safe, který tohle otevře.

Singleton
0x41675C099F32341bf84BFc5382aF534df5C7461a
Továrna
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Dávkování
MultiSend — několik převodů, jedno schválení

BNB Smart Chain

Safe · the same addresses

Tytéž kontrakty na týchž adresách. Nasazení Safe jsou napříč řetězci EVM deterministická, takže tu není nic specifického pro řetězec k naučení a nic specifického pro řetězec ani v kódu.

Je to také důvod, proč je účet na Ethereu týmž účtem na BNB Smart Chain: jeden typ mince, jeden klíč, dva řetězce.

Kontrakty
shodné s těmi z Etherea, výše
Typ mince
60 — sdílený s Ethereem

Tron

Account permissions · no contract

Tron má pravidlo zabudované v účtech. Permission nese seznam klíčů, váhu pro každý a práh, a zapisuje se do samotného účtu — není co nasazovat a není žádný kontrakt, kterému by se muselo věřit.

Váhy znamenají, že pravidlo může být něco jiného než počítání hlav: jeden klíč za dva hlasy, tři klíče po jednom.

Zapisuje
AccountPermissionUpdate
Pravidlo
vážené klíče, jeden práh
Poznámka
aktualizace seznam nahrazuje, ne doplňuje

Solana

Squads Protocol V4

Program pro vícenásobný podpis, který používá většina pokladen na Solaně. Návrh je účet na řetězci: členové ho schvalují a provede se, jakmile schválení dosáhnou prahu.

Identifikátor programu rozhoduje o tom, odkud se odvozuje každý účet peněženky, takže je přibitý na zveřejněné nasazení a jiný se odmítne, místo aby se mu věřilo.

Program
SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf
Návrh
na řetězci, schvaluje se proti němu

PROČ TY STANDARDNÍ

Peněženka, která se otevře jen tady,
je peněženka někoho jiného

Existuje snazší způsob, jak to postavit: vlastní kontrakt na každém řetězci, vlastní formát, jedna aplikace, která mu rozumí. Kódu by bylo méně a bylo by to horší, protože peníze skupiny by pak závisely na tom, jestli tato aplikace bude dál existovat.

Co přináší používání těch standardních

Každý z těchto bodů je důsledkem té volby, ne funkce, která se přidala.

  • Prověřeno více lidmi než námi. Safe a Squads spolu drží miliardy a dívali se na ně tomu odpovídajícím způsobem. P2WSH a permissions na Tronu jsou pravidla konsensu.
  • Čitelné jinými nástroji. Adresa je obyčejný Safe, obyčejný multisig Squads, obyčejná adresa P2WSH, obyčejný permission na Tronu — prohlížeče bloků i vlastní rozhraní těchto protokolů je čtou, aniž by věděly, že tato aplikace existuje.
  • Není z čeho migrovat. Neexistuje vlastní formát, ve kterém by se dalo uvíznout, takže neexistuje ani pozdější okamžik, kdy by odchod něco stál.
  • Pravidlo nás přežije. Práh vymáhá řetězec. Tato aplikace je místem, kde skupina o platbě mluví, ne tím, co ji povoluje.

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.

Tron

Account permissions · consensus, not a contract

none

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.

KDYŽ PŘINESETE FRÁZI

Dvacet čtyři slov, která jste
už použili někde jinde

Obnovovací fráze není jedna konvence, je jich několik, a neshodnou se přesně na jedné věci: který prvek cesty se pohne, když si řeknete o „účet 2“. Každá z nich je správná, a fráze přečtená podle té nesprávné ukáže nulový zůstatek pro peníze, které jsou přesně jeden řádek aritmetiky daleko. Konvence se tu proto nehádá — je to nastavení, jedno pro každý řetězec, a nabízí seznam aplikací místo seznamu specifikací. Peníze, které vypadají jako ztracené, jsou peníze na cestě, na kterou se tato aplikace nedívala.

Bitcoin

Native SegWit výchozí

m/84'/0'/{account}'/0/0

  • Electrum
  • BlueWallet
  • Sparrow
  • Exodus

Index adresy

m/84'/0'/0'/0/{account}

  • Trust Wallet
  • Muun
  • Phoenix

Ethereum &amp; BNB Smart Chain

Index adresy výchozí

m/44'/60'/0'/0/{account}

  • MetaMask
  • Rabby
  • Trust Wallet
  • Rainbow
  • Phantom

Zpevněný účet

m/44'/60'/{account}'/0/0

  • Ledger Live
  • Trezor Suite
  • Exodus

Čtyři prvky

m/44'/60'/0'/{account}

  • MyEtherWallet (legacy)
  • Ledger (legacy)

Tron

Index adresy výchozí

m/44'/195'/0'/0/{account}

  • TronLink
  • Trust Wallet

Zpevněný účet

m/44'/195'/{account}'/0/0

  • Ledger Live
  • Trezor Suite

Solana

Čtyři prvky výchozí

m/44'/501'/{account}'/0'

  • Phantom
  • Solflare
  • Backpack

Jen účet

m/44'/501'/{account}'

  • Ledger Live
  • Solflare (hardware)

Legacy

m/501'/{account}'/0/0

  • Sollet (legacy)

Rozvržení legacy a nested u Bitcoinu tu záměrně nejsou. Stavitel adres odvozuje native SegWit a nic jiného, takže m/44'/0'/… by tu dalo bc1… tam, kde každá jiná peněženka ukazuje 1… nebo 3… — řetězec znaků, který vypadá správně, patří k vaší frázi, a není to adresa, kterou na té cestě přečte kdokoli jiný. Volba, která potichu znamená něco jiného, než co říká, je horší než žádná volba.

KDYŽ PŘINESETE PENĚŽENKU

Když přicházíte odjinud

Dvě cesty dovnitř, a jsou v různých fázích

Řečeno na rovinu, protože stránka, která popisuje zamýšlené stejným hlasem jako hotové, je stránka, podle které se nedá nic rozhodnout.

  • Vaše obnovovací fráze — už teď. Dvacet čtyři slov a otázka, ve které peněžence jste je použili. Každá adresa, kterou popisuje tabulka výše, se odvozuje z fráze na vašem zařízení a nikde se neukládá; účet EVM, účet Tron a účet Solana jsou tatáž adresa na všech sítích daného řetězce.
  • Multisig, který už existuje — zatím ne. Čtení je hotové: knihovna pod tím otevře Safe podle adresy a oznámí jeho vlastníky, práh a verzi; přečte členy a práh multisigu Squads, podepisující a váhy permissionu na Tronu a rozloží svědecký skript Bitcoinu zpět na adresu, práh a klíče. Co hotové není, je obrazovka, která vás tím provede a připojí to k rozhovoru. Dokud není, tato stránka nebude předstírat opak.

Mezitím vám nic nebrání: Safe nebo multisig Squads, který už máte, funguje dál v tom rozhraní, kde jste ho vytvořili, protože nikdy nebyl ničím jiným než Safe nebo multisigem Squads.

Nic na těchto stránkách není finanční rada: příklady jsou příklady a peníze — i riziko — jsou vaše. Upozornění.