UTXO в Bitcoin: входы/выходы, «сдача» (change) и комиссии

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

Базовые моменты

Атомарность: UTXO тратится всегда целиком; если сумма больше нужной — формируется выход «сдачи» на адрес отправителя.

Пара ключей: право потратить UTXO доказывается подписью владельца соответствующим приватным ключом (см. также кошелёк).

Параллелизм: узлам проще обрабатывать независимые UTXO — это повышает масштабируемость и упрощает параллельную валидацию.

Приватность/анализ: каждая «монета» прослеживается по цепочке; совокупность входов/выходов транзакции влияет на анализ связей.

Комиссия: комиссия не прописывается явно — это разница между суммой входов и суммой выходов (см. комиссии).

Как это работает (пошагово)

У вас есть набор UTXO: например, 0.3 BTC и 0.2 BTC на ваших адресах.

Вы хотите отправить 0.35 BTC. Кошелёк выбирает UTXO 0.3 + 0.2 = 0.5 BTC как входы.

Формируются выходы:

0.35 BTC — получателю;

0.1499 BTC — «сдача» обратно на ваш адрес;

0.0001 BTC — остаётся как комиссия майнерам.

Подписание: кошелёк подписывает входы соответствующими ключами.

Публикация и подтверждение: узлы проверяют подписи и отсутствие двойной траты; после включения в блок создаются новые UTXO (0.35 и 0.1499).

Важно: если подходящих UTXO нет, кошелёк может «дробить» или «склеивать» монеты. Алгоритм выбора входов (coin selection) влияет на комиссию, приватность и «пыль» (dust).

Сравнение моделей учёта

Критерий UTXO (напр., Bitcoin) Аккаунт-модель (напр., Ethereum)
Состояние Набор независимых «монет»-выходов. Баланс на адресе + nonce.
Расходование Тратятся целые UTXO, создаются новые. Баланс уменьшается на сумму и комиссию.
Параллелизм Легко валидировать независимые UTXO. Сложнее параллелить из-за общего баланса/nonce.
Приватность/связи Видны связи входов/выходов, возможна «сдача». Простые переводы по балансу; связи — через историю адреса.
Смарт-логика Ограниченные сценарии скриптов. Полноценные смарт-контракты.

Практические аспекты

  • Сдача (change). Всегда проверяйте, что кошелёк отправляет сдачу на ваш адрес (лучше — автоматически сгенерированный новый).
  • Coin selection. Кошельки используют стратегии (напр., «минимум входов», «старшие сначала»). Это влияет на итоговый размер транзакции (и комиссию), а также на «деанонимизацию» связей.
  • Пыль (dust). Мелкие UTXO иногда экономически невыгодно тратить (комиссия съедает выгоду). Планируйте консолидацию в периоды низких комиссий.
  • Мультиподписи и скрипты. UTXO может требовать несколько подписей (m-of-n) или содержать иные условия траты; это полезно для корпоративных и совместных сценариев.
  • Двойная трата. До финальности получатель рискует: избегайте «zero-conf» для ценных товаров (см. двойная трата).

Плюсы и ограничения модели UTXO

Аспект Плюсы Минусы/ограничения
Масштабируемость валидации Независимость UTXO упрощает параллельную проверку. Управление множеством «монет», рост размера транзакций при множестве входов.
Приватность Можно планировать coin selection и адреса сдачи. Анализ графа входов/выходов может связывать личности/кошельки.
Безопасность Простая модель владения: «кто может подписать — тот тратит». Ошибки в UX (адрес сдачи, утечка ключей) ведут к потере средств.
Комиссии Гибкое планирование трат UTXO под сеть/цену газа. Комиссия зависит от числа входов/выходов (байты транзакции).

Чек-лист пользователя UTXO-сетей

1. Держите ключи/сид-фразу офлайн (см. приватный ключ, seed-фраза, кошелёк).

2. Проверяйте адреса получателя и адрес сдачи на экране устройства/кошелька.

3. Периодически консолидируйте пыль при низких комиссиях, чтобы не копить экономически «тяжёлые» мелкие UTXO.

4. Для платежей на большую сумму планируйте число входов заранее — это снизит размер и стоимость транзакции.

5. Избегайте смешивания «чистых» и «подозрительных» UTXO: история монет важна для комплаенса и анализа.

6. Не принимайте значимые платежи без подтверждений; оцените политику финальности для вашей сети.

Частые вопросы (FAQ)

Почему моя транзакция дороже, чем ожидалось? В UTXO-модели цена прямо зависит от размера транзакции в байтах: больше входов/выходов → дороже при том же тарифе за байт.

Зачем нужна «сдача», нельзя ли «частично» потратить UTXO? Нельзя: UTXO тратится целиком, а остаток возвращается сдачей как новый UTXO на ваш адрес.

Можно ли собрать одну «крупную монету»? Да, объединив несколько UTXO в один выход — это называется консолидацией (делайте при низких комиссиях).

Чем UTXO лучше/хуже аккаунт-модели? UTXO проще для параллельной валидации и имеет чёткую модель владения «монетой», но сложнее по UX и управлению множеством входов/сдачи. Аккаунт-модель удобнее для сложных контрактов.

Как защититься от анализа связей? Используйте новые адреса для сдачи/платежей, продуманные стратегии coin selection и разделение «рабочих»/«хранилищных» кошельков. Полной анонимности базовый протокол не даёт.

См. также

Bitcoin (BTC)

Ethereum

Блокчейн

Криптокошелёк

Приватный ключ

Self-custody

Комиссии

Холодный кошелёк

Двойная трата

Управление рисками

Task Runner