Неподтвержденная транзакция на blockchain: что делать?
Число платежей внутри сети Биткоин с каждым днем растет. Это значит, что блоки, в которые отправляются данные о транзакциях, заполняются быстрее. При этом размер блока в 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 или ускорители. Чтобы обезопасить себя от подобных ситуаций, следует правильно выставлять размер комиссионных и проводить операции в определенное время.