Перед тем как вы погрузитесь в изучение статьи, обратите внимание на тот факт что всё упомянутое в ней не является финансовой рекомендацией для принятие более взвешенного решения просьба провести свое собственное исследование.

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

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

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

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

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


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

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

Существует фундаментальная разница между внесением 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. Это довольно простая операция:
e1a7eab765.webp


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

c7d2031cca.webp


Недостатком этого метода является раскрытие дополнительной информации о вашем кошельке. Помните, что блокчейн Биткоина – это публичный реестр, поэтому любой желающий может просмотреть любую транзакцию. Получатель 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 меньшего размера приходится платить, о чем мы и поговорим далее.