Оптимальная комиссия транзакции Bitcoin

13.06 : 0.00002939

Last tx time: 2018-12-14 19:48:11 MSK
Mempool: 8748 txs (8437123 bytes @ 3.36sat/byte)
1min: +221 txs (67948 bytes @ 27.15sat/byte)
5min: +1206 txs (376202 bytes @ 22.35sat/byte)
Current fees profile: 16 : 6.1 : 6.03 : 5.94
Projected fees profile: 56 : 19.9 : 13.89 : 13.01

Неподтвержденные транзакции (mempool)

Операции с биткойнами сохраняются в блокчейн Bitcoin в виде транзакций (tx) - набора данных, соответствующего протоколу. Эти данные занимают место в блоке, каждая транзакция требует от сотни байт памяти. Типичная не SegWit транзакция с одним входом и двумя выходами занимает примерно 225 байт, а размер блока Bitcoin ограничен 1 мегабайтом. По протоколу блоки формируются в среднем раз в 10 минут. Транзакции еще не включенные в блок находятся в памяти узлов сети Bitcoin, так называемом mempool. Эти транзакции называются неподтвержденными, так как они могут быть как включены впоследствии в блокчейн, так и проигнорированы майнерами либо заменены другими транзакциями, расходующими те же входы.

Комиссия за транзакцию Bitcoin (tx fee)

Разность между суммой входов транзакции и суммой выходов составляют комиссию транзакции, которая в составе награды блока (block reward) передается майнеру, включившему эту транзакцию в добытый блок.

Как правило размер всех неподтвержденных транзакций (mempool size) превышает размер блока 1МБ, и поэтому в следующий добытый блок майнеры обычно включают транзакции выбранные по принципу максимизации дохода майнеров. Для выполнения этого принципа в блок включаются транзакции с наибольшей удельной комиссией. Удельная комиссия это комиссия транзакции поделенная на эффективный размер транзакции (фактический размер транзакции отличается для SegWit tx). Удельная комиссия обычно выражается в сатоши за байт (sat/B), также применяется менее удобная, так как занимает больше знаков, запись BTC/kB. Сравните удобство записи и прочтения: 10 sat/B = 0.0001 BTC/kB.

С точки зрения отправителя транзакции выгоднее заплатить минимальную комиссию (особенно с учетом текущих цен биткойн), тем не менее обеспечивающую включение транзакции в блок (подтверждение) в течение приемлемого интервала времени. Такая комиссия здесь называется оптимальной.

Крупными числами в начале этой страницы приведена оценка оптимальной удельной комиссии в сатоши на байт и, через двоеточие, рекомендуемая комиссия в биткойнах за типичную транзакцию размером 225 байт. Такая комиссия с большой вероятностью позволит включить транзакцию в ближайший добытый блок. По адресу /btc/fee.txt публикуется оптимальная удельная комиссия в сатоши на байт в простом текстовом формате, можно использовать программами и скриптами.

Пояснение к данным о Bitcoin mempool

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

Last tx time - время поступления в mempool последней транзакции, если сильно отстает от текущего, значит у сервиса какие-то проблемы с получением или обработкой данных из сети Bitcoin. Ну или реально давно никто не шлет транзакции в блокчейн.

Mempool - количество неподтвержденных транзакций, их суммарный размер и средняя комиссия.

1min, 5min - динамика mempool, сколько транзакций, какого объема и с какой средней комиссией поступило в сеть Bitcoin за последнюю минуту или 5 минут.

Fees profile - распределение комиссии транзакций по цене сатоши за байт. Распределение строится на первом мегабайте неподтвержденных транзакций, отсортированных по убыванию удельной комиссии. То есть, по тем транзакциям, которые майнеры скорее всего включат в следующий добытый блок.
Распределение представлено четверкой чисел, разделенных двоеточиями:
1) tx fee за байт у последней из транзакций, попадающих в первые 100 килобайт самых приоритетных транзакций, то есть транзакций с наибольшей удельной комиссией = last of top 10%.
2) медианная удельная комиссия - 500kB транзакций платят майнерам за байт больше, и 500kB меньше этой величины.
3) удельная комиссия первой транзакции, попадающей в последние 100 килобайт = first of bottom 10%.
4) удельная комиссия последней транзакции, которая все еще может попасть в ближайший блок.
Current - профиль на текущий момент. Projected - профиль на предполагаемый момент нахождения блока.

Методика оценки оптимальной комиссии

Для определения оптимальной (минимальной, достаточной для быстрого включения в блок) удельной комиссии делается прогноз о составе пула неподтвержденных транзакций к моменту генерации следующего блока. Комиссия вычисляется как наименьшая, обеспечивающая попадание транзакции в 1 мегабайт транзакций с самй высокой удельной комиссией. Для этого делаются следующие предположения: следующий блок с высокой вероятностью будет добыт в течение 20 минут после предыдущего, поступление транзакций в mempool будет происходить с тем же темпом, что и последние 5 минут или 1 минуту, в зависимости от того, сколько времени осталось до следующего блока. Количество поступающих до генерации следующего блока транзакций с высокими и низкими удельными комиссиями будет такое же, как и последние 5 минут (или 1 минута).

Иными словами, на основе текущего состояния mempool и потока транзакций за 1-5 минут экстраполируется tx fees profile к моменту добычи следующего блока, и оптимальная удельная комиссия предлагается как величина, достаточная для попадания в 1МБ самых приоритетных транзакций на тот момент.

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