Неподтвержденные транзакции представляют собой сделки, отправленные в сеть блокчейна, но еще не включенные в блок. Unconfirmed transactions могут вызывать разочарование, но, понимая их причины и внедряя определенные решения, можно избежать этого.
Неподтвержденная транзакция в блокчейне: что это означает
Неподтвержденная транзакция — это операция, которая была инициирована, подписана, но еще не получила подтверждение майнеров или валидаторов и не записана в блокчейн. В криптовалютах, таких как Bitcoin, unconfirmed transactions остаются в пуле памяти блокчейна, известном как mempool.
Можно просмотреть активность в mempool Bitcoin на сайтах наподобие Blockchain.com. Блокчейны, такие, как Ethereum, сталкиваются с похожими проблемами, где газовые комиссии определяют приоритет транзакций и могут быть очень высокими. Другие сети, такие как Solana, предлагают более быстрые подтверждения с более низкими затратами, но имеют высокие показатели отказов.
Самый простой способ понять концепцию mempool — представить ее как комнату ожидания для транзакций. Перевод остается в mempool до тех пор, пока майнер (в Proof-of-Work) или валидатор (в Proof-of-Stake) не выберет его и не добавит в блокчейн.
Почти во всех случаях майнеры и валидаторы отдают приоритет транзакциям, с которыми связаны самые высокие комиссии, — майнер/валидатор хочет получить максимально возможное вознаграждение, если его выберут для добавления следующего блока в блокчейн.
Таким образом, если в мемпуле находится большое количество транзакций и пользователь заплатил сравнительно низкую комиссию, перевод средств может оставаться неподтвержденным достаточно долга, поскольку майнеры/валидаторы сначала выберут транзакции с более высокой комиссией, а затем уже с более низкой.
Еще нужно понимать, что не существует универсального мемпула, общего для всех узлов. Мемпул каждого узла в любой момент времени будет зависеть от его конфигурации и от того, какие транзакции были переданы ему до этого момента.
Почему транзакции не подтверждаются
Иногда пользователи могут столкнуться с ситуацией неподтвержденной транзакции. Понимание того, почему так происходит, важно для эффективного решения этой проблемы. Рассмотрим основные факторы, которые способствуют возникновению неподтвержденных транзакций биткоин:
- Перегрузка сети происходит, при наплыве большого количества переводов, превосходящий ее вычислительную мощность. В периоды повышенной активности, например, когда наблюдается всплеск торговли или происходят значительные события, влияющие на цену криптовалюты, сеть может перегружаться, что приводит к задержкам в подтверждении транзакций;
- Недостаточные комиссии: как уже отмечалось, переводы средств требуют платы, чтобы побудить майнеров включить их в блок и подтвердить их в блокчейне. Когда пользователи устанавливают низкие комиссии, их переводы могут не быть приоритетными для майнеров, особенно в периоды перегрузки сети. Следовательно, эти операции остаются неподтвержденными, пока майнеры не решат включить их в блок, что может занять продолжительное время;
- Транзакции с низким приоритетом: некоторые кошельки или сервисы Bitcoin могут отдавать приоритет мерам экономии средств, отправляя транзакции с низким приоритетом. Хотя такой подход снижает комиссии, он также увеличивает вероятность того, что транзакции останутся неподтвержденными, особенно когда сеть перегружена. Пользователи могут неосознанно выбирать настройки с низким приоритетом или не корректировать комиссии в соответствии с условиями сети, что приводит к задержке подтверждений;
- Ошибки программного обеспечения: иногда технические проблемы или узкие места в сети могут приводить к задержкам. Эти задержки могут возникать из-за ошибок программного обеспечения, обновлений сети или других непредвиденных обстоятельств;
- Форк в сети может привести к тому, что транзакция будет подтверждена в одной цепочке и неподтверждена в другой. Fork — это разделение в блокчейне, вызванное разногласиями между узлами относительно текущего состояния сети. Однако блокчейны спроектированы так, чтобы в конечном итоге сходиться в одну цепочку или, по крайней мере, сделать невозможным, чтобы разделение оставалось неразрешенным в течение длительного времени. Например, Bitcoin математически спроектирован так, что форки со временем разрешаются в одну цепочку. В Ethereum блоки обычно финализируются через 2–3 эпохи (1 эпоха — это 32 блока). Допустим, отправленная транзакция была включена в блок A. Затем происходит форк. Половина узлов в сети заявляют, что блок A является последним, в то время как другая половина узлов заявляют, что блок B является последним. Допустим, со временем цепочка с блоком B выиграла консенсус. Блок A отбрасывается, и все транзакции в блоке A, которые не были в блоке B возвращаются в mempool. Эти переводы возвращаются в неподтвержденные. Несмотря на этот сценарий, подтвержденные транзакции обычно считаются завершенными после того, как к цепочке будет добавлено достаточное количество блоков. В Bitcoin достаточно безопасным считается наличие не менее 6 блоков (около 60 минут), добытых после блока, включающего вашу транзакцию. В Ethereum это не менее 64 блоков (около 12,8 минут);
- Спам-трафик или атаки: в некоторых случаях злоумышленники могут завалить сеть спамом или атаковать переводы, стремясь нарушить нормальную работу блокчейна. Эти операции могут засорить mempool и задержать подтверждение законных транзакций, создавая неудобства для пользователей. Хотя такие атаки относительно редки, они могут повлиять на производительность сети и способствовать возникновению неподтвержденных транзакций;
- Проблемы с кошельком или программным обеспечением: ошибки или сбои в кошельках или программном обеспечении также могут привести к неподтвержденным сделкам. Например, если кошелек не может должным образом транслировать транзакцию в сеть или сталкивается с проблемами синхронизации с блокчейном, операция может остаться в состоянии ожидания. Пользователи должны убедиться, что они используют надежное и актуальное программное обеспечение кошелька, чтобы минимизировать риск возникновения таких проблем.
Как избежать неподтвержденных транзакций
Столкнувшись с неподтвержденной транзакцией, важно сохранять спокойствие и методично оценивать ситуацию. Можно предпринять несколько шагов, чтобы ускорить процесс подтверждения и обеспечить ее успешное завершение.
Проверка статуса
Первым шагом в разрешении неподтвержденной transaction является проверка ее статуса в блокчейне. Введя идентификатор сделки или адрес кошелька в проводник блокчейна, пользователи могут отслеживать ход своей транзакции и удостовериться, была ли она передана в сеть.
Повторная отправка с более высокой комиссией
Пользователи могут выбрать повторную отправку перевода с увеличенной комиссией, что стимулирует майнеров ускорить его подтверждение. Большинство кошельков предлагают возможность вручную корректировать комиссии, что позволяет пользователям адаптироваться к меняющимся условиям сети.
Правильное время
Время транзакции также может играть решающую роль. В периоды низкой активности, например, в выходные или поздно ночью в основных часовых поясах, сеть менее загружена. Это снижение активности может привести к более быстрому подтверждению перевода и низким комиссиям.
Использование ускорителей
Сервисы ускорения транзакций, предлагаемые различными майнинговыми пулами и платформами, позволяют пользователям отправлять свои идентификаторы транзакций для приоритетного включения в следующий блок. Хотя за подобные услуги может взиматься плата — это действенный вариант сократить время ожидания подтверждения transactions, особенно в периоды перегрузки сети.
Внедрение принципа “замена на плату” (RBF) или “ребенок платит за родителя” (CPFP)
RBF и CPFP — можно использовать для ускорения неподтвержденных транзакций Bitcoin. RBF позволяет пользователям заменять неподтвержденную транзакцию новой, включающей более высокую комиссию, эффективно переопределяя предыдущую транзакцию. Аналогично, CPFP подразумевает создание новой транзакции, которая тратит неподтвержденный вывод исходной операции, присоединяя более высокую комиссию, чтобы стимулировать майнеров подтверждать оба перевода одновременно.
Проявление терпения
Хотя вышеупомянутые стратегии могут помочь ускорить подтверждение транзакций, важно проявлять терпение в периоды перегрузки сети или технических проблем. В большинстве случаев неподтвержденные переводы в конечном итоге включаются в блок и подтверждаются в блокчейне, хотя и с некоторой задержкой. Мониторинг их статуса и получение информации о состоянии сети могут уменьшить опасения и способствовать более плавному процессу разрешения.
Как отменить неподтвержденную транзакцию в блокчейне
Если транзакцию, еще не подтверждена, ее можно “отменить”, отправив другую с теми же входами обратно на свой кошелек. Плата за эту вторую транзакцию должна быть значительно выше, чем плата за первую, чтобы майнеры отдали ей приоритет, а не той, которую вы хотите отменить.
Проще всего сделать через кошелек, поддерживающий функцию Replace-By-Fee (RBF). Эта функция позволяет корректировать комиссию за транзакцию после того, как она была передана в сеть, но осталась неподтвержденной. Как работает RBF:
- Начальная транзакция: пользователь инициирует транзакцию и транслирует ее в сеть, но из-за низких комиссий или других факторов она может оставаться неподтвержденной длительное время;
- Создание заменяющей транзакции: используя кошелек, поддерживающий RBF, пользователь генерирует новую операцию с более высокой комиссией, заменяя исходную. Новая операция включает те же входы и выходы, что и исходная, но с увеличенной комиссией для стимулирования майнеров;
- Трансляция заменяющей транзакции: пользователь транслирует заменяющую транзакцию в сеть, сигнализируя майнерам, что она должна заменить исходную. Майнеры, мотивированные более высокой комиссией, отдают приоритет заменяющей операции, что приводит к более быстрому подтверждению в блокчейне.
Заключение
Неподтвержденные транзакции представляют собой распространенную проблему для пользователей криптовалюты, но при правильном подходе ее можно эффективно решить.
В большинстве случаев лучшим вариантом будет просто подождать, пока перевод не будет подтвержден. Но если прошло много времени, наиболее вероятной причиной является то, что выставлена сравнительно низкая комиссия. В таком случае майнеры или валидаторы отдают приоритет другим transactions, чтобы включить их в блок в первую очередь. Среди основных стратегий, позволяющих избежать неподтвержденных переводов можно использовать корректировки комиссий, ускорители транзакций и методы наподобие RBF и CPFP.