Непотраченный выход транзакции

Непотраченный выход транзакции (англ. Unspent Transaction Output, UTXO или UTxO) — это специфический элемент отдельного класса моделей цифровых валют. Непотраченный выход транзакции представляет собой определённое количество криптовалюты, разрешённое к расходованию отправителем и доступное для последующего использования получателем. Использование UTXO в процессе транзакций составляет ключевую особенность многих криптовалют, однако наиболее характерно оно для тех, что реализуют именно UTXO-модель.

UTXO использует методы публичного ключа для подтверждения и передачи прав собственности. Конкретно, публичный ключ получателя записывается в UTXO, что ограничивает возможность расходования этого выхода только тем, кто может продемонстрировать владение соответствующим приватным ключом. Для осуществления траты UTXO должна быть приложена валидная цифровая подпись, ассоциированная с публичным ключом[1].

UTXO образует цепь прав собственности, представленную в виде последовательности цифровых подписей, ведущих с самого момента создания монет — будь то выпуск посредством майнинга, стейкинга или иного процесса, определённого протоколом применяемой криптовалюты[1].

К основным примерам криптовалют, реализующих UTXO-модель, относятся Биткойн и Cardano. Cardano использует расширенный вариант UTXO, получивший название EUTXO[2].

Вариации модели также используют такие блокчейны, как Sui (модель OwnedObject), Nervos (модель Cell) и Fuel. Кроме того, UTXO активно применяется в решениях второго уровня (L2), например, в протоколах Ark и Spark, что позволяет передавать права владения без перемещения самих UTXO в основной сети[3].

История

Концепция UTXO-модели восходит к предложению Хэла Финни под названием «Reusable Proofs of Work» («Многоразовые доказательства выполнения работы»)[4], которое, в свою очередь, базировалось на протоколе Hashcash, предложенном Адамом Бэком в 1997 году[5]. Первым массовым воплощением UTXO-модели на практике стал Биткойн, выпущенный в 2009 году.

Сам термин «UTXO» изначально не использовался Сатоси Накамото в оригинальном whitepaper Биткойна. Эта аббревиатура появилась позже, в 2011—2012 годах. При этом Накамото подробно описал сам механизм: транзакции содержат входы (inputs) и выходы (outputs), где один выход направляется получателю в качестве платежа, а другой возвращает «сдачу» (change) обратно отправителю[6].[7]

В дальнейшем структура транзакционных выходов в протоколе Биткойна прошла несколько этапов технологической эволюции:

  • P2SH (2012 год) — внедрение Pay-to-Script-Hash позволило блокировать средства на хеше произвольного скрипта[8].[9]
  • SegWit (2017 год) — оптимизация использования пространства блоков за счёт вынесения данных подписей из основного тела транзакции[8].[9]
  • Taproot (2021 год) — внедрение подписей Шнорра и структуры MAST, что значительно повысило конфиденциальность и эффективность использования выходов[8].[9]

Сравнение: UTXO-модель и модель счёта

Криптовалюты, использующие UTXO-модель, функционируют иначе, чем системы, опирающиеся на модель счёта. В UTXO-модели отдельные единицы криптовалюты, именуемые непотраченными выходами транзакций (UTXO), передаются между пользователями, напоминая обмен физическими деньгами[10]. Выбор архитектуры влияет на то, как транзакции и права собственности фиксируются и подтверждаются в сети блокчейн.

В UTXO-модели каждая единица валюты — это отдельный объект. История UTXO прослеживается только в тех блоках, где он был перемещён. Для определения общего баланса конкретного счёта требуется проанализировать все блоки и выявить последние UTXO, связанные с данным адресом. При том что все узлы блокчейна подтверждают историю блоков в целом, блоки, относящиеся к балансу конкретного счёта, уникальны для этого счёта.

В противоположность этому, модель счёта хранит информацию о каждом аккаунте и его балансе для каждого блока, добавленного в сеть. Это ускоряет проверку баланса без необходимости сканирования истории блоков, однако увеличивает размер каждого блока (хотя применяются методы сжатия данных). Несмотря на различия, обе модели требуют анализа прошедших блоков для окончательной верификации происхождения монет.

Детерминизм и безопасность

В UTXO-модели каждый объект неизменяем — единицы монет нельзя «редактировать», как баланс счёта при обычной транзакции. Вместо этого конечный баланс вычисляется на основе всей истории транзакций, начиная с момента выпуска монет. Такая простота способствует безопасности: UTXO либо существует в ожидаемом виде, либо нет. Модель счёта требует тщательной проверки статуса аккаунта при каждой транзакции, что может привести к ошибкам в случае неправильной реализации.

