UTXO в Bitcoin: входы, сдача и консолидация
Разберитесь, как баланс Bitcoin состоит из неизрасходованных выходов, как работают входы и сдача, а также как консолидация небольших UTXO может повлиять на комиссии и приватность.
В этом руководствеБаланс Bitcoin-кошелька складывается из нескольких выходов
Краткое резюме
Баланс Bitcoin-кошелька обычно складывается из нескольких неизрасходованных выходов транзакций, то есть UTXO. Платёж тратит выбранные выходы как входы и создаёт новые выходы получателю и, при необходимости, для сдачи. Консолидация может уменьшить число входов в следующем платеже, но сейчас требует комиссии и может связать публичную историю транзакций.
Баланс Bitcoin-кошелька складывается из нескольких выходов
Кошелёк может показывать одну сумму, но реестр Bitcoin не хранит её как единственную запись банковского счёта. Кошелёк может контролировать несколько неизрасходованных выходов прошлых транзакций — UTXO. Упрощённый баланс в сети равен сумме значений выходов, которые кошелёк может потратить. У каждого выхода есть условие расходования; это не отдельная свободная монета в списке.
Одна транзакция может создать выходы для нескольких получателей, поэтому число платежей не обязательно совпадает с числом UTXO. Кошелёк может отдельно показывать подтверждённые, неподтверждённые, заблокированные или доступные только для просмотра суммы. Значит, весь отображаемый баланс не всегда можно потратить прямо сейчас. Модель UTXO применяется в Bitcoin и похожих системах, но не во всех криптоактивах.
Вход указывает на конкретный предыдущий выход
Вход транзакции Bitcoin определяет предыдущий выход по идентификатору транзакции и индексу выхода; запись часто выглядит как txid:vout. Во входе также содержатся данные, необходимые для выполнения условия расходования этого выхода. Затем транзакция создаёт один или несколько новых выходов. Руководство разработчика Bitcoin по транзакциям описывает эту структуру, а руководство по блокчейну поясняет, что каждый выход можно потратить только один раз.
Выход тратится целиком. Bitcoin не расходует часть старого выхода, оставляя остаток в нём же. Если вход стоит больше, чем платёж, транзакция создаёт новые выходы получателю и для сдачи. Каждый новый выход становится отдельным UTXO и может использоваться в будущем по правилам кошелька.
Платёж может создать выход получателю и выход сдачи
Сумма входов должна покрывать сумму выходов; разница становится комиссией транзакции. Кошелёк может выбрать входы на сумму больше платежа и вернуть остаток в новый выход под своим контролем. Это сдача, или change. Она является обычным новым выходом, а не возвратом вне сети и не отменой платежа.
Предположим, кошелёк выбрал два UTXO на 300 000 и 200 000 сатоши. Входы вместе составляют 500 000 сат. Если получатель получает 420 000 сат, а комиссия равна 2 000 сат, сдача составит 78 000 сат: 300 000 + 200 000 = 420 000 + 78 000 + 2 000. Это условный пример, а не текущая оценка комиссии. Сдача становится новым выходом под контролем кошелька и в дальнейшем может стать входом.
Выход сдачи создаётся не в каждой транзакции. Входы могут почти совпасть с платежом и комиссией, либо транзакция может платить нескольким получателям. Перед подписью проверьте предварительный просмотр.
Большее число входов может увеличить размер транзакции
Каждый выбранный UTXO становится входом и требует данных, позволяющих сети проверить расходование. Поэтому большое число входов часто увеличивает транзакцию, хотя точный размер зависит от типа выхода и данных подписи. Комиссию обычно считают по виртуальному размеру и ставке. BIP 141 определяет вес и виртуальный размер транзакций SegWit. Сумма отправляемых BTC сама по себе не определяет размер.
При одинаковой ставке транзакция с большим числом или более крупными входами может стоить дороже. Выход сдачи тоже добавляет данные. Руководство по комиссиям Bitcoin-транзакций объясняет связь размера со ставкой sat/vB.
Консолидация тратит несколько выходов ради одного нового
Консолидация UTXO — это транзакция, которая тратит несколько выходов и отправляет их общую стоимость за вычетом комиссии в один новый выход под контролем того же кошелька. В следующем платеже этот объединённый выход можно потратить как один вход вместо отдельных исходных выходов. Консолидация меняет структуру будущих расходов и их возможную стоимость, но не создаёт биткоины и не стирает историю.
Компромисс связан со временем оплаты. В транзакции консолидации есть все входы, поэтому она может быть крупной и требует комиссии сейчас. Следующая транзакция также оплатит собственные входы и выходы, хотя входов может быть меньше. Если сегодняшняя ставка ниже той, что будет при будущем расходовании, перенос части затрат на сейчас может помочь. Если ставка сейчас высокая, консолидация может обойтись дороже. Будущие комиссии неизвестны, поэтому экономия не гарантирована.
Кошельки выбирают выходы по-разному
Большинство кошельков выбирает UTXO автоматически. Алгоритм может учитывать сумму платежа, оценочный размер транзакции, комиссию, сдачу и другие ограничения. Цель не всегда сводится к минимальному числу входов: учитываются текущие затраты и стоимость будущего расходования сдачи, а также правила безопасности и приватности. Выбор и названия функций зависят от кошелька и версии.
Некоторые кошельки предлагают coin control — просмотр и исключение конкретных выходов. Это помогает разделять средства для разных целей, но ошибка выбора может увеличить транзакцию или связать выходы. RPC listunspent в Bitcoin Core позволяет разработчикам запрашивать UTXO; обычному пользователю не нужно вызывать RPC, чтобы понять баланс.
Совместное использование входов может раскрыть связь
Транзакции Bitcoin публичны. Если одна транзакция тратит несколько выходов как входы, наблюдатель видит, что их потратили вместе. Аналитики часто считают это признаком возможного общего контроля, но не доказательством личности; в совместной транзакции могут участвовать несколько человек.
Объединение выходов, которые специально хранились раздельно, может ослабить это разделение: они появятся вместе в одной публичной транзакции. Новый адрес сдачи снижает повторное использование адресов, но не скрывает входы и не стирает историю. Рекомендации Bitcoin.org по приватности объясняют публичность и отслеживаемость транзакций, а также роль новых адресов.
Сравните комиссию сегодня с вероятным будущим использованием
Начните с предварительного расчёта комиссии кошелька и списка предлагаемых выходов. Планируете ли вы скоро потратить несколько небольших выходов вместе? Велика ли стоимость их отдельных расходов относительно суммы? Оправдывает ли текущая ставка консолидацию? Затем сравните с возможным числом входов будущего платежа. Будущая ставка и структура транзакции неизвестны, поэтому расчётная экономия не является гарантией.
Учитывайте приватность и практические задачи. Раздельные выходы могут соответствовать средствам из разных источников или от разных контрагентов, которые не нужно связывать публично. Ручной выбор помогает сохранить разделение, но требует внимательнее проверять получателя, сдачу и комиссию. Lightning использует другой путь, чем Bitcoin-транзакции в блокчейне; см. сравнение Lightning и платежей в блокчейне. Для других криптопереводов проверьте сеть и адрес по контрольному списку.
Проверьте транзакцию перед подписью
Проверьте сеть, адрес получателя, сумму, выбранные входы (если они показаны), адрес или сумму сдачи и общую комиссию. Убедитесь, что сдача возвращается в кошелёк под вашим контролем. Высокая комиссия может объясняться большим числом входов, а не крупной суммой платежа.
Перед консолидацией убедитесь, что хотите потратить выбранные выходы вместе и согласны с публичной связью между ними. Консолидация не гарантирует снижение всех расходов за время использования средств: комиссия за входы платится сейчас, а за следующую транзакцию — позднее. О резервном копировании и восстановлении см. руководство по seed-фразе кошелька.
Частые вопросы
Q1Один UTXO равен одному биткоину?
Нет. UTXO — это неизрасходованный выход с определённой стоимостью и условием расходования. Кошелёк может контролировать несколько UTXO и суммировать их значения.
Q2В каждой Bitcoin-транзакции есть сдача?
Нет. Входы могут почти совпасть с платежом и комиссией, либо транзакция может платить нескольким получателям. Проверьте предварительный просмотр.
Q3Консолидация UTXO всегда снижает комиссии?
Нет. За неё платится сейчас, а позже может потребоваться меньше входов. Результат зависит от ставки, размера транзакции, правил кошелька и времени.
Q4Доказывает ли совместное расходование нескольких UTXO, что они принадлежат одному человеку?
Оно публично показывает, что выходы потрачены вместе. Общий контроль — предположение, а не доказательство личности.
Источники и дополнительное чтение
Сообщить о проблеме
Мы подготовим письмо со ссылкой на эту статью. Mark получит сообщение только после отправки
Быстрая проверка
Прочитали руководство? Проверьте себя в 3 вопросах
Вопрос 01
Транзакция использует входы на 300 000 и 200 000 сат, отправляет 420 000 сат и платит комиссию 2 000 сат. Какова сдача?
Выберите ответ, чтобы увидеть объяснение