Как отменить биткойн-транзакцию —
Всем известно, что отмена биткойн-транзакции невозможна. Необратимость транзакций одно из отличительных свойств системы пиринговой наличности — в отличии от централизованных платёжных систем. Одно время разработчики Bitcoin Core собирались внести изменение в клиент, которое позволило бы редактировать транзакцию ещё не принятую в блок с целью изменения комиссии, но этот функционал пока не реализован. И, тем не менее, уже сейчас в определённых условиях и при достаточном желании отмена транзакции возможна.
Данная статья является описанием эксперимента, целью которого было проверить, с насколько низкими комиссиями можно успешно отправить биткойны с кошелька Bitcoin Core. Эксперимент оказался неудачным и привёл к тому, что пять транзакций, отправленных с разнообразными установками кошелька в части комиссий «зависли». Но затем экспериментатору удалось отменить зависшие транзакции с возвратом заблокированных сумм.
Как не надо отправлять транзакции
Первые 2 транзакции попытались отправить с выставленной минимальной комиссией в 0,00001 BTC и флажком «Попытаться отправить без комиссии, если это возможно».
Обратите внимание, клиент рекомендует выставить 0,00013615 BTC за килобайт. Но для оставшихся трёх транзакций, каждая из которых была на ту же сумму 0,01 BTC, рекомендация касательно размера комиссии была проигнорирована, а сам размер комиссии выставлен заведомо меньшим, чем рекомендованный.
Получилось, что все пять транзакций зависли без единого подтверждения на неопределённое время. В нашем случае на неделю.
Дополнительное неудобство состояло в том, что адрес, на который были отправлены биткойны, в свою очередь, нельзя было использовать для отправки биткойнов. Попытка сделать перевод сопровождалась сообщением: «Oops! You have unconfirmed deposits pending. You must wait for your deposits to be confirmed before withdrawing.»
Если ситуация вам знакома, то для паники нет причины. Для начала, некоторое время можно подождать. Если очередь транзакций рассосётся, то возможно, в конце-концов, дойдёт очередь и до вашей. Если же ожидание излишне затянулось — как в нашем случае, на неделю, то можно попробовать заставить кошелёк — здесь это делалось на примере Bitcoin Core — «забыть» о размещённых транзакциях. Ведь до тех пор, пока не пришло первое подтверждение — транзакция не попала в блок, а значит, знает о ней только ваш клиент.
Как откатить зависшую транзакцию
, ещё не всё потеряно.
Для клиента, где отсутствует функционал расчёта рекомендованного размера комиссии, можно воспользоваться сервисом Blocktrail. Клиентом, который не только не показывает, но и не предоставляет возможность выставить размер комиссии, пользоваться можно на свой страх и риск.
Отмена зависших транзакций отправленных при помощи других кошельков, чем Bitcoin Core, делается аналогичным образом. Важно экспортировать приватные ключи от всех адресов, участвовавших в транзакциях, и где наличествуют биткойны, затем пересоздать кошелек — для этого, вероятно, придётся удалить каталог, где программа-кошелёк хранит данные, и затем импортировать приватные ключи в созданный заново кошелёк. Решение не применимо для облачных кошельков.
При участии Юлии Шалимовой
По материалам: Habrahabr