Dead Man’s Switch je mechanismus, který po chybějícím potvrzení nebo uplynutí lhůty umožní předem stanovený krok. Může odeslat zprávu, nebo zpřístupnit další cestu k utracení bitcoinů. Sám nepozná, zda majitel zemřel, a technický přístup není dokladem dědického nároku.
Anna si chce připravit plán pro rodinu: dokud může, spravuje své bitcoiny sama; kdyby dlouho nebyla dostupná, mají existovat další možnosti. Peněženka je aplikace nebo zařízení pro přijímání a odesílání bitcoinů. Podepsat tu znamená vytvořit pomocí soukromého klíče, tajného číselného údaje, ověřitelný důkaz oprávnění k platbě. Ostatní mohou podpis zkontrolovat, aniž by tento tajný údaj znali. Výstup transakce je záznam částky a podmínek, za nichž ji lze později utratit. Dead Man’s Switch vyhodnocuje konkrétní signál, například chybějící potvrzení nebo stáří určitého výstupu. Nepozná však, proč se majitel přestal ozývat. Stejnou podmínku může splnit hospitalizace, rozbitý telefon i zapomenutá údržba. Proto je potřeba nejdřív říct, co má systém skutečně pozorovat a co smí následovat. Ani správně fungující mechanismus neověří, kdo je oprávněný dědic. Je pomocnou částí plánu, ne náhradou všech rozhodnutí kolem něj. [1] [5] [8] [9]
Služba deadmansswitch.net ukazuje zprávovou variantu: člověk připraví e-maily, zvolí příjemce a průběžně potvrzuje, že se ozývá. Po zmeškaných potvrzeních služba zprávy odešle. To se liší od Bitcoin Script, pravidel, která síť kontroluje při utrácení. E-mail může rodině říct, kde hledat podklady, ale sám jí potřebné podpisy nezajistí. Je třeba počítat s nedoručenou zprávou, ztrátou účtu i předčasným odhalením obsahu. Seed Phrase, slova pro odvození klíčů peněženky, nejsou obyčejná poznámka: když uniknou, změna časovače už neodvolá cizí znalost. Je nutné řešit i přesun ohrožených prostředků pod nové klíče. [7]
Druhá varianta je přímo v podmínkách peněženky. Například Liana rozlišuje hlavní cestu dostupnou hned a obnovovací cestu, která se otevře po stanoveném čekání. V takovém modelu Annino původní oprávnění vypršením čekání nezaniká. Pouze přibude další možnost; někdo stále musí vytvořit, podepsat a odeslat platnou transakci. Pokud mají oba držitelé použitelnou cestu, může mezi nimi vzniknout závod o stejný UTXO, tedy konkrétní dosud neutracený výstup transakce. Rozhoduje potvrzené utracení v řetězci, nikoli jmenovka „vlastník“ nebo „dědic“ v aplikaci. Zmeškaná údržba tak může zpřístupnit prostředky další osobě i za Annina života. [1] [5]
Praktická příprava začíná s předstihem před nejbližší lhůtou. Anna potřebuje funkční připomínky, časovou rezervu a prostředky na případné transakční poplatky. Častější obnovování stojí poplatky; delší čekání naopak odkládá použití obnovovací cesty. Rodina potřebuje nejen správné klíče, ale také srozumitelný popis peněženky a vhodný nástroj. Output Descriptor je strojově čitelný popis klíčů a podmínek, podle kterých se hledají a utrácejí výstupy; samotná konfigurace nenahrazuje potřebné podpisy. Podklady nesmějí uvíznout v účtu, který se odemyká pouze Anniným nedostupným telefonem. Taková záloha existuje, ale při potřebě obnovy je nepoužitelná. [5] [6]
U relativního časového omezení běží čekání pro každý UTXO zvlášť. Blok sdružuje transakce do dávky, která se připojuje ke společné historii. Pokud se výstup potvrdil v bloku H a další větev vyžaduje 1000 bloků, může být použitelná nejdříve v H+1000, jsou-li splněny ostatní podmínky. Přihlášení do aplikace ani příjem jiné platby jeho stáří nevynuluje. Anna musí tento konkrétní výstup utratit a nechat potvrdit nový se zamýšlenými podmínkami. Když takto obnoví jen část peněženky, zbývající staré výstupy mohou být pořád blízko hranice. „Byla jsem dnes ve své peněžence“ tedy není totéž jako „obnovila jsem časový plán všech mincí“. [1] [2] [9] [10]
Timelock je podmínka omezující, kdy lze danou cestu použít. BIP 65 a OP_CHECKLOCKTIMEVERIFY pracují s absolutní hranicí, například výškou bloku. BIP 112 a OP_CHECKSEQUENCEVERIFY spolu s BIP 68 mohou vyžadovat stáří konkrétního UTXO. Časová varianta relativní lhůty se počítá v jednotkách 512 sekund a používá median-time-past, čas odvozený z bloků. BIP 113 pro něj popisuje medián časů předchozích 11 bloků, tedy prostřední hodnotu po seřazení. Není to čas z mobilu ani slib přesného kalendářního okamžiku. Tyto dokumenty popisují pravidla; pro běžného čtenáře je důležité vědět, jaké hodiny používá jeho konkrétní plán. [1] [2] [3] [4]
Jiný plán může rodině předat už podepsanou transakci s odkladem. Pole nLockTime říká, kdy se smí potvrdit tato transakce; samo nezakazuje držiteli klíče podepsat jinou. Předpodpis odkazuje na určité UTXO, zamýšlené cíle a způsob úhrady poplatku. Pokud se jeho vstup mezitím utratí jinou potvrzenou transakcí, starý předpodpis už nepůjde použít. Aktualizace dokumentu proto sama neaktualizuje peníze ani podklady, které má rodina. Při změně plánu je nutné zkontrolovat skutečné výstupy, podpisová oprávnění a to, zda příjemci dostali novou použitelnou sadu informací. [3]
Liana zveřejňuje návod pro Signet, oddělenou testovací síť bez skutečné hodnoty testovacích mincí. Právě tam lze zkoušet předčasný pokus, otevření obnovovací větve a obnovení lhůty konkrétního UTXO. Pro vlastní plán má smysl projít také nedoručené upozornění, ztrátu hlavního klíče a obnovu ze skutečně uložených podkladů testovací peněženky. Po změně příjemce je třeba ověřit, co stále dovolují staré klíče a staré výstupy. Platný podpis, přijetí do mempoolu, zásobníku nepotvrzených transakcí, a potvrzení v bloku jsou různé kroky. Jedna úspěšná ukázka neznamená, že plán zvládne každé selhání. [6] [1]
Pro nejúplnější obraz čtěte toto heslo společně s Bitcoin Inheritance Plan, Timelock, Bitcoin Vault, Miniscript, Output Descriptor, Seed Phrase. Opačným směrem na něj odkazují také Bitcoin Inheritance Plan.