Coin Control дає змогу самостійно вибрати кошти для конкретного платежу. Баланс біткоїна складається з окремих невитрачених виходів попередніх транзакцій — UTXO. Зазвичай гаманець вибирає їх автоматично; Coin Control дає змогу вирішити самостійно.
Аліса отримала 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.