35 / 736UTXO+

Coin Control

Выбор средств для платежа

Возможность выбрать, какие прежние поступления пойдут на оплату. Помогает контролировать комиссии и публичные связи между средствами.

Coin Control — функция кошелька для самостоятельного выбора средств на конкретный платёж. Баланс биткоина состоит из отдельных неизрасходованных выходов предыдущих транзакций, или UTXO. Обычно кошелёк выбирает их автоматически; Coin Control позволяет принять это решение самому.

UTXO: калькулятор консолидацииСравните модельные комиссии за совместное расходование UTXO позже с консолидацией сегодня и расходованием одного входа позднее.

Алиса получила 120 000 sat за работу и ещё 80 000 sat в подарок. Sat — наименьшая единица биткоина. Кошелёк показывает 200 000 sat, но в нашем примере за этой суммой стоят два отдельных UTXO. Для платежа не обязательно тратить оба. В Coin Control Алиса открывает список и выбирает, например, только оплату за работу. Метки «работа» и «подарок» помогают не запутаться: это её заметки в кошельке, а не доказательства происхождения денег. Если особой причины выбирать средства нет, можно поручить выбор кошельку. [3]

Алиса выбирает UTXO на 120 000 sat, чтобы отправить 100 000 sat. Выбранный выход тратится целиком, как крупная купюра, с которой дают сдачу. Предположим, виртуальный размер готовой транзакции — 200 vB, а ставка комиссии — 5 sat/vB. vB — единица размера для расчёта комиссии, поэтому здесь комиссия составляет 1 000 sat. Получатель получает 100 000 sat, а 19 000 sat возвращаются Алисе новым выходом, который называют change, то есть сдачей. Другой UTXO на 80 000 sat остаётся нетронутым. Это пример с заданным размером и комиссией за счёт отправителя, а не универсальный размер любого платежа. [4]

Каждый использованный UTXO становится входом новой транзакции и добавляет в неё данные. При одинаковом типе входов и ставке комиссии платёж из десяти мелких поступлений обычно дороже платежа из одного крупного. Комиссия не является процентом от отправленной суммы: кошелёк рассчитывает её по размеру и выбранной ставке. Объединение нескольких мелких UTXO в один собственный выход называется консолидацией. При низких ставках она может упростить будущие платежи и снизить их комиссии. Но сама консолидация тоже требует уплаты комиссии и публично связывает использованные средства. [1]

Если Алиса использует оплату за работу и подарок в одной транзакции, наблюдатель блокчейна может предположить, что обоими источниками управляет один человек. Блокчейн — публичная запись транзакций. Личных меток Алисы там не видно, а объединение входов видно. Раздельный выбор позволяет избежать именно этой связи. Анонимность он не гарантирует: другие связи могут быть уже известны. Общие входы также не доказывают наверняка наличие одного владельца. Например, Payjoin позволяет отправителю и получателю вместе предоставлять входы для одного платежа. [2]

19 000 sat не возвращаются Алисе позже отдельной транзакцией. Change возникает в том же платеже как новый выход для её кошелька. У этого остатка тоже есть история: он произошёл из оплаты за работу. Если впоследствии Алиса потратит его вместе с подарком, может возникнуть связь, которой она сначала избежала. Поэтому стоит следить и за выходами сдачи, и не считать, что новый адрес сам по себе скроет видимые связи с прежними средствами. Большая сдача означает, что выбранная сумма значительно превышает платёж и комиссию; сама по себе она не говорит об ошибке выбора. [2]

Перед подписью Алиса проверяет фактические входы, полный адрес получателя, сумму, собственную сдачу и общую комиссию. Подпись разрешает конкретную транзакцию; отмеченные пункты списка — ещё не готовый платёж. Средств должно хватать на сумму и комиссию. Когда вы тратите ещё не подтверждённые средства, новый платёж зависит от транзакции, из которой они поступили. Если эта предыдущая транзакция так и не попадёт в блокчейн, платёж, расходующий её выход, тоже не будет подтверждён. Ручной выбор должен помогать понимать платёж, а не побуждать менять настройки с непонятными последствиями. [4]

Это зависит от программы и версии. В Bitcoin Core v29.0 команда fundrawtransaction по умолчанию включает add_inputs: если заданных входов мало, она может добавить другие. Чтобы потратить только выбранные UTXO, проверьте эту настройку и окончательный проект. Команда listunspent позволяет изучить доступные выходы. txid указывает предыдущую транзакцию, а vout — позицию её выхода; вместе они определяют конкретный UTXO. solvable означает, что программа знает способ расходования, а не что у неё есть необходимые приватные ключи. Создание транзакции не добавляет недостающие подписи. [4] [3]

Coin Control полезен, когда вы понимаете, зачем разделять определённые поступления, или хотите разобраться в стоимости их расходования. Он не заменяет надёжную резервную копию, не меняет прошлое средств и не стирает опубликованные связи. Пользоваться им при каждом платеже необязательно. Важно различать, когда подходит автоматический выбор, а когда нужно решить самому, и проверять, соответствует ли подготовленная транзакция вашему намерению. [3] [2]

Для полной картины прочитайте эту статью вместе с UTXO, Кошелёк, Change Address, Приватность в Bitcoin. На эту статью также ссылаются Change Address, CoinJoin, Приватность в Bitcoin, Coin Selection.

DOC · 001BIP 141: transaction weightПервичный источник DOC · 002BIP 78: Payjoin and ownership heuristicsПервичный источник DOC · 003Bitcoin Core v29.0: listunspentДокументация DOC · 004Bitcoin Core v29.0: fundrawtransactionДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией