24 апреля, 2024

Как ускорить транзакцию биткоина. Функция Replace-By-Fee

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

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

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

Факторы, которые влияют на скорость биткоин транзакции

1. “Вес” транзакции

Ранее мы рассказывали о том, что такое биткоин и как определяется комиссия сети за проведение транзакций (не путайте с комиссией банка или биткоин-кошелька, здесь речь идет о комиссии сети, которую получают майнеры).

Если вкратце, то каждая планируемая транзакция имеет определенный “вес” в байтах, что напрямую влияет на стоимость, и скорость ее проведения. Вес транзакции включает (напротив указываем примерное количество байтов в цифрах):

  1. Количество входов (адресов, с которых пришли криптоактивы) — ~148 байт
  2. Количество выходов (адресов, на которые перечисляются криптоактивы) — ~34 байта
  3. Сама транзакция — ~10 байт

То есть, если 1 BTC вам пришел с десяти адресов, то количество входов определяется так: Input (в байтах) = 148*10 = 1480 байт.

Количество выходов (output) считается аналогично, также надо помнить про “сдачу”. То есть, если вы отправляете часть монеты на 1 адрес, то вам обязательно должна вернуться сдача на ваш же адрес. Таким образом, количество выходов будет равно двум — один для отправки плюс один для сдачи. Сложив все параметры пользователь может определить количество байтов, то есть вес транзакции.

2. Mempool и скорость транзакции

Каждая транзакция биткоина должна быть подтверждена майнерами, которые получают комиссию за каждую валидацию. Для этого пользователь должен определить актуальную на данный момент стоимость передачи данных в сети (сатоши/байт), сформировать транзакцию и отправить ее непосредственно майнерам в Mempool.

Далее все транзакции в мемпуле ранжируются в зависимости от размера выставленной комиссии и формируют так называемую “очередь”. Скорость подтверждения зависит от общего количества транзакций и размера комиссии: чем выше в очереди она находится, тем быстрее будет включена в блок, а значит подтверждена.

Как определить оптимальный размер комиссии

Актуальную цену за байт всегда можно посмотреть в обозревателе блоков, например по этой ссылке: https://blockchair.com/ru/bitcoin. Стоит также отметить, что комиссия в сети биткоин не зависит от суммы отправки, то есть с одинаковой комиссией можно отправить как 0.001 BTC, так и 10 BTC.

Различные сервисы по-разному предлагают оплатить своим пользователям комиссию сети. Одни сразу ставят фиксированную комиссию, которая зачастую выше актуальной, другие полностью перекладывают эту функцию на пользователя.

Мы в Trustee Wallet предлагаем пользователю три типа комиссии, а также возможность установить комиссию сети вручную.

При отправке пользователь может выбрать любую из предлагаемых комиссий, естественно это будет напрямую влиять на скорость транзакции: Медленно, Средне, Быстро. В вариантах указана цена за байт, стоимость комиссии в биткоине и фиате ($).

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

В Trustee все предельно просто, четко и понятно!

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

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

 

Варианты событий при зависании транзакции. Функция Replace-By-Fee

Существуют следующие варианты действий с неподтвержденной транзакцией:

  • ждать подтверждения (это может занять дни, неделю или даже вечность);
  • ждать «отмены» транзакции. Это происходит, когда большинство нод решают “выкинуть” транзакцию из мемпула. После этого биткоины становятся свободными и ими снова можно пользоваться (точного времени, когда это произойдет нет, но согласно статистике этот срок занимает порядка 3х суток);
  • увеличить комиссию в уже созданной транзакции пока она находится в мемпуле (функция Replace-By-Fee).

Replace-By-Fee (RBF) — это редактирование существующей транзакции, которая находится в мемпуле. Это значит, что в новой транзакции будут использованы те же входы и выходы, что и в старой, но при этом будет изменена комиссия. Ноды сети bitcoin воспринимают отредактированную транзакцию как старую и она переносится в очереди мемпула на более привлекательные для майнеров позиции.

Если транзакция “зависла” из-за низкой сетевой комиссии, то оптимальным способом ускорения транзакции будет использование функции RBF. Обратите внимание, что данная функция доступна в ограниченном количестве крипто кошельков. В Trustee Wallet она есть и работает очень успешно.

 

Как использовать Replace-By-Fee в Trustee

На данный момент все исходящие транзакции биткоина в Trustee могут быть ускорены. Однако перед отправкой биткоина лучше проверить эту надстройку. Для этого перейдите в Настройки во вкладке Bitcoin (4 точки в правом верхнем углу) и проверьте, что “Редактирование неподтвержденных транзакций” активно, то есть включен соответствующий “ползунок”. Также рекомендуем активировать “Использование неподтвержденных транзакций” — это позволит использовать входящие биткоины, которые еще не подтверждены сетью, а также отправлять очередь исходящих биткоин транзакций одну за другой.

 

Как изменить комиссию сети для биткоин-транзакции

  1. Вернитесь в историю транзакций (вкладка Bitcoin);
  2. Выберите транзакцию со статусом «Обрабатывается» и нажмите кнопку “Ускорить”
  3. В открывшейся вкладке, в кнопке Шестеренка вы можете установить актуальную цену за байт вручную, либо выбрать из предложенных вариантов (ранее мы уже упоминали, что актуальную цену можно проверить на сайте blockchair).
  4. Нажмите “Отправить”. Будет создана новая транзакция, которая заменит в мемпуле предыдущую.
  5. Теперь в деталях новой транзакции будет два хеша, один старый — неактивный, а другой актуальный — с увеличенной комиссией. Это еще раз подтверждает факт надежности протокола биткоина и отсутствие “двойных трат” при увеличении комиссии.

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

Также, мы рекомендуем использовать Segwit адреса для получения и отправки биткоина, так как они легче и обойдутся дешевле, чем транзакции с Legacy адресов. Детально разницу между этими типами адресов мы описывали в статье “От Legacy к Segwit”.

Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *