Ноутбук и компьютер - Информационный портал

Bitcoin core не подтверждается транзакция. Что делать, если транзакция не подтверждена? Что будет с деньгами

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

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

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

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

  • Кошельком буду называть файл 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: Если после импорта перечислить не всю сумму, имеющуюся на счету, то часть средств (сдача от используемых выходов) будет перечислена на другой счет нового кошелька. Учитывайте это, если планируете вернуться к старому кошельку:

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

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

Многие наверняка уже столкнулись с проблемой зависших битков (при отправке и получении).
В большинстве случаев, виною этому спам сети и выставление малой платы майнерам (далее комиссия).
Перед отправкой битков, я бы посоветовал вам смотреть на состояние сети и выставлять комиссию, которую рекомендуют данные сервисы:
https://btc.com/stats/unconfirmed-tx

Если уж так получилось, что вы отправили комиссию меньше рекомендуемой или попросту ваша транза застряла в неподтвержденных и не включена в блок, то используйте данный сервис для "проталкивания":

Берем свой th(id) транзакции:
Пример:

И вбиваем id cюда:


Примечание!

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

Вы можете получить, такое сообщение:

Submissions are beyond limit. Please try later.

Нажмите, чтобы раскрыть...

Вам нужно вбивать до тех пор, пока не получите статус: Успешно.

После этого, ваша транзу подхватят и вовлекут в блок для обработки.

Что делать, если ваша биткоин транзакция не подтверждается ("зависла")?

Сначала можно просто подождать. Если прошло уже несколько часов (или даже суток) и ждать надоело, то есть несколько вариантов:

  1. Cделать даблспенд . Особенности: может сделать только отправитель.
  2. Использовать CPFP . Особенности: может сделать получатель и обычно отправитель.
  3. Использовать replace-by-fee . Особенности: может только отправитель и если заранее позаботился; не все кошельки могут.
  4. Использовать "ускоритель" от viabtc . Особенности: может получатель и отправитель, но сервис часто перегружен и есть ограничения на транзакцию.
Как сделать даблспенд (двойную трату)?

Действуем по следующему алгоритму (алгоритм описан для кошелька Bitcoin Core; для других кошельков действия аналогичны, но команды будут другими):

SpoilerTarget">Спойлер: алгоритм

1) Убеждаемся, что она ждёт подтверждения. Для этого копируем id вашей транзакции, вставляем в строку поиска сервиса blockchain.info (а также bitaps.com, blocktrail.com/BTC или аналогичного). Далее ищем глазами строку "неподтвержденная транзакция" ("unconfirmed transaction"). Нашли? Значит, транзакция ждет подтверждения.
Примечание. На "Приблизительное время подтверждения" ("Estimated Confirmation Time") на странице с вашей транзакцией blockchain.info не смотрим -- там неизвестно что.

2) Теперь закрываем кошелек и запускаем его из командной строки с параметром -zapwallettxes и ждем пока он откроется. Когда кошелек запустится, все неподтвержденные транзакции из него исчезнут (но они ещё есть в сети!). Для bitcoin core 0.14 потребуется перед запуском ещё переименовать или перенести файл mempool.dat (мемпул в этой версии сохраняется в файл и старая транзакция остается там).
Примечание. Почему не с параметром -salvagewallet? -zapwallettxes не затронет имена ваших ключей, а -salvagewallet удалит их. Кроме того, bitcoin core иногда падает при запуске с -salvagewallet и тогда ваш wallet.dat будет поврежден. Правда, рядом с ним заранее будет создана копия.

3) Теперь можно создавать новую транзакцию, не забыв поставить адекватную комиссию. Но! Поскольку ваша старая транзакция ещё осталась в сети, она может когда-нибудь неожиданно подтвердиться. Если вас это не устраивает, то у новой транзакции хотя бы один из входов должен будет совпадать с одним из входов старой. Для этого смотрим на странице вашей транзакции на сайте blocktrail.com/BTC или аналоге графу "inputs", запонинаем точный размер входа в битках. После этого при создании транзакции в кошельке нажимаем на кнопку "inputs...", находим в списке такое же точно число в битках и выбираем его (если их несколько, то выбирайте с тем же адресом получения и временем). После этого выбираем ещё какие-нибудь входы, чтобы общая сумма была больше суммы транзакции с будущей комиссией; лучше выбирать с запасом. Далее заполняем все поля как обычно, (не забываем про комиссию!) и отправляем.


Как использовать CPFP? Как быть, если я не отправитель, а получатель транзакции?

