Неподтвержденная транзакция Bitcoin: как действовать. Зависшие Bitcoin-платежи, или Приключения одной транзакции Bitcoin зависла транзакция что делать

Blockchain-кошелек становится более популярным, тем самым становится всё больше и больше пользователей. Это означает, что рост количества транзакций прямо пропорционально влияет на количество времени, уделяемое на эту транзакцию. Поэтому одним из самых популярных претензий к переводам «зависла биткоин транзакция, что делать». Попытаемся ответить на этот вопрос. Во-первых, успокоим, ведь зависание в мемпуле хранилище неподтвержденных транзакций лишь вопрос времени, а значит, перевод скоро подтвердится. Обычно варьируется от трех до пяти дней , после чего операция с большой вероятностью оформится. И во-вторых, может случится такое, что может зависнуть биткоин транзакция и не подтверждаться. Как действовать тогда? Давайте разбираться:

  • пользователь выставил недостаточную комиссию, из-за чего операция верификации может быть приостановлена;
  • пользователь «потратил» выход из транзакции. Такое случается, когда получение биткоинов сопровождается последующим перечислением части биткоинов без подтверждения системы;
  • скачки курса Bitcoin и других криптовалют, что повышает время операции;
  • высокая нагрузка на «криптосеть». По статистике, за последние два года количество операций, связанных с BTC, выросли в восемь раз, что означает более долгую связь между получателем и отправителем.

Как ускорить зависшую биткоин транзакцию

Неподтвержденную операцию можно ускорить несколькими способами.
Один из самых известных — повышение комиссии для того, чтобы майнеры успешно и быстрее оформили перевод.

Другой способ — упрощение и ускорение операции с помощью мультиподписи , проще говоря, подписи со стороны третьих лиц, обеспечивающих более быстрый перевод к получателю. Последующий способ самый простой и, скорее всего, самый выгодный волатильность. , в данном случае, будет напрямую зависеть от времени происходящей транзакции, ведь, когда BTC и его курс стабилен, активность от трейдеров Ну а сейчас 2018 нужно думать и смотреть в настоящее. Стоит также предположить, что эти три способа не единственные.

Как отменить неподтвержденную биткоин транзакцию

«Зависла биткоин транзакция, как ее отменить» такой же главный, но более сложный вопрос. К сожалению, отменить биткоин транзакцию априори невозможно, так как в процессе оформления транзакции Bitcoin отправка средств не осуществляется.

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

  • проверьте, что операция действительно подверглась зависанию и что задержка длится более трех дней. Даже когда, blockchain.info показывает надпись: «Транзакция не подтверждена!», есть возможность вернуть утерянные деньги;
  • если всё хорошо, зайдите в меню «Помощи». Дальше идет такая последовательность: Окно отладки - Консоль;
  • для заполучения доступа можно использовать команду «walletpassphrase »;
  • нужно обязательно получить и скопировать приватный ключ от адреса, по которому была произведена аутентификация. Вводим dumpprivkey
    и вместо
    нужно подставить адрес, который был использован при переводе, а также сохранить ключ;
  • после этого нужно закрыть консоль и переместить либо переименовать кошелек в более безопасное хранение, чтобы третьи лица не смогли получить доступ информации кошелька;
  • перезагрузите консоль, чтобы она создала новый кошелек. В окно нужно переместить ключ. Что дальше? Заходим в консоль и вписываем «importprivkey ». При вводе дождитесь ответа;
  • ну и конечный пункт. Созданный кошелек имеет тот же баланс, который был изначально на старом кошельке. А неподтвержденные переводы исчезли. Любые транзакции возможны снова. Не скупитесь на комиссии, чтобы таких неполадок не было.

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

И вот однажды беда приключилась. Отослал я криптомонетки, а до получателя они не дошли. Собственно, пост о том, как средства возвращались. Ну и размышления и советы по сложившейся ситуации на десерт. Сразу отмечу, что нижесказанное применимо не к какой-то конкретной валюте, а к большинству форков (если не ко всем).

Начну с того, что пост местами пронизан догадками относительно происходящего. Где-то я могу ошибаться. Объективные поправки и дополнения только приветствуются.

Немного о терминологии.

  • Кошельком буду называть файл wallet.dat.
  • Публичный ключ (адрес, на который перечисляются средства, например) временами тоже удобнее назвать кошельком, но, во избежание путаницы, пусть он будет просто номером счета.
  • Комиссия - Transaction Fee. Называть эту штуку комиссией, я считаю, не совсем правильно, но это наиболее привычный и не режущий слух вариант, потому пусть будет комиссией.
  • Размер транзакции - размер блока данных, в котором содержится вся информация о транзакции.
Ко всей этой криптовалютной кухне я изначально подошел как типичный юзер - не особо вникая в систему. Установил, запустил, работает - и ладно. Иногда при попытке послать куда-то средства клиент выдавал сообщение вроде «Размер транзакции слишком велик, нельзя просто взять и послать ее. Но вы можете добавить комиссию в размере N, и тогда все будет хорошо » - я соглашался с добавлением комиссии, и все действительно было хорошо.

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

