Неподтвержденная транзакция на blockchain: что делать?

1213
0
Dima Rubanenko

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

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

 

Неподтвержденная транзакция: определение

 

Неподтвержденным считается платеж, который был инициирован, но не отправлен в блок.

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

Статус платежа и его путь всегда можно отследить на ресурсе blockchain.info (ввести TXID в поисковое поле). Пометка цифрой «2» и голубой цвет кнопки Cofirmations в блокчейне означает, что платежная операция подтверждена. У неподтвержденных платежей красный цвет кнопки и пометка Unconfirmed Transaction.

 

В среднем платежи с высокими комиссионными проходят за 10-30 минут, с низкими – до 72 часов.

 

Подробнее о выборе комиссионных

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

Следует учитывать, что величина комиссионного сбора зависит от размера платежа, а не от пересылаемой суммы. Пересылка 100 ВТС может стоить меньше, чем пересылка 0,001 ВТС. Размер транзакции находится в прямой зависимости от числа взаимосвязанных платежных операций. К примеру, если Александр получил по одному ВТС от Ивана и Михаила, а затем переслал два ВТС Владимиру, то в этой операции задействуется четыре адреса, а это примерно 600 добавочных байт.

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

При размере блока 1 мБ размер обычной транзакции составляет примерно 370 Б. На подтверждение каждого блока уходит около 10 мин, значит, за это время должно подтверждаться 2 600 операций. В действительности их гораздо больше.

 

На том же ресурсе Блокчейн Инфо можно увидеть mempool операций, ожидающих подтверждения.

Общий размер транзакций составляет 100 мБ. Это значит, что в следующие 10 мин. подтвердится не больше 1 % всех ожидающих платежей, а на обработку остальных уйдет порядка 17 ч. И это с условием, что других платежей в это время в сети проводиться не будет.

Решить проблему раз и навсегда можно только увеличением блока. С этой целью был инициирован Seg wit – оптимизация памяти для сохранения информации о платежах и подготовка сети к последующему расширению блока через софтворк. Segwit 2x – hardfork и радикальное разделение blockchain с расширением объема блоков до двух мБ – после долгих дискуссий решено было отменить.

 

Что будет с биткоинами, которые зависли из-за неподтверждения?

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

  • ожидать, пока операция подтвердится – периодически просматривать статус на сайте blockchain.info;
  • принимать меры, чтобы она прошла скорее.

 

На некоторых ресурсах можно посмотреть приблизительное время подтверждения, но оно обычно имеет мало общего с действительностью. Можно рассчитать время, воспользовавшись информацией в строке FeeperByte. Далее зайти на сайт btc.com во вкладку unconfirmed transactions, где указана усредненная цена одного байта и приблизительное время прохождения транзакции с разным размером комиссионных.

Ускорить платеж можно несколькими способами:

  • Double Spend;
  • Replace-by-free;
  • CPFR;
  • ускорители.

Далее – подробнее о каждом способе.

 

Двойная трата (double spend)

Актуально для пользователей кошельков Biitcoin Kots и Bitcoin Core. Рассмотрим план действий на примере Bit Core.

Сначала нужно закрыть кошелек, затем убрать из каталога файл memoral.dat и запустить его заново в CMD посредством строки zap wallet etettxes. После этого провести платеж заново, но уже с более высокой комиссией. Для этого нужно «перехватить» неподтвержденную транзакцию путем объединения ее с новой: в Bitcoin Core в разделе Input выбрать старую операцию и добавить в нее вход с другой операции, чтобы открыть комиссионные.

 

CPFP

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

Для этого перейти в кошелек (Wallet), отметить разделы Enablecoin features и Spend unconfirmed change, нажать кнопку отправки.

Вернуться в раздел Inputs, указать свой адрес как адрес получателя, ввести сумму ранее отправленного платежа и отметить ее галочкой amount или subtract, установить размер комиссионных через Custom.

То же самое, но проще можно выполнить через бумажник Электрум, в котором есть опция replace by free. Но она сработает только если при первой отправке была проставлена галочка Repaceable.

 

Ускорители

Ускорением платежей занимаются майнинг-пулы Ант пул, Виа ВТС и др. Необходимо зайти в раздел Tools на одном из таких сервисов, выбрать вкладку Transaction Accelerator, указать номер платежа и ввести капчу. Правда, данный способ помогает не всегда. В Telegram работает бот для ускорения платежей –- @FastTXbot.

 

Как сделать, чтобы платежи не зависали?

Прежде всего – понять, от чего зависит скорость подтверждения.

 

Зависит: Не зависит:
Время выполнения операции Сумма платежа
Комиссионные

Путь отправленных ВТС

Кошелек

 

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

Важнейший показатель – размер комиссионных за один байт. Перед отправкой ВТС следует посмотреть показатели mempool и величину средней комиссии в системе (например, на Bitcoin Fees).

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

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

Резюме

Неподтвержденная транзакция – та, которая по тем или иным причинам не попала в блок. Чтобы ускорить ее подтверждение, можно использовать DoubleSpend, CPFP, Replace-by-fee или ускорители. Чтобы обезопасить себя от подобных ситуаций, следует правильно выставлять размер комиссионных и проводить операции в определенное время.