Такой способ есть и он подходит для получателей; для отправителя он также подойдёт, если у вашей транзакции была "сдача" (обычно она есть). Этот способ немного дороже и сколько пулов его поддерживают - неизвестно (по состоянию на начало 2017 года как минимум два пула его поддерживают). Можно попробовать задействовать механизм CPFP (child pays for parent). Для этого вы должны потратить один из выходов проблемной транзакции с комиссией, которой хватит на обе транзакции сразу - новую и старую. То есть просто создаёте транзакцию с одним входом (это должен быть один из выходов проблемной, например - сдача) и пересылаете биткоины себе же. Комиссию ставите такую, чтобы её хватило на обе сразу: для этого суммируете их размеры, умножаете на число из пункта "Как выбрать адекватную комиссию?", делите на размер новой в килобайтах и вписываете в графу "custom transaction fee" при отправке транзакции. Подробнее для кошелька Bitcoin Core под спойлером:

SpoilerTarget">Спойлер

Пусть для примера вы получатель и должны получить 0.08500148 btc. Для того, чтобы воспользоваться CPFP, в Bitcoin Core нажимаем "Настройки" -> "Параметры" -> "Бумажник" ("Settings" -> "Options" -> "Wallet") ; ставим галочки у "включить управление входами" ("Enable coin control features") и "тратить неподтвержденную сдачу" ("Spend unconfirmed change"), если они не стоят (потом можно будет их убрать); теперь закрываем окно настроек и нажимаем "Отправить" ("Send"), там нажимаем кнопку "Входы..." ("Inputs...") и ставим галочку у суммы 0.08500148; потом "Ок", получателем ставите свой адрес; количество ставите 0.08500148 и галочку "вычесть комиссию из суммы" ("subtract fee from amount"); комиссию ставите "выборочно" ("custom"), "за килобайт" ("per kilobyte") и пишете с рассчетом на 2 транзакции по формуле ((размер старой транзакции)/(размер новой транзакции) + 1)*(адекватная комиссия за килобайт и лучше побольше). Отправляете.

Всё. Теперь ждёте. Те пулы, которые "понимают" эту схему, с радостью возьмут обе транзакции сразу. Возможно, это будет не быстро, если таких пулов мало.


Как отменить транзакцию? Может ли транзакция отмениться сама?

Если транзакция подтвердилась (включена в блок), отмениться или быть отменена она не может. Чтобы отменить неподтвержденную транзакцию, необходимо создать конкурирующую с ней транзакцию и добиться её включения в блок - смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?". В любом случае, гарантии успеха тут нет.

Сама неподтвержденная транзакция отмениться не может - может лишь поменяться отображение в вашем кошельке. Далее смотрите ответ на вопрос "Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?".

Моя транзакция висела неподтвержденной несколько дней, а затем пропала и деньги вернулись обратно. Теперь все хорошо и я могу просто отправить деньги ещё раз?

Нет! Ваша старая транзакция ещё есть в сети и может неожиданно подтврдиться. Чтобы этого избежать, смотрите пункт (2) ответа на вопрос "Что делать, если отправленная вами биткоин транзакция не подтверждается ("зависла")?" (под спойлером). Если вы вообще передумали делать тот перевод, то можно будет сделать перевод себе самому.

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

  1. Выставлять адекватную комиссию.
  2. Включить в кошельке механизм replace-by-fee и помечать все транзакции как replaceable, если ваш кошелёк его поддерживает (вроде бы electrum поддерживает). Это позволит при возникновении проблемы легко повысить комиссию.

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

Проще, быстрее и легче! Такими «лозунгами» я буду руководствоваться, чтобы доходчиво объяснить вам, как долго происходит подтверждение транзакции. Но сначала перечислим те вопросы, на которые мы попытаемся ответить:

Как это работает?

Извините, но буду «грузить» 😉 Без этого понять принцип манипуляций с криптовалютой не получится.

1) Информация об операциях с биткоинами записывается в специальные блоки, которые представляют собой список транзакций. Если сложить блоки в цепочку, то получите историю «хождения» криптовалюты.

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

3) Чтобы проверить подлинность операций с криптовалютой, транзакции должны быть валидированы в блокчейн. Он представляет собой распределенную БД. Ее части хранятся на множестве компьютеров в сети Bitcoin.

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

Подтверждение транзакции – это ее присоединение к списку транзакций в блоке.

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

При этом пользователь, проводящий операцию, может уменьшить число проверок. Это следует делать, если оперируете небольшой суммой биткоинов. Что упрощает и ускоряет процесс подтверждения транзакции.

Если верификации перевода криптоденег не произошло, то система возвращает средства обратно на кошелек отправителя.

