July 29

Биткоин-кошельки: приватные ключи, методы взлома, кражи и безопасность.

Введение.

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

Британец по имени Джеймс Хауэллс в 2013 году ненароком выбросил жёсткий диск, содержащий 7500 биткойнов, примерная стоимость которых на сегодняшний день превышает 480 миллионов долларов. Жёсткий диск до сих пор зарыт. – Источник.
Брэд Ясар, предприниматель из Лос-Анджелеса, провёл множество часов, пытаясь восстановить доступ к своим кошелькам, содержащим тысячи биткоинов, добытых им в ранние годы существования этой технологии, стоимостью теперь в сотни миллионов долларов. К сожалению, он давно потерял пароли и хранит жёсткие диски в вакуумных пакетах, держа их вдали от глаз. – Источник.
В 2011 году Габриэль Абед, основатель и председатель Abed Group и сооснователь Bitt, понёс серьёзные убытки, когда его коллега случайно отформатировал его ноутбук. На этом ноутбуке хранились приватные ключи от биткоин-кошелька, в результате чего было потеряно примерно 800 биткоинов. – Источник.

На просторах интернета множество таких историй. Много и тех кто не рассказывает о потере своих биткоин кошельков. В этой статье рассмотрим более конкретно следующие моменты:

  • мнемоническая фраза – что это и возможные способы взлома;
  • приватный ключ и публичный ключ – их принцип работы;
  • виды биткоин-адресов;
  • "Brute Force";
  • статистика биткоин кошельков и их краж;
  • повышение безопасности кошелька;

Мнемоническая фраза – что это и возможные методы взлома.

Мнемоническая фраза используемая для создания или восстановления биткоин-кошелька. Такая фраза существует из разного количества слов и делится на несколько типов: 12, 15, 18, 21 и 24 слова, где первый и последней тип является наиболее распространенными вариантами, все остальные встречаются реже. При создании кошелька важно сохранить фразу, например переписать все слова на лист бумаги.

При потери мнемонической фразы вы не сможете получить доступ к кошельку, соответственно и к средствам хранящимся на нем тоже. Никто кроме вас не сможет восстановить кошелек, ведь технической поддержки нет.

Программное обеспечение любому биткоин кошелька (Xverse, UniSat и др.) использует набор из 2048 слов – это англоязычный список слов для стандарта BIP39. Именно эти слова используются для генерации мнемонической фразы. Таким образом, если фраза состоит из 12 слов, тогда число возможных комбинаций составляет 2048 в 12-й степени, или 2 в 132-й степени, то есть фраза будет иметь 132 бита безопасности.

Соответственно, приблизительно такое количество разных комбинаций слов получается для каждого типа мнемонических фраз:

12: 5444517870735015415413993718908291383296 
15: 46768052394588893382517914646921056628989841375232 
18: 401734511064747568885490523085290650630550748445698208825344 
21: 3450873173395281893717377931138512726225554486085193277581262111899648 
24: 29642774844752946028434172162224104410437116074403984394101141506025761187823616}{12: 5444517870735015415413993718908291383296
Важно: количество возможных мнемонических фраз указаных выше – не точные. Мнемоническая фраза используется для детерминированного создания приватного ключа, и количество уникальных приватных ключей остается ограниченным 2 в 256 степени. Поэтому, даже если количество возможных комбинаций слов в мнемонической фразе теоретически больше, на практике они все равно сводятся к тем же 2 в 256 степени уникальных приватных ключей.

Перебор всевозможных комбинаций не возможен – по крайней мере на сегодняшний день. Возможно в будущем, с технологическим прогрессом этот вопрос будет расценивать совсем по другому. Сейчас, маловероятно восстановить тот самый затерянный кошелек на котором хранится N количество биткоинов. Даже если пытаться сузить круг поиска, например, взять минимально количество слов требуемое для мнемонической фразы – 12, с учетом повторений получится:

12^12 = 8,916,100,448,256

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

Приватный ключ, публичный ключ, адреса и их принцип работы.

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

Приватный ключ – это секретная информация, которая позволяет вам отправлять и получать криптовалюту на свой адрес. С помощью приватного ключа можно получить доступ к кошельку и соответсвенно к средствам хранящимся на нем, поэтому важно помнить, что приватный ключ должен быть известен только вам и никому другому в целях безопасности средств хранящихся на кошельке. Приватный ключ используется для создания публичного ключа с помощью алгоритма эллиптической кривой. Приватный ключ работает на основе алгоритма шифрования SHA-256, генерирующего 256-битное число. Для большего удобства были созданы различные комбинации, которые сокращают это число до формата 51, 52, 64 и 44 символов:

  • Формат WIF (Wallet Import Format), содержит 51 символ и начинается с 5, выглядит вот так:
5J3mBbAH58CERt6DvM3Sr2zFQEBxgD3kmT5FENe12gdzWqMf36b
  • Формат WIF (сжатый), содержит 52 символа и начинается с K или L:
L3zFj4Y7iKowxrfV2n1QYxYto99YeDQV6fCZ5SmtncUReZk8PdE5
  • Формат HEX – 64 символа, имеет следующий вид:
e9873d79c6d87dc0fb6a5778633389d444a6e7a4fe3bffe9b04f079c382c20f
  • Формат Base64 имеет 44 символа и выглядит следующим образом:
S7/3TKJaKgBAncsk7AQY6aQfmztWIWoYPg6XMFRYncY=

В большинстве случаев криптовалютные кошельки, работающих с биткоином, используют WIF-формат (сжатый).

Разные форматы приватных ключей представляют одно и то же значение, но в различных форматах представления. Количество возможных комбинаций приватных ключей определяется размером ключа в битах. Приватный ключ в биткоине — это случайное число от 1 до 2 в 256 степени. Таким образом, количество возможных комбинаций приватных ключей можно вычислить как 2 в 256 степени, для наглядности это число выглядит так:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936

Принцип работы ключей достаточно прост: пользователь А хочет отправить 1 BTC пользователю Б -> пользователь Б предоставляет публичный ключ пользователю А -> при помощи публичного ключа пользователь А создает транзакцию и шифрует ее при помощи приватного ключа -> пользователь Б видит, что ему на кошелек поступил 1 ВТС. Чтобы получить доступ к этим деньгам, он использует приватный ключ своего кошелька, то есть расшифровывает транзакцию, и теперь может пользоваться монетами.

Биткоин-адреса.

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

Legacy (P2PKH):

  • Начинается с: 1;
  • Длина: 26-35 символов;
  • Пример: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa;
  • Преимущества: широкая совместимость;
  • Недостатки: высокие комиссии;
  • Применение: используются в основном для совместимости со старыми системами, но они менее эффективны в плане комиссий;

Pay-to-Script-Hash (P2SH):

  • Начинается с: 3;
  • Длина: 26-35 символов;
  • Пример: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy;
  • Преимущества: возможность использования скриптов, более низкие комиссии по сравнению с legacy;
  • Недостатки: менее совместим по сравнению с legacy;
  • Применение: хороши для использования скриптов и мультиподписей;

Native Segwit (Bech32, P2WPKH):

  • Начинается с: bc1q;
  • Длина: 42 символа;
  • Пример: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf9cxv;
  • Преимущества: значительно более низкие комиссии, повышенная защита от ошибок;
  • Недостатки: не все кошельки и сервисы поддерживают Bech32;
  • Применение: адреса рекомендуется использовать для большинства транзакций, так как они предлагают более низкие комиссии и более надежны;

Taproot (Bech32m):

  • Начинается с: bc1p;
  • Длина: 62 символа;
  • Пример: bc1p5cyxnuxmeuwuvkwfem96lwp70s8l6zaf24gmw3q8nh0z5wltddjhtxdp70;
  • Преимущества: повышенная конфиденциальность, уменьшенные комиссии, возможность использования сложных смарт-контрактов;
  • Недостатки: поддерживается не всеми кошельками и сервисами, новизна может привести к временной несовместимости;
  • Применение: адреса лучше подходят для тех, кто хочет воспользоваться новыми функциями конфиденциальности и смарт-контрактов, хотя они еще не полностью поддерживаются всеми сервисами;

"Brute Force".

"Brute Force", или "Грубая сила" – это метод взлома при котором злоумышленники перебирают всевозможные комбинации приватного ключа пока не будет найден правильный, то есть тот приватный ключ на котором будет находиться N-количество средств.

Такой метод взлома происходит с помощью специальных автоматизированных программ, которые генерирует приватные ключи, а затем автоматически проверяет каждый адрес на наличие баланса. Такие программы могут генерировать и проверять до нескольких кошельков в секунду, но могут и в разы быстрее. Все зависит от вычислительных мощностей. Проще говоря, чем больше мощного оборудования, тем быстрее может работать такая программа. Таким оборудованием может выступать CPU, ASIC или FPGA. Так, например известный биткоин-инвестор Алистер Милн потерял 1 BTC в ходе хакерской атаки:

Известный биткоин-инвестор Алистер Милн потерял 1 BTC в ходе хакерской атаки, которую сам же и инициировал. Целью эксперимента было выяснить, какой объем данных о кошельке окажется достаточным для взлома. – Источник.

Даже с помощью такой программы практически невозможно подобрать приватный ключ другого человека и украсть средства. Основная проблема в количестве возможных комбинаций – их число слишком велико даже для перебора автоматизированной программы.

Статистика биткоин кошельков и их краж.

Данные Coinmarketcap на 1 июля 2024 года – "Адреса удерживающие определенную сумму в биткоине":

  • $0 - $1k: около 85%, что составляет примерно 44 миллиона кошельков;
  • $1k - $100k: около 14%, что составляет примерно 9.5 миллиона кошельков;
  • $100k: около 1%, что равно примерно 600 тыс. кошельков;

По сравнению с двумя годами ранее, количество кошельков, которые удерживают более $100k составляло примерно 250 тыс. кошельков, а кошельки с $1k - $100k равнялось 4.6 миллионов. Несмотря на высокую волатильность цены биткоина, множество других индикаторов и факторов – держателей первой криптовалюты стало в два раза больше. В то же время держателей $0 - $1k приблизительно было 38 миллионов – в процентном соотношении данный показатель изменился в разы меньше, чем два других.

Данные: Coinmarketcap на 1.07.2024.

Кража биткоинов не является каким-то редким явлением и время от времени происходят мелкие и крупные кражи. Одной из первых краж, которую осветили в СМИ, стала кража биткоинов с биржи Mt.Gox в 2011 году. Хакеру удалось завладеть чуть более 2600 биткоинов – на тот момент сумма украденных средств оценивалась около 8.5 миллионов долларов.

Mt.Gox были первыми но далеко не последними кто попал под взлом и кражу средств, в их ряды входят: Bitomat, Bitcoin7, MyBitcoin, Linode, Bitcoinica, BTC-e, Bitfloor, Instawallet, Vircurex, Silk Road и другие. Более подробно о всех кражах начиная с 2011 по 2024 год можете прочитать здесь.

Безопасность кошелька.

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

Хакеры могут украсть криптовалюту, получив доступ к содержимому жесткого диска на ПК, а также взломав аккаунт на облачном сервисе или онлайн-платформе. Чтобы такого не случилось, нужно использовать самые надежные варианты защиты.

К ним относятся 3 способа хранения приватных ключей:

  • Аппаратные кошельки. Эти устройства считаются более безопасными, чем десктопные кошельки, мобильные приложения и онлайн-сервисы. Они имеют вид флешки и содержат механизмы защиты данных. Для осуществления перевода аппаратный кошелек подключается к ПК. С него отправляется транзакция и там же подписывается. После зашифрованное сообщение передается в сеть. Современные аппаратные кошельки устроены так, что даже при взломе ПК мошенники не смогут получить доступ к закрытому ключу подключенного к компьютеру кошелька.
  • Компьютер или смартфон. Для хранения значительной суммы в криптовалюте есть смысл использовать отдельное устройство. В целях безопасности оно должно быть постоянно отключено от сети, и его можно включать только для проведения транзакций.
  • Бумажные носители. Это может быть блокнот или ламинированный листок с записанным закрытым ключом. Можно сделать несколько копий, чтобы при потере одной из них сохранить доступ к цифровым деньгам.