Комиссия в сети биткойн — это сбор, который владельцы биткойнов платят майнерам за любой перевод средств на тот или иной адрес. Чтобы разобраться в том, как и за что мы платим, сначала нужно понять, что происходит, когда мы отправляем куда-то биткойны.
Блок содержит конечное количество транзакций (около 2,5 тыс.), поэтому в периоды высокой активности, когда очередь на подтверждение длинная, майнер выбирает транзакции для включения в блок, ориентируясь на приложенную к ним плату за приоритет.
Суммарный размер комиссий за транзакции, ожидающие подтверждения в Mempool
Таким образом, комиссия призвана показать майнеру, насколько у вас срочная транзакция — хотите быстрее, предложите большую плату, а если не торопитесь, можете заплатить меньше.
Комиссию всегда платит отправитель
Раньше комиссии взимались по другим правилам: если транзакция была достаточно маленькой или имела «приоритет», она могла быть бесплатной. Сегодня же все иначе, и комиссия требуется всегда.
У каждой транзакции есть размер, подобно размеру файла на компьютере. Поскольку майнеры стараются максимизировать прибыль, они в первую очередь выбирают операции с лучшим соотношением комиссии и размера — чем меньше транзакция, тем лучше.
Здесь уместен пример с рынка недвижимости. Когда вы приходите покупать или снимать квартиру, вы платите за квадратные метры. Вы платите цену квартиры целиком, но с другими квартирами вы можете ее сравнить по цене квадратного метра. Так вот, отношение комиссии и размера (feerate), на которое ориентируются майнеры — это такая цена за квадратный метр.
Это отношение измеряется в сатоши за байт — сколько сатоши (это наименьшая учетная единица в сети Bitcoin) вы готовы заплатить за каждый байт транзакции. Есть сервисы, позволяющие проверить, сколько стоит включение транзакции в ближайший блок; этот показатель все время меняется в зависимости от загруженности сети.
Когда сеть свободна, подтверждение транзакции в ближайшем блоке обойдется в 1 сатоши за байт, как показано на иллюстрации.
Размер транзакции зависит от ряда факторов. Вот самые значимые:
1. Число входов
Каждый биткойн, которым вы владеете, это, по сути, лишь ссылка на прошлые транзакции, которые были вам отправлены и увеличили ваш капитал. Такие ссылки — это так называемые «входы». Когда вы отправляете кому-то биткойны, вы выбираете входы, присланные вам ранее, и переводите их получателям в качестве выходов. И чем из большего количества входов состоит ваша транзакция, тем больше ее размер.
Предположим, у вас есть один биткойн. Если вы получили его из нескольких источников, то он состоит из множества ссылок на предыдущие входящие транзакции, и, когда вы отправляете этот биткойн кому-то другому, ваша транзакция будет состоять из всех этих предыдущих ссылок.
2. Число выходов
Выходы — это адреса, на которые вы отправляете платеж. Например, если вы платите только на один адрес, очень вероятно, что ваша транзакция будет содержать два выхода: один для адреса получателя, а другой для того, чтобы «вернуть себе» остаток от первоначального платежа.
Впрочем, второго выхода не будет, если сумма входов в точности равна сумме, которую вам нужно перевести.
3. Сложность скрипта
В некоторых транзакциях используются специальные функции, например множественная подпись — это увеличивает размер транзакции.
Несмотря на всю эту информацию, среднему пользователю очень трудно посчитать комиссию за предстоящую транзакцию в уме, но, к счастью, ваш биткойн-кошелек сделает это за вас с учетом средней платы за байт (feerate) в данный момент.
Как уменьшить комиссии
В биткойн-блокчейне комиссии явным образом не отражаются, и единственный способ определить, сколько заплатил отправитель, это рассчитать разницу между числом отправленных, полученных и возвращенных в качестве сдачи биткойнов.
Есть несколько способов заплатить поменьше. Рассмотрим некоторые из них.
Старайтесь не отправлять средства в периоды высокой загрузки сети
Когда сеть Bitcoin очень загружена (например, когда цены растут и многие хотят купить биткойн), пользователи предлагают высокую комиссию, чтобы ускорить обработку своих транзакций, и цены могут взлететь до небес. Если есть возможность отложить сделку до момента, когда загрузка снизится, можно сильно сэкономить.
Используйте кошелек с поддержкой SegWit
SegWit — это обновление биткойн-протокола, позволяющее организовать данные транзакции таким образом, чтобы получился файл меньшего размера. Многие кошельки уже поддерживают эту функцию, и так можно существенно сократить затраты.
Группируйте входы
Чем больше входов участвует в транзакции, тем больше ее размер, и тем выше комиссия. Таким образом, чтобы сэкономить, можно время от времени консолидировать входы, то есть отправлять свои средства, состоящие из множества входов на мелкие суммы, на свой же адрес, выбирая для этого период низкой загрузки сети. Таким образом, когда придется заплатить в следующий раз, у вас будет всего один вход, и транзакция обойдется дешевле.
Группируйте выходы
Помимо консолидации входов, можно также объединять несколько выходов (или платежей) в рамках одной транзакции. Эту функцию поддерживают не все кошельки, но, если кошелек позволяет, можно в одной транзакции отправить средства по нескольким адресам, и также сэкономить на комиссии.