Делаю очередной перевод на сумму значительно крупнее, чем обычно. Средства со счета уходят, предложения заплатить комиссию не было и… Ничего. До получателя средства не доходят, статус транзакции «0/Не подтверждено». И такую картину я наблюдал больше недели, попутно перегугливая и перечитывая интернеты в поисках информации по решению подобной проблемы. Причем искал и для конкретной криптовалюты, и в целом для всех - проблем куча, решения нет.

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

  • Размер транзакции должен быть не больше определенной величины.
  • Переводимая сумма должна быть больше некоего порога.
  • Транзакция должна обладать достаточным приоритетом.
Если первые два пункта более-менее понятны (конкретные величины приводить не стал, полагаю, они могут варьироваться от форка к форку), то в третьем вся загвоздка. Грубо говоря, транзакции при создании попадают в очередь, отсортированные по приоритету. При генерации очередного блока в него включаются транзакции с комиссией (которая идет в награду тому, кто нашел блок), а также транзакции без комиссии с наиболее высоким приоритетом.

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

Поиски решения показали, что это сравнительно частая для криптовалют проблема. К сожалению, все советы сводились к нижеперечисленному и часто не помогали:

  • Подождите сутки-двое, вашу транзакцию включат в очередной блок.
  • Подождите сутки-двое, программе-клиенту надоест ждать, и она сама отменит транзакцию.
  • Загрузите заново всю цепочку блоков.
  • Запустите клиент с каким-нибудь волшебным ключом (-rescan / -reindex / -salvagewallet).
Ждал я больше недели. Ни в какой блок транзакцию не включили. Даже после повторных отправок через sendrawtransaction. Блокчейн говорил, что о той транзакции ничего не знает, и на счету лежат те самые средства, никуда они не ушли. И только клиент стоял на своем: «Я транзакцию отправил, дальше как хочешь. Уже потраченными деньгами распоряжаться не позволю».

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

  • Зависит от валюты, где-то быстро отменяется, где-то нужно ждать долго.
  • Баг конкретного клиента.
  • Информация об отмене неверна.
В любом случае, неделя - это достаточно большой срок. Если за это время не прошло само, то есть основания полагать, что и не пройдет.

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

Решение буду описывать на примере клиента, наиболее распространенного для форков, известного как Satoshi Client. Насколько понимаю, оно применимо и к прочим клиентам, но, возможно, со своими нюансами.

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

Итак, если транзакция зависла и не имеет подтверждений:

  1. Проявите терпение. Не поднимайте сразу панику. Подождите пару дней, вдруг и правда само пройдет.
  2. Убедитесь, что транзакция зависла. Зайдите в Block Explorer (обычно гуглится по запросу «blockchain %названиекриптовалюты%») и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть.
  3. Перейдите в отладочную консоль (Помощь - Окно отладки - Консоль)
  4. Если кошелек зашифрован (он же зашифрован?), то для начала необходимо получить доступ, используя команду walletpassphrase .
  5. Теперь нужно получить приватный ключ от нужного счета. dumpprivkey
    . Вместо
    нужно подставить публичный номер счета, на котором лежат заблокированные средства. В ответ получите приватный ключ данного счета. Его нужно куда-нибудь скопировать, он еще понадобится. Если средства для транзакции брались с нескольких счетов, то и импортировать нужно их все. И да, никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету.
    Обратите также внимание на то, что на каждую команду в отладочной консоли приходит ответ. Он может быть пустым, но он есть всегда. Позже будет понятно, к чему я это.
  6. Закройте клиент и удалите кошелек. Расположение кошелька (wallet.dat) зависит от конкретного клиента и ОС. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
  7. Запустите клиент заново. Создастся новый кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey . Импорт может производиться достаточно долго. Позвольте ему завершиться - дождитесь получения ответа на команду.
  8. В новом кошельке должен появиться счет с реальным его состоянием. Для надежности можно перезапустить клиент с ключом -rescan, но, полагаю, это уже лишнее. Ранее заблокированные средства снова доступны для отправки, шлите их заново, на этот раз не забудьте включить комиссию. (есть важные дополнения по этому пункту в upd3 )
  9. Если на старом кошельке остались прочие используемые и важные счета, можно снова вернуться к нему.
Таким нехитрым образом удалось вернуть криптомонетки. Хотя я уже и начал думать, что они потеряны совсем. В общем, не надейтесь на чудо, перед использованием нового клиента убедитесь, что комиссия всегда включена. Рекомендуемый размер комиссии, думаю, лучше искать на ресурсах, посвященных используемой криптовалюте.

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

Upd2: Значительно упростить описанный процесс переноса счетов в новый кошелек может ключ -salwagewallet, уже упомянутый ранее. При запуске клиента с этим ключом создается новый wallet.dat, в который импортируются все счета из старого, а история транзакций к нему берется из цепочки блоков (за описание спасибо grich). К сожалению, запуск с данным ключом реализован не во всех клиентах.

Upd3: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:

  • Импортировав счет в новый кошелек, переведите все средства с него на другой свой счет, вернитесь к старому кошельку и после этого уже распоряжайтесь возвращенными средствами.
  • После совершения транзакции с нового кошелька определите, на какой счет упала сдача, и импортируйте этот счет в старый кошелек.

Теги: Добавить метки

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

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

Что значит неподтвержденная транзакция биткоин?

Неподтвержденная транзакция – это транзакция, которая после ее инициирования не была добавлена в блок. Работа сети Bitcoin поддерживается майнерами, которые и «обрабатывают» переводы. У них есть собственный приоритет – чем выше комиссия за байт транзакции, тем быстрее она будет добавлена в новый блок. Так что явление неподтвержденной транзакции – это чаще всего следствие низкой комиссии, которую выбрал отправитель.

Вы всегда можете узнать статус вашего перевода, просто введя в поле поиска сайта blockchain.info свой TXID (id вашей транзакции). Там отображается количество подтверждений и путь самой транзакции. Цифра 2 около и синий статус «кнопки» c надписью Confirmations в Blockchain означает, что транзакция прошла. А если она не была подтверждена, тогда вы увидите характерную надпись Unconfirmed Transaction на красном фоне.

При условии выставления адекватной комиссии подтверждение занимает до 30 минут, в противном случае, можно ожидать 72 часа и даже больше.

Если вы уверены, что ваша транзакция именно зависла, а не ожидает потверждения, прочитайте этот .

Почему не подтверждается транзакция?

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

Важно помнить, что размер комиссии не зависит от суммы транзакции. То есть, транзакция на 100 биткоинов может оказаться дешевле, чем на 0,01 BTC. Все зависит от ее размера в байтах. В свою очередь размер зависит от количества связанных транзакций. Например, если вы получили по 1 биткоину от Димы, Саши, Кати, а потом отправляете эти 3 биткоина Вахтангу, то в этой транзакции будет участвовать 4 адреса (включая ваш). А это дополнительные 600 байтов или около того.

Но если копнуть глубже, то окажется, что длительное время подтверждения транзакции – это следствие маленького размера блока Bitcoin. Сеть в условиях постоянного роста количества участников и переводов не способна их быстро обрабатывать на данном этапе.

Можно даже провести приблизительный расчет. Размер 1 блока составляет 1 мегабайт, на скрине выше обычная транзакция «занимает» 370 байт. На генерацию 1 блока уходит порядка 10 минут. Это значит, что за 10 минут может быть подтверждено порядка 2600 транзакций. Но ведь их на самом деле значительно больше.

На все том же сайте blockchain.info можно посмотреть размер mempool (мемпул – очередь) сети. Это объем всех транзакций, который ждут подтверждения.

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

Глобальное решение этой ситуации – это увеличение размера блока. Именно для этого и был проведен . Он предусматривает оптимизацию использования памяти для хранения данных о транзакциях, и должен подготовить сеть к дальнейшим модификациям (увеличение блока) через софтфорк. Segwit2x, который предусматривал хардфорк (жесткое разделение блокчейн) и увеличение размера блока до 2 мегабайт, был отменен.

Что будет с деньгами?

Одно можно сказать точно – ваши деньги никуда от вас не пропадут. Тут есть два сценария:

  • Ждать, пока ваша транзакция таки получит необходимых 2 подтверждения;
  • Принимать какие-то меры, чтобы ее протолкнуть.

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

И даже если вы не спешите с переводом, на каком-то этапе придется принимать меры. О об основных способах ускорения мы поговорим ниже.

Сколько ждать подтверждения транзакции биткоин

На некоторых сервисах указывается как долго ожидать подтверждения. Но эти цифры редко-когда имеют что-то общее с реальностью. Вы можете самостоятельно рассчитать время подтверждения транзакции. Для этого вам необходимо обратить внимание на строку Fee per byte.

Метод с двойной тратой зависит от выбранного вами кошелька. Обычно применяется пользователями Bitcoin-Core или Bitcoin Knots. Для реализации этого метода, необходимо закрыть Bitcoin Core, запустить заново в CMD (командная строка) c помощью команды –zapwalletettxes, предварительно убрав с каталога кошелька файл mempool.dat.

После этого проведите транзакцию заново, но уже с адекватной комиссией. В таком случае вам необходимо перехватить ее, точнее объединить «вход» старого перевода с новым. Для этого в Bitcoin-Core во вкладке INPUT выберите старую транзакцию и добавьте еще один вход с другой транзакции, чтобы она покрывала комиссию.

CPFP

CPFP – это сокращение от child pays for parent. Этот метод рассчитан на ситуации, когда отправитель создал новую транзакцию с битками, которые «условно» получил с другой транзакции, которая еще не была подтверждена. В таком случае, для проведения операции необходимо оплатить комиссию еще за ту самую неподтвержденную транзакцию.

Чтобы это сделать, нужно перейти в раздел Wallet (Settings -> Options -> Wallet), пометить поля Spend unconfirmed change и Enable coin features.

После этого нажимаем отправить и снова работаем с разделом Inputs. В качестве получателя указываете себя (свой ), вводите сумму, которую вам ранее отправили и отмечаете галочку subtract fee amount. Ниже устанавливаете размер комиссии через Сustom, а не через Recommended.

Гораздо проще справится с зависшей неподтвержденной транзакцией можно в кошельке Electrum. Там есть функция повторного отправления с увеличенной комиссией – replace-by-fee. Правда, она сработает только в том случае, если при первичном отправлении была отмечена галочка Replaceable.

Ускорители и “проталкиватели”

Ускорением транзакций также занимаются майнинговые пулы – ViaBTC , AntPool . Чтобы ускорить транзакцию через ViaBTC, достаточно перейти в раздел Tools на сайте пула и выбрать Transaction Accelerator. Для ускорения просто укажите ID транзакции и разгадайте каптчу. Эффективность этого метода спорная.
В сети также есть много сайтов-агрегаторов пулов ViaBTC и AntPool. Пример – perenosi.com . А в Telegram создан бот по ускорению - @FastTXbot . Бот агрегирует проталкивание через AntPool автоматически.

Еще больше способов ускорения вы можете найти в нашей статье:

Как обезопаситься от зависания транзакций

В первую очередь необходимо понимать, что влияет на скорость подтверждения транзакции. А влияет на нее время проведения транзакции, выбранная комиссия и «путь» отправляемых вами биткоинов. Не влияет количество пересылаемых биткоинов и кошелек, с которого вы их отправляете.

Если вы получили 10 биткоинов через 10 транзакций по 1 биткоину, то перевод этих 10 биткоинов по своему объему в байтах будет намного больше, чем перевод 100 биткоинов, которые вы получили с 1 адреса. Это и есть пример «Пути» отправляемых биткоинов. Аналогично и при отправлении – чем больше адресов, тем больше комиссия. Если вам нужно отправить BTC нескольким получателям, тогда объединяйте транзакции в одну и «разветвляйте» ее через Input.

Ключевое значение – это размер комиссии на 1 байт. Перед тем как отправлять битки, посмотрите показатели мемпула и проверьте среднее значение комиссий в сети. Посмотреть показатели комиссий можно на BitcoinFees.

Если мемпул пуст, тогда даже перевод с небольшой «пеней» пройдет – здесь работает простой закон спроса и предложения. Майнеры обрабатывают транзакции, так как лучшие предложения поступают редко. Идеальное время проведения – это когда Китай и Азия спят. То есть в европейской первой и второй временной зоне в этот период вечер (6-10 часов).

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

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

