Что такое UTXO?
Cover

Что такое UTXO, и почему они важны?

17 июня 2022 г.

Некоторые могут быть не в курсе, но правильное управление биткоин-кошельком подразумевает определенный уровень обслуживания. Если вы пользуетесь услугами кастодиального сервиса, это становится его заботитой. Однако если вы храните свои биткоины самостоятельно, за управление кошельком отвечаете вы. Чтобы правильно обслуживать свой кошелек, вам нужно знать, что такое UTXO и как ими управлять.

Перевод статьи Unchained подготовлен Тони⚡️. Поддержать проект.

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

Что такое UTXO? #

Вы не одиноки, если испытываете искушение уклониться от изучения чего-то под названием “UTXO” – аббревиатуры могут звучать немного пугающе. Но и расшифровка этой аббревиатуры – “unspent transaction output”, что переводится как “неизрасходованный транзакционный выход”, – не сильно улучшает ход дел. Если вы опасаетесь, что для понимания темы вам придется стать специалистом в области компьютерных технологий, будьте уверены, что всего через несколько абзацев все станет понятно.

Банковский счет против копилки #

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

Если вы открываете банковский счет и кладете на него наличные деньги, то они сразу же смешиваются со всеми остальными деньгами, которые хранятся в банке. Клиентов банка могут быть тысячи, поэтому им нет смысла хранить наличные деньги каждого человека отдельно. Они объединяют средства и записывают, сколько кому принадлежит. Нет разницы, внесете ли вы стодолларовую купюру или три купюры по 20 долларов и четыре – по 10. Важно лишь то, что общая сумма вклада составляет 100 долларов. Когда вы попытаетесь снять свои 100 долларов, вам не обязательно выдадут купюры того же номинала, что вы внесли.

Если вы используете копилку для хранения наличных, дела обстоят иначе. Если вы положите в копилку пять купюр по 20 долларов, составляющие суммы останутся неизменными: это будет пять купюр по 20 долларов. Если вы разобъёте копилку с сотней долларов, вы не получите волшебным образом одну стодолларовую купюру, у вас по-прежнему будет пять купюр по 20 долларов. Кроме того, если бы вы захотели заплатить кому-то 10 долларов из 100 долларов в вашей копилке, возникла бы проблема: ваша самая мелкая купюра – 20 долларов, поэтому вам нужно будет как-то разделить её на купюры с меньшим номиналом.

Модель банковского счета – это служба хранения, которая хранит ваши деньги для вас, что аналогично бирже, которая хранит биткоины пользователей – биткоины всех клиентов биржи смешаны.

Модель копилки – это наличные деньги, хранящиеся самостоятельно, что является правильным подходом, который следует практиковать.

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

Номинал UTXO в Биткоине не фиксирован #

Когда вы вносите в кошелек один депозит в размере 0,9 BTC, в результате у вас появляется один UTXO в размере 0,9 BTC. Если вместо этого вы сделаете девять отдельных депозитов по 0,1 BTC каждый, то у вас будет девять UTXO общей стоимостью 0,9 BTC. Это похоже на то, как если бы вы положили в копилку девять купюр по 10 долларов, а не одну купюру в 90 долларов.

Подождите, что? Купюра в 90 долларов? Именно так. Аналогия с копилкой и наличными не совсем удачна, потому что наличные купюры обычно имеют фиксированный номинал, кратный 5 и 10. UTXO Биткоина может существовать в любом объеме. Вы можете пополнить биткоин-кошелек на 3,0610477 BTC, и у вас будет один UTXO в этом номинале.

Так почему же имеет значение, есть ли у вас один UTXO в 0,9 BTC или девять UTXO по 0,1 BTC? К этому мы скоро вернемся.

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

Для начала давайте разберемся, откуда взялось название “неизрасходованный выход транзакции”. В любой транзакции Биткоина (да и вообще в любой транзакции, если на то пошло) есть входы и выходы. Есть отправители и получатели. Входы – это предыдущие владельцы денег и количество денег, которое они отправляют. На выходе – новые владельцы денег и сумма, которую они получают. В любой транзакции может быть один вход или несколько входов, а также один выход или несколько выходов.

Учитывая это, формулировка “выход транзакции” должна иметь немного больше смысла; когда вы вносите биткоин на свой кошелек, ваш кошелек является получателем транзакции, и поэтому он получает выход. Слово “неизрасходованный” просто означает, что с момента получения вы не перемещали биткоин, и “монета” остается в вашей “копилке”.

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

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

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

Если вы уже тратили биткоины из кошельков, находящихся под вашим контролем, и удивляетесь, почему вам никогда не приходилось выбирать UTXO, то это потому, что интерфейсы многих кошельков стараются сделать процесс простым и удобным. Они автоматизируют выбор UTXO, потому что не хотят, чтобы новые пользователи были перегружены сложностями. Однако для того, чтобы по-настоящему владеть своим биткоином и полностью контролировать принимаемые решения, во многих интерфейсах кошельков есть “продвинутая” функция выбора UTXO, часто называемая coin control (с англ. управление монетами).

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

  • Приватность: Выбранные вами UTXO могут определять информацию, которую вы передаете другим лицам (например, получателю) о балансе вашего кошелька и истории транзакций.

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

Давайте рассмотрим каждый из этих аспектов.

Приватность #

