Что такое UTXO простыми словами? Гид для новичков

339
Просмотры
Что такое UTXO

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

Что такое UTXO

UTXO (unspent transaction output) — выход неизрасходованных транзакций. Он является важной концепцией в системе блокчейна.

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

Каждый UTXO можно представить как одну купюру. Например, у вас 3750 рублей. Нет деньги такого номинала, но есть различное количество комбинаций, как у вас в кошельке будет представлена эта сумма:

  • 3750 штук 1-рублевых монет — это потребует больше места и времени на пересчет,
  • 3 бумажки по тысяче, 7 сотенных купюр и 5 десятирублевых монет,
  • купюра в 2 тысячи, 1 тысячу, 500 рублей, 200 рублей и 50 рублей — самый оптимальный способ, который занимает меньше места в кошельке.

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

Идем дальше. В фиатном мире есть такое понятие, как сдача. Вы покупаете коробочку сока за 26 рублей, но меньшая купюра в вашем кошельке — 50 рублей. Вы получаете сдачу в 24 рубля.

Получается, что вы переплачиваете в один момент, но затем получаете разницу обратно. Как вы понимаете, сдача тоже бывает разная и зависит от купюры и суммы по счету.

Абсолютно то же происходит в мире криптовалют. Ваш баланс может представлен так:

20 mBTC +14 mBTC + 231 mBTC. Всего 265 mBTC и 3 UTXO (по количеству слагаемых).

Напомним, 1 BTC = 100 000 mBTC, подробнее в статье про доли биткоина

Вы хотите оплатить покупку в 16 mBTC. Это число меньше, чем каждый из ваших UTXO. Ваш кошелек отправляет целый UTXO, в нашем случае в 20 mBTC, на другой адрес для завершения транзакции, а затем получает обратно 4 mBTC.

Если сумма больше одного неизрасходованного выхода, будут комбинироваться несколько из них.

В чем разница между купюрами и UTXO

Для аналогии мы использовали сравнение с фиатными деньгами и купюрами. Это помогает получить представление о UTXO, но все-таки выходы и купюры не одно и тоже. Есть два существенных различия:

  • в купюрах при сдаче мы не платим комиссию за сделку, а на блокчейне из исходного UTXO вычтется сумма сборов для майнеров. Получается такая формула: Новый UTXO = (сумма исходного UTXO) — (сумма, отправленная на другой адрес) — (комиссионные за транзакцию). Комиссии могут быть разными от блокчейна к блокчейну и зависеть от момента времени. В мире фиата комиссии обычно более четкие и включены в стоимость (процент НДС, вознаграждение посреднику и т. д.)
  •  номинал купюр установлен для каждого государства. В РФ мы располагаем ограниченным числом купюр (2 тысячи, 1 тысяча, 500 рублей и т. д.) Есть коллекционные купюры, стоимость которых не определяется их номиналом. Количество комбинаций ограничено. А UTXO может иметь разные значения. Это позволяет криптовалюте быть более гибкой. UTXO можно переупаковывать и уменьшать их количество в кошельке, чтобы делать вес транзакции меньше и платить меньшие комиссии.

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

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

Почему UTXO важны

На базе UTXO разрабатываются различные технологии.

Например, разработчики Komodo делают смарт-контракты на основе UTXO. А поскольку UTXO есть практически в каждом криптовалютном протоколе, смарт-контракты можно внедрять независимо от языка.

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

Подробности по атомарные свопы вы найдете в этой статье.