
Как уменьшить стоимость транзакции в сети Bitcoin
Значительный рост стоимости Bitcoin и увеличение случаев его использования в качестве платежного средства приводят у значительному росту стоимости транзакций.
Дополнительные затраты ложатся на счет отправителя биткоинов, который должен оплатить комиссию сети при создании транзакции для того, чтобы она была признана действительной/записана в блокчейн майнерами.
Для уменьшения затрат при проведении транзакций в сети биткоина можно одновременно использовать два способа:
- использовать биткоин-адреса типа segwit;
- вручную выставлять размер комиссии меньше рекомендованного.
Использование биткоин-кошельков формата segwit в качестве адреса получателя
В качестве адреса в сети биткоина лучше использовать современный Segwit-формат.
Для создания такого Bitcoin-адреса в кошельке Electrum нужно выбрать соответствующий тип seed-фразы:

Bitcoin-адрес в segwit-формате начинается на bc1. Использование Bitcoin-кошелька с адресом вида bech32 (стандарт BIP173) гарантированно уменьшает стоимость транзакции.
Кроме того, использование биткоин-кошелька типа segwit не только уменьшает стоимость транзакции, но обеспечивает ее более быструю обработку майнерами. Эти преимущества возможны благодаря исключению подписей транзакций из блоков, что позволяет включить в него больше записей и тем самым, увеличить масштабируемость (быстродействие).
Оптимизация структуры блока с помощью протокола Segregated Witness была запущена в сети Bitcoin 24 августа 2017 года. С этого момента пользователи могут использовать биткоин-адреса старого формата и новые.
Изменение размера комиссии при создании транзакции в сети биткоина
Уменьшение размера комиссии при создании транзакции в сети биткоина может значительно снизить ее стоимость, но, в случае выставления слишком малого значения может привести к ее «зависанию» на очень долгое время.
Если учитывать особенности работы сети Bitcoin, можно осознанно регулировать размер комиссии, уменьшая затраты и не затягивая время завершения транзакции. Если пользователи не заинтересованы в очень быстром проведении транзакции, могут подождать несколько дней, то можно существенно сэкономить, установив более приемлемую комиссию для генерируемой кошельком транзакции. Это справедливо не только для биткоина, но и для других криптовалют, включая Ethereum, Bitcoin Cash и другие.
Величина комиссии за проведение криптовалютной транзакции связана с их количеством за единицу времени. Ее размер циклически изменяется, что приводит к значительным колебаниям количества неподтвержденных транзакций (то есть таких, которые отправлены в сеть, но еще не включены в блок).
Незавершенные транзакции хранятся в так называемом мемпуле (mempool) — совокупном размере транзакций, ожидающих подтверждения (в байтах).
Проанализировать его состояние можно на графике со страницы сайта blockchain.com:

При большой перегрузке мемпула время проведения и стоимость транзакций резко возрастают:

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

Более детальная информация о ситуации в мемпулах биткоина, Ethereum, Litecoin, Dash, BCH есть на сайте jochen-hoenicke.
График, иллюстрирующий изменения размера мемпула биткоина на сайте jochen-hoenicke:

При резком увеличении размера мемпула стоимость транзакций будет расти, а при уменьшении — падать.
Учитывая суточные спады/рост деловой активности в густонаселенных регионах мира (Юго-Восточная Азия, Северная Америка, Европа), можно выбрать такой размер транзакции, который станет немного меньшим во время затихания активности из-за окончания рабочего дня в таких местах.
Включить опцию, позволяющую менять размер комиссии за транзакцию в кошельке Electrum можно на вкладке Инструменты — Настройки — Транзакции (нужно активировать опцию «Использовать возможность замены комиссии»):

Для тех, кто не желает заниматься подсчетами и вручную выставлять стоимость транзакции, можно воспользоваться Bitcoin Fee-калькулятором на странице сайта coinb (или на других ресурсах). Здесь можно ввести данные об использующихся формате биткоин-адресов, желаемом количестве Outputs и получить ориентировочное значение fee:



