Ускоряем биткоин-транзакции

Делитесь и голосуйте:

Содержание статьи:

  1. Почему так происходит
  2. Мемпул
  3. Ускорение транзакции
  4. Replace by fee
  5. Child Pays for Parent
  6. Заплатить майнерам

Обладатели криптовалют нередко сталкиваются с проблемой «зависания» транзакции. У некоторых ожидание затягивается на недели! А происходит это чаще всего в самый неудобный момент — когда курс лихорадит.

Корень проблемы кроется в структуре блокчейна.

Размер одного блока биткоина на начало 2019 года равен 1 МБ, который вмещает до 2000-3000 транзакций. На создание майнерами одного блока в среднем требуется 10 минут. Чтобы в блокчейне транзакция считалась успешно выполненной, требуется подтверждение 2-6 узлов сети. Подтверждение заключается не только в проверке на ошибки нового блока и включении его в цепочку блоков, но и в последующем использовании цепочки именно с этим блоком. Подтверждение каждым дополнительным узлом занимает 10 минут.

Комиссия сети, которую платит пользователей, совершающий транзакцию — это оплата труда майнеров за включение транзакции в блокчейн. Чем больше комиссия, тем скорее майнер обработает именно вашу транзакцию.

Мемпул (mempool) — это очередь, куда попадают все транзакции до подтверждения и включения в блок. Посмотреть текущее состояние можно здесь. Данные таблицы сгруппированы по соответствующей комиссии. В каждой строке указано количество транзакций в очереди при соответствующей комиссии, ожидаемый блок включения и соответствующая задержка в минутах. Для удобства сделана возможность выбора вида отображения комиссии: сатоши, mBTC (мили-биткоин), BTC. Проверив текущее состояние мемпула, можно с высокой точностью рассчитать необходимую комиссию сети, чтобы транзакция прошла, к примеру, в течение ближайших пяти или шести часов. Ещё можно посетить сайт блокчейна, где представлены графики с числом транзакций, ожидающих подтверждения. Изменяя временной масштаб графика, можно составить статистику нагрузки сети по часам и по дням месяца.

Если же транзакция с маленькой комиссией уже попала в очередь и «зависла» там надолго, её можно ускорить несколькими способами. Рассмотрим на примере лёгкого электронного кошелька «Electrum».

Первый способ — использовать функцию кошелька «Замена за вознаграждение» (Replace by fee). Этим способом может воспользоваться только отправитель средств.

По этой функции как-то уже была хорошая статья на хабре, поэтому здесь о ней будет сказано кратко.

Она присутствует не только в Electrum, но и других программных кошельках, таких как Bitcoin Core, Airbits, GreenAddress и другие. На скриншоте ниже показано, как активировать эту функцию в кошельке Electrum.

После того, как опция активирована, можно попробовать ускорить неподтвержденную транзакцию. После нажатия правой кнопкой мыши на «зависшей» транзакции на вкладке «История» появится контекстное меню, в котором есть строка «Увеличить комиссию» (Increase fee).

Стоит отметить, что конкретно в кошельке ELECTRUM для использования функции «Замена за вознаграждение» необходимо наличие некоторого остатка на балансе кошелька.

Весь механизм работы Replace-by-fee (RBF) описан в BIP-0125. Кратко, он заключается в следующем: в мемпул отправляется новая транзакция с более высокой комиссией и новым номером nSequence. Отметим, что этот номер должен быть меньше 0xffffffff — 1. Если же транзакция отправлена без поддержки RBF, её nSequence автоматически будет максимальным, значит и этот метод ускорения транзакции становится неосуществим. Функция «Замена за вознаграждение» не создает проблемы двойной оплаты — ситуации, когда пул отвергает новую транзакцию, потому что в мемпуле еще «висит» неподтвержденная.

Второй способ называется «Дети платят за родителей», он же CPFP (Child Pays for Parent). Эта операция доступна для получателей средств.

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

В том же кошельке Electrum смотрим список входящих транзакций, ожидающих подтверждения. При нажатии правой кнопкой мыши на транзакцию видим строку «Child pays for parent» в выпадающем меню. Далее требуется лишь установить комиссию, которая ускорит подтверждение транзакции майнерами.

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

Третий способ — воспользоваться услугами стороннего сервиса. К примеру, идем на https://www.btcaccelerator.net/. Указываем комиссию, e-mail и ID неподтверждённой транзакции биткоина. После чего оплачиваем указанную комиссию и ожидаем перевода своих биткоинов. Сервис включает оплаченные транзакции в найденные блоки своего майнинг-пула, предоставляя интерфейс общения владельца крипты с майнером.

Иногда в сети биткоина происходят перегрузки, вызванные нашествием пользователей или хакерскими атаками, что приводит к зависанию множества транзакций и оплаты очень высокой комиссии для быстрого включения транзакции в ближайшие пару блоков. Зачастую, если не «горят трубы», имеет смысл подождать уменьшения очереди, чтобы с меньшей комиссией за приемлимое время осуществить перевод.

Государство и общество

Ждем новостей

Нет новых страниц

Следующая новость