Итак, резюме:

  1. Неподтвержденная транзакция – это транзакция, которая после отправки по какой-то причине не была добавлена в блок.
  2. Чтобы ускорить транзакцию, можно использовать метод двойной траты (Double Spend), CPFP, Replace-by-fee либо специальные ускорители.
  3. Чтобы обезопаситься от зависаний, нужно выставлять правильную комиссию и учитывать время проведения транзакции.
  • Платежные системы
  • Волею судеб довелось мне иметь дело с криптовалютами. Не то что бы плотно работаю с ними, но иногда то отправлю монетки, то получу. Скажем так, понемногу прощупываю новую сферу изнутри.

    И вот однажды беда приключилась. Отослал я криптомонетки, а до получателя они не дошли. Собственно, пост о том, как средства возвращались. Ну и размышления и советы по сложившейся ситуации на десерт. Сразу отмечу, что нижесказанное применимо не к какой-то конкретной валюте, а к большинству форков (если не ко всем).

    Начну с того, что пост местами пронизан догадками относительно происходящего. Где-то я могу ошибаться. Объективные поправки и дополнения только приветствуются.

    Немного о терминологии.

    • Кошельком буду называть файл wallet.dat.
    • Публичный ключ (адрес, на который перечисляются средства, например) временами тоже удобнее назвать кошельком, но, во избежание путаницы, пусть он будет просто номером счета.
    • Комиссия - Transaction Fee. Называть эту штуку комиссией, я считаю, не совсем правильно, но это наиболее привычный и не режущий слух вариант, потому пусть будет комиссией.
    • Размер транзакции - размер блока данных, в котором содержится вся информация о транзакции.
    Ко всей этой криптовалютной кухне я изначально подошел как типичный юзер - не особо вникая в систему. Установил, запустил, работает - и ладно. Иногда при попытке послать куда-то средства клиент выдавал сообщение вроде «Размер транзакции слишком велик, нельзя просто взять и послать ее. Но вы можете добавить комиссию в размере N, и тогда все будет хорошо » - я соглашался с добавлением комиссии, и все действительно было хорошо.

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

    Делаю очередной перевод на сумму значительно крупнее, чем обычно. Средства со счета уходят, предложения заплатить комиссию не было и… Ничего. До получателя средства не доходят, статус транзакции «0/Не подтверждено». И такую картину я наблюдал больше недели, попутно перегугливая и перечитывая интернеты в поисках информации по решению подобной проблемы. Причем искал и для конкретной криптовалюты, и в целом для всех - проблем куча, решения нет.

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

    • Размер транзакции должен быть не больше определенной величины.
    • Переводимая сумма должна быть больше некоего порога.
    • Транзакция должна обладать достаточным приоритетом.
    Если первые два пункта более-менее понятны (конкретные величины приводить не стал, полагаю, они могут варьироваться от форка к форку), то в третьем вся загвоздка. Грубо говоря, транзакции при создании попадают в очередь, отсортированные по приоритету. При генерации очередного блока в него включаются транзакции с комиссией (которая идет в награду тому, кто нашел блок), а также транзакции без комиссии с наиболее высоким приоритетом.

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

    Поиски решения показали, что это сравнительно частая для криптовалют проблема. К сожалению, все советы сводились к нижеперечисленному и часто не помогали:

    • Подождите сутки-двое, вашу транзакцию включат в очередной блок.
    • Подождите сутки-двое, программе-клиенту надоест ждать, и она сама отменит транзакцию.
    • Загрузите заново всю цепочку блоков.
    • Запустите клиент с каким-нибудь волшебным ключом (-rescan / -reindex / -salvagewallet).
    Ждал я больше недели. Ни в какой блок транзакцию не включили. Даже после повторных отправок через sendrawtransaction. Блокчейн говорил, что о той транзакции ничего не знает, и на счету лежат те самые средства, никуда они не ушли. И только клиент стоял на своем: «Я транзакцию отправил, дальше как хочешь. Уже потраченными деньгами распоряжаться не позволю».

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

    • Зависит от валюты, где-то быстро отменяется, где-то нужно ждать долго.
    • Баг конкретного клиента.
    • Информация об отмене неверна.
    В любом случае, неделя - это достаточно большой срок. Если за это время не прошло само, то есть основания полагать, что и не пройдет.

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

    Решение буду описывать на примере клиента, наиболее распространенного для форков, известного как Satoshi Client. Насколько понимаю, оно применимо и к прочим клиентам, но, возможно, со своими нюансами.

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

    Итак, если транзакция зависла и не имеет подтверждений:

    1. Проявите терпение. Не поднимайте сразу панику. Подождите пару дней, вдруг и правда само пройдет.
    2. Убедитесь, что транзакция зависла. Зайдите в Block Explorer (обычно гуглится по запросу «blockchain %названиекриптовалюты%») и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть.
    3. Перейдите в отладочную консоль (Помощь - Окно отладки - Консоль)
    4. Если кошелек зашифрован (он же зашифрован?), то для начала необходимо получить доступ, используя команду walletpassphrase .
    5. Теперь нужно получить приватный ключ от нужного счета. dumpprivkey
      . Вместо
      нужно подставить публичный номер счета, на котором лежат заблокированные средства. В ответ получите приватный ключ данного счета. Его нужно куда-нибудь скопировать, он еще понадобится. Если средства для транзакции брались с нескольких счетов, то и импортировать нужно их все. И да, никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету.
      Обратите также внимание на то, что на каждую команду в отладочной консоли приходит ответ. Он может быть пустым, но он есть всегда. Позже будет понятно, к чему я это.
    6. Закройте клиент и удалите кошелек. Расположение кошелька (wallet.dat) зависит от конкретного клиента и ОС. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
    7. Запустите клиент заново. Создастся новый кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey . Импорт может производиться достаточно долго. Позвольте ему завершиться - дождитесь получения ответа на команду.
    8. В новом кошельке должен появиться счет с реальным его состоянием. Для надежности можно перезапустить клиент с ключом -rescan, но, полагаю, это уже лишнее. Ранее заблокированные средства снова доступны для отправки, шлите их заново, на этот раз не забудьте включить комиссию. (есть важные дополнения по этому пункту в upd3 )
    9. Если на старом кошельке остались прочие используемые и важные счета, можно снова вернуться к нему.
    Таким нехитрым образом удалось вернуть криптомонетки. Хотя я уже и начал думать, что они потеряны совсем. В общем, не надейтесь на чудо, перед использованием нового клиента убедитесь, что комиссия всегда включена. Рекомендуемый размер комиссии, думаю, лучше искать на ресурсах, посвященных используемой криптовалюте.

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

    Upd2: Значительно упростить описанный процесс переноса счетов в новый кошелек может ключ -salwagewallet, уже упомянутый ранее. При запуске клиента с этим ключом создается новый wallet.dat, в который импортируются все счета из старого, а история транзакций к нему берется из цепочки блоков (за описание спасибо ). К сожалению, запуск с данным ключом реализован не во всех клиентах.

    Upd3: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:

    • Импортировав счет в новый кошелек, переведите все средства с него на другой свой счет, вернитесь к старому кошельку и после этого уже распоряжайтесь возвращенными средствами.
    • После совершения транзакции с нового кошелька определите, на какой счет упала сдача, и импортируйте этот счет в старый кошелек.


    Неподтвержденная транзакция Биткоин - сделка в криптовалютной сети, которая после инициации не получила место в очередном блоке цепочки . Число операций с Bitcoin растёт, поэтому при заполнении элементов blockchain появляется конкуренция. Размер блока остаётся неизменным и составляет только 1000 Кб (1 Мб). Не удивительно, что в криптосети всё чаще возникают задержки, которые растягиваются на 5–7 часов и более.

    Такие ситуации создают трудности для людей, которые планировали быстро перевести деньги, но столкнулись с непредвиденной паузой в транзакции. Что делать? Как поступить, если платёж завис? В чём особенности каждого из методов? Эти и другие нюансы рассмотрим ниже.

    Почему может зависнуть транзакция Биткоин?

    Время отправки криптовалюты другому пользователю зависит от ряда факторов - загруженности сети на момент перевода, размера установленной , объёма сделки, а также приоритета платежа. Чтобы уточнить время, которое осталось для подтверждения (хотя бы ориентировочно), можно зайти на специальный сервис (к примеру, blockchain.info), после чего указать в сроке поиска ID операции.

    Причин, почему не подтверждается транзакция Биткоин, множество:

    1. Сделка вытесняется из блока другой операцией, которая имеет приоритет. Такое возможно, когда размер элемента цепи подходит к предельному параметру, а перевод участника сети оказался последним.
    2. Заканчивается время «жизни» платежа, которое равно 72 часам.
    3. Появляется конфликт между текущей операцией и иной сделкой, которая ранее была подтверждена.
    4. Платеж заменяется отправителем на другой платеж.
    Операция, которая «выдавлена» из блока, может вернуться в хранилище отправителя (при получении статуса несостоявшейся транзакции) или зависнуть. Иногда платёж направляется кошельком снова и снова. В такой ситуации деньги «замораживаются» и применить их уже не получится. В бумажнике появляется информация следующего содержания «Status:0/unconfirmed, in memory pool».

    Последняя ситуация происходит редко. Как правило, по истечению 3-х суток деньги возвращаются на хранилище отправителя. Это происходит в случае, если человек отправил небольшую сумму и выставил слишком низкую или нулевую комиссию.

    Что делать, если зависла транзакция Bitcoin - все варианты


    Рост спроса на Биткоин и задержки с подтверждением транзакций привели к новому этапу обсуждений проблем с мастштабируемостью Биткоина. Текущего размера блока в 1 Мб недостаточно, чтобы покрыть потребности пользователей, которые ежедневно совершают миллионы переводов. Если исходить из того, что средний размер операции равен 0,5 Кб, в один блок вмещается 2000 сделок, а реальных запросов в десятки раз больше. Как следствие, в очередной узел «пробиваются» крупные платежи с высокой комиссией, а остальные висят в статусе неподтверждённых и ожидают своей очереди. Ниже рассмотрим, как действовать в ситуации, если зависла транзакция Биткоин.

    Дождаться проведения сделки

    Если время терпит, можно не форсировать события и просто подождать. Распространённая причина задержки связана с загрузкой сети и ограниченным числом майнеров, занимающихся формированием очередного блока. Если сеть не отличается высокой волатильностью и не перегружена, причиной может быть низкая комиссия. Узнать оптимальную премию можно по ссылке btc.com/stats/unconfirmed-tx. На 11 апреля 2018 года рекомендуемый размер платежа равен 0,00001 Биткоин за 1 Кб. Следовательно, при проведении транзакции объёмом 500 Кб комиссия должна составлять не меньше 0,0005 BTC.

    Замена размера премии (Replace by fee)

    Для можно заменить комиссии. Такая возможность доступна отправителю средств. Официальное название опции - Replace by fee (RBF). При её отсутствии повторный перевод не пройдёт проверку и будет отброшен блокчейном. Это связано с тем, что двойная трата одних и тех же средств запрещена. Включение рассмотренной опции информирует систему о том, что сделка корректна.

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

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

    Наличие такой опции ещё не даёт гарантии быстрого проведения перевода, ведь это зависит от майнеров, которые формируют блоки. Причина в том, что не все участники сети работают с Replace by fee. Кроме того, RBF актуальна не для всех кошельков. Сегодня она поддерживается бумажниками Электрум и ГринАдрес. Что касается Bitcoin Core, здесь такая функция доступна при включении дополнительных скриптов.

    Чтобы активировать опцию, достаточно зайти в бумажник и активировать опцию Replace by fee. Как правило, этого достаточно для ускорения перевода и исключения его зависания в сети.

    Ускорители

    Неподтверждённые транзакции Bitcoin можно «протолкнуть» с помощью специальных ускорителей. Один из вариантов - майнинговый пул viaBTC, позволяющий снизить время проведения перевода. Несмотря на сравнительную «молодость», сервис заслужил популярность в широких кругах и часто применяется для ускорения зависших сделок в криптовалютной сети. Если транзакция не поступает получателю в течение суток и более, помощь такого пула будет полезна.

    Недостатки viaBTC для ускорения транзакции Bitcoin:

    1. Сервис сложен в управлении, поэтому перед применением стоит потратить время на рассмотрение его возможностей.
    2. Программа работает с небольшим числом транзакций, что приводит к периодическим зависаниям в процессе применения. На практике ускоритель обрабатывает несколько сделок в течение 60 минут, что ограничивает его возможности.
    3. Зайти в пул удаётся не всегда. К примеру, 11 апреля 2018 года с этим возникли проблемы. Система просит войти на страничку позже.
    4. В будущем за услуги площадки будет взиматься комиссия, зависящая от размера транзакции.
    Для запуска ускорителя требуется ID операции, а также ввод каптчи. Сервис изучает введенные сведения и ставит перевод в очередь. Если транзакция отмечена сервисом, она переносится в блок, полученный пулом.

    Альтернативой для рассмотренного сайта является пул AntPool. Кроме того, в Интернете можно найти ресурсы-агрегаторы (к примеру, perenosi.com), разрабатываются боты-ускорители для мессенджера Телеграм (пример @FastTXbot).

    Двойное расходование (Double Spending)

    Если зависла транзакция Bitcoin, можно применить ещё одну методику - второй раз передать деньги тем же сервисом. К примеру, участник сети видит, что платёж не проходит в течение продолжительного времени и находится в подвешенном виде. Здесь можно воспользоваться особенностями blockchain - проведением сразу нескольких операций.

    Суть в том, что проверка объёма средств на счету проводится в определенный момент времени. Если первый перевод оказался неуспешным, отправитель вправе поменять некоторые параметры, к примеру, увеличить размер премии и провести платёж снова. Переживать, что обе операции пройдут, не стоит. По правилам криптовалютной сети при отправке одного и того же актива проводится сделка, имеющая более выгодные условия для участников сети (майнеров). Остальные аналоги уничтожаются. Единственный риск - разветвление цепи, поэтому к применению опции Double Spending стоит подходить с осторожностью.

    Рассмотрим, что необходимо сделать для применения методики на примере Bitcoin Core. Отметим, что для остальных бумажников подход остаётся аналогичным. Разница может заключаться в наименовании команд, а общая последовательность не меняется. Алгоритм такой:

    1. Подготавливаемся к проведению Double Spending. Для этого важно убедиться, что транзакция зависла. Бывают случаи, когда сделка подтверждена, но по различным причинам не доходит до адресата. Для проверки рекомендуется использовать упомянутый ранее сайт blockchain.info. Если напротив сделки имеется фраза «unconfirmed transaction», переходим к дальнейшим шагам. Кроме того, можно обратить внимание на время проведения сделки, но оно ориентировочное.
    2. Закрываем программу-хранилище Биткоин , после чего в командной строке вводим слово «zapwallettxes». Иные варианты команд использовать запрещено, ведь возможно случайное удаление ключа и потеря доступа к деньгам.
    3. Ожидаем запуск бумажника. После пуска в нём уже не будет зависших транзакций. Но не стоит радоваться раньше времени, ведь в криптовалютной сети они ещё сохранены. К слову, пользователи Bitcoin Core старой версии 0.14 должны поменять имя или отправить документ mempool.dat в другую папку, после чего заходить в программу.
    4. Проводим новую сделку с указанием более высокой комиссии. Помните, что риск подтверждения прежней сделки через какое-то время остаётся. Чтобы исключить такую ситуацию, в новом платеже важно указывать параметры, максимально похожие на проведенную ранее (неуспешную) операцию. В таком случае система не позволит ей исполниться. К примеру, важно прописать идентичный размер входа в Bitcoin (найти требуемый параметр можно в разделе inputs). Что касается размера сделки, его можно увеличить для ускорения перевода.
    5. Заполняем необходимые поля по привычному плану (как при проведении стандартной транзакции).
    6. Ожидаем завершения операции , которая должна пройти быстрее.

    CPFP

    Популярный метод «проталкивания» платежа - Child Pays for Parent. Он подходит в ситуации, когда применяемое хранилище не позволяет включить рассмотренную выше опцию RBF. Минус способа в том, что за него придется платить. Кроме того, лишь небольшое число пулов поддерживают применение CPFP. Для «продвижения» сделки, с которой возникли трудности, необходимо использовать любой из выходов транзакции. Важно, чтобы суммы на счету было достаточно для проведения двух операций.

    Суть в том, что отправитель формирует ещё один перевод с применением выхода для оформления новой транзакции. Отправка Биткоинов может осуществляться по любому адресу. Главное - использовать сдачу с зависшего платежа. Не менее важный нюанс - размер комиссионной выплаты, который должен прописываться сразу для двух операций.

    Рассмотрим применение этого метода на примере бумажника Bitcoin Core. Исходное условие - транзакция размером 0,095 Биткоинов. Алгоритм такой:

    1. Переходим в раздел настроек и выбираем кнопку параметров.
    2. Входим в подкатегорию «Кошелёк» и включаем управление входами (устанавливается отметка в специальном поле). Здесь же ставим отметку, разрешив тратить неподтверждённую сдачу. Бывают ситуации, когда упомянутые галочки уже установлены (в таком случае ничего не меняем).
    3. Закрываем окно и жмём на кнопку отправки.
    4. Переходим в раздел входов и ставим отметку напротив интересующей суммы (в нашем случае 0,095 BTC).
    5. Указываем адрес получающей стороны, после чего одобряем действия, нажатием на кнопку «ОК».
    6. Ставим число 0,095 и жмём на отметку напротив команды «Вычесть комиссию из суммы». Здесь же отмечаем выборочный комиссионный платеж за килобайт. Важно отметить, что премия вычисляется из расчёта проведения двух сделок. Вычисление осуществляется следующим образом. Сначала величина прежней операции делится на размер нового платежа. К полученному числу прибавляется единица, а итог умножается на оптимальную комиссию за 1 Кб.
    Как отмечалось, не все пулы работают с этой схемой, но при наличии такой опции стоит ей воспользоваться.

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

    Одна из причин, почему не подтверждается транзакция Bitcoin - низкая комиссия. Чтобы изменить ситуацию в свою пользу, можно провести динамическое изменение этого параметра через кошелёк. Для этого бумажник должен поддерживать подобную функцию. Суть специальных хранилищ в том, что они автоматически считают оптимальный размер вознаграждения, при котором операция в криптовалютной сети проходит быстрее. Если владелец кошелька согласен с предложенным параметром, сделка без задержек включается в очередной блок.

    Динамическая правка комиссии позволяет вычислить приоритет сделки. Здесь подход прост. Чем больше премия, тем выше приоритетность. Рассмотренное правило особенно актуально в периоды максимальной загрузки сети. Если пользователь указал высокое вознаграждение, а транзакция всё равно зависает, это требует принятия срочных действий. Часто проблема связана с применением старых версий бумажников для Bitcoin. В таком случае имеется два пути - обновить существующий или установить новый кошелёк.

    Откат неподтверждённой транзакции

    Ещё один способ решить проблему с зависанием - отменить транзакцию Bitcoin. К примеру, в случае с Bitcoin Core требуется сделать следующее:

    1. Убеждаемся через сайт blockchain, что сделка не подтверждена.
    2. Входим в кошелёк, а далее в раздел отладки, для чего переходим по пути «помощь, отладочное окно и консоль». Если бумажник шифрован, к нему требуется доступ. Для этого вводится команда walletpassphrase < passphrase >.
    3. Получаем персональный ключ от необходимого адреса. Для этого указываем фразу dumpprivkey < address >. Слово в фигурных скобках меняем на адрес, использованный для проведения транзакции. Полученный ключ требуется копировать в отдельное место. В случае с групповой операцией, когда Bitcoin отправлялись с нескольких аккаунтов, нужны ключи для каждого из них. Наличие под рукой этих данных открывает доступ к счету.
    4. Закрываем кабинет и удаляем бумажник. Единственное, что стоит сохранить - wallet.dat. Этот файл рекомендуется заранее переименовать и переместить в иную папку.
    5. Перезапускаем программу, и дожидаемся создания нового кошелька. Вставляем в него полученные ключи, переходим в панель отладки и прописываем importprivkey < privkey >. Перенос сведений занимает определенное время. Важно, чтобы процесс не прерывался.
    6. Проверяем счёт. Зависшие операции удаляются, а блокированные деньги доступны для перечисления. Теперь можно снова оформлять транзакцию, но уже с более высокой комиссией.
    Рассмотренный метод не даёт результата в случае применения облачного хранилища для проведения перевода.

    Как защититься от неподтвержденных транзакций Биткоин?


    Чтобы обезопасить себя от проблем с зависшими транзакциями Bitcoin в будущем, требуется сделать следующее:
    1. Сразу выставлять оптимальную премию за проведение транзакции. Желание сэкономить может вылиться в продолжительные затраты времени на ожидание подтверждения операции. Сразу определитесь, что важнее - скорость или экономия.
    2. Перед проведением транзакции важно включить опцию RBF, о которой упоминалось выше. Далее при проведении операций через кошелёк рекомендуется делать отметки Replaceable. Но стоит убедиться, что кошельком поддерживается такая опция.
    Если выставлена адекватная комиссия, но транзакция всё равно зависла, бездействовать нельзя. В таком случае высок риск зависания перевода на продолжительное время. Чтобы решить проблему, пригодятся методы, которые рассмотрены в статье. Главное - не паниковать, ведь задержка операции является обычным делом в криптовалютной сети Биткоин. Сначала нужно разобраться с причиной появления проблемы, а уже после приступать к её решению. Как правило, помогает ускоритель или двойная трата. Но лучше не допускать таких задержек и сразу выставлять актуальную комиссию.

    Что делать, если зависла транзакция Bitcoin, смотрите в нижеследующем видео: