Что такое UTXO простыми словами

UTXO (Unspent Transaction Output, «неизрасходованный выход транзакции») — это базовая единица учёта в Bitcoin. В отличие от банковского счёта или Ethereum-кошелька, в Bitcoin нет общего «баланса». Вместо этого сеть хранит огромный список конкретных кусков монет, каждый из которых был получен в результате какой-то транзакции и ещё никем не потрачен.

Твой «баланс» в Bitcoin — это сумма всех твоих UTXO, привязанных к твоим адресам. Когда ты отправляешь BTC, кошелёк выбирает один или несколько UTXO как входы, тратит их полностью и создаёт новые UTXO: один на адрес получателя, второй — сдачу обратно тебе.

ℹ️ Аналогия из жизни

Представь, что у тебя в кошельке наличные купюры: одна на 500 ₽, одна на 1000 ₽, одна на 5000 ₽. Чтобы заплатить 700 ₽, ты не «вычитаешь баланс», а отдаёшь конкретные купюры (например, 1000) и получаешь сдачу (300). UTXO — это те самые «купюры» в Bitcoin.

UTXO vs Account-based модель Ethereum

Это два фундаментально разных подхода к учёту средств в блокчейнах.

Параметр UTXO (Bitcoin) Account-based (Ethereum)
Что хранится Список неизрасходованных выходов Балансы аккаунтов
Параллельность Высокая (можно тратить разные UTXO) Низкая (один nonce на аккаунт)
Приватность Лучше (новые адреса) Хуже (одна история)
Сложность смарт-контрактов Высокая Низкая
Размер ноды ~7 ГБ UTXO set ~150 ГБ state

UTXO лучше для денег и приватности. Account-based удобнее для сложных приложений и DeFi.

Как работают UTXO на практике

Допустим, ты получил BTC двумя транзакциями: 0.3 и 0.5. У тебя теперь два UTXO. Когда ты отправляешь 0.6 BTC, кошелёк может:

  • Взять оба UTXO как входы (0.3 + 0.5 = 0.8)
  • Создать выход на 0.6 BTC получателю
  • Создать сдачу 0.2 BTC обратно на твой адрес (с учётом комиссии)
  • Старые два UTXO сжигаются, появляются новые два

Этот процесс выбора UTXO называется coin selection. Современные кошельки (Sparrow, Wasabi, Electrum) дают пользователю несколько алгоритмов на выбор:

  • Branch and Bound — минимум комиссии за счёт точного подбора
  • Knapsack — максимально точное совпадение суммы
  • Single Random Draw — для приватности (случайный выбор)
⚠️ Dust UTXO — экономическая ловушка

UTXO размером меньше комиссии за их трату называются dust. Например, UTXO в 1000 сатоши при комиссии 50 sat/vB будет «съеден» комиссией при попытке потратить. Скам-проекты иногда специально шлют dust на твой адрес для деанонимизации. Не используй такие UTXO — отметь их как «не тратить» через coin control.

Coin control и UTXO-приватность

Coin control — это функция выбора конкретных UTXO при отправке. Большинство мобильных кошельков (Trust Wallet, BlueWallet) её не дают, а Sparrow, Electrum, Wasabi и Bitcoin Core — поддерживают полностью.

  • Видишь список всех своих UTXO с источником происхождения
  • Можешь отмечать какие тратить, а какие беречь
  • Не смешиваешь UTXO с разных источников (например, с биржи Bybit и с майнинг-пула)
  • Защищаешь приватность — никто не свяжет твой основной кошелёк с тестовым

Если хочется максимум приватности — используй CoinJoin-сервисы (Wasabi, JoinMarket). Они смешивают UTXO многих пользователей в один пакет, и после этого невозможно отследить «кому принадлежит какой выход». Полученные после CoinJoin UTXO можно безопасно использовать для платежей или продавать через обменник BTC→RUB.

💡 Совет

При получении BTC от разных источников используй разные адреса. Например: один адрес для бирж (Bybit, MEXC), второй для P2P-сделок, третий для майнинга. Не смешивай эти UTXO в одной транзакции — это сохраняет приватность операций.

Что нужно знать новичку

UTXO — концепция нетривиальная, но её базу важно понимать.

  • «Баланс» в Bitcoin — это сумма UTXO, а не запись на счёте
  • Каждая отправка тратит UTXO целиком и создаёт сдачу — это нормально
  • Не отправляй UTXO меньше 0.0001 BTC — комиссия их съест
  • Используй coin control для приватности — это бесплатно и легально
  • Не путай UTXO с балансом аккаунта в Ethereum — там по-другому
  • Все крупные кошельки автоматически считают UTXO правильно, новичку не нужно вмешиваться