Кальтер / Блог

Почему число входов Bitcoin-транзакции влияет на её размер и комиссию

Разбираем UTXO, inputs и vsize на условном сравнении и оцениваем компромиссы coin control для комиссии и приватности.

Материал подготовлен с помощью ИИ. Источники, учебные примеры и расчёты проверены редакцией перед публикацией.

Условное сравнение транзакций с разным числом UTXO-входов; суммы и фактические комиссии не показаны.
Условное сравнение транзакций с разным числом UTXO-входов; суммы и фактические комиссии не показаны.

Bitcoin-баланс — сумма одного или нескольких UTXO: выходов старых транзакций, которые ещё можно потратить. Когда кошелёк собирает новый перевод, он выбирает входы и создаёт выходы. Поэтому два перевода одинаковой суммы могут иметь разный размер и комиссию: важны число входов, типы скриптов, число выходов и текущая ставка sat/vB.

Почему «много мелких остатков» меняет размер

В техническом руководстве Bitcoin каждая транзакция содержит inputs, ссылающиеся на предыдущие outputs, и новые outputs. Input включает данные, необходимые для разблокировки предыдущего выхода; их объём зависит от типа скрипта и условий траты (Bitcoin Developer Guide: Transactions). Кошелёк с coin control может дать выбрать, какие UTXO расходовать, но оценка размера всё равно требует конкретного формата.

Учебный перевод Входы Выходы Условная оценка размера
A 1 2 141 vB
B 6 2 481 vB

Условия этой учебной оценки заданы явно: все входы — native P2WPKH, оба выхода тоже P2WPKH; в witness каждого входа предполагаем подпись 72 байта и сжатый ключ 33 байта. Это не измерение реального кошелька. При этих условиях base size равен 72 + 41×N байт, witness с marker/flag — 2 + 108×N байт. По BIP 141 weight равен 4×base + witness, а vsize — ceil(weight/4). Получаются 562 WU→141 vB для одного входа и 1922 WU→481 vB для шести. При условной ставке 8 sat/vB это 1 128 и 3 848 sat соответственно. Реальные vsize нельзя надёжно вывести по одному числу входов: witness, script type и дополнительные поля влияют на сериализованный размер. Текущая ставка также меняется.

Coin control — выбор с компромиссами

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

Попроси ИИ пересчитать сценарий только из указанного типа адресов, количества inputs/outputs, оценочного vsize и ставки sat/vB. Пусть отделит известные значения от предположений и не называет расчёт гарантированной комиссией. Не загружай xpub или seed в посторонний сервис.

Для конкретного кошелька проверь выбранные inputs, change-output и комиссию в его собственном интерфейсе до отправки. Для уже отправленного Bitcoin-перевода отдельно сравни RBF и CPFP; общий разбор комиссий есть в обзоре сетевых комиссий, а статус уже отправленной операции — в руководстве по криптоплатежам.