Что такое UTXO (неизрасходованный выход транзакции)?
UTXO (Unspent Transaction Output, неизрасходованный выход транзакции) — это базовая учётная модель Bitcoin, представляющая отдельную единицу криптовалютной стоимости, которая получена, но ещё не потрачена. Вместо отслеживания единого баланса счёта кошелёк суммирует эти отдельные «купюры». Транзакции полностью поглощают существующие UTXO, создавая новые для получателей и возвращая сдачу отправителю. Эта модель оптимизирует проверку транзакций, их прозрачность и конфиденциальность, а также напрямую определяет размер комиссии в сети исходя из объёма входных данных.
A UTXO, или неизрасходованный выход транзакции, — это единица криптовалютной стоимости, которая была получена, но ещё не потрачена. Это базовая учётная модель, используемая Bitcoin и рядом других блокчейнов. В отличие от банковского счёта с единым балансом, блокчейн на основе UTXO отслеживает множество отдельных единиц стоимости, каждую из которых можно потратить в будущих транзакциях.
Технически кошелёк Bitcoin хранит не один баланс, а набор UTXO — выходов из предыдущих транзакций. При отправке BTC кошелёк выбирает один или несколько UTXO, полностью их тратит и формирует новые выходы: один для получателя и, как правило, один для возврата сдачи отправителю.
Понимание механизма UTXO помогает разобраться, как работают транзакции Bitcoin, почему комиссия зависит от размера транзакции и почему важны такие функции кошелька, как выбор монет, контроль монет, повторное использование адресов и консолидация.
Что такое UTXO простыми словами?
UTXO работает как купюра в физическом кошельке. Если нужно заплатить 700 рублей, а в кошельке только купюра в 1 000 рублей, вы отдаёте её целиком и получаете 300 рублей сдачи. Отрезать ровно 700 рублей от купюры нельзя.
Bitcoin устроен аналогично. Каждый UTXO — это отдельная единица стоимости со своим номиналом. Чтобы совершить платёж, кошелёк выбирает достаточное количество UTXO, полностью их расходует и создаёт новые UTXO для получателя и для сдачи. Баланс кошелька — это просто сумма всех контролируемых вами UTXO.
Как работают UTXO в транзакции Bitcoin?
Транзакция Bitcoin строится из входов и выходов.
- Входы: существующие UTXO, которые тратятся. Кошелёк подписывает эти входы, подтверждая право на их расходование.
- Выходы: новые UTXO, созданные транзакцией, — как правило, выход для получателя и выход для сдачи.
- Комиссия: разница между суммарной стоимостью входов и суммарной стоимостью выходов. Эта комиссия достаётся майнеру, включившему транзакцию в блок.
Например, допустим, в кошельке есть три UTXO: 0,5 BTC, 0,3 BTC и 0,2 BTC. Чтобы отправить 0,4 BTC, кошелёк может использовать UTXO на 0,5 BTC в качестве входа, сформировать выход на 0,4 BTC для получателя, вернуть примерно 0,0999 BTC отправителю в качестве сдачи и оставить 0,0001 BTC как комиссию за транзакцию.
После подтверждения исходный UTXO на 0,5 BTC перестаёт существовать. Теперь кошелёк контролирует UTXO на 0,3 BTC, UTXO на 0,2 BTC и новый UTXO со сдачей.
Почему Bitcoin использует UTXO, а не балансы счетов?
Bitcoin использует модель UTXO, поскольку она упрощает проверку транзакций, делает их поддающимися аудиту и устойчивыми к двойному расходованию. Кроме того, она даёт пользователям больше гибкости в управлении конфиденциальностью и комиссиями.
- Независимая верификация: каждый UTXO можно проверить отдельно, что упрощает валидацию транзакций узлами.
- Простое состояние блокчейна: сеть отслеживает только непотраченные выходы, формируя чёткое и верифицируемое множество UTXO.
- Защита от двойного расходования: каждый UTXO можно потратить только один раз. После использования в качестве входа он считается уничтоженным и не может быть задействован повторно.
- Потенциал для конфиденциальности: пользователи могут получать средства на разные адреса и хранить UTXO раздельно, что при аккуратном использовании затрудняет связывание транзакций.
- Гибкие условия расходования: каждый UTXO может содержать собственные правила расходования через Bitcoin Script, что позволяет реализовывать мультиподпись, тайм-локи и другие условные платежи.
Эта модель отличается от блокчейнов на основе счетов, таких как Ethereum, где у каждого адреса есть текущий баланс, обновляющийся после каждой транзакции.
Что такое выбор монет (Coin Selection)?
Выбор монет — это процесс, в ходе которого кошелёк решает, какие UTXO потратить в транзакции. Кошелёк должен выбрать достаточно UTXO, чтобы покрыть сумму платежа и комиссию за транзакцию.
Разные стратегии выбора монет влияют как на комиссию, так и на конфиденциальность.
- Сначала крупные: кошелёк тратит наибольший доступный UTXO. Это просто, но может приводить к крупным выходам сдачи.
- Сначала мелкие: кошелёк расходует меньшие UTXO в первую очередь. Это помогает сократить мелкие остатки, однако может потребовать большего числа входов и увеличить комиссию.
- Branch and Bound: более продвинутые кошельки подбирают комбинацию UTXO, максимально точно соответствующую сумме платежа, чтобы избежать ненужной сдачи.
- Выбор с акцентом на конфиденциальность: некоторые кошельки избегают объединения UTXO из разных источников, поскольку это может указывать на их принадлежность одному владельцу.
Большинству пользователей не нужно выбирать UTXO вручную, однако дизайн кошелька важен: выбор монет влияет на стоимость транзакции и конфиденциальность в сети.
Как UTXO влияет на комиссию Bitcoin?
Комиссия за транзакцию Bitcoin рассчитывается исходя из размера транзакции, а не из суммы отправляемых BTC. Транзакция со многими входами и выходами занимает больше места в блоке и, следовательно, обходится дороже.
Именно поэтому накопление большого количества мелких UTXO может оказаться накладным. Если кошельку нужно объединить множество мелких UTXO для одного платежа, транзакция будет крупнее, а комиссия — выше. Такие небольшие выходы нередко называют «пылью», когда их стоимость слишком мала для экономически целесообразного расходования.
Некоторые пользователи консолидируют UTXO в периоды низких комиссий. Консолидация объединяет множество мелких UTXO в несколько крупных, что может снизить будущие расходы на транзакции. Однако консолидация также способна раскрыть связи между адресами, поэтому проводить её следует осторожно.
Как UTXO влияет на конфиденциальность?
UTXO являются псевдонимными, а не полностью анонимными. Любой желающий может просматривать транзакции Bitcoin в публичном блокчейне и анализировать, какие UTXO были потрачены и какие новые выходы созданы.
Распространённые риски для конфиденциальности:
- Повторное использование адресов: использование одного и того же адреса может связать несколько UTXO с одним владельцем.
- Общее владение входами: когда несколько UTXO тратятся вместе, аналитики, как правило, предполагают, что они принадлежат одному лицу или кошельку.
- Определение сдачи: аналитики блокчейна нередко могут угадать, какой выход является платежом, а какой — сдачей.
- Пылевые атаки: на кошелёк могут отправляться крошечные UTXO с целью отслеживания последующего поведения при расходовании средств.
Пользователи, уделяющие внимание конфиденциальности, как правило, используют новые адреса, избегают ненужного слияния UTXO, выбирают кошельки с функцией контроля монет и при необходимости прибегают к инструментам обеспечения приватности, таким как CoinJoin.
UTXO против модели счетов: в чём разница?
Модель UTXO и модель счетов — два разных подхода к отслеживанию владения в блокчейне.
В модели UTXO стоимость существует в виде отдельных непотраченных выходов. Транзакция поглощает старые выходы и создаёт новые. Bitcoin, Litecoin, Dogecoin, Cardano и ряд других сетей используют UTXO или проектные решения, вдохновлённые UTXO.
В модели счетов у каждого адреса есть баланс, который увеличивается или уменьшается после транзакций. Ethereum и многие платформы смарт-контрактов используют эту модель, поскольку она естественнее вписывается в приложения на основе счетов и смарт-контракты.
Модель UTXO, как правило, проще для верификации платежей и управления конфиденциальностью, тогда как модель счетов удобнее для сложных взаимодействий со смарт-контрактами.
Итог
UTXO — это непотраченный выход транзакции, который может быть использован как вход в будущей транзакции. В Bitcoin кошельки хранят не один баланс, а множество UTXO, а баланс кошелька равен сумме всех этих непотраченных выходов.
Модель UTXO определяет принципы работы транзакций Bitcoin. Она влияет на комиссии, конфиденциальность, дизайн кошелька, выбор монет и управление пылью. Большинству пользователей не требуется управлять UTXO вручную, однако понимание этой концепции объясняет, почему транзакции Bitcoin иногда формируют сдачу, почему комиссия растёт при расходовании множества мелких выходов и почему конфиденциальность зависит от способа выбора и объединения монет.
Связанные понятия
Дополнительное чтение
FAQ
Нужно ли обычным пользователям Bitcoin управлять UTXO?
Как правило, нет. Большинство современных Bitcoin-кошельков автоматически осуществляют выбор UTXO. Тем не менее понимание механизма UTXO помогает разобраться в комиссиях за транзакции, выходах сдачи, пыли и функциях контроля монет.
Что такое пыль (dust) в Bitcoin?
Можно ли потратить UTXO частично?
Основан ли Ethereum на UTXO?
Почему транзакции Bitcoin формируют сдачу?
Нет аккаунта?
Зарегистрируйтесь сейчас и начните свое путешествие в мир криптовалют.