Coin Control je funkce peněženky, ve které sami vyberete prostředky pro konkrétní platbu. Bitcoinový zůstatek se skládá z jednotlivých neutracených výstupů předchozích transakcí, zkráceně UTXO. Peněženka je obvykle vybírá automaticky; Coin Control vám dovolí její výběr převzít.
Alice dostala 120 000 sat za práci a dalších 80 000 sat jako dar. Sat je nejmenší jednotka bitcoinu. Peněženka ukazuje celkem 200 000 sat, ale pod tímto číslem jsou v našem příkladu dvě samostatná UTXO. Když chce Alice zaplatit, nemusí použít obě. V Coin Control si otevře jejich seznam a vybere například jen příjem za práci. Štítky jako „práce“ a „dar“ jí pomáhají neztratit přehled; jsou to její poznámky v peněžence, nikoli důkaz původu peněz. Bez takového důvodu může výběr nechat na peněžence. [3]
Alice vybere UTXO o hodnotě 120 000 sat a chce poslat 100 000 sat. Vybraný výstup se utratí celý, podobně jako když zaplatíte větší bankovkou a dostanete zpět. Předpokládejme, že výsledná transakce má virtuální velikost 200 vB a sazbu 5 sat/vB. vB je jednotka velikosti používaná při výpočtu poplatku: zde je poplatek 1 000 sat. Příjemce dostane 100 000 sat a 19 000 sat se vrátí Alici v novém výstupu, kterému se říká change. Druhé UTXO s 80 000 sat zůstane nedotčené. Čísla jsou model se zadanou velikostí a poplatkem hrazeným odesílatelem, ne univerzální velikost každé platby. [4]
Každé použité UTXO tvoří vstup nové transakce a přidává do ní data. Při stejném typu vstupů a stejné sazbě proto platba z deseti malých příjmů obvykle stojí více než platba z jednoho velkého. Neplatíte procento z posílané částky. Peněženka počítá poplatek z velikosti a zvolené sazby. Více drobných UTXO lze spojit do jednoho vlastního výstupu; tomu se říká konsolidace. Při nízkých sazbách může ušetřit práci a poplatky při budoucím utrácení, ale sama také stojí poplatek a veřejně propojí použité prostředky. [1]
Kdyby Alice utratila příjem za práci i dar v jedné transakci, pozorovatel blockchainu by mohl usoudit, že oba zdroje ovládá stejný člověk. Blockchain je veřejný záznam transakcí; její soukromé štítky v něm vidět nejsou, spojení vstupů však ano. Oddělený výběr může zabránit tomuto konkrétnímu propojení. Neznamená ale anonymitu: jiné souvislosti už mohou být známé. Ani společné vstupy nejsou jistým důkazem jednoho vlastníka. Například Payjoin umožňuje, aby se na vstupní straně jedné platby podíleli odesílatel i příjemce. [2]
Aliciných 19 000 sat neputuje zpět později v další transakci. Change vznikne rovnou v té samé platbě jako nový výstup pro její peněženku. I tento zbytek má historii: vznikl z příjmu za práci. Pokud jej Alice později spojí s darem, propojení, kterému se původně vyhnula, tím může vytvořit. Pomáhá proto sledovat i vratné výstupy a nepovažovat novou adresu automaticky za nový začátek soukromí. Velká vratka znamená velký přebytek vybrané hodnoty nad platbou a poplatkem, nikoli sama o sobě chybný výběr. [2]
Než Alice platbu podepíše, podívá se na skutečně použité vstupy, celou adresu příjemce, částku, vlastní change a celkový poplatek. Podpis je souhlas s konkrétní transakcí; seznam zaškrtnutých položek ještě není hotová platba. Vybrané prostředky musí stačit na částku i poplatek. Pokud utrácíte dosud nepotvrzený příjem, nová platba závisí na transakci, ze které peníze pocházejí. Jestliže se tato předchozí transakce do blockchainu vůbec nedostane, nepotvrdí se ani platba, která utrácí její výstup. Ruční výběr má pomáhat rozumět platbě, ne vybízet ke změnám nastavení, jejichž důsledky neznáte. [4]
Chování záleží na programu a jeho verzi. Příkaz fundrawtransaction v Bitcoin Core v29.0 má standardně zapnuté add_inputs: pokud předem zadané vstupy nestačí, může doplnit další. Kdo chce utratit výhradně vybraná UTXO, musí ověřit tuto volbu i finální návrh. Pro kontrolu seznamu slouží listunspent. Pole txid označuje předchozí transakci a vout pořadí jejího výstupu; společně určují konkrétní UTXO. Hodnota solvable říká, že program zná způsob utracení, nikoli že má potřebné soukromé klíče. Samotné sestavení transakce chybějící podpisy nedodá. [4] [3]
Coin Control dává smysl, když víte, proč chcete určité příjmy oddělit, nebo chcete porozumět nákladům na jejich utracení. Nenahradí bezpečnou zálohu, nezmění minulost prostředků a nesmaže vazbu, kterou jste už zveřejnili. Nemusíte jej používat při každé platbě. Důležité je poznat, kdy vám automatický výběr vyhovuje a kdy potřebujete rozhodnout sami — a potom zkontrolovat, že připravená transakce vašemu záměru skutečně odpovídá. [3] [2]
Pro nejúplnější obraz čtěte toto heslo společně s UTXO, Peněženka, Change Address, Soukromí v Bitcoinu. Opačným směrem na něj odkazují také Change Address, CoinJoin, Soukromí v Bitcoinu, Coin Selection.