Перейти к содержимому
buybitcoinsmart

Глоссарий / Транзакции и комиссии

Виртуальный байт

Другие названия: vbyte, vB.

Что такое виртуальный байт?
Виртуальный байт представляет собой единицу, в которой кошельки оценивают транзакции: четверть веса транзакции, округленная вверх, поэтому любая комиссия указывается в сатоши за vbyte.

Определено в BIP-141.

Кошельки могли бы указывать комиссии в единицах веса и больше не упоминать байты, но виртуальный байт сохраняет прежнюю арифметику неизменной: транзакция без данных свидетеля имеет vsize, в точности равный ее размеру в байтах. В один блок помещается 1 000 000 таких байтов. Чтение котировки в sat/vB показывает, справедлива ли комиссия за вывод или завышена.

Как это работает

Виртуальный размер получается из одной строки арифметики: возьмите вес, разделите на четыре, округлите вверх.

Разрыв между этим числом и необработанной сериализацией показывает, где теряются деньги. Платеж, тратящий одну нативную монету segwit на два выхода, занимает 222 байта в сети, весит 561 единицу веса и оценивается в 141 виртуальный байт. Умножьте 222 на выбранную ставку вместо 141, и вы переплатите примерно на 57 процентов. Обозреватели блоков печатают обе цифры рядом и обозначают их size и vsize, и выбор неправильной из них является самой распространенной арифметической ошибкой при оценке комиссий.

Округление происходит один раз, в конце. Части не выражаются целыми числами: вход Taproot по пути ключа измеряется в 57,5 vbytes, поэтому промежуточный итог может оказаться на половине. Два кошелька, строящие идентичный расход, могут поэтому расходиться на один vbyte, и ни один из них не ошибается. Bitcoin Core показывает все три представления одной и той же транзакции, size, vsize и weight, так что любое из них можно проверить самостоятельно.

Оценщики комиссий говорят в той же единице в замаскированной форме. estimatesmartfee отвечает в биткоинах за киловиртуальный байт, поэтому возвращенная ставка 0,00005000 означает, что 5000 сатоши покупают 1000 виртуальных байт, то есть 5 sat/vB. Каждая полоса на панели мемпула, каждый ползунок в кошельке и каждое сообщение об отказе из-за порога ретрансляции выражены одинаково.

Где это встречается

Виртуальные байты определяют, сколько в действительности стоит вывод с биржи, и расчет стоит сделать до того, как принять фиксированную комиссию.

Возьмите платформу, которая объединяет выводы: один вход финансирует 100 выводов клиентов в одной транзакции. При 31 vbytes на нативный выход segwit плюс 68 на вход и около 11 на служебные данные вся транзакция составляет примерно 3179 vbytes. При 5 sat/vB это стоит 15 895 сатоши, или около 159 сатоши на каждого из сотни участников. Фиксированная комиссия в 0,0001 BTC выставляет каждому из них 10 000 сатоши за это место, более чем в шестьдесят раз больше его доли. При наплыве соотношение меняется на обратное: при 100 sat/vB тот же пакет стоит 3179 сатоши с человека, и фиксированная комиссия становится субсидией. Фиксированные комиссии за вывод представляют собой ставку, и в спокойные дни выигрывает заведение.

Эта же единица определяет цену и ваших собственных хозяйственных операций. Сбор мелких монет вместе оплачивается почти исключительно по числу входов, поэтому объединение двенадцати нативных входов segwit в один выход составляет около 858 vbytes независимо от задействованных сумм. Сделайте это при 2 sat/vB, и это будет стоить менее 2000 сатоши. Сделайте это во время скачка комиссий, и это будет стоить в пятьдесят раз больше за ту же работу.

Виртуальный байт vs единица веса

Виртуальный байт и единица веса измеряют одни и те же данные в масштабах, различающихся в четыре раза, и округление является единственным местом, где они перестают быть взаимозаменяемыми. Ограничения консенсуса записываются в весе, поэтому потолок блока указывается как 4 000 000 единиц. Интерфейсы записываются в vbytes, потому что 8 sat/vB легче держать в голове, чем 2 сатоши за единицу веса. Функция потолка означает, что транзакция в 561 единицу веса оплачивается как 141 vbytes, а не как 140,25, поэтому вы платите за три четверти байта, которые не использовали. Чтение спецификации погружает вас в вес; оплата чего угодно погружает вас в vbytes.

Не путать с

Часто задаваемые вопросы

Почему мой кошелек показывает 141 vbytes, а обозреватель блоков указывает 222 байта?

Обе цифры верны. 222 представляет собой сериализованную длину в сети, а 141 является этой длиной после того, как данные подписи учтены по ставке в четверть. Комиссии взимаются по меньшей цифре, поэтому используйте vsize всякий раз, когда умножаете на ставку.

Означают ли sat/vB и sat/byte одно и то же?

Только для транзакции без данных свидетеля, где оба размера идентичны. Для всего, что тратит выход segwit или Taproot, vsize меньше, поэтому инструмент, который по-прежнему указывает комиссию в sat/byte, завысит ее вплоть до четырех раз.

Читайте далее

Связанные термины

Еще в разделе «Транзакции и комиссии»

Читать эту страницу на английском