„Change address“ je adresní zápis skriptu tohoto výstupu, technicky však jde o scriptPubKey a nové UTXO, nikoli o zůstatek účtu. Při součtu vstupů I, výstupů příjemcům R a poplatku F platí C = I − R − F. Při přesném výběru nebo neekonomickém zbytku nemusí peněženka change vůbec vytvořit.
Bitcoin utrácí celá UTXO; z jednoho vstupu nelze odečíst jen část. Zvolí-li peněženka vstupy 120 000 sat pro platbu 100 000 sat a fee 2 000 sat, musí zbývajících 18 000 sat vložit do dalšího výstupu, nebo je ponechat jako fee. Výstup příjemce a change mají v serializaci stejné postavení a pořadí nemá konsenzuální význam. Po potvrzení je change nové UTXO s vlastním outpointem, potvrzením a budoucí cenou útraty. [Bitcoin Developer Guide — Transactions]
Coin selection vybírá společně vstupy, fee a případný change. Přesná kombinace výstup nevytvoří; jinak peněženka porovná zbytek s cenou jeho vytvoření a pozdější útraty. Funding RPC Bitcoin Core může doplnit nejvýše jeden change output a vrací jeho pozici, zatímco send-all žádný mít nemá. Coin control mění použité vstupy, a tím change, ale každý ručně vybraný vstup se spotřebuje celý. Kontrolujte finální vstupy, částky příjemců, fee i change. [Bitcoin Core — Coin Selection Implementation] [Bitcoin Core RPC — fundrawtransaction] [Bitcoin Optech — Coin Selection]
HD peněženky obvykle odvozují přijímací skripty na external branch a change na internal branch. BIP44 označuje change=0 jako externí a change=1 jako interní: například m/84'/0'/0'/0/i a m/84'/0'/0'/1/i pro native SegWit účet. Jde o aplikační konvenci, ne konsenzus; descriptor wallet může mít jinou policy. Nová interní adresa omezuje address reuse, zatímco návrat na původní adresu je platný, ale propojuje historii. [BIP 32 — Hierarchical Deterministic Wallets] [BIP 44 — Multi-Account Hierarchy]
Output descriptor spojuje typ skriptu, keys, origins a derivační wildcard určující vlastnictví. Dvojice wpkh([fingerprint/84h/0h/0h]xpub…/0/*) a …/1/* popíše receive a change; BIP389 dovoluje multipath zápis. Příznak internal vybírá descriptor pro change, samotný script nemění. Seed bez údaje o účtu, script type a derivation policy může po obnově nechat platné change neviditelné, přestože klíče existují. [BIP 380 — Output Script Descriptors] [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core — Output Descriptors]
Blok obsahuje hodnoty a scriptPubKeys, nikoli štítky plátce, příjemce či change. Peněženka pozná vlastní change z derivačních záznamů, explorer jen hádá. Pořadí výstupů ani pravidlo „druhý výstup“ není spolehlivé. Transakce může mít žádný change, jeden, více self-controlled outputs nebo výstupy několika účastníků. Change je proto klasifikace relativní k peněžence, nikoli vlastnost zapsaná protokolem. [Bitcoin Developer Guide — Transactions]
Běžné heuristiky označují za change výstup stejného script type jako inputs, nelichotivě zaokrouhlenou částku, čerstvou adresu nebo hodnotu odpovídající aritmetice vstupů. U obyčejné platby se dvěma outputs často fungují, každá však má protipříklady. BIP78 Payjoin záměrně rozbíjí common-input i script-type a round-amount heuristiky; CoinJoin, batching a self-transfer přidávají další nejednoznačnost. Výsledek má mít míru jistoty a oporu, ne status protokolového důkazu. [BIP 78 — Payjoin] [Meiklejohn et al. — A Fistful of Bitcoins]
Dust je relay policy uzlu vypočtená z typu výstupu, odhadované velikosti jeho budoucí útraty a nastavitelného dust relay feerate; není to univerzální počet satoshi ani zákaz konsenzu. Peněženka může odmítnout change vysoko nad dust, když tvorba a pozdější spend stojí více než jeho hodnota. Ekonomická mez závisí na aktuálním i dlouhodobém feerate a velikosti skriptu. Potlačení change zvýší dnešní fee, příliš malé change může uváznout. [Bitcoin Core — Transaction Relay Policy]
V PSBT dovolují output BIP32 derivations hardwarovému či offline signerovi odvodit navržený výstup a ověřit návrat do stejné wallet policy. BIP174 popisuje detekci pro single-key i multisig; u multisigu nestačí shoda jediného místního klíče. Škodlivý coordinator může change nahradit vlastním outputem nebo zbytek skrýt v přemrštěném fee. Signer má na důvěryhodném displeji ověřit příjemce, celkový fee a každý deklarovaný change. [BIP 174 — Partially Signed Bitcoin Transaction Format]
Replace-by-fee mění ekonomiku nepotvrzené transakce. bumpfee v Bitcoin Core může vyšší fee zaplatit zmenšením change, přidáním inputs nebo vytvořením change; po poklesu pod policy či ekonomickou mez change zmizí. Útrata nepotvrzeného change vytváří descendant závislý na parent replacement a CPFP používá wallet-controlled output ke zvýšení package feerate. Nepotvrzený txid/outpoint nepovažujte před ustálením replacements za konečný. [Bitcoin Core RPC — bumpfee]
Úplná obnova vyžaduje seed či signing keys i receive/internal descriptors, key origins, účet, síť, script policy, derivační rozsahy a dostatečně starý začátek scanu. Chybějící /1/* typicky zkrátí zůstatek, protože change není nalezeno. U multisigu zachovejte všechny cosigner xpubs, threshold a ordering na obou větvích. Obnovu otestujte shodou známých receive/change scripts, rekonstrukcí UTXO, vytvořením PSBT a ověřením change na každém signerovi. [BIP 32 — Hierarchical Deterministic Wallets] [BIP 380 — Output Script Descriptors] [BIP 389 — Multipath Descriptor Key Expressions]
Pro nejúplnější obraz čtěte toto heslo společně s Bitcoinová adresa, UTXO, Coin Control, Bitcoinová peněženka, Coin Selection, HD Wallet. Opačným směrem na něj odkazují také Bitcoinová adresa, Coin Control, Soukromí v Bitcoinu, Pseudonymita.