Статья Расчет комиссии за транзакцию Биткоина

admin

Админ
Команда форума
20 Ноя 2017
107
3
#1
Мы уже ни раз обсуждали как происходят транзакции в сети, но мало кто понимает как рассчитывается стоимость транзакций. Сегодня поговорим об этом. Для начала у меня к тебе вопрос. Сколько сейчас примерная стоимость транзакции если я захочу перевести тебе 0.1 BTC?
Примерно 0.0005-0.0025 BTC
Да, верно. Примерно так. А если я захочу перевести тебе 100 BTC, сколько обойдется комиссия?

Столько же, сколько для 0.1 BTC, ведь размер комиссии не зависит от суммы транзакции

Да, всё верно комиссия не зависит от размера перевода. Но от чего она зависит?

От количества транзакций в сети: чем больше загружен мемпул, тем дороже транзакция.

Да, тут ты прав, но это не всё. Размер комиссии зависит от размера транзакции. Но речь идет не о количестве BTC, а о байтах, о “весе” транзакции.

А теперь смотри как он определяется.
Каждая транзакция — это код, который генерируется, на основе того, откуда пришли монеты, и куда они уходят. По сути транзакция это список адресов, которые учитываются в транзакции, и чем больше адресов, тем больше транзакция “весит” в байтах, потому что код выходит длиннее.

Например, ты получили 2 BTC от меня, и 1 BTC от рекламодателя, а 0.5 BTC от подписчика. И хочешь отправить 3.2 BTC своему другу. В такой транзакции будет участвовать 5 адресов.

Стоп, почему пять? Там же есть ты, рекламодатель, подписчик, и мой воображаемый друг. Итого 4 адреса.

Ну вот, ты уже начинаешь думать верно. Но на самом деле, там еще будет участвовать твой адрес. Смотри, ты получил в сумме 3.5 BTC, но отправляешь 3.2 BTC другу, у тебя образовывается остаток в виде 0.3 BTC, и он будет включен в транзакцию, и передан как бы тебе. Поэтому в данной транзакции участвует аж 5 адресов.

Можно рассчитать вес такой транзакции.
  1. Каждый адрес, с которого были получены твои монеты — это ±148 byte
  2. Каждый адрес, на который уходят монеты — это ±34 byte
  3. Каждая транзакция занимает еще ±10 byte, вне зависимости от количества адресов или суммы перевода.
Теперь считаем. Адресов, с которых монеты участвующие в транзакции были получена - 3 штуки. Мой, рекламодателя и подписчика. Адресов куда отправятся монеты - 2 штуки. Твой друг, и ты сам.

Получаем вес = 148*3 + 34*2 + 10 = 522 byte

После того как ты отправил транзакцию в сеть, она попадает в мемпул - очередь транзакций. За очередью можно в реальном времени наблюдать тут. А за размером пула можно следить на графике тут.

Размер одного блока в сети биткоина на данный момент 1 мегабайт. Время для “добычи” одного блока майнерами составляет ±10 минут, так заложено в коде. Давай считать дальше. Наша вымышленная транзакция весит 522 байта, в одном мегабайте примерно 1 000 000 байт. Делим 1 000 000 на 522 и получаем 1915. То есть за десять минут могут быть обработаны всего лишь 1915 таких транзакций, как наша. А в рамках всемирной супер валюты, это очень мало как ты понимаешь. Большинство транзакций выглядят так:

С одного адреса пришли, и уходят на два, такая транзакция конечно весит меньше. Но есть и большие транзакции, которые занимают по несколько килобайт. Поэтому в среднем обрабатывается всего 10-15 транзакций в секунду.

Теперь ты знаешь, что количество транзакций в единицу времени сильно ограничены размером блока, поэтому майнеры не могут запихнуть туда все транзакции. И чтобы как-то разделять транзакции по приоритетам они берут комиссию за обработку, кто больше заплатил, тот и первый. Грубо говоря, это аукцион, поэтому когда мемпул начинает трещать по швам, люди готовы платить больше и больше, чтобы их транзакция проходила быстро. От этого приходится и нам платить больше, чтобы встать впереди очереди.

Чтобы рассчитать оптимальный размер комиссии можно зайти на сайт: bitaps.com и посмотреть рекомендованную комиссию. Внизу картинки 3 числа разным цветом.

Чтобы рассчитать комиссию за перевод биткоинов нужно умножить выбранное число сатоши на 1000 (чтобы перейти от байтов к килобайтам) и разделить на 100 000 000 (чтобы перевести сатоши в биткоины, 1 сатоши = 1 / 100 000 000 BTC). Или можно сразу разделить число сатоши с сайта на 100 000. Полученную цифру указываем в графе «комиссия» при отправке новой транзакции.

Пример: если синее число – это 500 satoshi/byte, получается рекомендуемая комиссия 500 000 сатоши, то есть 0,00500000 BTC.

Рекомендуемая комиссия сети вычисляется на основе статистического анализа из средних комиссий сети за последние 36 блоков. Её размер меняется в реальном времени в зависимости от конкуренции комиссий в блокчейн сети.

Bitaps предоставляет три варианта комиссии:

  • Синий. Высокий приоритет даёт высокую вероятность включения транзакции в ближайший блок.
  • Зеленый. Средний приоритет позволяет транзакции подтвердиться в ближайшие 1-3 блока.
  • Серый. Низкий приоритет комиссии даёт возможность транзакции подтвердиться в одном из ближайших 6 блоков.
Если указывать комиссию меньше, то и ждать придётся дольше.

Данные расчеты нужны, если твой кошелёк позволяет указывать стоимость комиссии самостоятельно. Например в Electrum, ты можешь увидеть вес транзакции, и указать размер комиссии самостоятельно. Но большинство кошельков производят эти расчеты самостоятельно. Где-то комиссия фиксированная, где-то меняется в зависимости от загрузки мемпула.

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