Найти тему
Cryptoforum

Как я нашел и обналичил Биткоин-кошелек с 2011 года

Оглавление

Несколько дней назад я нашел Bitcoin wallet.dat на Macbook 2011 года выпуска. Вот как мне удалось на нем заработать.

Биткойн-кошелек 2011 года…

В 2011 году мой работодатель отправил меня и коллегу в другой город на две недели для работы над исследовательским проектом. Там мне впервые кто-то рассказал про Биткойн. Хотя я нашел эти идеи захватывающими, я не мог понять их смысла. И уж точно не было способа что-то купить или перевести биткойны на настоящие фиатные деньги. Тем не менее, я установил Bitcoin core v0.3.19 BETA на свой MacBook Pro и каким-то образом сумел получить в свои руки долю биткойна. Сегодня этой доли достаточно, чтобы купить мне новый ноутбук или уехать в отпуск на несколько дней. Я не совсем помню, удалось ли мне получить эти фракции с помощью майнинга, или кто-то из участников исследовательского проекта перенес их на мой счет в качестве небольшого подарка. Конечно, тогда это не имело большого значения.

Как я нашел и обналичил Биткоин-кошелек с 2011 года
Как я нашел и обналичил Биткоин-кошелек с 2011 года

… Появится снова в 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чтобы убедиться, что никто, кроме меня, не может по ошибке или злонамеренно прочитать или изменить кошелек.

После долгого чтения я решил вместо этого установить кошелек Electrum . Разница между Bitcoin Core и Electrum заключается в том, что последний представляет собой кошелек с так называемой упрощенной проверкой платежей (SPV) . Короче говоря, следствием является то, что Electrum не требует загрузки всего 320 ГБ истории блокчейна, а вместо этого представляет собой полнофункциональный кошелек, который по-прежнему достаточно безопасен для большинства целей, хотя и не так безопасен, как кошелек Bitcoin Core. По крайней мере, для той части биткойнов, которой я владел, это казалось достаточно безопасным. Я был немного параноиком, поэтому даже проверял контрольную сумму с помощью GPG Suite.после загрузки, чтобы убедиться, что с ним не возились. По-видимому, некоторое время назад существовал поддельный веб-сайт под названием electrum.li, который предлагал манипулируемую версию Electrum, так что некоторая паранойя действительно могла быть оправдана.

Следующая проблема заключалась в том, что я понятия не имел, как импортировать свой биткойн-кошелек 2011 года в Electrum. Я поискал и нашел этот пост на medium.com от 2017 года, который, в конце концов, оказался весьма полезным, но не включил некоторые детали. Из того, что я понял из этого сайта и других связанных материалов, просто не было способа импортировать мой старый файл wallet.dat в Electrum, они были несовместимы.

Вместо этого было предложено использовать pywallet , программу на Python 2.7, которая могла считывать старые файлы wallet.dat из 2011 года, такие как мой. Я клонировал его в свою локальную файловую систему ...

… И столкнулся со следующей проблемой. Согласно инструкциям по установке, необходимо было установить несколько библиотек 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 BETA, и я просто смог открыть свой 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». По сути, это закрытый ключ с кодировкой Base58 в формате импорта кошелька (WIF). В моей ситуации, имея все еще доступ к старой установке Bitcoin Core с 2011 года, я также точно знал, какой адрес будет содержать биткойны. Если бы я не знал об этом, мне пришлось бы пройти через боль, извлекая все адреса с помощью сценария и проверяя их на каком-либо общедоступном веб-сайте или сервисе, чтобы увидеть, какой из них действительно содержит биткойны. В поверхностных подробностях это описано в уже упомянутой статье на medium.com . Pywallet на самом деле содержит команду для этой цели, где адрес блокчейна соответствует значению поля «addr» выше.

python2 pywallet.py --balance=<blockchain address>

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

В моем случае я мог просто найти соответствующую запись в файле json.

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

Electrum v4.x
Electrum v4.x

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

Теперь я был готов. Что меня сначала смутило, так это то, что Electrum не показывает сами адреса, вам нужно явно включить их в меню в разделе > Вид> Показать адреса .

Приложение Electrum
Приложение Electrum

Отлично. Не требуется импорт данных размером 320 ГБ при минимальной потере доверия. (Возможно, вам будет разумно сначала прочитать о безопасности Electrum, о том, к каким серверам он подключается и какие дополнительные варианты он вам предлагает.)

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