Непотраченный выход транзакции. UTXO-модель Биткоина

UTXO можно сравнить с физическими монетами в том отношении, что они расходуются дискретно, по отдельности. Если вы хотите потратить 5 рублей, вы не можете использовать для этого половину 10-рублевой монеты. Вам нужно отдать всю 10-рублевую монету и получить 5 рублей сдачи. Но, в отличие от физических монет, UTXO не выпускаются в стандартизированных номиналах (как 1, 5 или 10 рублей). UTXO могут содержать любое количество биткойнов.

Как следует из названия, UTXO (Unspent Transaction Output) — это выход биткойн-транзакции. Выход существует в виде UTXO до тех пор, пока не будет использован в качестве входа в последующей транзакции, после чего он уже не будет «непотраченным».

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

Как UTXO создаются?

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

-транзакции

Coinbase-транзакцией называют особый вид транзакций, в которых создаются новые биткойны и выплачиваются майнеру в качестве награды за найденный блок. Поскольку в ней создаются новые биткойны, в coinbase-транзакции нет входов и есть один или более выходов. Как и в любых других транзакциях, выход coinbase-транзакции представляет собой новый UTXO (непотраченный выход).

Историю каждого UTXO можно отследить вплоть до coinbase-транзакции — одного или нескольких ее выходов.

Объяснение UTXO-модели Биткойна

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

Адреса и UTXO

В традиционной финансовой системе транзакция подразумевает снятие денег с одного счета и зачисление их на другой счет. Но, поскольку в UTXO-модели Биткойна нет счетов, то она не требует и счета/адреса отправителя. Хотя адреса используются для получения UTXO, они никогда не записываются явным образом в блокчейне. Вместо этого, биткойн-адреса представляют собой закодированные скрипты scriptPubKey, которые включаются в каждый выход транзакции.

При расходовании биткойнов вход транзакции включает в себя только подписи и открытые ключи, необходимые для выполнения scriptPubKey. В блокчейне нет упоминаний о том, с какого адреса поступили биткойны. Однако предыдущий адрес UTXO легко вычислить. Каждый вход транзакции ссылается на существующий UTXO по txid предыдущей транзакции и индексу выхода в ней. ScriptPubKey выхода указанной транзакции можно перевести в биткойн-адрес.

Монетарная политика Биткойна

UTXO-модель позволяет всем нодам сети приходить к согласию о том, какие именно биткойны существуют в тот или иной момент времени. Благодаря ей любой желающий может проверить общее предложение Биткойна и убедиться, что его монетарная политика соблюдается.

Комбинирование UTXO

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

Например, если Элис хочет заплатить Бобу 1  и у нее есть 2 UTXO стоимостью 0,5 BTC и 0,7 BTC, она может использовать в качестве входов оба UTXO и отправить Бобу 1 BTC.

UTXO-модель Биткойна

Чтобы затребовать остаток, сдачу, Элис создает еще один выход стоимостью 0,199 BTC, который она отправляет себе. Номинал выхода для сдачи составляет меньше 0,2 BTC, потому Элис нужно также заплатить комиссию за транзакцию.

Для комиссии за транзакцию не создается отдельного выхода. Она рассчитывается как разность суммы входов и суммы выходов транзакции.

Проверка транзакции

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

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

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

Проблемы с надежностью модели счетов

Преимущества модели счетов достигаются в ущерб прозрачности и аудитопригодности системы. Проверить разом общее количество долларов США на всех банковских счетах невозможно.

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

Преимущества конфиденциальности UTXO-модели

UTXO-модель повышает конфиденциальность пользователей. Пользователи Биткойна имеют возможность обрабатывать каждый UTXO отдельно, храня каждый из них на уникальном адресе. Получая каждый UTXO на отдельный адрес, пользователи могут скрыть от сторонних наблюдателей связь между своими UTXO. Для наблюдателя непросто определить, какие UTXO принадлежат каким пользователям.

Дизайн Биткойна позволяет с легкостью генерировать новые адреса в любом количестве. Системы, использующие модель счетов, особенно в рамках традиционной финансовой системы, затрудняют либо вовсе не допускают создания пользователем новых счетов, вынуждая пользователей хранить все свои средства или бо́льшую их часть на одном счете.

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