Файлы биткоин с каким расширением
Записать в блокчейн биткоина можно не только финансовые операции, но и практически любые данные. Записанные в блокчейн биткоина данные становятся общедоступными и их практически невозможно удалить или изменить. Эту особенность можно использовать например для создания децентрализованных сайтов, которые не поддаются никакой блокировке.
С помощью библиотеки blockchaindata-lib запись и чтение данных в блокчейне можно организовать буквально в несколько строк кода.
Что такое кошелек в криптовалютах
Разберемся немного с терминологией. Под кошельками в криптовалютах понимают одновременно:
- набор ключей для доступа к деньгам;
- программы, которые управляют этими ключами и позволяют вам проводить транзакции в сети криптовалюты.
Будем говорить про кошелек именно как про средство управления, хранения и проведения транзакций. Без кошелька вы не можете получить, сохранить или потратить ваши биткоины или средства в другой криптовалюте. Кошелек — ваш персональный интерфейс к сети криптовалюты, похожий на банковский аккаунт для фиатной валюты.
На самом деле безопасность хранения ваших средств в криптовалюте очень сильно зависит от того кошелька, который вы используете. А безопасность самого кошелька во многом основана на безопасности операций с закрытыми ключами.
Все кошельки подразделяются на “горячие” и “холодные”. «Горячим» называют криптовалютный кошелек, средства с которого можно потратить в любое время. «Холодный» кошелек действует совершенно противоположным образом. Он не предназначен для регулярного отправления криптовалюты, но тем не менее, средства на него можно получить в любое время. Самым простым “холодным” кошельком является лист бумаги, на котором записан закрытый ключ от вашего кошелька.
“Горячий” кошелек Bitcoin — это приложение, веб-сайт или устройство, которое управляет вашими закрытыми ключами. Самые популярные — это, конечно, приложения, как мобильные, так и десктопные, а также веб-сайты. Давайте чуть подробнее остановимся на каждом из этих видов и посмотрим, какие угрозы таит использование того или другого кошелька.
Что делать при удалении wallet.dat?
на устройстве было настроено облачное копирование файлов;
файл был удален просто через корзину (можно привлечь специалистов по восстановлению файлов).
Если потеря связана с физической поломкой носителя, будет труднее. Но и в данной ситуации могут помочь эксперты, специализирующиеся на таком ПО, как CardRecovery.
Как искать потерянные Биткоины: самые распространенные способы?
Есть много способов того, как искать потерянные Биткоины. Шансы на восстановление доступа к Биткоинам очень сильно зависят от того, с какими проблемами столкнулся конкретный инвестор. Утрата бумажного кошелька – это практически 100%-ый провал. Но всегда есть варианты, при которых восстановление возможности использовать Биткоины реально. Далее мы рассмотрим основные из них.
Бонус про прозрачность
Так вот, на техническом сайте, на главной странице в новостях, вы найдете предупреждение:
Коммерческий сайт такие глупости не пишет =) Вам же не надо переживать по таким глупым поводам.
Инструменты
Для работы с блокчейном, необходимо настроить RPC доступ к кошельку биткоина или совместимого с биткоином форка (Litecoin, Dogecoin и т.п.). По умолчанию blockchaindata-lib будет пытаться обращаться к серверу RPC по следующим реквизитам:
Умолчания можно изменить библиотечной функцией
Таким образом, чтобы работать с библиотекой, первым делом нужно запустить тестовый кошелек биткоина:
5.1 инструмент просмотра в шестнадцатеричном формате
odЭто простой инструмент, он экспортирует содержимое файла в выбранный вами формат. Например:
- -x: отображать как шестнадцатеричный
- -Endian = big: отображать байты в обратном порядке
- -N 293: объявить количество байтов для чтения
- -An: не отображать смещение файла
od обычно встроен в различные дистрибутивы Linux.
Конфиденциальность
- Улучшенная. Кошелек затрудняет слежку за вашими балансами и платежами при помощи ротации используемых адресов. Вам следует использовать новый биткойн-адрес каждый раз, когда вы запрашиваете оплату. Кошелек при получении или отправке платежей не передает информацию о них другим узлам сети. Кошелек позволяет вам настроить и использовать Tor в качестве прокси для того, чтобы не позволить злоумышленникам или интернет-провайдерам связать ваши платежи с вашим IP-адресом.
- Базовая. Кошелек затрудняет слежку за вашими балансами и платежами при помощи ротации используемых адресов. Вам следует использовать новый биткойн-адрес каждый раз, когда вы запрашиваете оплату. Кошелек использует центральные серверы, которые способны связать вместе ваши платежи и запомнить ваш IP-адрес. Кошелек позволяет вам настроить и использовать Tor в качестве прокси для того, чтобы не позволить злоумышленникам или интернет-провайдерам связать ваши платежи с вашим IP-адресом.
- Слабая. Кошелек позволяет кому угодно следить за вашим балансом и платежами, потому что повторно использует те же адреса. Раскрывает ограниченную информацию другим участникам. Другие узлы сети могут запомнить ваш IP-адрес и впоследствии связать все платежи, которые вы получали или отправляли. Tor не поддерживается.
5. Блокировать инструмент чтения файлов.
Как упоминалось ранее, данные в файле blk.dat закодированы в двоичном формате, поэтому, если вы откроете файл непосредственно в текстовом редакторе, вы можете не увидеть много ценной информации. Есть несколько инструментов, которые могут вам помочь.
С помощью секретной фразы
Большинство популярных Биткоин-кошельков имеет функциональность по использованию восстановления доступа к сбережениям с помощью секретной фразы. Возвратить все утерянные средства можно просто путем ее ввода, если она сохранилась на любом физическом или электронном носителе (использование первого безопаснее, а использование второго более универсальное):
Указываем секретную комбинацию из слов или фраз.
Запускаем процедуру бэкапа.
Использование этого метода позволит вернуть средства, финансовую информацию и статистику операций по кошельку. Но важно быть осторожным, так как потеря seed-фразы или передача ее сторонним лицам чревата окончательной потерей средств.
Потеря аппаратного кошелька
Многие считают, что потеря аппаратного кошелька (физическое хранилище, визуальное похожее на флешку) – это полный крах без возможности восстановить свои монеты. Это ошибка и иногда шанс на положительный итог имеется, если поступить так:
купить новое устройство;
загрузить кошелек и отказаться от создания нового хранилища, выбрав функцию восстановления;
ввести сид-фразу и ждать загрузку новой конфигурации.
В итоге, восстановление отберет лишь пару сотен долларов (цена нового физического кошелька) и несколько десятков минут личного времени при его первичной настройке.
Запись данных
В биткоине запрещены транзакции в которых нет никаких трат. Поэтому перед тем, как что-то записать в блокчейн биткоина, обязательно придется пополнить свой кошелек. Биткоины для тестовой сети можно получить бесплатно, если поискать в гугле что-то вроде «bitcoin testnet faucet». Когда кошелек пополнен, можно наконец записывать данные.
Библиотека имеет несколько функций для записи данных:
В принципе, что эти функции делают — понятно из названия. Результат выполнения функций — объект
Рассмотрим пример использования:
Если этот код выполнится без ошибок, то в консоль будет выведен хэш транзакции. По этому хэшу можно будет прочитать данные.
5.2 hexdump - средство просмотра шестнадцатеричного и ascii
Подобно od, ноhexdumpМожет отображаться текст ascii данных, что очень удобно для быстрого просмотра информации, содержащейся в транзакции. Например:
- -C: отображать байты и текст ascii
- -s: объявить положение смещения отображаемых данных
- -n: объявить количество байтов для чтения
Это также может означать отображение исходных шестнадцатеричных данных:
- cut -c 11-58: оставить только от 11 до 58 столбцов в каждой строке
- tr ‘\ n’ ’’: переводить символы новой строки в пробелы
- tr -d ’’: удалить все пробелы
Hexdump обычно встроен в различные дистрибутивы Linux.
Где найти Биткоин
На текущий момент найти Биткоин можно:
на удобных и простых в использовании сервисах обмена криптовалют (более скоростные и менее требовательные, чем те же биржи и, в целом, самые универсальные для того, чтобы обзавестись первыми Биткоинами);
на биржах криптовалют, где вариативность высокая, но присутствует куча требований к регистрации и верификации;
в специальных криптоматах, при помощи которых можно купить цифровые деньги за обычный фиат;
в физических пунктах обмена криптовалют;
на сайтах, которые занимаются раздачами цифровых денег за те или иные активности;
в множестве других мест.
Криптовалюты плотно вошли в нашу жизнь и, несмотря на рост их цены, начать формировать свой портфель активов в данной сфере не сложно.
Безопасность среды
- Двухфакторная аутентификация. Кошелек можно загружать в небезопасной среде. Однако, сервис требует двухфакторной аутентификации. Значит, для кражи ваших средств необходим доступ к нескольким устройствам или аккаунтам.
- Безопасная среда. Кошелек работает на мобильном устройстве, где приложения, как правило, изолированы. Это обеспечивает хорошую защиту от вредоносных программ, хотя мобильные устройства имеют больше шансов потеряться или быть украденными. Шифрование мобильного устройства и резервное копирование кошелька может уменьшить этот риск.
- Уязвимая среда. Кошелек может быть загружен на компьютеры, которые потенциально уязвимы для вредоносных программ. Если вы увеличите безопасность вашего компьютера, используя сложный пароль, переведете большую часть своих средств в оффлайновое хранилище или активируете двухфакторную авторизацию, то ваши биткоины будет сложнее украсть.
Давайте тут тоже остановимся чуть подробнее.
Использование надежной двухфакторной аутентификации действительно может помочь решить многие проблемы с информационной безопасностью.
Ключевое слово тут “надежной”. А еще и правильно реализованной. А с этим не всегда все хорошо получается. Например, blockchain.info предложит вам старые добрые SMS в качестве второго фактора. Никому же не интересны те же рекомендации NIST в Special Publication 800-63B:
- [Out of band verification] using SMS is deprecated, and will no longer be allowed in future releases of this guidance.
На безопасности компьютеров и мобильных устройств останавливаться подробно не будем. Достаточно почитать любой из отчетов Лаборатории Касперского или других серьезных игроков на рынке безопасности, чтобы самостоятельно сделать выводы.
Следующие два пункта не связаны напрямую с безопасностью хранения ваших средств. Поэтому подробно останавливаться на них я не буду, но приведу их тут для полноты картины.
Как найти Биткоин на старом компе
Для того, чтобы найти Биткоин на старом компе, стоит просто заняться поиском в его файловой системе и, если удастся найти что-то из данного списка, получится получить доступ и к кошельку с монетами:
Старый файл wallet.dat.
Файлы, которые содержат данные о паролях кошельков.
Файлы, содержащие seed-фразу.
Другие файлы, прямо или косвенно содержащие крупицы информации о цифровом хранилище криптовалют.
В принципе, это не сложно. А ведь есть в истории случаи, когда компьютеры с кошельками образца начала 2010-х годов или продавались, или вообще выбрасывались на помойку.
Если же подобных вариантов у вас нет, советуем воспользоваться каким-то из сервисов обмена Биткоинов. С их помощью всего за пару минут можно скинуть валюту с банковской карты и получить Биткоин на свой кошелек, где он теперь будет храниться в целостности и сохранности. На тех же обменниках можно совершать регулярные обратные сделки с получением фиата за BTC, если вы плотно занимаетесь майнингом.
Поговорим немного про кошельки в криптовалютах. Под “криптовалютой”, я, в первую очередь, буду иметь ввиду Bitcoin. В других криптовалютах дело обстоит похожим образом и если вас интересуют детали, то можете покопаться самостоятельно.
Ниже будет неглубокий обзор кошельков криптовалют и их безопасности. Чем больше я погружался в эту тему при написании статьи, тем больше удивлялся тому, что в мире происходит так мало взломов и увода средств у пользователей того же Bitcoin. Но обо всем по порядку.
Защита от потери Bitcoin
Напоследок предоставим список правил, при помощи которых Ваша защита от потери Bitcoin окажется на высочайшем уровне:
храните пароли и сид-фразы в надежных местах или на бумажных носителях;
обязательно настройте файервол на своем ПК;
регулярно чистите историю браузера с целью защиты от действий хакеров;
храните Биткоин исключительно на бумажных или аппаратных кошельках, отказываясь от облачных вариантов;
для разных сервисов и кошельков используйте максимально разные пароли, между которыми нет никакой связи или закономерностей.
Полное выполнение этих советов практически на 100% защитит Вас от любых проблем, связанных с потерей блокчейн-денег.
Где применить?
В блокчейне можно например сохранить статический сайт. Этот сайт практически невозможно будет удалить или каким-то образом заблокировать. Однако чтобы читать такой сайт, нужен будет дополнительный софт: новый браузер или расширение для браузера.
Комиссия
- Полный контроль над комиссией. Кошелек позволит вам изменить комиссию после отправки средств с использование RBF или CPFP. Этот кошелек также дает рекомендации по комиссии в зависимости от текущего состояния сети для проведения транзакции вовремя и без переплат.
- Динамические комиссии. Кошелек дает рекомендации по комиссии в зависимости от текущего состояния сети, которые вы можете переопределить. Это значит, что кошелек поможет вам в выборе подходящей комиссии для проведения транзакции вовремя без переплаты, но в то же время дает полный контроль для установки комиссии, если вы захотите.
- Статические комиссии. Кошелек не дает никаких предложений по комиссии, учитывая текущее состояние сети. Это означает, что ваши транзакции могут занимать большее количество времени, если выбрана слишком низкая комиссия, либо вы можете заплатить слишком высокую комиссию.
Восстанавливаем потерянные Биткоины на онлайн-кошельке
Использование онлайн-кошелька позволит максимально просто восстановить потерянные Биткоины. В такой ситуации вернуть контроль над хранилищем криптовалюты можно через:
Процедуру восстановления через e-mail – в окне авторизации можно нажать на «Забыли пароль?» и действовать по указаниям программы.
При помощи ввода seed-фразы, которую выдали при первой регистрации и открытии онлайн-кошелька.
Через администрацию, которая в некоторых случаях идет навстречу и помогает тем, кто имеет максимум данных по утраченному хранилищу.
1. Рабочий механизм блк.дат
Каждый блок, полученный узлом Биткойн (Bitcoin Core), записывается в файл blk.dat. По соображениям производительности узел не записывает все блоки в один гигантский файл, а разбивает их на несколько файлов blk * .dat.
Узел сначала записывает полученный блок в blk00000.dat, а затем, если файл заполнен (около 128 МБ), он записывает blk00001.dat, затем blk00002.dat . и так далее.
Майнинг Биткоина
Майнинг Биткоина – это процесс предоставления вычислительных мощностей своего «железа» для поддержки эффективной работы блокчейн-сети. За проведение вычислительных операций хозяин техники получает вознаграждение в виде криптовалюты в зависимости от актуальной награды за добычу блока и количества участников общего майнинг-сообщества.
4. Вопросы, требующие внимания
Проверка транзакций
- Полная. Кошелек является полноценном узлом (full node), который проверяет действительность и проводит операции в сети. При проверке платежей доверие к третьему лицу не требуется. Полноценные узлы обеспечивают наивысший уровень безопасности и важны для защиты сети. Однако им требуется больше дискового пространства (свыше 145 ГБ), пропускной способности и больше времени для первоначальной синхронизации.
- Упрощенная или децентрализованная. Кошелек использует случайный сервер из списка серверов. Это значит, что вы должны доверять этим серверам при проверке платежей. Это не так безопасно, как использование кошелька, который является полноценным узлом.
- Централизованная. Кошелек по умолчанию полагается на централизованный сервер. А значит, Вы должны на 100% доверять этой третьей стороне в вопросах сокрытия или подделки платежей.
Альтернативные решения имеют явные проблемы с безопасностью. Список серверов, в случае децентрализованной проверки, надо хорошо защищать. А то как бы очередной вирус не оставил в этом списке только один зараженный сервер.
А уж про стопроцентное доверие третьей стороне даже говорить не хочется.
Кстати, сторонники криптовалют любят в этом случае обращать внимание на то, что банковская система устроена похожим образом. Это конечно так. Вот только банки регулируются многочисленными стандартами, а уж если возникла новая проблема/уязвимость, то ваши средства защитит страховка. Поэтому криптовалютным сервисам еще есть куда расти.
Требования к кошелькам
Вот эти требования, а также уровни соответствия этим требованиям.
Прозрачность
- Полная прозрачность. Исходные коды кошелька открыты, а процедура сборки зафиксирована. Любой разработчик в мире может провести аудит кода и убедиться, что исполняемый код не скрывает никаких секретов.
- Базовая прозрачность. Разработчики опубликовали исходные коды кошелька. Любой разработчик в мире может провести аудит кода. Однако, вы должны доверять разработчикам, когда устанавливаете или обновляете ПО вашего кошелька.
- Удаленное приложение. Кошелек загружается с удаленного сервиса. Значит, когда вы используете кошелек, вы должны доверять разработчикам в вопросах кражи или потери ваших средств в результате инцидента. Использование расширения для браузера или мобильного приложения может снизить эти риски.
Больше всего мне нравится фраза “Любой разработчик в мире может провести аудит кода”. Ага, как же. Во-первых, разработчик должен неплохо знать конкретный язык программирования, на котором написан конкретный кошелек. А это сразу отсекает большой кусок от “любой разработчик в мире”.
Во-вторых, далеко не любой разработчик является одновременно специалистом по информационной безопасности или имеет опыт написания безопасного кода. Приведу банальный пример:
Откройте статьи от разработчиков PVS-studio и вспомните о том, какие ошибки порой совершают разработчики. Причем даже те разработчики, которые хорошо разбираются в вопросах безопасности (например, Скучная статья про проверку OpenSSL).
Поэтому полноценный аудит всего кода кошелька может сделать весьма ограниченное количество разработчиков. Большая часть которых и так имеет кучу интересных задач, помимо этого аудита. Даже если кто-то из них и заинтересуется этой задачей, то выполнена она будет только для определенного коммита в git. А значит, оценить безопасность кода в конкретный момент времени весьма непросто.
Что подразумевают ребята с сайта Bitcoin под фиксированной процедурой сборки точно понять не удалось. Со сборкой есть свои проблемы. Например, как понять, что полученная вами сборка или обновление собраны именно из правильных исходных кодов. Давайте будем реалистами – собирать кошелек из исходных кодов будут единицы. Лучшее, что вы можете сделать, это проверить хэш от свежескачанного инсталлятора с хэшем, который указан на официальном сайте. И надеется, что сайт не был скомпрометирован и там лежит именно корректный хэш, а также доверять разработчикам и сборщикам кошелька, а также администраторам сайта.
Чтобы уж совсем добить вопрос про исходные коды, я решил сам заглянуть в исходники Bitcoin Core, который по всем показателям, которые уже были описаны и тем, которые описаны дальше, занимает лидирующие позиции. Примеры кода и выводы, которые я сделал, бегло просмотрев исходники, смотрите ниже.
3. файловая структура blk
Приведенные выше данные можно разделить на пять частей:
- магические байты (магические байты) и размер (размер данных) могут использоваться для поиска начальной и конечной позиций каждого блока
- заголовок блока содержит информацию заголовка блока
- tx count представляет количество транзакций в блоке, часть данных транзакции после нее - данные каждой транзакции
Структура данных следующая:
использовать size Полевой анализ приведенных выше данных, мы знаем, что для чтения всего блока требуется 293 байта: размер двоичного кода равен 1d010000 , Действуйте следующим образом:
- Преобразуйте порядок байтов, получите 0000011d
- Преобразуя в десятичную форму, получаем 285
Итак, мы добавляем 4 байта магических байтов и 4 байта размера, чтобы получить этот блок
Количество байтов - 293.
Контроль за вашими деньгами
- Полный контроль. Никто не сможет заморозить ваш счет или потерять ваши деньги. Однако вы должны помнить о том, что ответственность за безопасность и резервное копирование вашего закрытого ключа полностью лежит на вас.
- Совместный контроль. Кошелек требует, чтобы каждая транзакция была авторизована как вами, так и третьей стороной. Обычно, вы можете восстановить полный контроль над вашими средствами, используя первоначальную резервную копию или предварительно подписанную транзакцию, отправленную по электронной почте.
- Хостинг-контроль. Кошелек дает вам доступ к вашим средствам. Однако он хранит зашифрованную копию вашего закрытого ключа. А значит ваши средства могут быть похищены, если вы не будете использовать надежный пароль или если сервис будет скомпрометирован.
- Деньги под контролем третьей стороны. Это означает, что вы должны доверять этому сервису, и надеяться, что он не потеряет ваши средства в результате инцидента на своей стороне. На данный момент, большинство онлайн-кошельков не страхуют депозиты подобно банку, и многие сервисы в прошлом имели проблемы с безопасностью.
Так вот, не знаю, как вам, а мне совсем не нравится последние два уровня контроля. История про надежный пароль звучит вообще очень плохо. И дело тут даже не в том, что у пользователей большие проблемы с созданием, вводом и запоминанием по-настоящему надёжных паролей, а в том, что key-логгеры никуда не делись.
А уж если быть совсем реалистами, то вряд ли эти предупреждения кто-то читает. А если и читает, то далеко не каждый понимает, насколько здесь много проблем с безопасностью.
Через консоль
Пользователи компьютерных версий кошельков пользуются одним интересным методом восстановления через консоль:
устанавливают программу-кошелек на ПК и получают новый файл wallet.dat;
переносят файл в безопасное место;
открывают консоль «бумажника» и вносят туда следующие данные: importprivkey ;
получают набор символов, который в дальнейшем позволяет вернуть доступ к кошельку и потерянным монетам;
записывают полученное на бумаге и надежно хранят ее вдали от посторонних глаз.
Эффективность
Библиотека blockchaindata-lib сжимает данные перед помещением их в блокчейн с помощью алгоритма deflate, поэтому данный метод особенно эффективен для записи текстовых документов. В ходе тестирования мне удавалось записать в блокчейн до 70 кб сжатых данных. Хотя ограничений на размер входящих данных нет, ошибки на больших массивах данных появляются из-за внутренней реализации кода биткоина.
При записи данных в блокчейн, нужно так же учитывать финансовую составляющую. Чтение и запись данных в тестовой сети биткоина с помощью библиотеки blockchaindata-lib это просто и бесплатно. Однако если вы захотите писать данные в рабочую сеть биткоина, то вам нужно будет учесть ненулевую цену биткоина.
Чтение данных
Для того, чтобы читать записанные ранее в блокчейн данные, вам необходимо знать только хэш транзакции. Кошелек при этом может быть пустой, то есть если хотите только читать данные, то пополнять кошелек не обязательно.
Если этот код сработает без ошибок, то в консоль будет выдан текст html страницы, которую я ранее уже сохранил в блокчейне.
Сколько Биткоинов потеряно?
Многим интересен вопрос о том, сколько Биткоинов потеряно в принципе. Сразу упомянем о том, что потерянными токенами считаются те, доступ к использованию которых был полностью утрачен.
Сейчас 90% монет хранятся всего лишь на 0,8% от всех созданных кошельков. Лишь половина из этих хранилищ содержит в себе более 10 Биткоинов. Многие из хозяев этих хранилищ являются майнерами, которые на начальном этапе запуска блокчейна получали десятки монет за каждый добытый блок.
Современные аналитики сформировали единое и подавляющее мнение о том, что именно эта категория кошельков содержит в себе огромное скопление «мертвых» хранилищ с утерянными навсегда или на очень длительное время активами. Ведь в те времена к «цифровому золоту» относились небрежно, а его стоимость исчислялась центами или долларами. Потом же, после резких скачков курса, многие хозяева уже хотели вернуть свои монеты, но не могли сделать это по тем или иным причинам.
Точной цифры никто дать не может, но приблизительные объемы потерянных Биткоинов исчисляются 3-4 миллионами монет.
4.2 файл blk.dat максимум 128 МБ
Это ограничение вызвано макросами в исходном коде.MAX_BLOCKFILE_SIZEконтроль.
2. Пример содержимого файла blk.dat
Данные в файле blk.dat хранятся в двоичном формате, и новый блок, полученный узлом, будет добавлен в конец файла. Мы можем посмотреть на содержание блока генезиса. Прочтите первые 293 байта blk00000.dat:
Восстановление пароля
Потеря пароля от кошелька не означает полную потерю доступа к его содержимому навсегда. Восстановление пароля возможно посредством:
Обычного перебора и попыток входа (но стоит понимать, что каждая новая неуспешная попытка будет отбирать больше времени из-за роста времени ожидания).
Восстановления через специальную форму в экосистеме программы (возможно, если владелец может предоставить максимум важной информации, нужной для процедуры).
Обращения в техническую поддержку.
Применения seed-фразы для восстановления пароля.
Есть даже такие экзотические подходы, как использование помощи гипнотизера, который поможет вспомнить пароль самостоятельно.
Используем wallet.dat
Наличие файла wallet.dat может спасти ситуацию. Именно в нем содержатся главные данные о кошельке и его различных характеристиках. Если у инвестора имеется резервная его копия, восстановить полноценный доступ к кошельку не сложно. Нужно:
установить программу-кошелек на ПК;
найти, где файл хранится на устройстве;
поменять пустой файл wallet.dat установленного кошелька на тот, который связан с кошельком, на котором есть монеты.
Этот вариант является одним из самых простых для тех пользователей, которые регулярно делают резервные копии и потеряли доступ к кошельку из-за поломок «железа».
blk * .dat-Формат файла данных Bitcoin и метод чтения
Биткойн-узел (Bitcoin Core) ~/.bitcoin/blocks/ В каталоге blk.dat Файл содержит исходные данные блока, полученные узлом. Эти файлы данных формируют основу цепочки блоков биткойнов, а также являются наиболее эффективным способом анализа данных цепочки блоков для получения данных блоков и транзакций биткойнов. В этой статье будут представлены формат, структура данных и принципы метода чтения файлов данных блока биткойнов, а также представлены три наиболее часто используемых программных инструмента.
4.1 Блоки загружаются не по порядку
Если вы разбираете файл blk.dat, вы должны помнить, что блоки не обязательно располагаются в последовательном порядке. Например, когда вы обрабатываете файл, вы можете читать блоки в следующем порядке:
Это связано с тем, что узлы Биткойн загружают блоки параллельно из соображений производительности.
Подведем итоги
Все предъявляемые требования звучат очень разумно. Более того, этот список можно было бы еще расширить, чтобы повысить уровень безопасности.
В лучшем случае, вы можете выбрать Bitcoin Core или Bitcoin Knots, для которых будет такая картина:
Или будете использовать Electrum, для которого такая картина:
Использование зеленого создает ложное впечатление полного удовлетворения требованиям. Полное соответствие —жирный зеленый цвет. Такое оформление было явно выбрано умышленно, а значит, создатели портала решили слегка поманипулировать обычным пользователем. Не хорошо это.
На этом можно было бы уже и закончить. Думаю, все уже представили насколько безопасно хранятся закрытые ключи в кошельках криптовалют. Но мы же на Хабре.
Работа с закрытыми ключами на примере Bitcoin Core
Пойдем чуть дальше и посмотрим, как происходит хранение и работа с закрытыми ключами на примере программных клиентов. Как мы уже выяснили, вредоносное ПО может получить доступ к закрытым ключам вашего кошелька. Вопрос в том, насколько легко или тяжело это сделать на самом деле.
Первым делом посмотрим, как это делает Bitcoin Core. Этот процесс неплохо описан в wiki самого Bitcoin. Как вы видели на скрине выше, этот клиент отмечен как один из самых продвинутых и удовлетворяющих большинству требований.
Закрытые ключи вашего кошелька хранятся вместе с другой информацией, в файле wallet.dat в формате “bitkeys”. Этот файл может быть зашифрован, а может и не быть =) По умолчанию, конечно, ничего не шифруется. Вы же грамотный пользователь и сами найдете нужную кнопку. Шифруется только информация о закрытых ключах с помощью алгоритма AES-256-CBC. При этом в качестве ключа шифрования используется так называемый мастер ключ – случайное число. При это сам мастер ключ шифруется на ключе, полученном из кодовой фразы с помощью SHA-512 и функции OpenSSL — EVP_BytesToKey. Количество раундов шифрования определяется скоростью компьютера, на которой происходит первоначальное шифрование.
После того ваш кошелек используется клиентом в обычном режиме. Это состояние называется “locked”. Если в какой-то момент, вам необходимо получить доступ к закрытым ключам кошелька, то вам необходимо ввести кодовую фразу в GUI клиента или воспользоваться командой walletpassphrase в RPC. В этом случае произойдет расшифрование закрытых ключей, и кошелек перейдет в состояние “unlocked”. В первом случае он будет находится в этом состоянии ровно столько, сколько необходимо для осуществления той или иной операции. Во втором случае, время через которое кошелек вернется в состояние locked определяется вторым параметром в RPC запросе!
Код выглядит так:
Это выглядит очень мило. Обычный пользователь кошелька вряд ли запустит у себя сервер, если только не промахнется файлом. А вот злоумышленник…
С GUI и хранением той же passphrase в памяти тоже все не очень просто. Ребята реализовали специальный класс для хранения подобных данных – SecureString. Реализовали в общем-то неплохо, грабли с использованием memset успешно обошли. Но вот держат его в памяти дольше, чем следовало бы.
Например, так делает наш GUI (слегка подправил для наглядности, любопытным смотреть askpassphrasedialog.cpp:154):
В начале сделаем accept(), а только потом наш oldpass выйдет из области видимости и произойдет очистка. Понятно, что более безопасный код получится не такой красивый, как менее безопасный. Но мы же тут вроде с деньгами работаем?
На мой взгляд, это отлично подтверждает мое опасение на тему открытости исходников кошелька. Открытость исходных кодов не равно безопасность.
Постараюсь предвидеть первые комментарии и сразу ответить на них:
- Да, вы можете составить некоторый набор правил пользования криптокошельком, которые позволят значительно повысить уровень безопасности ваших средств. Удобство использования при этом конечно сильно пострадает.
- Да, есть клиенты, которые значительно безопаснее остальных. Проблема в том, что остальные также существуют и рекомендуются официальным сайтом.
Я ничего не имею против криптовалют или технологии блокчейн. Наоборот, я всеми руками ЗА (это мое личное мнение, которое не в коей мере не является официальной позицией компании, в блоге которой размещена статья). Но раз уж мы начинаем работать с новой технологией, то надо делать это технически грамотно и не забывать об информационной безопасности.
5.3 BlockETL-загрузка данных блока и транзакции в базу данных SQL
В отличие от первых двух простых инструментов,BlockETLПрограммный пакет используется для извлечения, преобразования и загрузки данных при анализе данных блокчейна Биткойн. Другими словами, BlockETL является основным инструментом в более крупной экосистеме анализа данных блокчейна. Когда вы читаете биткойн blk.dat Этот инструмент наиболее ценен, когда целью файла является дальнейший анализ данных.
Основные особенности BlockETL:
- Прямое чтение исходного файла блока, быстрая скорость извлечения
- Загрузите исходные данные блока и транзакции в базу данных SQL, чтобы облегчить последующий анализ данных цепочки блоков.
- Поддержка параллельной обработки с несколькими конвейерами, и вы можете сами контролировать количество параллельных конвейеров
- Дизайн структуры понятен, код легко расширяется
BlockETL - это приложение Java, а также комплект для разработки, поддерживающий несколько операционных систем, таких как Windows, OSX и Linux. После настройки базовой информации, такой как каталог данных и соединение с базой данных, и его запуска, вы можете увидеть прогресс загрузки блоков и данных транзакции из файла blk в базу данных SQL:
Думаю, все встречали в продаже файлы wallet.dat с утерянными паролями от криптокошельков Bitcoin-QT. Часто к ним даже прилагаются варианты или подсказки к паролю. При необходимых знаниях и достаточной вычислительной мощности можно попытать удачи в деле подбора пароля к кошелькам и получить доступ к биткоинам и альткоинам. Однако, большая часть таких файлов - фэйковые. Как же определить подлинность файла? Расскажу о способах проверки.
Сам файл - база данных Berkeley DB, в которой записаны приватные ключи, значения настроек, адресная книга и транзакции.
Для начала достаточно поискать hex-редактором слово “xingfeng” (это самые популярные фэйки из Китая). Нашли адрес этого сайта в коде - можно дальше не продолжать.
Далее кладем файл в папку wallets и синхронизируем Bitcoin-QT. Если появились балансы и записи watch-only, значит адреса только для просмотра и приватников там не будет. Такой кошелек не фэйковый, но для нас бесполезный.
добавлены адреса только для наблюдения
Важный момент - количество транзакций в списке должно совпадать с данными блокчейн-эксплореров. А все входящие и исходящие адреса можно найти, вбив в поиск "name" в hex-редакторе. Если есть расхождения по количеству транзакций или в записной книжке, то кошелек фальшивый 100%.
В старых кошельках при генерации нового адреса заводится несколько адресов и все они хранятся в файле, при этом размер файла меняется при синхронизации. После принятия BIP32 (HD wallet) для каждого платежа создается новый биткоин-адрес, а ключи хранятся в формате xpriv, размер файла не меняется независимо от количества сгенерированных адресов. Это тоже один из способов проверки. Кроме того, можно проверить типы адресов (segwit или p2pkh) в соответствии с версией кошелька.
Если нужный файл wallet.dat открыт в приложении Bitcoin-QT по умолчанию, то в консоли вводим команду "dumpprivkey 1LfV1tSt3KNyHpFJnAzrqsLFdeD2EvU1MK" , которая вернет:
код 10, значит нужно ввести passphrase (пароль)
приватный ключ, если пароль введен или не установлен, либо
ошибку "Private key for address 1LfV1tSt3KNyHpFJnAzrqsLFdeD2EvU1MK is not known (code -4)", значит файл фэйковый.
Вот такие нехитрые способы проверки подлинности файлов wallet.dat существуют. Ну и в целом, остерегайтесь сомнительных сайтов. Тут правила простые: покупайте только у продавцов с положительной историей, просите время проверки или берите через эскроу. В основном, мошенники не дают времени проверить файл, торгуются или продают несколько файлов по цене одного, но… как показывает практика, как только они получили деньги - пропадают. Так что будьте внимательны, и удачи!
Вопрос о том, как найти потерянные Биткоины – один из самых популярных в криптовалютном сообществе с времен резкого роста стоимости этого электронного актива. Что же нужно сделать, чтобы решить данную проблему максимально быстро и просто? Как искать утерянное «цифровое золото»? Как защититься от проблем в будущем? Обо всем этом и о многом другом читатель узнает по ходу прочтения статьи.
Исследования Chainalysis
Единственной более-менее авторитетной проверкой в данной отрасли является исследование Chainalysis (известная аналитическая компания). Ее специалисты подтвердили потерю 3,8 млн BTC.
Данные основываются на проверке всех находящихся в обороте монет, отталкиваясь от параметра их возраста и активности использования (насколько часто они перемещались из кошелька в кошелек и участвовали в операциях).
Chainalysis считает, что самые значительные безвозвратные потери произошли в период первых двух лет после запуска блокчейна Биткоина. Именно на отрезке между 2009 и 2010 годами фиксировались самые значительные заработки в «цифровом золоте» при помощи майнинга. А заниматься этим тогда можно было даже на обычном компьютерном оборудовании, которое было у многих.
Читайте также: