Технология блокчейн устроена таким образом, что любые операции и транзакции, если они уже проведены, отменить нельзя. Однако же, если сделка не получала подтверждения, она будет безрезультатно «висеть» в системе несколько дней. И в подобном случае биткоины с кошелька спишутся. А учитывая их курс, проблема получается серьезная.
Выход, впрочем, есть. И основан он на том, что транзакции не зависают просто так – в каждом случае есть причина: что-то, что не устроило систему блокчейн. Если получится разобраться с этим, то удастся и разрешить проблему зависшей в системе транзакции.
Чаще всего, причиной зависших транзакций является следующее:
- перегрузка самой системы блокчейн;
- образование так называемых мемпулов – очередей на выполнение сделок.
Дело в том, что популярность биткоин, как довольно дорогой криптовалюты, все больше растет, что привлекает множество новых пользователей в систему. Многие из них решаются на разные операции, толком не разобравшись в их устройстве, в итоге путаются. А действия таких пользователей система блокчейн воспринимает однозначно – как неадекватные, и реагирует резко: перегрузкой и зависанием. Естественно, транзакция в этом случае не проходит и тоже зависает.
Что касается мемпулов, то они возникают по нескольким причинам:
- очень большое количество пользователей хочет провести сделку, однако заполненные ими блоки просто физически не могут быть включены в систему одновременно – появляется мемпул;
- переводы с высокой комиссией проходят первыми и реже подвергаются риску очереди, а если пользователь проставил низкую комиссию или не указал ее вообще – мемпул (и надолго) ему обеспечен.
Более того, в последнем случае нельзя даже дать гарантии, что эта транзакция вообще пройдет, поскольку будет отправлена на комиссионный рынок, и майнеры могут не обратить на нее внимания – сделка просто будет висеть в их мемпуле, пока они не найдут новый блок.
Итак, что же можно сделать, чтобы разрешить проблему, как в первом, так и во втором случае? Попытаться либо «протолкнуть» транзакцию дальше, либо отменить ее, если это еще возможно. Вариантов действий при этом несколько:
- Можно попытаться использовать даблспенд – опцию двойного расходования, которая обеспечит транзакции движение, т.е. вариант «проталкивания» за счет увеличения комиссии, если изначально она была слишком низкой. Это возможно, поскольку контрагенты проверяют активы на счетах лишь в один конкретный момент. А значит, если транзакция зависла, можно отправить и еще одну с увеличением комиссии. Обе транзакции не пройдут, об этом не нужно переживать.
- Использовать CPFP – это механизм, который позволяет создать транзакцию с одним входом (он обязательно должен быть выходом проблемной сделки – той же сдачей, например) и переслать биткоины себе же.
- Использование специальных ускорителей для транзакций, которыми может пользоваться и получатель, и отправитель.
Но ни один из этих методов не дает абсолютной гарантии, что транзакцию все же удастся отменить или «протолкнуть» дальше. И таких гарантий ни один способ в этом случае не даст, потому что, как уже и упоминалось, система блокчейн устроена так, что отмена транзакций в ней не предусмотрена. Если они были уже подтверждены (включены в блок) – никакой способ не поможет, если же зависли до подтверждения – можно пытаться.
И надо помнить, что сама собой неподтвержденная транзакция отмениться не может. В таком случае возможно только изменение отображения в кошельке пользователя.