Почему биткоин-транзакция зависла? / Хабр

 

Почему биткоин-транзакция зависла?

Блок имеет ограниченный размер в 1 мегабайт, а все неподтвержденные (пока не попавшие в блок) транзакции хранятся в мемпуле (в памяти биткоин-ноды).

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

Вторая по частоте причина статуса UnConfirmed — наличие ранее неподтвержденных переводов. Обычно сделки необходимо подтверждать по цепочке. Новые транзакции не попадут в блок, пока входящие монеты не подтверждены.

Почему транзакции теряются?

Биткоин-ноды имеют разные настройки. Некоторые удаляют транзакции, которые не были подтверждены в течении 1-3 суток. Некоторые не принимают транзакции со слишком низкой комиссией сети. Так, например, если мемпул переполнен и в нем уже более 50 Мб необработанных записей, а средняя комиссия сети 30 сатоши на байт, тогда транзакции с комиссией 1 сатоши на байт нода может не принимать.

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

Именно из-за настроек ноды в разных блокчейн-эксплорерах вы можете наблюдать разное количество неподтвержденных транзакций.

скриншот мемпулов трёх разных эксплорреров в один и тот же момент

скриншот мемпулов трёх разных эксплорреров в один и тот же момент

Что делать, если биткоин-транзакция зависла:

Ждать, пока майнеры разберут по блокам транзакции с более высокой комиссией и дойдут до вашей. Может занять от нескольких часов до нескольких дней.

Сделать Double-Spend (даблспенд). Вариант доступен только для отправителя. Предусматривает «двойное расходование», т.е. собрать полностью новую транзакцию, может даже на другую сумму, с большей комиссией сети. Тогда майнеры выберут ее как более выгодную для себя, а старую транзакцию удалят и забудут.

Функция replace-by-fee — замена комиссии в той же транзакции. Фактически здесь все зависит от отправителя. Поддерживается кошельками Bitcoin-QT, Electrum, Samourai Wallet (Android), Green, Blue Wallet и другими. Если у Вас произошла ситуация с «зависанием», в будущем обязательно воспользуйтесь именно таким кошельком.

CPFP (Child pays for parent) — использование неподтвержденных монет в новой транзакции с высокой комиссией. Таким образом майнеры возьмут обе транзакции, т. к. новая транзакция принесет доход майнерам, который покроет добавление обоих переводов. Этот способ только для получателя.

В будущем обязательно пользуйтесь SegWit-адресами, они начинаются на bc1 или в переходном формате на 3. Такие транзакции более приоритетные в сети и стоят дешевле. Почти все кошельки поддерживают данный формат.

Новый стандарт Taproot, на данный момент крайне мало кто поддерживает, но эти транзакции еще меньше и дешевле в использовании. Протокол Taproot и подпись Schnorr признаны следующим этапом масштабирования сети.

Вариант, при котором используются специальные ускорители. Не всегда для пользователей он удобен, так как достаточно дорогой, но бывает такое, что это тот самый единственный выход из ситуации. Огромной популярностью пользуются viabtc.com и btc.com. Воспользоваться им может и отправитель, и получатель. Это майнговые пулы, которые за дополнительную плату добавляют в ближайший блок данную транзакцию. Минус этого способа в высокой цене.

Как ускорить подтверждение транзакции?

Если перевод отображается не во всех блокчейн-эксплорерах, то транзакцию лучше заново отправить. Для этого скопируйте хэш (hash) транзакции или сырую транзакцию (raw tx), в зависимости что требуется, и отправьте вручную с использованием следующих форм:

Также существуют платные и бесплатные акселераторы, использующие множество API запросов для бродкаста транзакции:

Зависла транзакция Биткоин: что делать?

Замок со значком Биткоина

Что делать в ситуации, если долго не подтверждается транзакция Биткоин — вопрос, с которым часто сталкиваются пользователи криптосети. Какие методы наиболее эффективны, и в чём их особенности?

Такие ситуации создают трудности для людей, которые планировали быстро перевести деньги, но столкнулись с непредвиденной паузой в транзакции. Что делать? Как поступить, если платёж завис? В чём особенности каждого из методов? Эти и другие нюансы рассмотрим ниже.

Почему может зависнуть транзакция Биткоин?

Графическое изображение зависания транзакции Биткоина

Время отправки криптовалюты другому пользователю зависит от ряда факторов — загруженности сети на момент перевода, размера установленной комиссии, объёма сделки, а также приоритета платежа. Чтобы уточнить время, которое осталось для подтверждения (хотя бы ориентировочно), можно зайти на специальный сервис (к примеру, blockchain.info), после чего указать в сроке поиска ID операции.

Причин, почему не подтверждается транзакция Биткоин, множество:

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

Последняя ситуация происходит редко. Как правило, по истечению 3-х суток деньги возвращаются на хранилище отправителя. Это происходит в случае, если человек отправил небольшую сумму и выставил слишком низкую или нулевую комиссию.

Что делать, если зависла транзакция Bitcoin — все варианты

Изображение монеты Bitcoin внутри компьютерной сети

Рост спроса на Биткоин и задержки с подтверждением транзакций привели к новому этапу обсуждений проблем с мастштабируемостью Биткоина. Текущего размера блока в 1 Мб недостаточно, чтобы покрыть потребности пользователей, которые ежедневно совершают миллионы переводов. Если исходить из того, что средний размер операции равен 0,5 Кб, в один блок вмещается 2000 сделок, а реальных запросов в десятки раз больше. Как следствие, в очередной узел «пробиваются» крупные платежи с высокой комиссией, а остальные висят в статусе неподтверждённых и ожидают своей очереди. Ниже рассмотрим, как действовать в ситуации, если зависла транзакция Биткоин.

Дождаться проведения сделки

Если время терпит, можно не форсировать события и просто подождать. Распространённая причина задержки связана с загрузкой сети и ограниченным числом майнеров, занимающихся формированием очередного блока. Если сеть не отличается высокой волатильностью и не перегружена, причиной может быть низкая комиссия. Узнать оптимальную премию можно по ссылке btc.com/stats/unconfirmed-tx. На 11 апреля 2018 года рекомендуемый размер платежа равен 0,00001 Биткоин за 1 Кб. Следовательно, при проведении транзакции объёмом 500 Кб комиссия должна составлять не меньше 0,0005 BTC.

Замена размера премии (Replace by fee)

Для ускорения транзакции можно заменить комиссии. Такая возможность доступна отправителю средств. Официальное название опции — Replace by fee (RBF). При её отсутствии повторный перевод не пройдёт проверку и будет отброшен блокчейном. Это связано с тем, что двойная трата одних и тех же средств запрещена. Включение рассмотренной опции информирует систему о том, что сделка корректна.

Суть функции проста. Известно, что платежи с меньшей комиссией проходят дольше, чем сделки, за которые назначена более высокая премия. Если пользователь увеличит вознаграждение, транзакция передвинется вперёд по очереди и будет проведена одной из первых. Такая особенность носит название «выборочная замена комиссии» (Replace by fee). Сущность в том, что операция не меняется — просто к ней прибавляются дополнительные комиссионные.

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

Наличие такой опции ещё не даёт гарантии быстрого проведения перевода, ведь это зависит от майнеров, которые формируют блоки. Причина в том, что не все участники сети работают с Replace by fee. Кроме того, RBF актуальна не для всех кошельков. Сегодня она поддерживается бумажниками Электрум и ГринАдрес. Что касается Bitcoin Core, здесь такая функция доступна при включении дополнительных скриптов.

Чтобы активировать опцию, достаточно зайти в бумажник и активировать опцию Replace by fee. Как правило, этого достаточно для ускорения перевода и исключения его зависания в сети.

Ускорители

Неподтверждённые транзакции Bitcoin можно «протолкнуть» с помощью специальных ускорителей. Один из вариантов — майнинговый пул viaBTC, позволяющий снизить время проведения перевода. Несмотря на сравнительную «молодость», сервис заслужил популярность в широких кругах и часто применяется для ускорения зависших сделок в криптовалютной сети. Если транзакция не поступает получателю в течение суток и более, помощь такого пула будет полезна.

Недостатки viaBTC для ускорения транзакции Bitcoin:

    Сервис сложен в управлении, поэтому перед применением стоит потратить время на рассмотрение его возможностей.

Альтернативой для рассмотренного сайта является пул AntPool. Кроме того, в Интернете можно найти ресурсы-агрегаторы (к примеру, perenosi.com), разрабатываются боты-ускорители для мессенджера Телеграм (пример @FastTXbot).

Двойное расходование (Double Spending)

Если зависла транзакция Bitcoin, можно применить ещё одну методику — второй раз передать деньги тем же сервисом. К примеру, участник сети видит, что платёж не проходит в течение продолжительного времени и находится в подвешенном виде. Здесь можно воспользоваться особенностями blockchain — проведением сразу нескольких операций.

Суть в том, что проверка объёма средств на счету проводится в определенный момент времени. Если первый перевод оказался неуспешным, отправитель вправе поменять некоторые параметры, к примеру, увеличить размер премии и провести платёж снова. Переживать, что обе операции пройдут, не стоит. По правилам криптовалютной сети при отправке одного и того же актива проводится сделка, имеющая более выгодные условия для участников сети (майнеров). Остальные аналоги уничтожаются. Единственный риск — разветвление цепи, поэтому к применению опции Double Spending стоит подходить с осторожностью.

Рассмотрим, что необходимо сделать для применения методики на примере Bitcoin Core. Отметим, что для остальных бумажников подход остаётся аналогичным. Разница может заключаться в наименовании команд, а общая последовательность не меняется. Алгоритм такой:

    Подготавливаемся к проведению Double Spending. Для этого важно убедиться, что транзакция зависла. Бывают случаи, когда сделка подтверждена, но по различным причинам не доходит до адресата. Для проверки рекомендуется использовать упомянутый ранее сайт blockchain.info. Если напротив сделки имеется фраза «unconfirmed transaction», переходим к дальнейшим шагам. Кроме того, можно обратить внимание на время проведения сделки, но оно ориентировочное.

Популярный метод «проталкивания» платежа — Child Pays for Parent. Он подходит в ситуации, когда применяемое хранилище не позволяет включить рассмотренную выше опцию RBF. Минус способа в том, что за него придется платить. Кроме того, лишь небольшое число пулов поддерживают применение CPFP. Для «продвижения» сделки, с которой возникли трудности, необходимо использовать любой из выходов транзакции. Важно, чтобы суммы на счету было достаточно для проведения двух операций.

Суть в том, что отправитель формирует ещё один перевод с применением выхода для оформления новой транзакции. Отправка Биткоинов может осуществляться по любому адресу. Главное — использовать сдачу с зависшего платежа. Не менее важный нюанс — размер комиссионной выплаты, который должен прописываться сразу для двух операций.

Рассмотрим применение этого метода на примере бумажника Bitcoin Core. Исходное условие — транзакция размером 0,095 Биткоинов. Алгоритм такой:

    Переходим в раздел настроек и выбираем кнопку параметров.

Динамическое изменение комиссии

Одна из причин, почему не подтверждается транзакция Bitcoin — низкая комиссия. Чтобы изменить ситуацию в свою пользу, можно провести динамическое изменение этого параметра через кошелёк. Для этого бумажник должен поддерживать подобную функцию. Суть специальных хранилищ в том, что они автоматически считают оптимальный размер вознаграждения, при котором операция в криптовалютной сети проходит быстрее. Если владелец кошелька согласен с предложенным параметром, сделка без задержек включается в очередной блок.

Динамическая правка комиссии позволяет вычислить приоритет сделки. Здесь подход прост. Чем больше премия, тем выше приоритетность. Рассмотренное правило особенно актуально в периоды максимальной загрузки сети. Если пользователь указал высокое вознаграждение, а транзакция всё равно зависает, это требует принятия срочных действий. Часто проблема связана с применением старых версий бумажников для Bitcoin. В таком случае имеется два пути — обновить существующий или установить новый кошелёк.

Откат неподтверждённой транзакции

Ещё один способ решить проблему с зависанием — отменить транзакцию Bitcoin. К примеру, в случае с Bitcoin Core требуется сделать следующее:

    Убеждаемся через сайт blockchain, что сделка не подтверждена.

