Аббревиатура UTXO (Unspent Transaction Output) связана с правильным функционированием блокчейнов. UTXO создаются во время транзакций и служат для отслеживания права собственности и предотвращения двойных трат. UTXO играют важную роль в функционировании, безопасности и прозрачности сети Bitcoin.
Понятие UTXO биткоин
В криптовалютной транзакции есть входы и выходы. Входы — это источники средств (ранее полученные транзакции), а выходы — это пункты назначения, куда средства идут. Когда вы совершаете транзакцию в Bitcoin, вы тратите UTXO на своем счете. Каждый выход из предыдущей транзакции может находиться в одном из двух состояний — потраченный или неизрасходованный. Если он не был использован ни в одной из последующих транзакций, он считается неизрасходованным. И наоборот, как только выход был использован в транзакции, он становится потраченным.
UTXO — это неизрасходованные выходы предыдущих транзакций. Они представляют собой криптовалюту, которой пользователь владеет и может использовать в будущих транзакциях.
Как работают UTXO Bitcoin
UTXO являются базовой моделью учета Bitcoin и используются для отслеживания владения монетами. UTXO состоят из следующих элементов:
- Сумма: количество биткоинов или остатков, обрабатываемых UTXO;
- Адрес на который был отправлен или получен UTXO;
- TX ID: хэш или TX ID транзакции, из которой исходит UTXO;
- Цифровая подпись владельца UTXO отображается в биткоин-скрипте транзакции.
Эти элементы можно посмотреть в mempool любого обозревателя блоков биткоин. Записи, которые использует пользователь, находятся слева. Транзакция имеет идентификатор TX: 9bee32a5ed5c4a3c30030edf966c7849c4f97dd2da929cdab77b39a72f19453c.
В этом случае пункт назначения находится справа. Первый пункт назначения адрес: bc1qkc2swj6y383wwswwsc94f3glmsjr09hlyydkgh — это целевое лицо или кошелек вашей операции, а второй пункт назначения bc1qns9f7yfx3ry9lj6yz7c9er0vwa0ye2eklpzqfw — это адрес обмена, реинтегрирующий неизрасходованный баланс UTXO. Таким образом, эти пункты назначения представляют собой два новых UTXO, которые пользователь может использовать, если сможет проверить соответствующий закрытый ключ, чтобы разблокировать их.
Очевидно, что когда пользователь получает UTXO, он находится в его кошельке. Этот кошелек хранит список всех принадлежащих ему UTXO. Чтобы потратить UTXO, нужно предоставить цифровую подпись, подтверждающую владение UTXO.
Подпись UTXO генерируется с помощью закрытого ключа его адреса получения. При отправке транзакции Bitcoin, подпись находится внутри нее. Система отправляет эту транзакцию в сеть Bitcoin и добавляет ее в блок. Как только транзакция оказывается внутри блока, неизрасходованный выход транзакции (UTXO) тратится и удаляется из пула неизрасходованных UTXO.
Помимо предотвращения двойной траты BTC, эта система также означает, что в любой момент все узлы могут договориться о том, сколько BTC существует. Они могут сделать это, вычислив общую стоимость всех UTXO в блокчейне, называемых “набором UTXO”.
UXTO на практике
Представьте, что у вас есть три UTXO:
- UTXO1: 0,2 BTC;
- UTXO2: 0,3 BTC;
- UTXO3: 0,2 BTC.
Вы хотите отправить 0,4 BTC получателю. Чтобы совершить эту транзакцию, вы используете UTXO1 (0,2 BTC) и часть UTXO2 (0,2 BTC) для создания нового UTXO для получателя, что в сумме составляет 0,4 BTC.
Вы также создаете сдачу UTXO для себя из оставшейся части UTXO2. Поскольку вы использовали 0,2 BTC из UTXO2 для получателя, у вас осталось 0,1 BTC из UTXO2 в качестве сдачи.
- UTXO1 потрачен (0,2 BTC);
- UTXO2 частично потрачен (0,2 BTC отправлено получателю);
- UTXO3 остается неизрасходованным (0,2 BTC);
- UTXO4 изначально не существовал, но был создан с отправкой 0,4 BTC получателю;
- UTXO5 изначально не существовал, но был создан с 0,1 BTC в качестве замены UTXO2.
Ниже приведена подробная разбивка входов и выходов.
Входы
От кого | UTXO | Количество |
---|---|---|
Отправитель | UTXO1 | 0,2 BTC |
Отправитель | UTXO2 | 0,3 BTC |
Отправитель | UTXO3 | 0,2 BTC |
Выходы
От кого / Куда | UTXO | Количество |
---|---|---|
Отправитель | UTXO1 | 0,2 BTC |
Отправитель | UTXO2 | 0,3 BTC |
Отправитель | UTXO3 | 0,2 BTC |
Получатель | UTXO4 | 0,4 BTC |
Отправитель | UTXO5 | 0,1 BTC |
Неизрасходованный UXTO
От кого | UTXO | Количество |
---|---|---|
Отправитель | UTXO1 | 0,2 BTC |
Отправитель | UTXO2 | 0,3 BTC |
Отправитель | UTXO3 | 0,2 BTC |
Отправитель | UTXONew | 0,2 BTC |
Модель UTXO против модели счета
Модель UTXO является альтернативой счетам или балансам. На фиатном банковском счете есть баланс. Когда вы делаете платеж, вы отправляете часть этого баланса кому-то другому. Ваш банк и его банк связываются друг с другом для проверки транзакции и обновления обоих счетов. Эта система полагается на доверие третьих сторон (банков) для обработки и авторизации платежа. Но в биткоине нет центрального органа власти.
Вместо этого биткоины обмениваются по принципу “равный-равному”, и каждая транзакция регистрируется в открытой базе данных — блокчейне, — которая управляется децентрализовано сетью компьютеров (узлов). После добавления в блокчейн и независимой проверки несколькими независимыми узлами (каждый из которых имеет полную копию этой базы данных) транзакция подтверждается и становится частью постоянного и публичного реестра Биткоина.
Когда вы отправляете кому-то BTC, вы на самом деле не совершаете перевод с одного счета на другой. Вместо этого вы передаете право собственности на определенное количество BTC, которое существует в виде данных в блокчейне и регистрируется как принадлежащее вам. Вы управляете этим через свой биткоин-кошелек, в котором хранится закрытый ключ, используемый для подписи или авторизации транзакции. А количество отправленных BTC измеряется в UTXO.
UTXO и комиссии за транзакции Bitcoin
При совершении транзакции в блокчейне Bitcoin, необходимо заплатить комиссию, чтобы она была добавлена в блок и подтверждена. Комиссия выплачивается майнеру, который добавляет блок и предлагает стимул для более быстрого подтверждения транзакций.
В любой транзакции размер комиссии — это разница в суммах между входами и выходами. Если общая сумма входов составляет 1 биткоин, а общая сумма выходов — 0,99 биткоина, то комиссия, выплачиваемая майнеру, составляет 0,01 биткоина.
Блоки Bitcoin имеют ограниченный объем пространства и добавляются в среднем каждые 10 минут. Это гарантирует, что весь блокчейн останется достаточно маленьким для загрузки и проверки на обычном ноутбуке, помогая Bitcoin оставаться децентрализованным, сохраняя участие открытым для всех. Таким образом, комиссии основаны на объеме данных, требуемых транзакцией, а не на ее финансовой стоимости. Транзакции, которые занимают больше байтов данных, например, с большим количеством входов и выходов, приносят больше комиссий, поскольку они используют больше дефицитного ресурса пространства блока.
Порядок расходования UTXO в биткоин-транзакциях
В модели Bitcoin UTXO порядок, в котором тратятся неизрасходованные выходы транзакций, по умолчанию соответствует подходу “первым пришел, первым ушел” (FIFO). Это означает, что полученные первыми UTXO тратятся первыми при инициировании транзакции. Когда пользователь создает транзакцию Bitcoin, он выбирает UTXO для покрытия суммы транзакции, включая комиссии. Любое избыточное значение из этих UTXO возвращается как новый UTXO, который также соответствует правилу FIFO.
Важно отметить, что некоторые продвинутые программы для кошельков Bitcoin и Ordinal позволяют пользователям вручную выбирать, какие UTXO тратить, предлагая большую гибкость в определении порядка расходования UTXO. Это особенно важно при рассмотрении теории Ordinal.
Ординальная теория и UTXO
Ordinal Theory — это метод уникальной маркировки каждого сатоши, наименьшей единицы валюты Bitcoin, отдельным номером. Поскольку общий запас Bitcoin составляет 21 миллион (или 2,1 квадриллиона сатоши), эти номера присваиваются в порядке их добычи. Когда добывается новый блок, создаются новые сатоши с уникальными номерами.
С помощью модели UTXO можно отслеживать порядковый номер для каждого сатоши. Использование существующей модели UTXO в Bitcoin — это то, что отличает Ordinals и Runes от других подходов.
Почему управление UTXO имеет значение
Тем кто совершает много транзакций, могут накапливать в своих кошельках множество UTXO разных размеров, и то, как они ими управляют, влияет на стоимость и безопасность.
Управление UTXO может минимизировать комиссии
Рассмотрим, как работают комиссии за транзакции в сети Bitcoin:
- Традиционные банковские комиссии обычно представляют собой фиксированную ставку или процент от транзакции. А комиссии Bitcoin различаются от транзакции к транзакции;
- Комиссии за майнинг биткоинов зависят от объема трафика в сети (количества обрабатываемых транзакций) и от того, насколько быстро стороны хотят, чтобы транзакция была подтверждена;
- Чем больше UTXO в транзакции, тем больше информации нужно обработать и, следовательно, тем выше комиссия.
В отличие от фиатного кошелька, в системе UTXO выгодно хранить несколько UTXO разного номинала. Каждый раз, когда совершается транзакция, можно использовать наименьшее количество UTXO, что позволяет поддерживать низкие комиссии. Это также ускоряет время подтверждения. При этом, это вызывает некоторые другие проблемы. Например, занятые кошельки могут накапливать чрезмерное количество небольших UTXO. И, опять, осуществление платежей с несколькими из этих небольших UTXO не является экономически эффективным. Поэтому в какой-то момент UTXO необходимо консолидировать.
Управление UTXO может повысить безопасность
Помимо снижения затрат на ведение бизнеса и ускорения подтверждений, есть еще одна причина, по которой следует внедрить эффективные методы управления UTXO.
Кошельки, отправляющие особенно крупные транзакции, могут привлекать к себе внимание. По этой причине, среди прочего, большинство крупных пользователей поддерживают два-три кошелька или даже больше.
Еще одна потенциальная проблема безопасности возникает, когда пользователь получает неожиданный платеж в виде UTXO небольшой суммы, что называется атакой с использованием биткоин-пыли. Главное здесь — избегать траты небольших UTXO, и здесь также вступает в игру хорошее управление.
Как управлять UTXO
Ниже приведены некоторые рекомендации по управлению UTXO:
- Держите UTXO не менее 1 миллиона сатоши (0,01 биткоина), чтобы они оставались экономически жизнеспособными, даже если комиссии вырастут. UTXO размером всего в 10 000 или даже 100 000 сатоши могут стать неэкономичными или невыгодными для расходования в условиях высоких комиссий;
- Будьте внимательны к частоте транзакций: частые, небольшие транзакции могут привести к распространению крошечных UTXO, которые невыгодно тратить из-за более высоких комиссий за транзакции. Вместо этого стремитесь к меньшему количеству более крупных транзакций;
- Используйте кошелек, поддерживающий управление UTXO, что позволяет консолидировать более мелкие UTXO в периоды низкой загруженности сети, тем самым снижая комиссии;
- Не храните все биткоины в одном большом UTXO. Использование большого UTXO в качестве входа в будущей транзакции может раскрыть активы получателю, поскольку он может увидеть, какой UTXO использовался в качестве входа и куда была отправлена сдача, что может повлиять на конфиденциальность;
- Диверсифицируйте размеры UTXO: если возможно, поддерживайте сочетание размеров UTXO, чтобы иметь возможность выбора при использовании входов подходящего размера для будущих транзакций;
- Разделяйте UTXO из разных источников, включая, не прошедшие процедуру KYC, чтобы сохранить конфиденциальность и предотвратить отслеживание транзакций получателями;
- Соблюдайте время отправки: следите за ставками комиссий и старайтесь отправлять транзакции, когда комиссии относительно низкие, но не ждите слишком долго, поскольку желаемая ставка комиссии может быть не достигнута;
- Избегайте повторного использования адресов: чтобы обеспечить конфиденциальность и избежать отслеживания, используйте новый адрес Bitcoin каждый раз, когда совершаете транзакцию в сети;
- Используйте периоды низких комиссий для объединения меньших UTXO в качестве входов в более крупные выходы для обеспечения будущей экономической жизнеспособности;
- Будьте осторожны с резкими скачками комиссий: внезапные повышения комиссий могут быть временными и могут спадать в течение нескольких часов или дней. Для несрочных транзакций ожидание может быть разумным, хотя ожидается, что долгосрочные комиссии вырастут с ростом принятия биткоина;
- Используйте Lightning Network для небольших транзакций. Lightning позволяет осуществлять реальные транзакции биткоинов, не записывая каждую из них в блокчейн, избегая комиссий и времени ожидания. Транзакции в Lightning происходят мгновенно и с низкой или нулевой стоимостью, что позволяет отправлять даже отдельные сатоши друзьям или в собственный кошелек Lightning.
Преимущества и недостатки UTXO
Плюсы | Минусы |
---|---|
Безопасность: UTXO обеспечивают высокий уровень безопасности, поскольку гарантируют, что каждая транзакция тратит только те UTXO, на которые она ссылается. Это предотвращает несанкционированный доступ ко всему балансу. Это безопасная и устойчивая к цензуре модель. Чтобы потратить UTXO, пользователь должен предоставить цифровую подпись, подтверждающую, что он владеет UTXO. Эта подпись криптографически безопасна, что затрудняет ее подделку. Кроме того, модель UTXO не требует доверенной третьей стороны для проверки транзакций, что делает ее устойчивой к цензуре, поскольку никакой центральный орган не может помешать отправке транзакций. | Неэффективность: при обработке больших транзакций с несколькими входами, поскольку эти транзакции требуют представления каждого скрипта для адресов и соответствующих им UTXO, что в конечном итоге делает транзакции с большим количеством UTXO очень громоздкими и с высокими комиссиями. |
Отслеживание транзакций: UTXO позволяют легко отслеживать поток криптовалюты в блокчейне. Эта прозрачность повышает безопасность и помогает предотвратить двойные траты. | Ограниченная гибкость: UTXO ограничивает гибкость в создании продвинутых платформ. Эту проблему можно увидеть в сложности создания продвинутых систем смарт-контрактов в Bitcoin, что может улучшить модель UTXO. |
Конфиденциальность: UTXO предлагают некоторую степень конфиденциальности, поскольку не раскрывают весь баланс кошелька в каждой транзакции. Вместо этого раскрываются только UTXO, используемые в этой транзакции. | Простота и эффективность: Для представления UTXO этой модели требуется два элемента: количество биткоинов и адрес назначения UTXO. В результате она намного эффективнее других моделей, таких как Account Model, используемая в Ethereum. |
Гибкость: позволяет производить оплату дробными суммами. Система может делить их на произвольные дроби, которые обеспечивают оплату дробных долей биткоинов. Эта характеристика жизненно важна для микроплатежей. |
Заключение
UTXO, или неизрасходованный выход транзакции, является основополагающей концепцией в технологии блокчейн, особенно в криптовалютах, таких как биткоин. Понимание UTXO необходимо для безопасных, прозрачных и эффективных операций блокчейна, а эффективное управление помогает сократить комиссии и время на обработку транзакций.