Моя одиссея по спасению $200 тыс. в биткоинах

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

Еще какой-нибудь месяц назад я и думать не мог, что мой октябрь будет таким. И все же вот он я, лечу в Гонконг в надежде, что мне удастся извлечь биткоины стоимостью 200 тыс. долларов из сломанного ноутбука.

Четыре года назад мы с моим приятелем и журналистом Майком (имя изменено) жили в Гонконге и решили тогда вложиться в Биткоин. Я купил 4 монеты, а он все 40. Мне эта инвестиция обошлась примерно в $2 тыс., а Майк заплатил $15 тыс. В те времена покупка биткоина считалась невиданной спекуляцией, но годы шли, монеты росли в цене и дальновидное решение Майка все больше становилось все более оправданным. Я с тех пор переехал в Лос-Анжелес, время от времени отправляя Майку сообщения об огромном росте наших инвестиций.

Но что-то было не так с ответами которые я от него получал. Они не были наполнены ожидаемым энтузиазмом. У него было в 10 раз больше биткоинов. Неужели это никак его не волновало? В итоге, когда цена 1 монеты перевалила за отметку 4 тыс. долларов этим летом, я отправил ему сообщение: «У тебя же все еще есть те биткоины?» И тут, наконец, последовало признание: «Может быть, уже и нет...»

И вот что случилось. В 2013 году мы с Майком вполне обоснованно побеспокоились о целости и сохранности своего вложения. Сначала он держал свои биткоины на LocalBitcoins. Обменники вроде этого обычно хорошо подходят для покупки или продажи биткоинов, но хранить их там на постоянной основе не следует. Все до сих пор помнят пожалуй самый печально известный скандал вокруг биткоина, связанный с располагавшейся некогда в Японии биржей Mt. Gox, действия которой обернулись для ее пользователей потерей 850 тыс. биткоинов.

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

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

Сегодня можно уверенно сказать, что MultiBit был написан по-быстрому. Его интерфейс нельзя назвать интуитивно понятным. И хотя большинству пользователей обычно нужен всего один кошелек, но MultiBit с его кричаще большой кнопкой «Создать кошелек» настаивать на том, чтобы вы создали несколько. А кроме того, он позволяет добавлять несколько паролей для каждого кошелька, хотя в этом не были никакой очевидной необходимости. Всего несколько минут с этой программой позволяли вам наплодить несколько десятков кошельков, каждого из которых можно было защитить целым десятком паролей. В общем если коротко, то ошибиться, работая с этой программой, было очень легко.

В марте 2014, одной особенно влажной гонконгской ночью Майк создал в Multibit новый кошелек, переместил свои 40 биткоинов туда и добавил пароль. Исходя из какой-то известной только им одним вселенской мудрости программисты, писавшие эту программу, не добавили в нее второго поля для подтверждения пароля. Извольте ввести ваш пароль правильно и с первого раза! Но Майк сразу понял, что ошибся. Он попробовал верную на его взгляд комбинацию и получил отказ. Затем снова и снова, но каждый раз получал один и тот же ответ. Он был уверен, что палец соскользнул во время первого ввода пароля. То есть в какой-то момент он нажал еще одну клавишу. Вот только в какой момент? И какую именно клавишу? 

Поскольку Майк пришел в биткоин-игру всерьез и надолго, он продолжил методично подбирать пароли в течение следующей недели или двух. Шло время, весь год цена биткоина колебалась между 200 и 400 долларов, и потому причин спешить у него не было. Он посчитал, что в один прекрасный день решение явит себя само, положил свой Макбук 2007 года с кошельком MultiBit в надежный уголок своего офиса, где тот тихо приказал долго жить в результате отказа материнской платы.

Я узнал об этом от него ранее в этом году. «Знаешь, я долго держал это в себе, это что-то вроде ментального блока, но я хочу признаться, что похоже, я потерял все свои биткоины». И рассказал о нерабочем ныне ноутбуке и неудаче с MultiBit. Говорил он обо всем этом так, словно мы находились в исповедальне, а он совершил некий грех, его давно гложет совесть, и он наконец пришел просить прощения. На фоне роста цены биткоина в то время его потенциальные потери составляли уже 180 тыс. долларов. Майк был всерьез намерен приехать в офис KeepKey, компании, которой MultiBit достался в наследство, а дальше… даже не знаю, чего он хотел от них добиться. Я попросил его немного подождать.

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

Я знал, что получить доступ к жесткому диску из старого макбука было просто. Для этого его достаточно было подключить к новому компьютеру. Главным препятствием было разобраться с MultiBit. Я изучил старую версию уже неподдерживаемого ПО и узнал о наличии сразу нескольких способов восстановления доступа к кошелькам MultiBit. Для каждого кошелька программа генерирует зашифрованные резервные копии, а также делает отдельную зашифрованную копию приватного ключа. Кроме того, ее можно было восстановить сразу вместе со всеми кошельками. Для этого нужна была вспомогательной фраза, придуманная в самом начале, но Майк, конечно же, забыл ее.

Довольно быстро стало понятно, что наши шансы на успех составляли в лучшем случае 50%: мы могли расшифровать либо бэкап кошелька, либо ключа. Чтобы сделать и то и другое, потребовался бы пароль, который Майку нужно вспомнить. Я поделился с ним своими выводами и он предложил мне процент со всех средств, которые нам удастся восстановить. И хотя я мог бы помочь ему удаленно, он попросил меня приехать и быть рядом в решающий момент. Речь шла не просто о технической ошибке, но и серьезном личном переживании, и ему нужен был рядом человек, с которым он мог бы его разделить.

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

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

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

Как и цифровая долларовая купюра, биткоины можно обменять, украсть или потерять. Но речь все равно идет всего лишь о символическом представлении того факта, что биткоин на самом деле — всего лишь криптографически заблокированный адрес в блокчейне. И поэтому фактически «на» вашем компьютере никаких биткоинов нет. На самом деле вы владеете лишь приватным ключом, с помощью которого можете разблокировать местоположение биткоинов в блокчейне. И именно этот ключ мы искали в нагромождении папок MultiBit Майка.

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

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

В какой-то момент счет пополнился 40 биткоинами, полученными 20 ноября 2013 года. Кошелек также показал их текущую стоимость: $200 тыс.

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

Мы проверили еще четыре или пять других кошельков, каждый раз более часа ожидая завершения синхронизации. И раз за разом мы видели, как биткоин-эквивалент 200 тыс. долларов появлялся 20 ноября 2013 года и исчезал с кошелька 20 марта 2014. В какой-то момент весь трагизм ситуации уступил место пессимистичным шуткам.

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

Оставалось только отправить коины подальше от этого беспорядка в современный кошелек (мы выбрали Exodus, за его простоту, понятность и безопасность). Но отправка потребовала ввода еще одного пароля. Помните я выше писал, что MultiBit позволяет добавить дополнительные пароли. Вот именно это Майк и сделал в ту ночь 2014 года. Мы попробовали известный пароль и… он оказался неверным. Мы пытались снова и снова, внимательно выискивая каждый символ перед нажатием. Но все было напрасно. 50% шанс оказался не на нашей стороне.

Почему MultiBit так настаивал на добавлении нескольких паролей? И почему он хотя бы не попросил подтверждение пароля при его первом вводе? Но софтверная пустота глуха к подобным вопросам.

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

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

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

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

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

Я создал новый кошелек в MultiBit, загрузил в него файл ключа и разблокировал его известным нам правильным паролем. И пока Майк нес какую-то самоуспокаивающую чепуху о мимолетной природе денег, надежд, мечтаний, наших жизней и всего этого мира, я наблюдал за синхронизацией блокчейна. Вот мимо проплыло 20-е ноября, затем как положено появились 200 тыс. А после минуло и 20 марта и баланс сохранился. 

Интересно. Я нажал на вкладку Send, где мы только что провели пять чудесных часов, пытаясь пробить головой закрытую на пароль дверь в мир современных адресов и кошельков. И обнаружил, что кнопка Send была активна, «горела» и на нее можно было нажать, без всяких паролей. А значит, я мог попробовать сделать это и…

О боже мой, сработало!

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

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

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

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

На следующее утро я проверил блокчейн эксплорер и с удивлением для себя обнаружил, что наша транзакция уже набрала пять подтверждений. Но как? Мы с Майком бросились в кафе чтобы дождаться двух последних подтверждений. Пока мы ждали, я стремительно гуглил и обнаружил, что иногда, в периоды малой активности, в мемпуле остается очень мало транзакций… И праздник середины осени в Китае, где расположено большинство биткоин-майнеров оказался как раз одним из таких моментов.

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

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

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

ИСТОЧНИК

Версия для печатиВерсия для печати
  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 4
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя mental

Интересная история 

+1

Про то, что нужно хранить пароли?

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

Биток - смотри в оба или - семь пядей во лбу (С)

Эдуард пишет:

Про то, что нужно хранить пароли?


Про то что софт в те годы писался одной левой ногой - то есть ВВОД пароля НЕ требовал ПОВТОРНОГО ввода (для контроля) - один раз нажал и ... а что я нажал то? (С)

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

Хардкод зло! (С)

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

Блокчейне  удивительная штука - хочешь побыстрее - ПЛАТИ БОЛЬШЕ и майнеры занесут твою транзакцию в базу! (С)

На следующее утро я проверил блокчейн эксплорер и с удивлением для себя обнаружил, что наша транзакция уже набрала пять подтверждений. Но как? Мы с Майком бросились в кафе чтобы дождаться двух последних подтверждений. Пока мы ждали, я стремительно гуглил и обнаружил, что иногда, в периоды малой активности, в мемпуле остается очень мало транзакций… И праздник середины осени в Китае, где расположено большинство биткоин-майнеров оказался как раз одним из таких моментов.

Им просто повезло. (С) smiley

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

Адреналину было море. (С) yes