Как отменить биткойн-транзакцию

1415210369_dqw3ed3[1]

Всем известно, что отмена биткойн-транзакции невозможна. Необратимость транзакций одно из отличительных свойств системы пиринговой наличности — в отличии от централизованных платёжных систем. Одно время разработчики Bitcoin Core собирались внести изменение в клиент, которое позволило бы редактировать транзакцию ещё не принятую в блок с целью изменения комиссии, но этот функционал пока не реализован. И, тем не менее, уже сейчас в определённых условиях и при достаточном желании отмена транзакции возможна.

Данная статья является описанием эксперимента, целью которого было проверить, с насколько низкими комиссиями можно успешно отправить биткойны с кошелька Bitcoin Core. Эксперимент оказался неудачным и привёл к тому, что пять транзакций, отправленных с разнообразными установками кошелька в части комиссий «зависли». Но затем экспериментатору удалось отменить зависшие транзакции с возвратом заблокированных сумм.

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

Первые 2 транзакции попытались отправить с выставленной минимальной комиссией в 0,00001 BTC и флажком «Попытаться отправить без комиссии, если это возможно».zavis_1

Обратите внимание, клиент рекомендует выставить 0,00013615 BTC за килобайт. Но для оставшихся трёх транзакций, каждая из которых была на ту же сумму 0,01 BTC, рекомендация касательно размера комиссии была проигнорирована, а сам размер комиссии выставлен заведомо меньшим, чем рекомендованный.

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

result_all_stuck

Дополнительное неудобство состояло в том, что адрес, на который были отправлены биткойны, в свою очередь, нельзя было использовать для отправки биткойнов. Попытка сделать перевод сопровождалась сообщением: «Oops! You have unconfirmed deposits pending. You must wait for your deposits to be confirmed before withdrawing.»

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

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

  1. Убедитесь, что транзакция зависла. Откройте Block Explorer и проверьте, что про зависшую транзакцию там ничего не знают, а на счете деньги на самом деле есть. Даже в случае, если blockchain.info показывает транзакцию и рисует красную кнопку unconfirmed_transaction , ещё не всё потеряно.
  2. В кошельке перейдите в отладочную консоль (Помощь — Окно отладки — Консоль) (Help – Debug window – Console)
  3. Если кошелек зашифрован, то для начала необходимо получить доступ, используя команду walletpassphrase <passphrase>.
  4. Теперь нужно получить приватный ключ от нужного адреса. dumpprivkey <address>. Вместо <address> необходимо подставить адрес, был использован для отправки средств. В результате получите приватный ключ для указанного адреса. Его нужно куда-нибудь скопировать, он понадобится. Если транзакция была составная, и биткойны брались с нескольких счетов, то и экспортировать надо приватные ключи для всех этих адресов. Никогда не храните приватные ключи в доступном для кого-либо месте. Знание ключа дает полный доступ к соответствующему ему счету. Также, обратите внимание на то, что на каждую команду в режиме отладки в консоли приходит ответ. Он может быть пустым, но он есть всегда.
  5. Если на других адресах есть биткойны, то приватные ключи этих адресов так же необходимо экспортировать.
  6. После того, как закончили экспорт ключей, закройте клиент и удалите кошелек. Расположение кошелька (wallet.dat) зависит от конкретного клиента и ОС. Естественно, совсем удалять его не стоит, лучше переименовать или переместить в надежное место.
  7. Теперь перезапустите клиент. Он заново создаст кошелек. В него необходимо импортировать полученный ранее ключ (ключи). Идем в отладочную консоль и пишем importprivkey <privkey>. Импорт может занять достаточно много времени, но в любом случае дайте ему завершиться — дождитесь ответа на команду.
  8. В новом кошельке должен появиться счет с его реальным состоянием. Неподтверждённые транзакции «забыты», средства, заблокированные ранее снова доступны для отправки. Теперь можно выслать их заново, но на этот раз не забудьте включить рекомендованную комиссию.

after_clean-up

Для клиента, где отсутствует функционал расчёта рекомендованного размера комиссии, можно воспользоваться сервисом Blocktrail. Клиентом, который не только не показывает, но и не предоставляет возможность выставить размер комиссии, пользоваться можно на свой страх и риск.

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

При участии Юлии Шалимовой

По материалам: Habrahabr



Categories: Новичкам, Образование

Tags: , , , ,

Leave a Reply

23 Комментарий на "Как отменить биткойн-транзакцию"

