UTXO — сума, створена попередньою транзакцією, яку ще не витратили. Скорочення означає Unspent Transaction Output. Гаманець може показувати один баланс, хоча за ним стоїть кілька окремих UTXO, як кілька купюр утворюють готівку в кишені. Під час платежу гаманець вибирає, які з них використати. Одна адреса може отримувати багато платежів і мати кілька різних UTXO.
У вас два UTXO: 70 000 sat і 50 000 sat, разом 120 000 sat. Sat — найменша одиниця біткоїна. Щоб заплатити 90 000 sat із комісією 1 000 sat, гаманець може використати обидва. Він створить новий вихід 90 000 sat для одержувача й новий вихід 29 000 sat як решту для вас. Обидва початкові UTXO витрачаються повністю, нічого всередині не залишається. Це нагадує оплату купюрами з отриманням решти, але суми не обмежені фіксованими номіналами. Навіть два нові виходи на ту саму адресу залишаються двома окремими UTXO, а не зливаються. [2]
Гаманець підсумовує виходи, які відстежує, але не всі з них обов’язково може негайно витратити. Watch-only Wallet показує надходження, не маючи власних приватних ключів для підписання. Інший вихід може бути заблокований до певного моменту. Винагорода з першої транзакції блоку, Coinbase Transaction, має спочатку досягти потрібної зрілості. Дуже мала сума також може бути технічно доступною, але за високих комісій її використання коштуватиме більше за неї саму. Доступність, право витрачати й економічний сенс — різні питання. [1]
Кожне використане UTXO додає до транзакції вхід і зазвичай нові дані. За однакової ставки комісії та подібних типів входів витратити багато малих сум дорожче, ніж одну велику. Coin Control дає змогу вибрати конкретні UTXO вручну. Консолідація, тобто об’єднання в меншу кількість більших сум, може зменшити майбутню транзакцію, але сьогодні за неї треба сплатити комісію. Є й наслідки для приватності: об’єднані входи можуть підказати спостерігачу, що ними керує одна людина. Це не безпомилковий доказ, але причина не з’єднувати автоматично кошти, історії яких ви хочете тримати окремо. [2] [4]
Самої адреси замало. Кожен вихід визначає пара: ідентифікатор транзакції txid і номер виходу в ній. Таке посилання називається outpoint. Вихід містить суму в сатоші та scriptPubKey — запис умов її витрачання. Для підтвердженого виходу вузол також зберігає висоту блоку створення й ознаку походження з Coinbase Transaction, щоб перевіряти зрілість і часові обмеження. Знати адресу чи outpoint означає вміти вказати на запис, а не отримати право витратити гроші: для цього необхідно виконати його умови. [1] [2]
Набір підтверджених UTXO відповідає історії, що закінчується конкретним блоком. Вузол може додатково враховувати mempool, чергу непідтверджених транзакцій: деякі відомі виходи там уже витрачаються, а нові лише створюються. Стан може змінитися й через реорганізацію, коли мережа приймає іншу дійсну гілку історії. Для технічної перевірки Bitcoin Core має команду gettxout. Параметр include_mempool визначає, чи враховувати транзакції в черзі. Відповідь null означає лише, що в цьому поданні вихід недоступний як UTXO; вона не розрізняє вихід, якого ніколи не було, і вже витрачений. Порівнюючи дані, треба враховувати стан вузла та спосіб запиту. [3]
Витрачання цілого виходу
Щоб сплатити 600 000 sat, гаманець обирає UTXO на 1 000 000 sat. За комісії 1 500 sat транзакція створює платіжний вихід 600 000 sat і вихід решти 398 500 sat. Початковий UTXO споживається повністю.
Для повної картини прочитайте також Транзакція, Full Node, Private Key, Гаманець, Mempool. На цю статтю також посилаються Full Node, Транзакція, Private Key, Гаманець.
01UTXO — це те саме, що баланс гаманця?+
Ні. UTXO — один конкретний вихід; гаманець обчислює баланс із відстежуваних виходів відповідно до їхнього стану. Не всю показану суму обов’язково можна витратити негайно. Мережа відстежує виходи та умови їх витрачання, а не один змінний баланс рахунку.
02Чому багато малих UTXO збільшують комісію?+
Кожен вибраний вхід додає дані. За порівнянних типів входів та інших виходів витрачання багатьох малих UTXO займає більше віртуальних байтів, ніж одного більшого UTXO. Тому за однакової ставки в sat/vB загальна комісія зазвичай вища.