Ключевое различие в гарантиях исполнения заключается в том, что в UTXO-модели результат транзакции детерминирован и может быть полностью проверен локально до отправки в сеть, тогда как в модели счетов результат недетерминирован до момента включения в блок, поскольку глобальное состояние может измениться за время между созданием и исполнением транзакции[11][12].

Конфиденциальность

UTXO-модель предоставляет более высокий базовый уровень конфиденциальности по сравнению с моделью счетов. Это достигается за счёт использования новых адресов для сдачи (англ. change addresses) при каждой транзакции, что затрудняет связывание платежей с одной личностью. Кроме того, средства не хранятся на едином балансе, а распределены по множеству независимых выходов (дискретные UTXO) и псевдонимных адресов. В отличие от модели счетов, где все транзакции привязаны к одному постоянному адресу, UTXO-модель фрагментирует активность и не создаёт единой ончейн-идентичности, что значительно усложняет отслеживание происхождения средств и построение полной картины активов пользователя[13][14].

Масштабируемость и параллелизм

Независимость непотраченных выходов транзакций (UTXO) предоставляет значительные преимущества в масштабируемости благодаря возможности параллельной обработки. Поскольку каждый UTXO является независимым объектом, транзакции, использующие разные выходы, не влияют друг на друга. Это позволяет узлам сети проверять множество транзакций одновременно, что существенно повышает общую пропускную способность[15]. Кроме того, для упрощённой верификации платежей (SPV) лёгким клиентам в модели UTXO необходим только текущий набор неизрасходованных выходов, в отличие от модели счетов, требующей отслеживания глобального состояния балансов[16][13].

Хранение данных и проблема «пыли»

В модели UTXO существует проблема «пыли» — накопления мелких выходов, трата которых становится экономически невыгодной из-за транзакционных комиссий. Тем не менее, узлы сети обязаны хранить и отслеживать такие выходы, что приводит к фрагментации набора UTXO. Для поддержания актуального набора непотраченных выходов узлам требуются значительные объёмы оперативной памяти (RAM) и быстрые твердотельные накопители (SSD или NVMe)[13][17][18].

В противовес этому, в модели счетов проблема «пыли» отсутствует, поскольку баланс аккаунта представлен единым значением, независимо от количества входящих переводов. Однако данная архитектура подвержена монотонному разрастанию глобального состояния по мере создания новых адресов и смарт-контрактов. Хранение постоянно растущей базы данных состояния требует от узлов использования накопителей большого объёма[13][17][18].

Смарт-контракты

Внутренние свойства UTXO-модели делают её подходящей для внецепочных протоколов, например, сайдчейнов и сети Молния. Модель счёта, напротив, упрощает хранение «состояния» транзакций, хотя эта простота не всегда приводит к преимуществам. Например, расширенная UTXO-модель (EUTXO) обеспечивает более чёткие переходы состояний, снижая потенциальные неожиданные эффекты. Хотя EUTXO сложнее в реализации, она предлагает высокий уровень безопасности и однозначности.

Реализация смарт-контрактов в модели UTXO сопряжена с рядом технических ограничений. Одним из главных недостатков является отсутствие глобального состояния (англ. Shared State): UTXO не могут хранить постоянное состояние, из-за чего логику приложений приходится встраивать в каждую транзакцию, а состояние переносить от одного выхода к другому[13][19]. Кроме того, возникают проблемы параллелизма, так как две транзакции не могут одновременно использовать один и тот же выход, что вынуждает разработчиков дробить состояние на несколько UTXO во избежание конфликтов[13]. Разработка смарт-контрактов также усложняется ресурсоёмкостью из-за необходимости явной обработки каждого выхода транзакции[20] и использования не-Тьюринг-полных скриптов (например, Bitcoin Script), которые не поддерживают циклы и произвольные вычисления[13][19].

Набор UTXO

Совокупность всех находящихся в наличии UTXO в рамках блокчейна образует множество. Каждая транзакция в сети удаляет некоторые элементы из этого множества (те, что тратятся), и добавляет новые (создаваемые выходы). Таким образом, набор UTXO отражает все находящиеся в обращении единицы данной криптовалюты на определённый момент времени[21].

В более общем смысле, выходы транзакций образуют надмножество относительно UTXO, то есть UTXO является подмножеством всех выходов. Эта взаимосвязь, а также динамика UTXO, например, продолжительность их «жизни» в системе Биткойн, рассматриваются в ряде исследований.