Как долго ждать?

У меня в среднем уходит от 20 минут до часа.

Время ожидания зависит от нескольких составляющих:

1) Загруженность «криптосети» — за последние два года количество операций с биткоинами выросло более чем в 8 раз. Это видно на графике ниже.

Он показывает рост количества триллионов хешей, выполняемых в секунду в сети Bitcoin.

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

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

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

3) Скачки курса криптовалюты – тоже повышают время верификации.

Вот видео, в котором рассказывается о подобном случае на blockchain.

Как узнать сколько подтверждений прошло?

Советую ищущим «незнамо что» по своим (и не только) операциям с биткоинами заходить на blockchain.info . Здесь можно найти любую информацию по блокам, транзакциям. А также «промониторить» общую ситуацию на рынке.

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

Внизу страницы находится список транзакций, проведенных с ним. Нажмите на нужную и получите искомое значение.

Как увеличить скорость?

Методы сокращения времени транзакции:

  • Повышение комиссии для майнеров – специалисты советуют «не жадничать» и отдавать за подтверждение от 0,0002 ВТС и более.
  • Объем переводимых средств – чем больше криптовалюты переводите, тем статус операции выше в «криптосети».
  • Использование специализированных площадок наподобие coinbase.com – на таких сервисах покупатели и продавцы сохраняют свои ключи. Благодаря этому подтверждение происходит в рамках этой платформы, а не в общей сети.

  • Использование биткоин-кошельков с функцией создания мультиподписи – на подобных сервисах для подтверждения операции с криптовалютой от пользователя потребуется лишь указать закрытый ключ. Второй «подписью» выступает ключ сервиса. Таким образом не тратятся средства и время на подтверждение транзакции.

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

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

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

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

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

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

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

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

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

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

Неподтвержденные транзакции “bitcoin” встречаются все чаще. Связано это с многими факторами, в том числе с ростом желающих заработать на криптовалюте. Какие способы исправления ситуации существуют?

Транзакции blockchain.

Для того, чтобы понять, что такое неподтвержденные транзакции blockchain, следует разобраться в нюансах их проведения к адресату. Если идти от обратного, от значения этого термина, то подтверждение транзакции – это ее слияние с найденным блоком. Необходимо это подтверждение для предотвращения двойных трат. То есть, неподтвержденная транзакция – та, которая находится в стадии проверки и перехода.

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

После того, как верификация пройдена, транзакция попадает в очередь в так называемом мемпуле (Memory Pool), специально отведенной области для ожидания подтверждения операций.


Схема работы блокчейна.

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

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

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

Количество неподтвержденных транзакций и размер мемпула можно просмотреть на blockchain.info.


Размер мемпула, количество неподтвержденных транзакций.

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

На сайте blockchain.info можно узнать среднее время подтверждения транзакции, на графике.


Сайт blockchain.info.

В конце 2017 года из-за резкого повышения BTC в цене резко увеличилось и количество операций, а неподтвержденных транзакций Bitcoin насчитывалось до 20 тыс.

Каковы причины зависания?

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

  1. Загруженность системы. Такое случается из-за резких скачков стоимости биткойна, что само по себе является еще одной причиной затора транзакций, или по причине большого, критического размера мемпула. По некоторым данным загруженность за последние 2-3 года возросла более, чем в 8 раз.
  2. Маленькая комиссия. Однако некоторые пользователи сознательно устанавливают низкую комиссию за транзакцию, поскольку переводят мелкие суммы, они готовы ждать.
  3. Приоритет суммы. Большие размеры транзакций переводятся первыми.

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

Как исправить ситуацию?


Транзакция криптовалюты.

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

Практически всегда есть вариант просто отменить неподтвержденную транзакцию:

  1. В кошельке следует перейти в отладочную консоль. Если бумажник зашифрован, необходим доступ к нему. Получают его с помощью комбинации команд walletpassphrase – dumpprivkey <адрес транзакции>. Если транзакции многосоставные, следует получить все ключи доступа и экспортировать их.
  2. Ключ (ключи) необходимо скопировать.
  3. Удалить кошелек. Можно переименовать файл или переместить его, чтобы заново не скачивать.
  4. Далее требуется перезапуск клиента, который впоследствии создаст кошелек.
  5. Ввести приватный ключ, путем комбинации команд importprivkey -<ключ>.
  6. Новый кошелек не содержит отправленных транзакций, на баланс возвращены средства.

Теперь можно заново создавать транзакции, скорректировав их.

Выборочная замена комиссии


Opt-In RBF.

