Неизрасходованный выход транзакции. Значение для блокчейна
Неизрасходованный выход транзакции (UTXO, Unspent Transaction Output) — термин, под которым в блокчейне ведется учет средств, получаемых пользователями.
Это может быть сумма, которую вы перевели с криптобиржи в свой кошелек, или же «сдача», поступившая после заключения сделки с другим адресом.
UTXO применяется в блокчейне Bitcoin, его хардфорках (Bitcoin Cash, Litecoin) и других распределенных реестрах, где транзакция состоит из входа и выхода данных.
Входные данные — это сумма, которую отправляет (тратит) пользователь, она удаляется с его счета, а выход — это полученные средства, остаток на счету, который служит входом для будущих транзакций. Баланс каждого криптокошелька в таком случае складывается из неделимых UTXO.
С помощью неиспользованных выходов транзакций ведётся подсчёт и отслеживание цифровых валют в блокчейне. Возможность увидеть, где располагаются криптовалюты, сколько их насчитывается, и способность проследить истоки каждой сделки — это ценность UTXO. Также элемент позволяет определить начало и конец каждой транзакции в цепочке блоков.
Все UTXO, которые записываются в блокчейн, компилируются вместе, чтобы предоставить нодам информацию о том, где есть неизрасходованные остатки, которые могут применяться как вход транзакций. Эти сведения сохраняются в полных узлах цепочки и помогают обрабатывать только те данные, которые являются выходом, чтобы избежать анализа всего блокчейна.
При добавлении очередного блока в цепочку происходит обновление состояния системы, тогда становится понятно, какие UTXO стали входными данными, какие новые остатки образовались и каким адресам они принадлежат.
Другой метод мониторинга криптовалют в блокчейне — это модель учетной записи (Account Model). Он характерен для сети Ethereum,
где токены подсчитывают в сетевых узлах, а не в транзакциях.
Как работает UTXO
Механизм работы UTXO проще всего понять на примере. Предположим, баланс вашего биткоин-кошелька 0,7 BTC. Пусть это будет сумма таких неделимых остатков предыдущих транзакций, как 0,6 BTC и 0,1 BTC.
Если вам нужно отправить 0,4 BTC на другой адрес, кошелек автоматически использует UTXO в размере 0,6 BTC для входа транзакции. После завершения сделки 0,6 BTC удаляются с криптокошелька и образуются два новых неизрасходованных выхода — 0,4 BTC и 0,2 BTC. Первая сумма закрепляется за новым пользователем, а вторая возвращается вам с учетом вычета комиссии майнинга.
Преимущества метода UTXO
Способ подсчета средств с помощью неиспользованных выходов транзакции способствует децентрализации. Благодаря такому отслеживанию цифровых валют доступны одноранговые переводы, исключающие наличие третьей стороны. Потребность в договорах и централизованных аккаунтах отпадает.
UTXO способен защитить блокчейн от атаки двойной траты, которая больше характерна для сетей, не использующих этот элемент транзакции.
Прозрачность транзакций без необходимости раскрывать свою личность также достигается благодаря UTXO. Он содержит публичный ключ криптовалюты, который показывает, за каким биткоин-адресом закреплены средства.
Наконец, благодаря механизму достигается конфиденциальность и безопасность. Это обусловлено созданием новых адресов каждый раз, когда используется UTXO.
Недостатки UTXO
Объединение нескольких неизрасходованных выходов для совершения новой транзакции приводит к повышению комиссии. Это связано с тем, что каждый UTXO требует отдельной подписи от владельца.
UTXO приводит к накоплению маленьких остатков монет, которые нельзя потратить из-за установленного лимита на минимальный размер транзакции. Эти «крошки» могут использовать киберпреступники для пылевых атак. Однако некоторые криптокошельки автоматически объединяют небольшие UTXO в одну сумму для избежания подобных ситуаций.
Большое количество UTXO занимает много места в блокчейне. Впрочем, проблему можно преодолеть с помощью переноса некоторых данных на жесткий диск или SSD-накопитель.
Некоторые разработчики работают над улучшением UTXO. Например, команда Cardano создала модель Extended UTXO (EUTXO). Она использует смарт-контракты для отслеживания неизрасходованных выходов и решает перечисленные проблемы традиционного учета средств.