В корректных транзакциях блокчейна только непотраченные выходы (UTXO) могут быть использованы для последующего финансирования новых транзакций. Это критично для предотвращения двойного расходования и мошенничества. Соответственно, используемые входы удаляются из набора UTXO, а выходы создают новые UTXO, добавляемые в это множество. Владельцы приватных ключей (например, обладатели криптовалютных кошельков) могут использовать эти UTXO для дальнейших переводов.

Для оптимизации работы с набором UTXO применяются различные методы. Традиционный прунинг (удаление старых данных блокчейна) не уменьшает размер самого набора UTXO для валидации, так как узлам по-прежнему необходимо хранить весь набор неистраченных выходов для проверки новых транзакций. В то же время технология Utreexo использует криптографический хеш-аккумулятор, что позволяет снизить требования к хранилищу состояния узла до менее чем 1 килобайта[22][23].

Расширенная модель UTXO (EUTXO)

Расширенная модель UTXO (англ. Extended UTXO, EUTXO) — это усовершенствованный вариант традиционной модели непотраченных выходов транзакций. Она расширяет базовую UTXO-модель, внедряя дополнительные функции для повышения гибкости и функциональности, при этом сохраняя присущие ей достоинства в области безопасности, предсказуемости и параллельной обработки[24].

В модели EUTXO выходы транзакций могут быть связаны с произвольными данными и логикой в виде смарт-контрактов. Такой подход позволяет UTXO нести состояние, совместимое с параллельной обработкой транзакций и предсказуемым потреблением ресурсов — особенностями классической модели UTXO. Это повышает выразительность и сложность контрактов по сравнению с базовой моделью, сближая возможности UTXO и модели счёта по части реализации контрактов.

Каждый UTXO в EUTXO связывается с изменяемым значением данных, которое может меняться в процессе расходования UTXO и создания новых выходов, что позволяет контрактам сохранять состояние между транзакциями. Расширенная структура данных EUTXO предоставляет дополнительные возможности для разработки смарт-контрактов, сохраняя при этом неизменяемость и проверяемость свойственные классической модели.

Одной из проблем модели EUTXO является конкурентный доступ к состоянию смарт-контрактов, поскольку один UTXO может быть израсходован только один раз за блок. Для решения этой проблемы и преобразования конкуренции в параллелизм применяются различные архитектурные подходы. К ним относятся разделение UTXO (распределение состояния смарт-контракта по нескольким независимым UTXO), пакетная обработка транзакций (сбор запросов пользователей специальным офчейн-компонентом в единую транзакцию) и использование каналов состояния Hydra (решение второго уровня, позволяющее перенести транзакции офчейн)[25][26].

Реализация в Cardano

Модель EUTXO используется, в частности, в блокчейне Cardano, обеспечивая возможность более сложных финансовых операций и выполнение автоматизированных сценариев. Она лежит в основе платформы Plutus для разработки смарт-контрактов на Cardano, позволяя обрабатывать сложные, имеющие состояние контракты при высокой степени безопасности и предсказуемости[24].

Несмотря на добавленную сложность, модель EUTXO сохраняет основные преимущества UTXO: предсказуемое потребление ресурсов при исполнении контрактов и высокой степени параллелизма при обработке транзакций, что крайне важно для масштабирования блокчейнов.

В мае — июне 2026 года состоялся хардфорк van Rossem, сопровождавшийся обновлением модели стоимости (Plutus Cost Models). Внедрение новых примитивов оптимизировало работу с массивами, списками и криптографическими операциями, а также позволило повысить производительность скриптов и снизить стоимость их выполнения[27][28]

Реализация в Ergo

В блокчейне Ergo реализация расширенной модели UTXO называется Box-моделью. Данные смарт-контрактов и состояние децентрализованных приложений хранятся в регистрах внутри «ящиков» (boxes), которые представляют собой неизменяемую расширенную версию UTXO. Содержимое каждого ящика распределено по 10 регистрам (от R0 до R9). Базовые регистры (R0—R3) зарезервированы для хранения денежной стоимости, защитного скрипта, активов и информации о создании, а регистры R4—R9 доступны для пользовательских данных. Для написания смарт-контрактов применяется язык ErgoScript. Модель поддерживает входы данных (data inputs), что позволяет транзакциям считывать информацию из других ящиков без их расходования. Кроме того, в Ergo реализована поддержка деревьев транзакций.

