142 / 691SELECT

Coin Selection

Wybór UTXO do transakcji

Coin Selection określa, które UTXO wyda portfel. Wpływa na obecną opłatę, resztę, przyszłe koszty i powiązania historii płatności.

Coin Selection to procedura portfela wybierająca UTXO do sfinansowania wyjść i opłaty transakcji. Jest decyzją lokalną, a nie regułą konsensusu narzucającą wszystkim portfelom ten sam algorytm.

Każde wejście wydaje całe konkretne UTXO. Różnica między sumą wejść a sumą wyjść stanowi opłatę; kwota zwracana nadawcy wymaga osobnego wyjścia. W przykładowym obliczeniu wejście 100000 sat, płatność 60000 sat i opłata 1000 sat oznaczają resztę 39000 sat. [Bitcoin Developer Guide — Transactions]

Sama kwota nominalna nie wystarcza: dodanie wejścia powiększa transakcję. Wartość efektywna odejmuje od UTXO koszt jego wydania przy wybranej stawce. Przykładowe wejście 10000 sat o szacowanej wielkości 68 vB przy 10 sat/vB wnosi 9320 sat; pozostała część transakcji nadal wymaga własnej opłaty. Rzeczywisty rozmiar zależy od skryptu i podpisu. [Bitcoin Core — Coin selection implementation] [Bitcoin Core 29.0 — Transaction creation]

Branch-and-bound (BnB) przeszukuje kombinacje wejść dla płatności bez reszty. Zakres docelowy dopuszcza nadwyżkę do kosztu utworzenia i późniejszego wydania reszty; nadwyżka trafia do opłaty. Dokładna zgodność nie jest konieczna. Ograniczone przeszukiwanie może nie znaleźć rozwiązania ani globalnego optimum. [Bitcoin Core — Coin selection implementation]

Bitcoin Core 29.0 rozważa BnB, Knapsack i Single Random Draw (SRD); CoinGrinder uczestniczy, gdy efektywna stawka przekracza trzykrotność stawki długoterminowej. Kandydatów porównuje według waste metric. Przy potrącaniu opłaty z wyjść pomija BnB. To opis konkretnej wersji, a nie uniwersalnej kolejności algorytmów wszystkich portfeli. [Bitcoin Core 29.0 — Transaction creation]

Waste metric porównuje koszty wejść teraz i przy długoterminowej stawce, wraz z kosztem reszty lub nadwyżką oddaną na opłatę. Stawka długoterminowa jest założeniem, nie prognozą. Konsolidacja może zmniejszyć liczbę przyszłych wejść, ale kosztuje opłatę dzisiaj i łączy użyte wyjścia; najniższa bieżąca opłata nie jest więc jedynym celem. [Bitcoin Core — Coin selection implementation] [Bitcoin Design — Coin selection and privacy]

Wspólne wydanie różnych wpływów daje analitykom wskazówkę o ich powiązaniu, a nie dowód jednej osoby. Coin Control i etykiety pomagają rozdzielać konteksty płatności. BIP 329 opisuje przenoszenie etykiet i metadanych możliwości wydawania; sam nie wybiera monet, a eksport może ujawnić wrażliwe powiązania. Nawet brak reszty nie gwarantuje anonimowości. [BIP 329 — Wallet Labels Export Format] [Bitcoin Design — Coin selection and privacy]

Wybór musi uwzględniać możliwość wydania, potwierdzenia, zablokowane wyjścia i limity transakcji. W RPC walletcreatefundedpsbt z Core 29.0 include_unsafe dopuszcza także ryzykowne niepotwierdzone wejścia; jeśli ich transakcje znikną, utworzona płatność może stać się nieważna. Niepotwierdzeni przodkowie mogą wymagać dodatkowej opłaty. Wysokie saldo samo nie gwarantuje odpowiedniej kombinacji wejść. [Bitcoin Core 29.0 — Transaction creation] [Bitcoin Core 29.0 — walletcreatefundedpsbt RPC]

W walletcreatefundedpsbt z Core 29.0 wejścia można określić przez txid i vout; add_inputs steruje dodawaniem kolejnych. fee_rate używa sat/vB, natomiast feeRate BTC/kvB. Powstały PSBT przygotowuje dalsze przetwarzanie, nie jest potwierdzoną płatnością. Przed podpisaniem sprawdza się odbiorców, łączną opłatę i własną resztę; ręczny wybór nie usuwa tej odpowiedzialności. [Bitcoin Core 29.0 — walletcreatefundedpsbt RPC]

Pełniejszy obraz uzyskasz, czytając to hasło razem z UTXO, Coin Control, Wyjście reszty, Fee Rate, PSBT, Prywatność w Bitcoinie. Do tego hasła prowadzą również odsyłacze z Watch-only Wallet, Wyjście reszty, Inventing Bitcoin.

DOC · 001Bitcoin Developer Guide — TransactionsDokumentacja ↗DOC · 002Bitcoin Core — Coin selection implementationŹródło pierwotne ↗DOC · 003Bitcoin Core 29.0 — Transaction creationŹródło pierwotne ↗DOC · 004BIP 329 — Wallet Labels Export FormatSpecyfikacja ↗DOC · 005Bitcoin Core 29.0 — walletcreatefundedpsbt RPCDokumentacja ↗DOC · 006Bitcoin Design — Coin selection and privacyDokumentacja ↗
Najpierw źródła · To nie jest porada inwestycyjna