Неподтвержденная транзакция, или Возвращаем криптовалюту из небытия / Хабр

Неподтвержденная транзакция, или Возвращаем криптовалюту из небытия

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

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

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

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

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

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

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

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

  • Подождите сутки-двое, вашу транзакцию включат в очередной блок.
  • Подождите сутки-двое, программе-клиенту надоест ждать, и она сама отменит транзакцию.
  • Загрузите заново всю цепочку блоков.
  • Запустите клиент с каким-нибудь волшебным ключом (-rescan / -reindex / -salvagewallet).
  • Зависит от валюты, где-то быстро отменяется, где-то нужно ждать долго.
  • Баг конкретного клиента.
  • Информация об отмене неверна.

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

Решение буду описывать на примере клиента, наиболее распространенного для форков, известного как 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). К сожалению, запуск с данным ключом реализован не во всех клиентах.

Как отменить транзакцию Биткоин?

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

Если говорить о платежных системах Visa и MasterCard, то в них все переводы контролируются сторонними людьми владельцами. Соответственно есть возможность отменить транзакцию и даже заказать Chargeback, вернуть потерянные деньги у мошенников, после того, как платеж уже был совершен.

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

Вот еще официальный ответ по этому поводу от технической поддержки:

blockchain

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

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

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

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

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

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

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

Если ваша транзакция не подтверждена, то не все еще потеряно, есть шанс ее отменить. Для начала нужно проверить, а действительно ли она еще не подтверждена. Для этого переходим на сайт Blockchain и вводим свой ID перевода. Если возле надписи «Confirmations» пишет «0», то все ок, а если другое число, то, к сожалению, отменить перевод уже будет нельзя:

транзакция bitcoin

Покажем на примере кошелька «Bitcoin Core». Заходим в раздел «Помощь» – «Консоль»:

консоль

Для начала кошелек нужно разблокировать, для этого выберите в самом низу пароль кошелька «Walletpassphrase» и введите его:

Walletpassphrase

Дальше вводим фразу «Dumpprivkey» которая отвечает за закрытую часть ключа:

Dumpprivkey

Система выдаст ключ, который нужно сохранить в надежном месте. Дальше нужно переименовать файл кошелька «wallet.dat» на «wallet.dat1» чтобы система его не нашла, тогда будет создан новый пустой файл.

После этого заходим еще раз в «Консоль» и вводим «Importprivkey» где нужно вставить свой закрытий ключ:

Importprivkey

Потом система начнет импорт всех транзакций:

сканирование

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

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

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

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

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

Возможно ли отменить транзакцию

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

  • ошибочно отправил слишком большую сумму;
  • неправильно указал реквизиты.

Как отменить транзакцию Биткоин, обзор действующих методов | by bitmakler.io | Medium

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

Варианты отмены транзакции

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

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

https://pbs.twimg.com/media/Dg2osE-W0AA4H5I.jpg:large

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

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

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

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

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

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

Когда ожидание завершения зависшей транзакции представляется слишком долгим, можно попытаться ее отменить. Зависание происходит из-за:

  • разрыва интернет-соединения;
  • поспешного отправления следующего перевода, пока еще не завершилось оформление предыдущего;
  • указания размера комиссии на уровне, который ниже, чем рекомендует система.

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

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

https://fin-bank.com/images/Articles/2020/zavisla-transaktion-bitcoin-cto-delat-1.jpg

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

После первых попыток минимизировать размер комиссий пользователи быстро приходят к пониманию, как не стоит отправлять транзакции. Не рекомендуется делать это:

  • выставляя флажок, чтобы платеж осуществился по возможности без комиссии;
  • указывая минимальное значение комиссионного сбора.

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

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

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

  • проверки его надежности, для чего изучаются отзывы на специализированных интернет-ресурсах;
  • наличия реально предоставляемой техподдержки в режиме 24/7, выгодных обменных курсов и действующей многоуровневой партнерской программы.

Подключение к многоуровневой “партнерке” для активного клиента со временем создает мощный источник пассивного дохода. Он получает бонусы, отчисления со сделок привлеченных клиентов обменника.

Возврат биткоинов при оплате в интернет-магазинах

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

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

Источник https://habr.com/ru/post/209778/

Источник https://vachevskij.ru/transaction-cancel/

Источник https://matbea.com/articles/kak_otmenit_tranzakciyu

Вам будет интересно  Как пополнить кошелек? Покупка Bitcoin

Добавить комментарий

Ваш адрес email не будет опубликован.