Примечания

  1. 1 2 Delgado-Segura, Sergi. Analysis of the Bitcoin UTXO Set // Financial Cryptography and Data Security : [англ.] / Sergi Delgado-Segura, Cristina Pérez-Sola, Guillermo Navarro-Arribas … [et al.]. — Springer, 2019. — Vol. 10958. — P. 78–91. — ISBN 978-3-662-58819-2. — doi:10.1007/978-3-662-58820-8_6.
  2. Chakravarty, Manuel M.T. The Extended UTXO Model // Financial Cryptography and Data Security : [англ.] / Manuel M.T. Chakravarty, James Chapman, Kenneth MacKenzie … [et al.]. — Springer, 2020. — Vol. 12063. — P. 525–539. — ISBN 978-3-030-54454-6. — doi:10.1007/978-3-030-54455-3_37.
  3. Bitcoin Second Layer Scaling Landscape (англ.). Spark Money Research. Spark Money. Дата обращения: 27 августа 2026.
  4. Reusable Proofs of Work (англ.). nakamotoinstitute.org (16 августа 2004). Дата обращения: 27 августа 2026.
  5. Hashcash — средство противодействия отказу в обслуживании (англ.). hashcash.org (28 марта 1997). Дата обращения: 27 августа 2026.
  6. UTXO Explained: Bitcoin's Most Underrated Innovation. Arkham. Дата обращения: 27 августа 2026.
  7. Bitcoin's UTXO Model for Handling Transactions. Satoshi Speaks. Дата обращения: 27 августа 2026.
  8. 1 2 3 P2SH, SegWit, Taproot, and Lightning: Essential Bitcoin Upgrades. Blockchain News. Дата обращения: 27 августа 2026.
  9. 1 2 3 Bitcoin Address Format Guide. Spark Money. Дата обращения: 27 августа 2026.
  10. Unspent Transaction Output (UTXO) (англ.). river.com/learn/ (15 декабря 2020). Дата обращения: 27 августа 2026.
  11. Deterministic Transaction Results in UTXO vs Account Models: Key Differences. Chainscore Labs. Дата обращения: 27 августа 2026.
  12. EUTXO. Cardano Developer Portal. Дата обращения: 27 августа 2026.
  13. 1 2 3 4 5 6 7 UTXO Model vs Account Model. Spark Money Research. Дата обращения: 27 августа 2026.
  14. UTXO Model Explained. Nervos. Дата обращения: 27 августа 2026.
  15. UTXO. Cardano Forum. Дата обращения: 27 августа 2026.
  16. UTXO-based vs Account-based Systems. BSV Blockchain Documentation. Дата обращения: 27 августа 2026.
  17. 1 2 State Bloat. Spark Money. Дата обращения: 27 августа 2026.
  18. 1 2 State Bloat in Account Model vs UTXO Model. Chainscore Labs. Дата обращения: 27 августа 2026.
  19. 1 2 Blockchain Philosophies: UTXO vs Account. Rango Exchange. Дата обращения: 27 августа 2026.
  20. UTXO vs Account-Based Blockchain. BitQuery. Дата обращения: 27 августа 2026.
  21. UTXO Set (англ.). river.com/learn/ (15 декабря 2020). Дата обращения: 27 августа 2026.
  22. Bitcoin’s Growing UTXO Problem And How Utreexo Can Help Solve It. Bitcoin Magazine. Дата обращения: 27 августа 2026.
  23. Utreexo Project. MIT Digital Currency Initiative. Дата обращения: 27 августа 2026.
  24. 1 2 Chakravarty, Manuel M. T. The Extended UTXO Model // Financial Cryptography and Data Security : [англ.] / Manuel M. T. Chakravarty, James Chapman, Kenneth MacKenzie … [et al.]. — Springer International Publishing, 2020. — P. 525–539. — ISBN 978-3-030-54455-3. — doi:10.1007/978-3-030-54455-3_37.
  25. Concurrency. Cardano Documentation. Дата обращения: 27 августа 2026.
  26. Cardano EUTXO Developer Guide: Concurrency and Scalability. XCapit. Дата обращения: 27 августа 2026.
  27. CIP-0109, CIP-0132, CIP-0133, CIP-0138, CIP-0153 Implementation (van Rossem Hardfork). Cardano Governance (28 июня 2026). Дата обращения: 27 августа 2026.
  28. Cardano Developers Roll Out Five New Plutus CIPs in Key Protocol Milestone. U.Today (9 мая 2026). Дата обращения: 27 августа 2026.