В одном из предыдущих примеров мы упоминали, что можно иметь девять UTXO по 0,1 BTC или один UTXO в 0,9 BTC. А что, если вы хотите отправить кому-то 0,2 BTC? Как будет выглядеть процесс в каждом случае?

В первом случае, когда у вас есть девять UTXO по 0,1 BTC, вы можете использовать часть своих UTXO в качестве двух входов для транзакции и отправить их получателю. Тот получит один UTXO номиналом в 0,2 BTC. Это довольно простая операция:

Во втором случае у вас есть только один UTXO номиналом 0,9 BTC, поэтому вы потребуете сдачу. Если вы отправляете 0,2 BTC получателю, вы также захотите отправить остальные 0,7 BTC обратно на свой кошелек (как новый UTXO на новый адрес кошелька):

Недостатком этого метода является раскрытие дополнительной информации о вашем кошельке. Помните, что блокчейн Биткоина – это публичный реестр, поэтому любой желающий может просмотреть любую транзакцию. Получатель 0,2 BTC, может открыть транзакцию в обозревателе блоков и обнаружить, что вы отправили 0,7 BTC куда-то в качестве дополнительного выхода. Они могут обоснованно предположить, что 0,7 BTC – это, вероятно, ваша сдача с более крупного UTXO в 0,9 BTC, так что вы, по сути, раскрыли этому человеку информацию о наличии у вас еще как минимум 0,7 BTC. Более того, получатель теперь может отслеживать этот UTXO в 0,7 BTC и видеть будущие транзакции, в которых этот UTXO будет задействован.

Сдача часто неизбежна, потому что UTXO редко равны той самой сумме, которую нужно отправить. Даже в ситуации с девятью UTXO по 0,1 BTC, если бы вы пытались отправить кому-то альтернативную сумму в 0,05 или 0,25 BTC, также потребовалась бы сдача. Однако в этом случае сдача будет меньше, поэтому о балансе вашего кошелька будет раскрыто меньше информации. Простыми словами, выбор более мелких, а не крупных UTXO при отправке биткоина помогает сохранить приватность. Однако за наличие в кошельке большого количества UTXO меньшего размера приходится платить, о чем мы и поговорим далее.

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

Комиссии за транзакции #

Как рассчитываются комиссии за биткоин-транзакции? Если углубляться в дебри, есть два основных фактора, которые определяют комиссию, которую вы заплатите за обработку транзакции:

  1. Выбранная вами комиссионная ставка (стоимость одного байта данных).

  2. Объем данных, который занимает ваша транзакция.

В то время как большинство биткоин-кошельков позволяют вам выбрать комиссионную ставку, над объемом данных, который займет ваша транзакция, у вас не так много контроля. Объем данных, необходимых транзакции, зависит от нескольких факторов, в частности от количества входов и выходов. Для большинства обычных транзакций количество выходов составляет всего один или два (если есть сдача), но количество входов полностью зависит от того, сколько UTXO вы собираетесь использовать. Если у вас есть один UTXO на 0,9 BTC, и вы хотите отправить 0,6 BTC, вам нужно будет потратить всего один вход:

Комиссия за транзакцию с одним входом будет значительно ниже, чем если бы вам пришлось использовать шесть входов по 0,1 BTC:

На самом деле, поскольку комиссия определяется объемом данных, а не количеством биткоинов, вы, как правило, заплатите бóльшую комиссию за отправку шести UTXO по 0,1 BTC, чем за отправку одного UTXO номиналом в 100 биткоинов.

Чем больше UTXO вы держите в своем кошельке, тем больше комиссионных вы заплатите, когда придет время отправить монеты. Если рынок комиссий будет нагреваться, а вам предстоит отправка монет, наличие множества мелких UTXO может оказаться дорогостоящим. Насколько дорогостоящим?

Как же мне управлять своими UTXO? #

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

Решение о том, что для вас является приоритетом, поможет вам выбрать стратегию обращения с UTXO, что является важной частью ответственного контроля над собственными средствами.

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

  • Контроль частоты пополнения депозитов
  • Консолидация UTXO
  • CoinJoin

Контроль частоты депозитов #

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

Консолидация UTXO #

Вторая техника – это консолидация UTXO. Если у вас есть девять UTXO по 0,1 BTC каждый, вы можете их консолидировать. Просто отправьте все девять UTXO на новый адрес своего кошелька. В итоге в вашем кошельке окажется один UTXO номиналом 0,9 BTC (за вычетом комиссии за транзакцию). Если вы проведете консолидацию в условиях низких комиссий, то сможете сэкономить значительные средства, когда в будущем вам придется отправлять биткоин в условиях высоких комиссий. Однако имейте в виду, что при консолидации UTXO остается след в виде предшествующих транзакции, который связывает монеты с вами как с пользователем этих монет.

CoinJoin #

Третья техника, называемая CoinJoin, – это более продвинутая процедура, которая повышает вашу приватность за счет координации смешанных трат с другими сторонами. В результате становится гораздо сложнее отследить принадлежность монет. Подробнее о CoinJoin можно узнать в этом материале.

Изучайте лучшие практики управления средствами #

Этот материал – вступление в более комплексной и объемной теме управления своими монетами. Мы продолжаем работу над переводом этой серии статей, поддержать которую можно здесь.

Тем временем вы можете обратить внимание на разделы Безопасность и Практика, чтобы ознакомиться с теоретическими и практическими советами по хранению биткоина.


Connect to our relay to leave a comment. Details.
Подключитесь к нашему релею, чтобы оставить комментарий. Подробнее.