Материал предназначен только для обучения и не является инвестиционной рекомендацией. Инвестиции могут привести к убыткам.
Краткий ответ
Модель неизрасходованных выходов транзакций (UTXO) представляет доступную для расходования стоимость как отдельные выходы, а не как единый баланс, записанный за счётом. В Bitcoin вход обычной транзакции указывает на предыдущий выход с помощью идентификатора транзакции и индекса выхода. В таком выходе записаны сумма и блокирующий скрипт. Баланс в кошельке — это вычисленная сумма выходов, которые он способен потратить, а не поле баланса внутри одного адреса.
Выход расходуется целиком. Если выбранные входы превышают платёж и комиссию, транзакция должна явно создать выход сдачи: протокол не возвращает её автоматически. Одна транзакция может поглотить несколько существующих UTXO и создать несколько новых, у каждого из которых будут своя сумма и условия расходования.
Как это работает
Чтобы обычная, не coinbase, транзакция была действительной, каждый указанный выход должен существовать и оставаться неизрасходованным, каждый вход должен выполнять условия блокировки соответствующего выхода, а общая стоимость выходов не должна превышать общую стоимость входов. Разница доступна в качестве комиссии транзакции:
fee = sum(inputs) - sum(outputs)
При принятии блоков узел удаляет потраченные выходы из текущего набора UTXO и добавляет вновь созданные. История блоков по-прежнему нужна для проверки и восстановления этого состояния. Реорганизация цепочки может заменить недавние блоки, поэтому выходы вблизи её вершины могут снова стать неподтверждёнными или исчезнуть из принятой истории.
В рамках одной принятой истории цепочки конкретный выход можно израсходовать только один раз. Конфликтующие неподтверждённые транзакции могут претендовать на один выход, но допуск и замена в mempool относятся к политике узла, а не к правилам, разрешающим двойное расходование в цепочке. BIP 125 определяет сигнал и политику добровольной замены; получение неподтверждённой транзакции поэтому не является окончательным расчётом.
Место в блоке Bitcoin оценивается главным образом по весу транзакции и ставке комиссии, а не по переводимой сумме. BIP 141 определяет virtual size = ceil(weight / 4). Входы обычно добавляют больше данных, чем выходы, поэтому расходование множества мелких UTXO при одной ставке может стоить дороже одного крупного UTXO. Точный размер зависит от типов используемых скриптов и witness.
У транзакций, расходующих разные UTXO, раздельные зависимости по входам, что упрощает параллельную проверку и построение. Однако они не становятся автоматически независимыми в каждой реализации или задаче: две транзакции с одним выбранным выходом конфликтуют, а потомки зависят от неподтверждённых предков. Механизм выбора монет в кошельке должен согласовывать эти зависимости.
UTXO не обеспечивают анонимность. Объединение входов может указывать на общее управление, а шаблоны распознавания сдачи и повторное использование адресов — связывать действия. Это эвристики, а не криптографические доказательства, но консолидация способна раскрыть отношения, незаметные при раздельных расходах.
В отличие от модели счетов, модель UTXO явно показывает каждый доступный для расходования объект и путь его потребления. Системы счетов обычно обновляют общее состояние, например балансы и nonce. Ни одна модель не лучше во всех случаях: они по-разному решают задачи представления состояния, программируемости, параллельности и устройства кошелька.
Расчётный пример
Alice контролирует UTXO на 0.08 BTC, 0.12 BTC и 0.50 BTC. Чтобы заплатить Bob 0.15 BTC, кошелёк выбирает первые два входа на общую сумму 0.20 BTC и оценивает комиссию в 0.0002 BTC. Он создаёт следующие выходы:
- Bob:
0.15 BTC - Сдача Alice:
0.0498 BTC
Расчёт: 0.20 - 0.15 - 0.0002 = 0.0498 BTC. После подтверждения выходы на 0.08 BTC и 0.12 BTC потрачены; выход Bob и сдача Alice становятся новыми UTXO; выход на 0.50 BTC остаётся нетронутым.
Если бы транзакция создала только выход Bob на 0.15 BTC, пропущенные 0.05 BTC стали бы комиссией, а не автоматическим возвратом. Кошелёк может выбрать другой набор входов, объединить несколько платежей или консолидировать мелкие выходы при более низких ставках. Здесь приходится сопоставлять текущие и будущие комиссии, надёжность подтверждения и конфиденциальность.
Риски и меры контроля
- Риск комиссии: раздробленные UTXO увеличивают вес входов; перед трансляцией следует оценить подписанную транзакцию и её ставку.
- Риск конфиденциальности: объединение входов и узнаваемая сдача могут связать адреса; новый адрес не гарантирует невозможность такой связи.
- Риск подтверждения: конфликтующие транзакции, правила замены и реорганизации делают неподтверждённые поступления обратимыми.
- Риск восстановления: цепочка хранит UTXO, а кошелёк хранит или выводит ключи и данные поиска, необходимые для их обнаружения и расходования; нужно резервировать все обязательные факторы восстановления.
Распространённые заблуждения
Адрес — это постоянный счёт
Адрес кодирует или представляет условия расходования. Кошелёк может контролировать выходы, отправленные на множество адресов получения и сдачи, поэтому один адрес не отражает всё его состояние.
Комиссия пропорциональна сумме платежа
Комиссия зависит прежде всего от веса транзакции и выбранной ставки. Крупный платёж с малым числом входов может быть компактнее и дешевле небольшого платежа, собранного из множества входов.
Протокол создаёт сдачу автоматически
Сдача — обычный выход, который кошелёк плательщика создаёт намеренно. Любая стоимость входов, не распределённая по выходам, доступна майнеру как комиссия.
Неподтверждённая означает рассчитанную
Mempool — предварительное представление узла, а не консенсусный реестр. Политики допуска, замены и удаления различаются; риск подтверждения снижается со временем, но не исчезает при трансляции.
Связанные темы
Источники
- Bitcoin: A Peer-to-Peer Electronic Cash System - Satoshi Nakamoto (дата обращения: 2026-08-22)
- Transactions — Bitcoin Developer Guide - Bitcoin.org (дата обращения: 2026-08-22)
- Block Chain — Bitcoin Developer Guide - Bitcoin.org (дата обращения: 2026-08-22)
- BIP 141: Segregated Witness (Consensus layer) - Bitcoin Improvement Proposals (дата обращения: 2026-08-22)
- BIP 125: Opt-in Full Replace-by-Fee Signaling - Bitcoin Improvement Proposals (дата обращения: 2026-08-22)