Coin Selection je postup peněženky vybírající UTXO pro výstupy a poplatek transakce. Jde o místní rozhodování, nikoli konsenzuální pravidlo předepisující všem peněženkám stejný algoritmus.
Každý vstup utrácí celé konkrétní UTXO. Rozdíl mezi součtem vstupů a výstupů je poplatek; část vracená odesílateli musí být samostatný výstup. V modelovém příkladu vstup 100000 sat, platba 60000 sat a poplatek 1000 sat znamenají vratku 39000 sat. [Bitcoin Developer Guide — Transactions]
Samotná nominální částka nestačí: přidání vstupu zvětší transakci. Efektivní hodnota odečítá od UTXO náklad jeho utracení při zvolené sazbě. Modelový vstup 10000 sat s odhadovanými 68 vB při 10 sat/vB přispěje 9320 sat; zbývající části transakce stále potřebují vlastní poplatek. Skutečný rozměr závisí na skriptu a podpisu. [Bitcoin Core — Coin selection implementation] [Bitcoin Core 29.0 — Transaction creation]
Branch-and-bound (BnB) prohledává kombinace vstupů pro platbu bez vratky. Cílové rozmezí připouští přebytek do nákladů vytvoření a pozdějšího utracení vratky; přebytek připadne poplatku. Nejde pouze o přesnou shodu. Omezené hledání nemusí najít řešení ani globální optimum. [Bitcoin Core — Coin selection implementation]
Bitcoin Core 29.0 zvažuje BnB, Knapsack a Single Random Draw (SRD); CoinGrinder se zapojuje při efektivní sazbě vyšší než trojnásobek dlouhodobé. Kandidáty porovnává podle waste metric. Při odečítání poplatku z výstupů BnB vynechává. Toto je popis konkrétní verze, nikoli univerzální pořadí algoritmů všech peněženek. [Bitcoin Core 29.0 — Transaction creation]
Waste metric porovnává náklady vstupů nyní a při dlouhodobé sazbě, spolu s náklady vratky nebo přebytkem odevzdaným na poplatek. Dlouhodobá sazba je předpoklad, ne předpověď. Konsolidace může snížit počet budoucích vstupů, ale stojí poplatek dnes a propojí použité výstupy; nejmenší okamžitý poplatek proto není jediným cílem. [Bitcoin Core — Coin selection implementation] [Bitcoin Design — Coin selection and privacy]
Společné utracení různých příjmů dává analytikům vodítko k jejich propojení, nikoli důkaz jediné osoby. Coin Control a štítky pomáhají držet oddělené kontexty plateb. BIP 329 popisuje přenos štítků a metadat utratitelnosti; sám nerozhoduje o výběru a export může odhalovat citlivé vazby. Ani absence vratky nezaručuje anonymitu. [BIP 329 — Wallet Labels Export Format] [Bitcoin Design — Coin selection and privacy]
Výběr musí respektovat utratitelnost, potvrzení, zamčené výstupy a limity transakce. V RPC walletcreatefundedpsbt z Core 29.0 include_unsafe dovoluje také rizikové nepotvrzené vstupy; pokud jejich transakce zmizí, vytvořená platba se může stát neplatnou. Nepotvrzení předkové mohou navíc vyžadovat poplatek navíc. Vysoký zůstatek sám nezaručuje vhodnou kombinaci vstupů. [Bitcoin Core 29.0 — Transaction creation] [Bitcoin Core 29.0 — walletcreatefundedpsbt RPC]
U walletcreatefundedpsbt v Core 29.0 lze vstupy určit přes txid a vout; add_inputs řídí doplnění dalších. fee_rate používá sat/vB, zatímco feeRate BTC/kvB. Výsledek PSBT je příprava k dalšímu zpracování, nikoli potvrzená platba. Před podpisem se kontrolují příjemci, celkový poplatek a vlastní vratka; ruční výběr tuto odpovědnost neruší. [Bitcoin Core 29.0 — walletcreatefundedpsbt RPC]
Pro nejúplnější obraz čtěte toto heslo společně s UTXO, Coin Control, Výstup na vrácení, Fee Rate, PSBT, Soukromí v Bitcoinu. Opačným směrem na něj odkazují také Watch-only Wallet, Výstup na vrácení.