31 / 736M-of-N

Multisig

společné schvalování platby více klíči

Platbu nemusí schvalovat jediný klíč. Multisig dovoluje nastavit například pravidlo, že ze tří nezávislých klíčů musejí podepsat libovolné dva.

Multisig je způsob zabezpečení bitcoinů, při kterém k jejich utracení potřebujete podpisy více určených klíčů. U pravidla 2 ze 3 stačí libovolné dva ze tří různých klíčů. Ztráta jednoho tak nemusí znamenat ztrátu peněz a zloději samotný jeden klíč nestačí. Podmínkou je správně připravená záloha a skutečné oddělení klíčů.

Multisig: simulátor prahu podpisůVyzkoušejte, zda zbývající klíče v modelu m z n stačí k dosažení prahu podpisů. Výsledek popisuje dostupnost podpisů, nikoli bezpečnost nebo úplnou obnovitelnost peněženky.

Alice nechce, aby o všech jejích úsporách rozhodovalo jediné zařízení. Vytvoří peněženku s pravidlem 2 ze 3 a třemi nezávislými klíči, označenými A, B a C. Platbu může schválit dvojice A + B, A + C nebo B + C. Každý podpis je matematicky ověřitelný souhlas vytvořený příslušným soukromým klíčem; klíč samotný se do sítě neposílá. Pokud ztratí A, stále může použít B a C, má-li i potřebné údaje peněženky. Kdyby někdo ukradl pouze A, sám peníze neodešle. Bitcoiny přitom nejsou rozdělené na tři hromádky. Společné pravidlo chrání celé příslušné prostředky. Klíče mohou mít tři lidé, ale také jediný člověk na oddělených zařízeních. Tři kopie stejné Seed Phrase, tedy stejné záložní sady slov, tři nezávislé klíče nevytvoří. [1] [2]

Alice v aplikaci zadá adresu příjemce a částku. Aplikace v roli koordinátoru připraví návrh transakce a předá jej podepisujícím zařízením. Často k tomu používá PSBT: formát, který přenáší údaje o připravované platbě a postupně přidávané podpisy. Zařízení proto nemusejí být současně připojená ani na jednom místě a soukromé klíče zůstávají oddělené. Před podpisem Alice na důvěryhodném displeji každého použitého zařízení ověří příjemce, částku a poplatek. Zařízení má podle ověřených pravidel peněženky poznat také výstup, kterým se nevyužitý zbytek vrací jí. Dva podpisy pod podvrženou platbou ji totiž nezachrání. Koordinátor chybějící podpis nevymyslí, ale může předložit chybný návrh. Teprve po získání potřebných podpisů a dokončení transakce ji aplikace odešle do sítě. [5]

Každý nezávislý klíč potřebuje vlastní bezpečnou zálohu. K obnově celé peněženky však nestačí automaticky jen dvě sady slov. Je potřeba znát i společnou konfiguraci: požadovaný počet podpisů, veřejné údaje všech tří klíčů, jejich pořadí a způsob vytváření adres. To lze uchovat jako Output Descriptor, přesný technický popis peněženky, nebo v odpovídajícím exportu její konfigurace. Veřejný descriptor bez soukromých klíčů sám platbu nepodepíše, ale může odhalovat adresy a pohyb peněz, takže také patří do soukromí. Alice si nejprve s malou částkou ověří příjem, odeslání i obnovu. Když pak klíč A ztratí nebo má podezření na jeho únik, pouhé odstranění zařízení z aplikace staré pravidlo nezmění. Se zbývajícími klíči musí převést prostředky na nově ověřené adresy s novou sadou klíčů. [4] [6]

Pravidlo 2 ze 3 snese ztrátu jednoho klíče; pravidlo 2 ze 2 nesnese ztrátu žádného. Zároveň u prvního pravidla stačí k utracení libovolná dvojice, třeba i dvě osoby, které se dohodnou bez třetí. Vhodné nastavení proto záleží na tom, komu má chránit peníze a před jakým selháním. Pokud Alice uloží všechna zařízení i zálohy do stejné zásuvky, jediná krádež nebo požár může výhodu oddělení zničit. Přibývá také práce s kontrolou plateb, kompatibilitou peněženek a obnovou. Podmínky útraty tu popisuje skript, krátký program. Běžná skriptová multisig transakce obvykle zabere více místa než srovnatelná transakce s jedním podpisem, a při stejné sazbě tak stojí více. Pro začátečníka může být dobře zvládnutá jednoduchá peněženka bezpečnější než složité nastavení, kterému nerozumí. [1] [2]

Obecný zápis m z n znamená, že z n určených klíčů je zapotřebí m platných podpisů. V klasickém skriptovém Multisig jsou veřejné klíče a tento práh součástí podmínky útraty. Výstup transakce tuto podmínku určuje přímo nebo se na příslušný skript kryptograficky odkazuje. Při utracení uzly, tedy počítače kontrolující pravidla Bitcoinu, ověří požadované podpisy a data skriptu; nejde jen o svolení aplikace. V deskriptorech zápis multi zachovává zadané pořadí veřejných klíčů, zatímco sortedmulti je řadí podle přesného pravidla. Odvozovací cesta určuje, které konkrétní klíče má peněženka ze svých výchozích údajů vypočítat. Nesprávné pořadí či jiné odvozovací cesty mohou vytvořit odlišné adresy. Descriptor slouží peněžence k rekonstrukci těchto podmínek; sám se jako konfigurační soubor do blockchainu neukládá. Toto vysvětlení se týká běžného skriptového Multisig. Jiné konstrukce mohou více účastníků spojit za jeden společný podpis a mají vlastní pravidla. [3] [4] [7]

Příklad · M-of-N

Pravidlo 2 ze 3

Multisig se třemi různými klíči vyžaduje platné podpisy libovolných dvou. Jeden odcizený klíč sám nestačí; po ztrátě jednoho lze utratit se zbývajícími dvěma, pokud máte i potřebná data skriptu. Klíče a jejich zálohy oddělte a uchovejte úplný Output Descriptor či odpovídající pravidlo peněženky.

Pro nejúplnější obraz čtěte toto heslo společně s Private Key, Peněženka, PSBT. Opačným směrem na něj odkazují také HD Wallet, Cold Storage, Watch-only Wallet, Change Address.

01Je Multisig automaticky bezpečnější než jedna Hardware Wallet?

Ne. Správně oddělené klíče a zálohy mohou omezit jediný bod selhání, ale více účastníků přidává provozní složitost. Potřebujete ověřené pravidlo peněženky a vyzkoušenou obnovu; společný napadený koordinátor může všem předložit chybnou platbu.

02Musejí být všechny klíče Multisig při podpisu na jednom místě?

Ne. PSBT umožňuje oddělené předání údajů a podpisů bez shromáždění soukromých klíčů. Každý podepisující má ověřit příjemce, částky a poplatek. Před vysíláním je nutné dokončit transakci s potřebnými platnými podpisy a splnit všechny další podmínky vstupů.

DOC · 001Bitcoin Developer Guide — P2SH MultisigDokumentace DOC · 002BIP 11 — M-of-N Standard TransactionsPrimární zdroj DOC · 003BIP 67 — Deterministic key sortingPrimární zdroj DOC · 004BIP 383 — Multisig output descriptorsPrimární zdroj DOC · 005BIP 174 — Partially Signed Bitcoin Transaction FormatPrimární zdroj DOC · 006BIP 380 — Output Script DescriptorsPrimární zdroj DOC · 007BIP 327 — MuSig2Primární zdroj
Revidováno: Primární zdroje · Nejde o investiční doporučení