Notify of
avatar
Участник

Ребят, если у кого то транзакция не подтверждается большой промежуток времени — пишите мне в telegram — @volevanya
помогу чем смогу

holynik
Гость

Сейчас это не работает, после восстановления через ключи, появилась зависшая транзакция. Конечно без консоли, все есть в ГУИ, консоль не знает таких команд.

Tara Can
Гость

Я смогла подтвердить транзакцию (маленькую) вообще без комиссии (0.00000btc) через perenosi.com — они группируют несколько транзакций в одну и их комиссии в одну, и проталкивают

Егор
Гость

подскажите, когда импортирую ключи после удаления wallet.dat, выходит такое:
Rescan is disabled in pruned mode. код -4. что делать?

Mr.Burns
Гость

Круто! Помогло! Спасибо!

Dadddy2017
Гость

Делал на днях 2 обмена играя на разнице курсов, сначала перевел 2 Btc в рубли на карту сбера через обменку Recordex.ru всё Ок быстро. Потом пошел на Baksman.com Перевел на их карту рубли, в итоге жду битки на свой счет уже 4 дня. Она вроде как не отменена в блоках, но и не поступления нет. Обменник парит мол от нас не зависит..что делать ?

Егор
Гость

а если переводил не через программу клиент, а на сайте blockchain.info? как быть в этом случае? комиссию не менял, а всё равно уже сутки висит 0 подтверждений.

Max Freeman
Гость
На всякий случай расскажу здесь тоже как в итоге у меня решился вопрос. Я пробовал ВСЁ! И запускать кошелек с разными ключами (salvage, zap, rescan и т.д.), и экспортировать приватные ключи, а потом вставлять в новый кошелек, и вставлять приватные ключи в Electrum, и сервис ускорения транзакции, и много чего еще, сейчас уже не вспомню, т.к. после того как всё завершилось я уснул на двое суток, потому что до этого не спал трое из-за этой ситуации)) На что только не способен человек, чтобы вернуть свои пару BTC) Особенно тот, кто понимает сколько они будут стоить через пару-тройку лет) Не помогло… Read more »
Dupych Dima
Гость

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

Марина
Гость

Осуществляда перевод биткоин на сайте https://bankcomat.cc/?gclid=CjwKEAjw_6XIBRCisIGIrJeQ93oSJAA2cNtMoljFJF4u_76f6n3dJcrdMF2R8gigVNVV45uClo5IPBoCfErw_wcB по отзывам клиегтов все летает. Заявка 1239 от 30.04.17 не была оплачена на карту приват банка. После общения с обератором по вопросу выяснения оператор сказала , что я ее зае…. принципиально денег не вернем и заблокировала меня. Пожалуйста подскажите как можно вкрнуть деньги куда обратится

Анонимно
Гость

После отмены транзы неперстали отправляться битки вообще куда либо. В чем дело может быть?

Anonymous
Гость

Такая же беда

Петров Александр
Гость

Ещё-бы на всех криптовалютных биржах можно было задавать комиссию по желанию, но увы…

arvicco
Администратор
Анонимно
Гость

Понятно что помогало!
Импорт ключа это и есть рескан. 🙂 Точнее говоря, после импорта ключа ВСЕГДА делается рескан цепочки для определения баланса.

professor9
Гость

c кошельками беда: multibit — нельзя получить приватный ключ, bither — не может перевести меньше чем 0.01 биткоина, электрум — для того чтоб импортировать ключ выводит все деньги на какой-то свой адрес..

Анонимно
Гость

В электруме, по крайней мере в версии от марта-апреля, программа спрашивала, опустошить ли адрес, или импортировать ключи напрямую.
Если не выбирать опустошение (spoof вроде), то высылаться на новые адреса ничего не будет.

Анонимно
Гость

Совершенно верно.
Эх, новички…

Илья
Гость

Zapwallettxes=1 вроде так называется ключ с которым запустить Core и все транзакции пропадут. Не нужно копирование или перемещение.

Анонимно
Гость

Как это сделать на Mac?

u0070114
Гость

Да. Как?

Max Freeman
Гость

Кто-то может прокомментировать этот способ:

«Zapwallettxes=1 вроде так называется ключ с которым запустить Core и все транзакции пропадут. Не нужно копирование или перемещение.»

Работает?

И как это сделать на Mac?

Max Freeman
Гость

Вроде или всё-таки именно так?)

wpDiscuz