Несколько дней назад я нашел биткоин-кошелек.dat на Macbook 2011 года выпуска. Вот как мне удалось обналичить его.
Биткоин-кошелек 2011 года…
В 2011 году мой работодатель отправил меня и коллегу в Нидерланды на две недели для работы над исследовательским проектом. Там мне впервые кто-то рассказал о биткоине. Хотя идеи казались мне захватывающими, я не мог уловить в них особого смысла. И, конечно же, не было никакого способа когда-либо что-либо купить или перевести биткоины в реальные фиатные деньги. Тем не менее, я установил бета-версию Bitcoin core версии 0,3.19 на свой MacBook Pro, и каким-то образом мне удалось заполучить в свои руки часть биткоина. Сегодня этой суммы достаточно, чтобы купить мне новый ноутбук или отправиться в отпуск на несколько дней. Я не совсем помню, удалось ли мне получить эти доли с помощью майнинга, или кто-то из участников исследовательского проекта перевел их на мой счет в качестве небольшого подарка. Конечно, тогда это не имело большой ценности.
... снова появляется в 2021 году.
Перенесемся вперед. Я все еще использую упомянутый MacBook 2011 года выпуска для просмотра фильмов время от времени, поскольку он оснащен встроенным DVD-плеером и на самом деле работает более или менее безупречно до сих пор. Я так и не удосужился переформатировать его жесткий диск, и это моя удача. Открыв приложение DVD-плеера, я внезапно обнаружил установку Bitcoin Core, которую мне полностью удавалось игнорировать все эти годы. Я запустил приложение и нашел адрес. С 0 биткоинами. Я просмотрел немного дальше и понял, что был также второй адрес, который не отображался с настройками по умолчанию, и этот второй адрес утверждал, что содержит указанные доли биткоина.
Я был в восторге. Я зашел в Интернет, чтобы проверить. Адрес действительно содержал несколько долей биткоина. Я поискал в своей файловой системе файл wallet.dat, и мне повезло. Вот оно, под ~/Library/Application Support/Bitcoin/.
Сначала я убедился, что все мои соединения Wi-Fi и Bluetooth на ноутбуке отключены, а сам ноутбук не подключен к Интернету. Лучше перестраховаться, чем потом сожалеть. Во-вторых, я создал безопасную копию всего каталога и поместил ее на карту памяти. В-третьих, я удалил все права доступа из файла wallet.dat с помощью sudo chmod a-rwx wallet.dat, чтобы гарантировать, что никто, кроме меня, не сможет по ошибке или с недобрыми намерениями прочитать или изменить кошелек.
И тогда началась настоящая работа. Примечание: Я никогда по-настоящему не изучал всю историю биткоина более глубоко. На самом деле я скептически отношусь к тому, что это настолько безопасно, как считают многие люди, просто из-за того факта, что крупные майнеры на самом деле создают что-то вроде олигополии. Некоторые утверждают, что крупные биткоин-майнеры в Китае / Азии, возможно, не могут или не желают манипулировать блокчейном, несмотря на то, что их осталось не так уж много. Но это уже другая тема. Чего я хотел, так это получить наличные из BTC в моем кошельке. Как это делается?
Первая проблема, с которой я столкнулся, заключалась в том, что установленную версию Bitcoin Core v0.3.19 BETA, независимо от того, работала бы она по-прежнему или нет (вероятно, нет, но я даже не потрудился проверить), я больше не считал безопасной. Кроме того, на моем ноутбуке годами не было никаких обновлений, поэтому я также не считал ноутбук безопасным.
И, чтобы все усложнить, я даже не был уверен, зашифрован ли мой кошелек или нет, и если да, то каким был бы пароль. Я мог бы догадаться об этом, но не был уверен.
У меня новый MacBook Pro, поэтому теоретически я мог бы установить там новую версию Bitcoin Core, а затем попытаться импортировать старый wallet.dat. Но проблема заключалась в том, что Bitcoin Core в наши дни требует не менее 320 ГБ дискового пространства, а у меня доступно только 512 ГБ, и примерно половина из них уже заполнена. Таким образом, на диске просто не хватало свободного места.
После долгого чтения я решил установить вместо него кошелек Electrum. Разница между Bitcoin Core и Electrum заключается в том, что последний представляет собой так называемый кошелек для упрощенной проверки платежей (SPV). Короче говоря, следствием этого является то, что Electrum не требует загрузки всего 320 ГБ истории блокчейна, а вместо этого представляет собой полностью функциональный кошелек, который по-прежнему достаточно безопасен для большинства целей, хотя и не совсем так безопасен, как кошелек Bitcoin Core. По крайней мере, для той части биткоинов, которой я владел, он казался достаточно безопасным. Я был немного параноиком, поэтому даже проверил контрольную сумму с помощью GPG Suite после загрузки, чтобы убедиться, что с ней никто не манипулировал. Очевидно, некоторое время назад существовал поддельный веб-сайт под названием electrum.li, который предлагал измененную версию Electrum, так что некоторая паранойя действительно может быть оправдана.
Следующая проблема заключалась в том, что я понятия не имел, как импортировать мой биткоин-кошелек 2011 года.dat в Electrum. Я поискал и нашел пост от 2017 года, который в итоге оказался весьма полезным, но опустил некоторые детали. Из того, что я понял из этого сайта и других связанных материалов, просто не было способа импортировать мой старый файл wallet.dat в Electrum, они были несовместимы.
Вместо этого было предложено использовать pywallet, программу на Python 2.7, которая могла считывать старые файлы wallet.dat 2011 года, такие как мой. Автор упомянутой статьи использовал версию pywallet, доступную по адресу https://github.com/jackjack-jj/pywallet/blob/master/pywallet.py. Я клонировал его в свою локальную файловую систему…
... и столкнулся со следующей проблемой. В соответствии с инструкциями по установке требовалось установить pip несколько библиотек Python 2.7, которые были совершенно простыми в установке. Моя версия Mac OS X Catalina (10.15.7) поставляется с Python версии 2.7. Однако я не хотел возиться с этой версией, чтобы избежать перезаписи некоторых системных библиотек более новыми версиями по ошибке и потенциального сбоя некоторых процессов Mac OS X. К сожалению, Python 2.7 должным образом не поддерживает виртуальные среды. Итак, я решил пойти по пути MacPorts.
Это из инструкции по установке pywallet:
Mac OS X:
1. Install MacPorts from http://www.macports.org/
2. sudo port install python27 py27-twisted py27-pip py-bsddb python_select
3. sudo port select --set python python27
4. sudo easy_install ecdsa
Вы также можете столкнуться с проблемами, если у вас не установлен xcode, который, к счастью, у меня был, и мне больше не нужно было беспокоиться по этому поводу.
На самом деле я решил не переключать версию Python с MacPorts, а просто напрямую обратиться к установленной версии Python 2.7, которая отличается от предустановленной в моей системе. Эту новую установку можно было найти в /opt/local/Library/Frameworks/Python.framework/Versions/2.7/, и в ./bin папке был исполняемый файл python2.
На моем новом ноутбуке я создал копию всего каталога моего старого ноутбука с файлом wallet.dat. Затем я запустил pywallet:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2 ~/<path to pywallet>/pywallet.py --dumpwallet --datadir=~/<path to copy of Bitcoin wallet directory> > ~/wallet.dat.json
Я не был уверен, что это сработает, потому что wallet.dat мог быть защищен паролем. Я решил попытать счастья…
... и мне повезло! Это сработало как по волшебству. Как оказалось, большинство кошельков Bitcoin Core 2011 года на самом деле не зашифрованы. Очевидно, тогда бета-версия Bitcoin Core v0.3.19 не применяла это правило, и я просто смог открыть свой json-файл и прочитать его содержимое.
Файл json содержал множество разных адресов, включая их приватные и открытые ключи. Какой беспорядок. Типичная запись выглядела так:
{
"addr": "<this is an address>",
"compressed": false,
"hexsec": "<64 hex char string>",
"private": "<558 hex char string>",
"pubkey": "<130 hex char string>",
"reserve": 1,
"sec": "<51 char string>",
"secret": "<64 char string>"
}
После долгого чтения я наконец понял, что Electrum требует строку из 51 символа в поле “sec”. По сути, это закрытый ключ в кодировке формат импорта кошелька (WIF) в кодировке Base58. В моей ситуации, имея доступ к старой установке Bitcoin Core 2011 года, я также точно знал, на каком адресе будут храниться биткоины. Если бы я этого не знал, то мне пришлось бы пройти через трудности извлечения всех адресов с помощью скрипта и сверки всех с каким-нибудь общедоступным веб-сайтом или сервисом, чтобы увидеть, какой из них на самом деле содержит биткоины. Это описано лишь в поверхностных деталях в уже упомянутой medium.com статье. Pywallet на самом деле содержит команду для этой цели, где адрес блокчейна соответствует значению поля “addr” выше.
python2 pywallet.py --balance=<blockchain address>
Кроме того, вам, возможно, потребуется сократить время ожидания между запросами, чтобы не быть заблокированным сервисом поставщика блокчейн-информации.
В моем случае я мог бы просто найти соответствующую запись в файле json.
С этой информацией я не смог запустить свое приложение Electrum. Я установил Electrum версии 4.x. После запуска я сначала выбрал создать новый кошелек, указал имя, а затем выбрал Импортировать биткоин-адреса или приватные ключи. В какой-то момент процесса мне также пришлось выбрать надежный пароль, если я правильно помню.
В поле ввода мне нужно было ввести закрытый ключ длиной 51 символ в кодировке Base58, затем я мог нажать кнопку далее.
Теперь я был готов. Сначала меня смутило то, что Electrum не показывает сами адреса, вам нужно явно включить их в меню в разделе > Просмотр> Показывать адреса.
Отлично. Не требуется импорт 320 ГБ данных при минимальной потере доверия. (Возможно, вам было бы разумно сначала ознакомиться с безопасностью Electrum, с тем, к каким серверам он подключается и какие дополнительные опции он вам предлагает.)
Теперь мне нужно было найти адрес для отправки моих биткоин-транзакций, затем обменять их на мою местную валюту и, наконец, вывести деньги. Ситуация кардинально изменилась по сравнению с 2011 годом, но это все еще неболезненный процесс.
Сначала я проверил несколько местных биткоин-банкоматов, о которых читал в прессе. Что ж, если вы готовы потратить возмутительные комиссии в размере 3,5% - 5,7% от суммы снимаемых денег ПЛЮС дополнительные комиссии за что угодно, ПЛЮС принять тот факт, что иногда банкоматы просто пустуют без уведомления, плюс принять тот факт, что некоторые из них не позволяют снимать больше денег, чем около 1000 швейцарских франков за раз, плюс несколько случайных сообщений об ошибках, то это может быть действительно отличным вариантом для вас. Для меня это было не так. Затем я начал изучать торговые платформы и то, как они работают. Коллега предложил мне попробовать Lykke, заявив, что они не взимают дополнительных комиссий за перевод фиатных денег на любой банковский счет через платежную систему SWIFT. Я также кратко проверил Bitcoinsuisse.com кто уведомил меня на некоторых этапах процесса регистрации, что минимальный депозит составляет 10 тысяч швейцарских франков. Спасибо, но нет, спасибо. Я тоже проверял kraken.com но в конце концов решил создать учетную запись на lykke.com. Процесс регистрации прошел более или менее гладко, всего лишь несколько незначительных сбоев, из-за которых, по-видимому, моя бесплатная электронная почта, которой я пользовался в течение многих лет, молча не принималась, нигде не отображались сообщения об ошибках. Это заставило меня немного почесать в затылке, но в конечном итоге я остановился на адресе gmail, и это сработало. Но это привело меня только к самому простому аккаунту, с которым вы практически ничего не можете сделать. Чтобы обменять биткоины на фиатные деньги, а затем вывести средства, мне пришлось предоставить фотографию своего удостоверения личности, загрузить выписку из банковского счета в качестве доказательства, сделать селфи, передать им свои отпечатки пальцев и образец ДНК, и я был готов идти. Ну, последние два - это преувеличение, но вы понимаете суть дела.
Сделав все это, я подождал около 4 часов, затем получил еще одно электронное письмо о том, что моя заявка принята, и вуаля.
Веб-инструмент был действительно прост в использовании. Мне был предоставлен блокчейн-адрес для отправки моих биткоинов, а затем, с большим трепетом и молитвой, из моего приложения Electrum я отправил все свои биткоины на указанный блокчейн-адрес в моей учетной записи Lykke. Это стоило мне небольшой части моих BTC в соответствии с тем, как работает весь блокчейн-протокол для биткоина. (Если вы не знаете, о чем я здесь говорю, возможно, вы захотите прочитать о Electrum ETA. Транзакции на блокчейне не бесплатны, но и не слишком дороги.) Возможно, мне следовало начать с отправки лишь части средств, размышлял я впоследствии, ожидая, пока блокчейн примет мой платеж. Но примерно через 30 минут у меня было достаточно подтверждений, и биткоины действительно поступили на мой аккаунт в Lykke. : D
Следующим шагом было обменять их с BTC на CHF. Торговый инструмент был прост в использовании, если вы привыкли к такого рода вещам. Если нет, я настоятельно рекомендую вам обратиться за помощью. Вероятно, вы мало что можете сделать неправильно - кроме непреднамеренной покупки или продажи неправильной криптовалюты или неправильного типа фиатных денег. Сделка заняла около 30 минут, со многими частичными платежами, пока кто-то не приобрел большую часть моих рекламируемых BTC.
И теперь у меня были фиатные деньги на моем счете в Lykke. Я еще не пробовал переводить его с помощью SWIFT на свой банковский счет, но функциональность действительно проста, и, насколько я понял, никаких дополнительных сборов возникнуть не должно. По сравнению с банкоматами весь процесс был практически бесплатным.
Если информация, которую я предоставил, оказалась интересной и познавательной, не стесняйтесь отметить это лайком и подписаться на канал, чтобы получать ещё больше полезных рекомендаций.