Как защититься от неподтвержденных транзакций Биткоин?

Синие монеты Биткоина и бинарный код

Чтобы обезопасить себя от проблем с зависшими транзакциями Bitcoin в будущем, требуется сделать следующее:

    Сразу выставлять оптимальную премию за проведение транзакции. Желание сэкономить может вылиться в продолжительные затраты времени на ожидание подтверждения операции. Сразу определитесь, что важнее — скорость или экономия.

Что делать, если зависла транзакция Bitcoin, смотрите в нижеследующем видео:

Зависла транзакция BTC: топ способов решить проблему

btc-зависла

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

Обратите внимание, что неподтвержденные сделки не аннулируются.

Классический биткойн-клиент будет показывать транзакцию как «n/unconfirmed / неподтвержденную», пока транзакция не достигнет глубины в 6 блоков.

Почему транзакция зависла?

Наиболее частая причина зависания — совершение транзакций со слишком низкими комиссиями. Если в сети есть какие-либо транзакции с более высокими комиссиями, то у майнеров нет стимула подтверждать те, которые платят им мало. Именно поэтому транзакции с низкой комиссией должны ждать дольше.

Вторая по частоте причина статуса «Not Confirmed» — наличие ранее неподтвержденных переводов. Обычно сделки необходимо подтверждать по порядку. Новые транзакции обычно не могут быть подтверждены, пока в сети Биткоина или Эфириума есть другие, которые стоят выше в Мемпуле.

Что делать, чтобы транзакции не оставались неподтвержденными

Лучше всего правильно выставить комиссию на момент отправки. Многие кошельки криптовалют позволяет вам выбирать, сколько платить за комиссию майнера. Для монет, которые предоставляют вам 3 варианта комиссии (низкая, нормальная, высокая), мы рекомендуем выбрать «высокий» приоритет комиссии для более быстрого подтверждения.

Мобильные кошельки часто не могут предсказать будущую нагрузку сети, поэтому могут не подходить в случае очень внезапного увеличения активности в сети.

Если при отправке была установлена слишком низкая комиссия, то ваша сделка получает статус «Pending».

Как ускорить подтверждение неподтвержденной транзакции?

Входящая транзакция

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

Ethereum

Если вы отправили неподтвержденную транзакцию Ethereum или ERC-20 токена, вы можете заменить эту транзакцию на другую, с более высокими комиссиями. Пошаговые инструкции можно найти здесь (англ). Однако совершение новых транзакций с Ethereum или токенами без следования инструкциям НЕ приведет к более быстрому подтверждению предыдущих транзакций.

Bitcoin

Если вы отправили неподтвержденную биткойн-транзакцию, существует ряд сервисов, которые утверждают, что ускоряют подтверждения, например https://bitaccelerate.com и https://pushtx.btc.com . Эффективность этих сервисов не гарантирована. Невозможно найти полностью надежный сервис, который лучше всего ускорит транзакцию.

Вы также можете проверить, есть ли исходящая транзакция в проводнике блокчейна. Если у транзакции 2 пункта назначения, вы можете выполнить следующие действия, чтобы ускорить ее. Этот метод, который называется «ребенок платит за родителя» (CPFP).

Как ускорить неизрасходованные транзакции BTC?

  1. Скопируйте свой собственный адрес получения биткойна
  2. Вставьте скопированный адрес в окно для отправки
  3. Используйте кнопку «макс», чтобы отправить все средства
  4. Перейдите к экрану подтверждения и выберите плату с ВЫСОКИМ приоритетом или высокое значение комиссии.
  5. Отправьте и дождитесь подтверждения транзакции

Существуют и другие варианты ускорения, такие как «RBF», что расшифровывается как Replace By Fee (заменить другой комиссией).

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

Про RBF расскажем в следующих статьях, поэтому добавляйте нас в закладки!

Источник https://habr.com/ru/post/675950/

Источник https://tehnoobzor.com/cryptolife/bitcoin/2334-zavisla-tranzakciya-bitkoin-chto-delat.html

Источник https://bytwork.com/articles/zavisla-tranzakciya-btc-top-sposobov-reshit-problemu

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

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