Функция заключается в том, чтобы заново отправить транзакцию, но уже с большей комиссией. В обычном режиме новый перевод с увеличенными комиссионными был бы расценен сетью как двойная трата, но, благодаря Opt-In RBF, узлы оповещены о предстоящей новой операции.

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

Кошельки, поддерживающие выборочную замену комиссии:

  • Bitcoin Core;
  • Armory;
  • Electrum;
  • GreenAdress.

Только GreenAdress использует необходимые настройки по умолчанию, в остальных кошельках необходимо задать определенные параметры.

Двойное расходование

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

Сделать это можно на сайте blockchain.info или других подобных сервисах.


Blockchain.info.

Если после проведенного поиска появилась информация «unconfirmed transaction», значит операция ждет подтверждения.

  1. Закрыть кошелек, запустить его заново через командную строку. Если использовали Bitcoin Core, задать параметр zapwallettxes. В некоторых случаях понадобится переименовать или перенести файл mempool.dat.
  2. Создать новую транзакцию, комиссия которой будет выше предыдущей.
  3. Для того, чтобы в последствии старая транзакция не подтвердилась, ведь она все еще находится в системе, требуется задать тот же размер входа для нового перевода, что и был в старом. Плюс необходимо выбрать дополнительно еще входы, чтобы она в общей сложности с запасом перекрывала сумму старой транзакции с комиссией.
  4. Завершить отправку.

Использование CPFP


CPFP.

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

Child Pays for Parent (CPFP) – метод, суть которого в трате одного выхода неподтвержденной транзакции и установки такой комиссии, которой бы хватило для включения двух таких в блок.

Действовать необходимо так:

  1. В кошельке в настройках зайти во вкладку «Бумажник», поставить галочки напротив «Включить управление входами», «Тратить неподтвержденную сдачу».
  2. Создать новый перевод, входом которого указать выход неподтвержденного. Можно указать «сдачу».
  3. Рассчитать размер корректной комиссии, учитывая две транзакции.

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

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

Динамическое изменение комиссии – опция кошелька, которая в автоматическом режиме избавит отправителя от зависания транзакции.

То есть кошелек самостоятельно в зависимости от загруженности сети определяет допустимую для успешного проведения транзакции комиссионную плату.

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

Поддерживают функцию, к примеру, такие кошельки:

  • Bitcoin Core;
  • Ledger;
  • Electrum; Airbitz;
  • GreenAddress.

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

Ускорение транзакций


Аntpool.com.

Некоторые предприимчивые компании создавали так называемые «ускорители транзакций», когда отправитель просто указывал хеш, и майнеры пула обрабатывали ее. Наиболее распространенными считаются antpool.com, viabtc.com. Однако по некоторым данным, в настоящее время осуществляет эту функцию только viabtc.com.

Используя ViaBTC, необходимо ввести id транзакции, которая зависла, и капчу, в соответствующие окна. Система распознает влияние ускорителя и поставит транзакцию в расшифрованный блок, добытый пулом.

Также предусмотрены такие способы повышения скорости транзакций:

  1. Повышение комиссии. Допустимо превышение от 0,0002 ВТС.
  2. Перевод больших объемов. Гораздо эффективнее будет перевод единожды, но большой суммы, чем несколько мелких транзакций.
  3. Использование специализированных платформ, например, coinbase.com, здесь сохраняются приватные ключи и продавцов, и покупателей, а перевод осуществляется в пределах платформы. Система блокчейн при том не задействована.
  4. Использование кошельков с функцией мультиподписи. Мультиподпись, например, у GreenAddress, будет подтверждением надежного перевода. Система возьмет в блок такую транзакцию гораздо быстрее.

Некоторые специалисты советуют использовать открытые транзакции, поскольку такие переводы проверить проще и быстрее. Однако об анонимности перевода можно забыть.

Как защититься от зависаний?


Сервис.

Для того, чтобы предотвратить зависание, следует выполнять всегда несколько простых правил.

Требуется:

  1. Выставлять правильную комиссию. В том случае, если ожидание невозможно, не следует экономить. Приблизительную стоимость комиссии относительно размера перевода можно узнать на сервисах вроде blockchain.info.
  2. Использовать кошельки с динамическим изменением комиссии, прислушиваться к их предупреждениям о целесообразности повышения комиссионных.
  3. Включать опцию выборочной замены комиссии. Не помешает и функция мультиподписи. Если кошелек на данный момент не поддерживает представленных опций, следует задуматься о его замене или обновлении.
  4. Использовать ресурсы, имеющие автономную систему транзакций.

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

Похожие публикации