Адрес биткоин-кошелька (btc)

Введение

Кроме стандартной аутентификации по паролю (password/keyboard) в протоколе SSH существует также аутентификация по публичному ключу (RSA). Для справки RSA (https://ru.wikipedia.org/wiki/RSA) — криптографический алгоритм с открытым ключом. Существует публичный открытый ключ (public key) и частный секретный ключ (private key). Обычно они используются для шифрования или цифровой подписи: сообщение зашифровывается с помощью открытого ключа и расшифровывается с помощью секретного ключа. То есть прочитать сообщение может только владелец частного ключа. Сообщение можно подписать контрольной суммой с использованием частного ключа, а любой обладатель открытого ключа сможет убедиться, что сообщение было зашифровано с помощью секретного ключа. Аутентификация с помощью RSA-ключей состоит из нескольких этапов:

  • Создание пары RSA-ключей.
  • Установка открытого ключа на оборудование.
  • Подключение к оборудованию и аутентификация с помощью RSA-ключа.

Почему только RSA? Почему не DSA? К сожалению, ответа на этот вопрос я не нашел (и не особо искал). Но официально на оборудовании Cisco поддерживается только RSA. Документ Secure Shell Configuration Guide, Cisco IOS Release 15E:

Применение ECDSA к закрытому ключу приведет к получению 64-байтового целого числа, состоящего из двух 32-байтовых целых чисел, которые вместе представляют X и Y точки на эллиптической кривой.

Ниже приведен код, который вам потребуется на языке Python:

private_key_bytes = codecs.decode (private_key, ‘hex’)

# Получить открытый ключ ECDSA

key = ecdsa.SigningKey.from_string (private_key_bytes, curve = ecdsa.SECP256k1) .verifying_key

key_bytes = key.to_string ()

key_hex = codecs.encode (key_bytes, ‘hex’)

В представленном выше коде закрытые ключи были декодированы с помощью кодеков. Как и в Python, есть как минимум два класса, которые могут хранить закрытый и открытый ключи, «str», строковый массив и «bytes» — байтовый массив, все может немного запутаться.

Это потому, что массив строк X не равен массиву байтов X, но он равен массиву байтов с двумя элементами, O <. Метод codecs.decode преобразует строку в байтовый массив.

Across the web, PKI is extremely common. For example, when you make an online purchase, you are using Secure Sockets Layer (SSL) to encrypt the web session between yourself and the site. This type of method makes use of PKI.

Private encryption is more commonly used to protect – and access – data stores, such as disk drives, confidential information and the like.

Not long ago, encryption was used exclusively to protect the information of generals, diplomats and governments. Now, all of us are accessing data sources, transferring information over the Internet, storing and accessing confidential information, sometimes on the go, sometime remotely. Encryption allows us to conduct our online business securely.

Август 2010 года запомнился криптопрограммистам тем, что клиент Биткоина смог обработать транзакцию с переводом более 184 миллиардов токенов. Пользователь отправил монеты на 2 разных адреса одновременно. Суть в том, что такого количества коинов просто не существует, да и токены не могли оказаться в руках одного человека. Специалисты нашли баг в программном коде уже через час. Оказалось, что система, которая проверяла транзакции до записи их в блок, просто не учитывала таких больших чисел.

Боитесь, что bitadress может запомнить ваш приватный ключ? Вполне может быть и такое. Тогда можно, опять же, пойти на оффлайн компьютер, поставить там Electrum и сгенерировать ключи.

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

Толстым клиентом называется кошелек, у которого есть полная нода. Такой кошелек может сам проверить транзакцию, определить что у Маши, действительно, есть 1 BTC на счету, отследив полный путь Биткоинов до машиного адреса. Основной толстый клиент для Биткоин — Bitcoin Core, хотя есть и другие: Bitcoin Knots, BTCD, Libbitcoin.

Тонкие клиенты (их еще называет легкими) не хранят блокчейн. Они обращаются на свои серверы. Так, например, у кошелька Electrum, который существует с 2011 года, специальные сервера, которые индексируют весь блокчейн по адресам. Клиент связывается с 10 разными, случайно выбранными серверами, соединение защищено c помощью SSL.

Jaxx, о котором мы говорили, тоже тонкий клиент.

Считается, что толстые клиенты с полной копией блокчейна надежнее!

В завершение стоит выделить ряд аспектов о секретном коде бумажника Bitcoin:

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

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

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

Смотрите видео о том, как получить приватные ключи с Blockchain:

  • Я настоятельно советую выводить значительные суммы в криптовалюте на кошельки, к которым у вас есть ключи.
  • Ключи стоит хранить очень аккуратно, в безопасном месте (в зашифрованном виде, а лучше – на виртуальной машине или бумажном носителе).

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

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

Пример экспорта ключа (искомый код выделен жёлтым):

  • Сразу после установки кошелька Exodus, программа генерирует уникальный ключ (он математически связан с публичным адресом).
  • Приватный ключ – это единственное подтверждение, что присвоенный адрес принадлежит вам.
  • Других доказательств в блокчейне (с его религиозной анонимностью) не предусмотрено.

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

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

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

Пользователь создал бот для постоянного сканирования данных адресов и перехвата всех отправляемых на них биткоинов, и волей случая он наткнулся на транзакцию в 0,5 биткоина на адрес с раскрываемым закрытым ключом. К сожалению, бот сработал недостаточно хорошо, и  ему не удалось во время создать транзакцию. Биткоины были извлечены из кошелька и отправлены дальше. Однако пользователь что-то заподозрил и продолжил эксперимент с ботом, после чего он заметил, что аналогичный «адрес сбора» использовался во множестве способов раскрытия ключей. По меньшей мере, один адрес из всех методов перечислял биткоины, один за другим, в адрес кого-то, контролирующего всю систему. Ежедневно пользователь наблюдал более 6 транзакций, прошедших через его базу данных закрытых ключей.

Например, пользователь Reddit под ником /u/fitwear рассказал о взломе кошелька на blockchain.info и краже почти 9 BTC

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

Анонимному пользователю Pastebin удалось найти 9 биткоинов на адресе, копия закрытого ключа к которому содержалась в его базе данных.  Пользователю /u/fitwear повезло, и он получил свои биткоины назад, однако дальнейшее расследование адреса открыло очень тревожные подробности.

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

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

 Кроме того, эта функция не привлекла бы внимание во время проверки кода, потому что она просто хэшировала публичный адрес. Аналогично тому, когда мы прячем что-то на самом видном месте

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

SecureCRT

В окне настроек SSH есть список Authentication. В нём необходимо увеличить приоритет PublicKey до самого высокого — сделать верхним в списке.

Затем перейдите в параметры PublicKey и выберите файл приватного ключа. Самый верхний переключатель позволяет использовать глобальные настройки секретного ключа или сеансовые настройки — другой секретный ключ (ключ не по умолчанию) — только для этого подключения.

Настраиваем глобальный публичный ключ: в меню Options → Global options → Категория SSH2.

PuTTY

В настройках SSH (Connection → SSH → Auth) в поле “Private key file for authentication” укажите файл Putty Private Key (*.ppk):

MAC OS X

Настройка стандартного клиента для использования публичных ключей:

  • Подключение с нестандартным ключом (non-default key), указанным вручную: artemiy-2:~ ArtemiySP$ ssh -i ~/Documents/python/r4 The authenticity of host ‘10.31.73.29 (10.31.73.29)’ can’t be established. RSA key fingerprint is SHA256:fxOLFKU6YGyIqisrIh2P0O52Rr6Wx/wsSAcHsTz8fo0. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘10.31.73.29’ (RSA) to the list of known hosts. CSR-4#
  • Подключение с нестандартным ключом (non-default key), указанным вручную: artemiy-2:~ ArtemiySP$ ssh -i ~/Documents/python/r5 The authenticity of host ‘10.31.73.30 (10.31.73.30)’ can’t be established. RSA key fingerprint is SHA256:4l67C4Il4pTaqYT4vrtWr0aY7rPmNWKsjRv2zlYtQIU. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘10.31.73.30’ (RSA) to the list of known hosts. MGTU#exit Connection to 10.31.73.30 closed.Ошибка примера

    Я не смог сделать снимок с запросом пароля — пароль записался в открытую сессию пользователя. Для запроса пароля в MAC OS X — необходимо разлогиниться и залогиниться снова.

  • Подключение с ключом по умолчанию (default key – система сама найдет и использует Default public key): artemiy-2:~ ArtemiySP$ ssh The authenticity of host ‘10.31.73.31 (10.31.73.31)’ can’t be established. RSA key fingerprint is SHA256:2/ysACJQw48Q8S45ody4wna+6nJspcsEU558HiUN43Q. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added ‘10.31.73.31’ (RSA) to the list of known hosts. PR#exit Connection to 10.31.73.31 closed. artemiy-2:~ ArtemiySP$

Как упростить работу с SSH на MAC OS X:

  • Создаём SSH Aliases.
  • В SSH Aliases сразу задаём пользователей.
  • Сразу прописываем местонахождение ключей.

Местонахождение Aliases и преднастроенная конфигурация SSH указаны в файле ~/.ssh/config (/Users//.ssh/config). Заполняется таким образом:

host r4 Hostname 10.31.73.29 Port 22 User r4 IdentityFile ~/Documents/python/r4 host r5 Hostname 10.31.73.30 Port 22 User r5 IdentityFile ~/Documents/python/r5 host r6 Hostname 10.31.73.31 Port 22 User r6 Примечание: у меня некорректно настроено подключение по умолчанию (как правильно, я не знаю), потому что подключение к хосту R6 (10.31.73.31) выполняется очень долго. Рекомендуется указать сразу указать путь к ключу по умолчанию.

Пример подключения по ssh используя публичные ключи и файл config:

Боитесь, что bitadress может запомнить ваш приватный ключ? Вполне может быть и такое. Тогда можно, опять же, пойти на оффлайн компьютер, поставить там Electrum и сгенерировать ключи.

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

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

Настоятельно не рекомендуем хранить какие-либо средства на бирже!

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

Настоятельно не рекомендуем хранить какие-либо средства на бирже!

Бумажные кошельки

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

Шаг 2. Когда показатель достигнет 100%, на экране появится QR-код и хеш приватного ключа:

Шаг 3. Распечатайте новосозданные ключи или можно также переписать ключ на бумагу.

Декстопные кошельки

Процесс генерации ключа в декстопных кошельках очень простой. Самые популярные — кошелек Exodus, Electrum, Jaxx. Ключ будет создан в полностью автоматическом режиме.  

Рассмотрим этот процесс на примере кошелька Exodus:

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

Для надежности файл с ключом скопируйте на носитель, к которому нет интернет-доступа, например, на флешку. Также можно переписать ключ на лист бумаги.  

Онлайн-кошельки

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

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

Например, таким сервисом является Bitcoin Wallet Blockchain.

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

Чтобы получить приватный ключ, нужно сделать следующее:

Система сгенерирует приватный ключ, который вы найдете в нижней части окна в разделе «Derivation Path».

Brain Wallet («мозговой кошелек»)

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

Этот метод называется Brain Wallet, т.е. «мозговой кошелек», так как ключ генерируется мозговыми усилиями владельца будущего ключа, и заключается в том, что пользователь должен придумать любую фразу или число и зашифровать его через алгоритм SHA-256.   

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

Конечно, можно в качестве ключа использовать и число 1. И вы будете смеяться, но есть пользователи, которые так и сделали.

Хешем числа 1 в системе SHA-256 является следующее значение:

1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm    

Аналогичную ситуацию можно наблюдать и при использовании известной фразы «Быть или не быть» в качестве приватного ключа:

1J3m4nneGFppRjx6qv92qyz7EsMVdLfr8R

Смотрите сами:

Эти примеры показывают, что выбор надежного приватного ключа — этап, к которому нужно отнестись максимально серьезно.   

Некоторые сервисы предоставляют опцию создания «мозгового кошелька», например, тот же bitaddress.org.  

Чтобы воспользоваться этой функцией, нужно перейти по вкладке «Умный кошелек»:

Далее нужно ввести фразу (обратите внимание, что ее должно быть невозможно или как минимум трудно угадать), подтвердить еще раз и нажать на кнопку «Просмотр». Сайт сгенерирует приватный ключ, который можно распечатать или переписать на бумагу:

Плюс этого способа в том, что даже потеряв приватный адрес, его можно восстановить, если преобразовать ее через стандартный алгоритм SHA-256 — такие конвертеры легко найти в интернете, например, этот.   

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

1. Экспортируйте все приватные ключи из вашего старого кошелька.

Здесь описан процесс. Последовательно достаньте private key для биткоина и альткоинов, затем – через вкладку Ethereum Tokens экспортируйте ключи к токенам.

Обратите внимание: у токенов ERC20 будет один общий private key. С его помощью можно открыть кошелек MyEtherWallet, и уже дальше решить: оставить токены в новом Exodus или перевести на другой кошелек.. Так как все токены сидят на одном private key, то и перевод самого Ethereum в вашем кошельке следует выполнять в последнюю очередь (он понадобится для оплаты Gas Limit)

Если вы сразу выведете весь эфир, а токены оставите, то придется заново пополнять кошелек

Так как все токены сидят на одном private key, то и перевод самого Ethereum в вашем кошельке следует выполнять в последнюю очередь (он понадобится для оплаты Gas Limit). Если вы сразу выведете весь эфир, а токены оставите, то придется заново пополнять кошелек.

  • Exodus экспортирует приватные ключи на рабочий стол.
  • Сохраните ключи в архив с паролем (на всякий случай, дайте архиву название, не связанное с Exodus и Key).
  • Перенесите архив на флешку, которую предварительно отформатировали.

Хранить приватные ключи и seed фразу на флешках не следует, это небезопасно. Помните об этом. Сразу после переустановки кошелька – удаляйте все копии (кроме той, которую спрячете в надёжном месте).

2. Удалите кошелек Exodus.

Как и любую другую программу с вашего компьютера. Затем удалите папку с кошельком (если вы работаете в Linux) и файлы Exodus из пользовательских директорий.

  • В Widows: C: > Users > YOUR-USERNAME > AppData > Roaming > Exodus.
  • В Mac: Hard Drive > Users > YOUR-USERNAME > Library > Application Support > Exodus.

Мне помогает поиск по ключевой фразе exodus – нашли папки с таким названием, удаляем.

Перезагрузите компьютер.

3. Скачайте новую версию Exodus.

Затем загрузите последнюю доступную версию кошелька под вашу операционную систему. Проверьте hash сумму файла-установщика.

Установите криптовалютный кошелек. Но не восстанавливайте его!

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

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

Так вы получите новые private keys, а затем – и seed фразу для них.

Сначала включите меню разработчика: Ctrl+Shift+D в любом месте в окне кошелька. Далее выберите Developer > Assets > Bitcoin > Move Funds (WIF).

И в открывшееся окно вставьте приватный ключ, соответствующей криптовалюты.

Текст private key содержится в файле, который вы экспортировали ранее из старой версии кошелька. Откройте его любым текстовым редактором, найдите графу private key.

Вот как выглядит приватный ключ (выделен жёлтым) к кошельку с Bitcoin Cash после экспорта, открыт в Notepad++:

Cкопируйте его значение и вставьте в форму:

Это для импорта баланса биткоина с вашего старого кошелька.

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

О каких токенах идёт речь?

OmiseGo, EOS, QTUM, SALT, Civic и другие. Для их перевода на другой кошелек потребуется Gas, который и списывается с вашего баланса ETH.

Поэтому сначала импортируем все токены, и в конце – вставляем приватный ключ для Ethereum. Сделаете наоборот – и придётся управлять токенам с кошелька MyEtherWallet (пополнить его эфиром и дальше делать переводы).

Сколько нужно ETH, чтобы перевести все ваши токены? Здесь описана последовательность расчётов и ссылка на удобный калькулятор Gas Limit и Gwei.

4. Генерируем новую seed фразу.

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

Заходим в меню Backup и следуем инструкциям в помощнике (придумываем пароль, обязательно сложный, записываем ручкой все 12 слов для seed, соблюдая их последовательность).

Тщательно сохраняем оффлайн пароль и seed фразу. Теперь ваш новый криптовалютный кошелек готов к работе.

Теперь можно спокойно участвовать в хардфорках и Airdrop со старого кошелька. На нём больше нет биткоинов, альткоинов и токенов, так что потеря seed фразы не будет опасной для вашего портфеля.

А ваш новый кошелек Exodus может и дальше хранить криптовалюты так же надёжно и безопасно, как и до форка.

Вывод: перед тем, как использовать seed фразу для переноса кошелька, обязательно выведите все криптовалюты на новый безопасный вариант.