Комиссия

Комиссия может быть включена в любую транзакцию в сети Bitcoin.

Содержание

Как рассчитывается комиссия

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

Любой майнер является обработчиком транзакции и получателем комиссии. Когда в сети находится новый блок, в него включается вся информация по транзакциям и, в том числе, их комиссия. Таким образом, пользователь или группа пользователей, которые нашли этот блок, получат и награду за блок, и комиссию за все транзакции, включённые в него.

Включение комиссии в транзакцию – процесс добровольный, но, пользователь нашедший блок, может включать в состав блока транзакции по своему усмотрению. Таким образом, транзакции с нулевой комиссией имеют самый низкий приоритет, а транзакции даже с минимальной комиссией (~0.0001 BTC на данный момент) имеют стандартный приоритет и с высокой вероятностью будут включены в состав блока.

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

Комиссия за отправку транзакций

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

  1. Ее размер составляет менее 1000 байт.
  2. Все выходы имеют значение 0.01 BTC и выше
  3. Ее приоритет достаточно высок

В противном случае транзакция будет округлена до 1000 байт и будет добавлена комиссия в размере 0.0001 BTC. За каждые последующие 1000 байт в этой транзакции так же будет добавлено по 0.0001 BTC комиссии.

Таким образом, комиссия в транзакции размером 750 байт будет составлять 0.0001 BTC, а в транзакции размером 1001 байт – 0.0002 BTC. Стандартный Bitcoin кошелек (Bitcoin-Qt) всегда запрашивает у пользователя подтверждение на комиссию, если пользователь не согласен ее платить он может отменить транзакцию. Средний размер транзакции, на текущий момент, составляет примерно 500 байт, что соответствует комиссии в 0.0001 BTC.

Включение в блоки

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

30 000 байт в блоке выделены для транзакций с высочайшим приоритетом, они никак не зависят от комиссии. Затем в блок добавляются транзакции, которые имеют минимальную и выше комиссию. Чем выше комиссия, тем больше приоритет. Максимальный размер блока составляет 300 000 байт. Не вошедшие в состав блока транзакции остаются в памяти майнера и могут быть включены в последующие блоки.

Ретрансляция транзакций

Правила ретрансляции транзакций (англ. — «relaying») по сети схожи с правилами включения транзакций в блок. Комиссия в 0.0001 BTC используется для опознавания транзакции как «свободная». Для того, чтобы избежать DDoS атаки на сеть путем ретрансляции большого количества минимальных транзакций был введен лимит на «свободные» транзакции – 15 000 байт в минуту.

Настройки транзакции

Настройки Значение по умолчанию (единица измерения)
paytxfee 0.0000 (BTC)
limitfreerelay 15 (thousand bytes per minute)
mintxfee 0.0001 (BTC)
blockmaxsize 300000 (bytes)
blockminsize 0 (bytes)
blockprioritysize 30000 (bytes)

Приоритет транзакций

Приоритет транзакции рассчитывается следующим образом:

priority = sum * (input_value_in_base_units * input_age) / size_in_bytes 

Приоритет транзакции должен быть не менее 57,600,000 для избежания лимитирования. Лимит записан в коде в виде: COIN * 144 / 250, что предполагает, что транзакция содержит «монету» с возрастом в 1 день (144 это количество предполагаемых блоков в день) и размер транзакции составляет 250 байт.

Приведем пример, транзакция, которая содержит 2 входа, один из них на 5 BTC с 10ю подтверждениями и один на 2 BTC с 2мя подтверждениями, транзакция имеет размер в 500 байт, таким образом ее приоритет будет равен: (500000000 * 10 + 200000000 * 3) / 500 = 11,200,000

См. также на BitcoinWiki

Ссылки