Что делать, если транзакция в Биткоине не подтверждается?

18 сентября 2018

Ежегодно в Биткоин сети численность совершаемых транзакций постоянно увеличивается, что приводит к переполненности блока. Включить абсолютно все имеющиеся транзакции в цепочку блоков мгновенно нельзя. Из таких «зависших» транзакций создается так называемый mempool (пул памяти), проще говоря, «очередь из транзакций». Первыми включаются в блокчейн такие транзакции, у которых комиссии самые высокие. «Перебитые» высокими, транзакции с недостаточной комиссией хранятся в mempool майнеров, вплоть до выявления следующего блока и ожидают подтверждения. Так продолжается, пока комиссия данной транзакции не будет достаточно высока, чтобы включиться в блок. Все это крайне негативно для пользователя, ведь порой уходит несколько дней на подтверждение транзакции с недостаточной комиссией. Иногда подтверждения и вовсе нет. Что же делать в такой ситуации?

Фиксированная комиссия

Первые несколько лет, когда система Биткоин только набирала обороты, кошельки прибавляли к транзакциям определенную установленную комиссию. Как правило, эта сумма составляла 0.1 мBTC. Само собой разумеется, в блоках майнеров имелось достаточно пустого пространства, поэтому они добавляли транзакции в первый добытый блок. Из чего получалось, что транзакции с недостаточно высокими комиссионными и даже транзакции, у которых таковых не было, имели хорошие шансы попасть в блок.

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

Может ли пользователь самостоятельно увеличить комиссию?

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

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

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

Львиная доля современных криптовалютных кошельков работает с динамической комиссией. Такие кошельки предоставляют возможность добавлять комиссию автоматом, с целью включения данной транзакции в ближайший блок. Кроме того, они основываются на данных сети самого Биткоина. Отдельные кошельки способны даже отбирать приоритетные комиссии. Но, опять-таки, транзакции с высокими комиссиями получают подтверждение первыми. С другой стороны, кошельки также устаревают, это может проявляться в том, что в «горячую пору» транзакции кошелька существенно задерживаются, и вы не сможете перейти на высокие комиссии. Если такое происходит, перед вами стоит выбор: обновить кошелек или перейти на новый.

Опасно ли менять кошельки?

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

Что такое Opt-In Replace-by-fee?

Если же транзакция уже была отправлена и зависла, иногда представляется возможным немного обойти очередь. Опция, которая называется Opt-InReplace-by-Fee (Opt-InRBF) позволит вашей транзакции это сделать. Opt-InRBF работает так, что вы сможете отправить транзакцию еще раз, повысив при этом комиссию. Если вы попытаетесь совершить то же действие, не используя функцию Opt-InRBF, сеть Биткоин не примет данную транзакцию. Эта транзакция будет рассмотрена узлами Биткоина как двойная трата, и не будет принята вовремя или вообще отвергнута.

С другой стороны, используя Opt-InRBF для отправки транзакций, вы, по факту, информируете сеть о том, что транзакция уже с более высокой комиссией будет отправлена позднее. Как результат, большая часть узлов Биткоина ставят новую транзакцию в приоритет старой, что дает возможность новой транзакции обойти, «перепрыгнуть» очередь. Имеет значение, какой майнер добудет новый блок. Это повлияет на то, включится ли транзакция в следующий блок, ведь не все майнеры пользуются Opt-InRBF. Как правило, большинство майнеров все же используют опцию Opt-InRBF. Что касается кошельков, то, по крайне мере, Electrum и GreenAddress обладают данной функцией. В одном из самых популярных кошельков для биткоин- Bitcoin Core- возможность Opt-InRBF существует только для обработки транзакций, а для создания собственных RBF транзакций, лучше использовать сторонние скрипты. Также, иногда необходимо обновление Opt-InRBF, которое вы найдете в настройках, но, опять-таки, все зависит от кошелька.

Транзакция Child Pays for Parent

Есть случаи, что кошелек, которым вы пользуетесь, не поддерживает Opt-InRBF. В такой ситуации используйте функцию ChildPaysforParent (CPFP), дословно: «ребенок платит за родителя». Функция CPFP дает майнеру возможность выбрать не транзакцию с самой внушительной комиссией, а такой комплект транзакций, где имеются комбинированные комиссии.

Упуская технические подробности, скажем, что, благодаря выполненным транзакциям, пользователь получает, как биткоины, так и остаток («сдачу»). Этот остаток пользователь может использовать для следующей транзакции. Отдельные кошельки позволяют использовать этот остаток еще до того, как транзакция подтвердится, соответственно, вы вполне можете перевести себе сдачу новой транзакцией. Тут стоит быть внимательным и поднять комиссию до такого уровня, чтобы покрыть первоначальную «низкую» транзакцию. Далее майнер забирает комплект транзакций и подтверждает их все одновременно. Бывают случаи, что кошелек не дает выбрать, какие входы потратить, и вы не можете потратить еще неподтвержденный остаток, попробуйте потратить весь кошелек, в деньги в кошельке включится и остаток. К сожалению, не все майнеры поддерживают CPFP, хотя, тех, что есть должно хватить, чтобы транзакция, сделанная вами, подтвердилась как можно раньше.

Есть ли другие способы?

 

Когда нет возможности использовать опции Opt-InRBF или CPFP, возможен вариант отправки оригинальной транзакции, но уже с достаточной комиссией, хотя не все майнеры такое допускают, а официальные кошельки пока такой функцией не располагают. Этот процесс называется «full replace-by-fee». Также можно дождаться пока транзакция подтвердится или криптовалюта появится в кошельке. Рассматривая этот вопрос технически, биткоины, еще до подтверждения транзакции, хранятся в кошельке, они не зависают и не теряются.

Как насчет получателя?

Если транзакция зависает, это проблематично и для получателя. Прибегнуть к CPFP или другим вышеописанным методам, можно лишь в том случае, если ваш кошелек это позволяет. Еще один вариант возможен: отправитель может использовать опцию Opt-InRBF и уже с более высокой комиссией отправить транзакцию снова.