Блокчейн биткоина — сложная и очень тонко настроенная система. Она проектировалась, чтобы стать выгодной для всех: для пользователей — предоставляя возможность отправлять дешевые, быстрые, анонимные транзакции, для майнеров — давая возможность зарабатывать на верификации транзакций и объединении их в блоки.
Но за каждую транзакцию в блокчейне биткоина пользователь платит комиссию. Она может отличаться от транзакции к транзакции и от момента к моменту. Cryptonomist разобрался, как рассчитываются комиссии за биткоин-транзакции.
Как движутся транзакции в блокчейне биткоина
Транзакция — это перевод средств с одного адреса на другой. За любую отправку средств в биткоин-сети пользователь должен заплатить комиссию, за получение комиссия не взимается.
Когда биткоины отправляются с адреса на адрес, полные ноды сети (узлы, в которых хранится полная копия блокчейна), проверяют транзакцию. Они анализирую всю историю транзакций, начиная с генезис-блока, чтобы убедиться, что вы можете отправить заявленную сумму биткоинов, а также что транзакция корректна.
Если проверка завершилась успешно, транзакция попадает в мемпул. Здесь она ждет, пока майнер не заберет её для включения в очередной блок.
В мемпуле транзакция считается неподтвержденной. После включения майнером в блок — подтвержденной.
Почему растут комиссии за транзакции
Размер мемпула ничем не ограничен — транзакции можно добавлять сюда бесконечно. Однако количество майнеров в блокчейне биткоина ограничено.
Когда в мемпуле накапливается слишком много транзакций, майнерам не так-то просто «разгрести завалы». Поэтому время подтверждения транзакции увеличивается. Текущее состояние мемпула можно увидеть здесь.
В каждом блоке в биткоин-цепи может поместиться примерно 2,5 тыс. транзакций. Генерация нового блока занимает около 10 минут.
Соответственно, майнеры могут выбирать, какие транзакции включать в блок, а какие могут ждать. Вполне естественно, что майнеры хотят собрать сливки и заработать максимальную сумму.
С другой стороны, размер транзакций может отличаться. Первыми проводятся комиссии, которые имеют оптимальное соотношение размера и комиссии.
От чего зависит размер транзакции
- Число входов. Биткоины, которыми вы располагаете, вычисляются по ссылкам на предыдущие транзакции. По сути, их не существует — есть лишь записи о транзакциях с участием вашего адреса, которые уменьшали или увеличивали ваш капитал. Ссылки являются входами. Когда вы отправляете биткоины, вы на самом деле выбираете входы и отправляете их получателям как выходы. Чем больше входов в транзакции, тем больше её размер.
- Число выходов — соответственно, это адреса, на которые вы отправляете биткоины. Если вы создаете транзакцию на один адрес, то в ней, скорее всего, будет два выхода: один для адреса получателя, другой — чтобы вы могли вернуть себе остаток, ведь собрать сумму входов идеально точно обычно не получается. Если это всё же удалось, выход у транзакции будет один.
- Сложность скрипта. Часто транзакции используют особые функции, к примеру, множественную подпись. Они также увеличивают размер транзакций.
Как ускорить транзакцию в блокчейне биткоина
Если в мемпуле много транзакций, а вам нужно быстро перевести криптовалюту, вы можете увеличить комиссию, которую прикладываете к транзакции. Минимальных и максимальных значений не существует.
Обычно кошельки помогают рассчитать оптимальный размер комиссии. Существуют и внешние сервисы, на которые можно ориентироваться. К примеру, на blockchain.info при отправке платежа можно указать размер комиссии priority или regular, и система автоматически подставит значение. Комиссии в сатоши за байт транзакции также показывает этот сервис.
Стоит устанавливать комиссии выше средней, если хотите провести транзакцию побыстрее. При относительно свободном мемпуле достаточно комиссии в сатоши за байт транзакции.
С другой стороны, если вы не торопитесь и хотите сэкономить, можете оставить небольшую комиссию. Рано или поздно транзакция всё равно будет подтверждена.
Как сэкономить на комиссиях
Посмотреть размер комиссии явным образом в блокчейне нельзя. Поэтому понять, сколько заплатил отправитель транзакции, можно, только если рассчитать разницу между количеством отправленных, полученных и возвращенных в качестве сдачи биткоинов.
- Если вы хотите заплатить как можно меньшую комиссию, отправляйте транзакции, когда мемпул не слишком загружен. Так, в периоды роста курса комиссия обычно растет, когда же криптовалюта идет вниз, падает и комиссия.
- Сократит расходы и кошелек с поддержкой SegWit. Это обновление биткоин-протокола, которое реорганизует данные транзакции и сокращает размер комиссии.
- Ещё один путь — группировка входов. Отправляйте средства со множеством входов на свой же адрес в периоды низкой загрузки сети. Это называется консолидацией входов.
- Можно группировать и выходы. Объединение нескольких выходов (или платежей) в рамках одной транзакции доступно в некоторых кошельках.