Categories: Новичкам

Что такое UTXO?

Текст:
Сергей Ковалев

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

Содержание

Простая аналогия для объяснения UTXO

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

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

  • сорок пять долларовых купюр;
  • девять купюр по пять долларов;
  • четыре банкноты по 10 долларов и одна в 5 долларов;
  • две банкноты по 20 долларов и пять по 1 доллару.

И так далее. Есть еще много комбинаций, которые в сумме составляют 45 долларов, но идея понятна. В каждом случае у вас есть ровно 45 долларов, несмотря на то, что в каждом сценарии разное количество купюр разного номинала.

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

Теперь давайте продолжим нашу аналогию. Когда вы покупаете товар наличными, вы не можете предоставить точную сумму денег, необходимую для его оплаты. Например, вы покупаете чашку кофе за 3,50 доллара. У вас есть 45 долларов в кошельке, но у вас нет ровно $ 3,50, чтобы заплатить за кофе. Вместо этого вам нужно сложить несколько купюр и затем получить сдачу. Вы можете заплатить за кофе четырьмя купюрами в 1 доллар, и в этом случае вы получите 50 центов обратно. Или вы можете дать 20 долларов и получить 10 долларов, 5 долларов, 1 доллар и 50 центов сдачи. 

То же самое происходит, когда вы отправляете криптовалюту. Допустим, у вас есть 740 монет, а общий баланс состоит из 3 UTXO: один UTXO на сумму 320, второй 215 и третий 205. Для того, чтобы произвести оплату, необходимо объединить два или три UTXO в одну целую транзакцию. Если говорить про физические деньги, вы не можете заплатить за товар 5 долларов, разорвав купюру в 10 долларов пополам, также вы не можете отправить половину UTXO для оплаты — необходимо отправить весь UTXO, а затем получить сдачу.

Давайте представим, что вы хотите отправить 30 монет другу. Для завершения транзакции вам необходимо отправить один из ваших UTXO (320, 215 или 205). Ваш друг получит свой UTXO в размере 30 монет, а вы получите новый, меньший UTXO, на сумму 290, 185 или 175, в зависимости от того, какой UTXO был отправлен.

Что произойдет, если вы захотите отправить своему другу 350 монет? По сути, происходит то же самое, за исключением того, что на этот раз вам потребуется отправить два полных UTXO для завершения транзакции. Ваш друг все равно получит 350 монет, а вы получите взамен новое UTXO (монеты 70, 175 или 185 в зависимости от того, какие два UTXO были отправлены для выполнения платежа).

Значимость UTXO 

Реализация UTXO делает методы учета в блокчейне намного проще. Вместо того, чтобы мониторить и “консервировать” каждую отдельную операцию, необходимо отслеживать неизрасходованные монеты. Ведь каждая монета в сети блокчейна может быть использована только один раз, а значит если у пользователя есть доступные монеты, следовательно:

  1. он получил их в качестве награды за майнинг;
  2. это остаток от предыдущих транзакций.

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

Завершение обзора

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

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

Если вы спросите группу из десяти разработчиков криптографии о лучших методах учета, вы, вероятно, получите десять разных мнений. Это очень популярная тема в крипто-сообществе, которая до сих пор не имеет идеального решения.

На этом все — надеемся обзор был познавательным и интересным. До новых встреч на нашем портале.