Приватный ключ биткоина (private key) – что это такое, как выглядит, как получить и безопасно сохранить

BTCchecker (Чекер биткоин адресов по базе)  Закрытые ключи генерируются рандомным образом для создания 32-байтовой шестнадцатеричной строки с использованием криптографически безопасной функции. Закрытые ключи преобразуются в соответствующие им открытые ключи. Тем самым, мы получаем биткоин адрес и его приватный ключ. Сгенерированный адрес ищется в базе данных, и если обнаруживается, что адрес имеет баланс, то закрытый ключ, открытый ключ и адрес кошелька сохраняются в текстовом файле BTCchecker.txt. Сколько адресов в базе данных?  В база данных в настоящее время хранится 33 миллиона адресов с балансом. Это общее количество адресов P2PKH Биткойн с балансом, которые существуют в цепочке блоков. СИСТЕМНЫЕ ТРЕБОВАНИЯ!!  Например, для загрузки 33 файлов, будет достаточно 16ГБ RAM, а для 18 файлов (4 ГБ RAM) . Один файл — 1 миллион адресов. Программа использует многопроцессорную обработку для выполнения параллельных вычислений. Каждый случайный адрес проверяется за 0.0032457721 сек (на всех доступных CPU). Нашли адрес с балансом? Что делать дальше?  Скачайте кошелек Electrum и там импортируйте приватный ключ, который сохранился в BTCchecker.txt. Вы сможете вывести с Electrum все средства, на свой bitcoin кошелек (либо вернуть владельцу) Если при загрузке базы у вас появится ошибка, значит нужно ее сократить, попробуйте убрать лишние файлы. А также, если в процессе работы начнет зависать, просто понаблюдайте, сколько у вас свободно оперативной памяти. Вся проблема в оперативке. Скачать тут:Ссылка VT: Ссылка Для донатов с профита: 1LYcrZE5nKfj3aCy8i5jt58PDA8neSF9Sn Вдруг кому-то повезет, и выпадет кошелек с сотней монет!! Рекомендую использовать на нескольких дедиках. Так, вы сможете проверять десятки миллионов адресов в сутки.

Администрация форума не имеет отношения к пользователям форума и к публикуемой ими информации. Пользовательское соглашение

Информация о материале
Опубликовано: 25.03.2018, 14:47

imageУвеличение количества форков Bitcoin привело к тому, что многие люди пытаются получить свои “бесплатные монеты” по разному, самым простым способом из них, как правило, является хранение монет в локальном кошельке, экспорт приватных ключей из локального кошелька Bitcoin и их импорт в кошелек форка. В качестве меры безопасности всегда рекомендуется  сначала перенести все свои биткоины на новый адрес, а затем уже экспортировать старый кошелек, на котором находились монеты на момент форка от сети Bitcoin Blockchain. Таким образом вы обезопасите себя от хищения ваших BTC. Учитывая недавнее добавление официальной поддержки SegWit, возможно сейчас самое время обновить кошелек Bitcoin Core, создать новый адрес с поддержкой SegWit и перенести туда все ваши монеты, а затем уже начинать получать бесплатные монеты новых Bitcoin-форков с помощью приватного ключа от старого адреса.

 Как экспортировать приватные ключи:

  • Запустить ваш Bitcoin Core клиент или другой QT-wallet.
  • Кликнуть в пункт меню “Помощь (Help)” в верхней части окна.
  • Выбрать пункт “Debug window”.
  • Перейти на вкладку “Console” Для ввода команд.
  • Разблокировать свой кошелек (если он зашифрован) с помощью команды: walletpassphrase “пароль вашего кошелька” 600.
  • Экспортировать приватные ключи с помощью команды: dumpprivkey “ваш биткоин адрес”.
  • Скопировать и сохранить ваш приватный ключ.
  • Заблокировать ваш кошелек с помощью команды: walletlock.

Как импортировать приватные ключи:

  • Запустить ваш Bitcoin Core клиент или другой QT-wallet.
  • Кликнуть в пункт меню “Помощь (Help)” в верхней части окна.
  • Выбрать пункт “Debug window”.
  • Перейти на вкладку “Console” Для ввода команд.
  • Разблокировать свой кошелек (если он зашифрован) с помощью команды: walletpassphrase “пароль вашего кошелька” 600.
  • Экспортировать приватные ключи с помощью команды: importkey “приватный ключ”.
  • Проверить что новый Bitcoin адрес был добавлен в кошелек.
  • Заблокировать ваш кошелек с помощью команды: walletlock.

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

image

Имейте ввиду, что некоторые СКАМ-форки создаются специально, чтобы попытаться похитить BTC у невнимательных или ленивых держателей, которые могут захотеть получить бесплатные монеты, ведь многие любят халяву, но при этом которые достаточно ленивы, чтобы перенести свои средства на другой аккаунт. Даже с популярными форками стоит держать “ухо в остро” и никогда не передавать приватные ключи кошельков, на котором в данный момент хранятся значительные средства. Ведь кто знает приватный ключ, может управлять средствами на кошельке.

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

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

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

Наша задача – применить серию преобразований к закрытому ключу, чтобы получить открытый ключ, а затем и адрес кошелька. Большинство этих преобразований называются хэш-функциями. Эти хэш-функции являются односторонними преобразованиями, которые нельзя отменить. Мы не будем вдаваться в механизм самих функций — по этому вопросу есть много замечательных статей. Вместо этого мы рассмотрим, как использование этих функций в правильном порядке может помочь вам сгенерировать адрес биткоин-кошелька, который вы впоследствии сможете использовать.

Криптография с использованием эллиптической кривой

Первое, что нам нужно сделать, это применить алгоритм цифровой подписи ECDSA или Elliptic Curve к нашему закрытому ключу. Эллиптической кривой является кривая, определенная уравнением y² = x³ + ax + b с выбранной a и b. Существует целое семейство таких кривых, которые широко известны и широко используются. Для биткоина используется кривая secp256k1/. Если вы хотите узнать больше о криптографии на основе эллиптических кривых, почитайте эту статью.

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

Примечание: как видно из кода, прежде чем я использовал метод на базе модуля ECDSA, я расшифровал закрытый ключ, используя кодеки. Это больше относится к Python и меньше к самому алгоритму, но я объясню, что мы здесь делаем во избежание возможной путаницы.

В Python есть как минимум два класса, которые могут хранить закрытый и открытый ключи: “str” и “bytes”. Первый – это строка, а второй – массив байтов. Криптографические методы в Python работают с классом “bytes”, принимая его в качестве входных данных и возвращая как результат.

Теперь, есть маленькая загвоздка: строка, скажем, 4f3c не равна массиву байтов 4f3c, она равна массиву байтов с двумя элементами, O<. И вот тут как раз в дело вступает codecs.decode: этот метод преобразует строку в массив байтов. Все то же самое будет и для всех криптографических манипуляций, которые мы будем приводить в этой статье.</p>

Открытый ключ

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

Сжатый открытый ключ

Но мы можем сделать лучше. Как вы помните, открытый ключ является некоторой точкой (X, Y) на кривой. Мы знаем кривую, и для каждого X есть только два Ys, которые определяют точку, которая лежит на этой кривой. Так зачем хранить Y? Вместо этого, давайте сохраним X и знак Y. Позже мы можем вернуть Y, если в этом будет необходимость.

Особенности заключаются в следующем: мы берем X из открытого ключа ECDSA. Теперь, мы добавим 0x02, если последний байт Y четный, и байт 0x03, если последний байт нечетный.

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

Этот ключ содержит ту же информацию, но он почти в два раза короче, чем несжатый ключ. Клево!

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

Шифрование открытого ключа

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

Здесь нам нужно применить SHA-256 к открытому ключу, а затем применить RIPEMD-160 к результату. Порядок очень важен.

SHA-256 и RIPEMD-160 являются двумя хэш-функциями, и опять же, мы не будем вдаваться в детали того, как они работают.

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

Получение адреса

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

Вот и все! Это адрес кошелька для закрытого ключа, приведенного в начале статьи.

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

Мы получаем , сжатый адрес биткоин-кошелька.

Эллиптический открытый ключ = ECDSA (закрытый ключ) Открытый ключ = 0х04 + эллиптический открытый ключ Зашифрованный открытый ключ = RIPEMD-160 (SHA-256 (открытый ключ)) Зашифрованный открытый ключ основной сети = 0х00 + Зашифрованный открытый ключ С = SHA-256 (SHA-256 (Зашифрованный открытый ключ основной сети)) Контрольная сумма = первые 4 байта С Шестнадцатеричный адрес = Зашифрованный открытый ключ основной сети + Контрольная сумма Адрес = Base58 (Шестнадцатеричный адрес)

Если вы хотите «поиграть» с кодом, я опубликовал его на GitHub.

Я делаю обзор о криптовалютах на Medium. Первая часть – подробное описание блокчейна.

Категория:  Tutorial Монета:  Bitcoin Источник:  medium.com

Что еще почитать:

Deep Dive – Move: новый язык программирования блокчейна Libra от компании Facebook Cardano жив и будет жить Как заработать на криптовалюте Как разработать алгоритм для анализа криптовалют

“Как хранить свои Биткоины?” — подобные вопросы интересуют тех, кто только начинают знакомиться с криптовалютами. В этой статье мы познакомимся со всеми возможными кошельками для хранения Bitcoin, выберем наилучший, дадим ценные советы. Весь материал представлен на доступном языке с ориентиром на новичков.

Оглавление

1. Что такое Биткоин кошелек 2. Что из себя представляет адрес Биткоин кошелька 3. Какие бывают (классификация) 4. Обзор онлайн кошельков Биткоин  – КоинПайментс (Coinpayments)  – КоинБэйс (Coinbase) 5. Программы для Биткоин кошельков 6. Аппаратный Биткоин кошелёк 7. Какой лучше выбрать Биткоин Кошелек для хранения 8. Как пополнить Биткоин Кошелек

Для тех, кто только начинает знакомиться с криптовалютами рекомендую ознакомиться с базовыми статьями:

Все эти способы имеют место быть.

Материал из BitcoinWiki Это утверждённая версия страницы. Она же — наиболее свежая версия. Перейти к: навигация, поиск <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” “http://www.w3.org/TR/REC-html40/loose.dtd”> image

Открытый и закрытый ключ Биткоин адреса – это набор ключей, при помощи которых пользователь контролирует доступ к криптовалюте Bitcoin, хранящейся в кошельке.

Ключи шифрования[править]

Ключ шифрования – это тайная информация (набор цифр и букв), которая используется алгоритмом для шифрования и расшифровки информации.

Надёжность ключа зависит от его длины в битах. В технологии SSL используют шифры 4096 бит для корневого сертификата и 128–256 бит для клиентских. Такая длина достаточна для безопасной передачи данных.

Протокол SSL использует асимметричное шифрование или шифрование с открытым ключом для установки соединения. Несмотря на название, здесь используются 2 ключа: открытый и закрытый. Оба формируются при запросе SSL-сертификата.

Открытый ключ (публичный) доступен всем. Используется для шифрования данных при обращении браузера к серверу.

Закрытый ключ (секретный) известен только владельцу сайта. Используется для расшифровки данных, отправленных браузером.

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

Цифровые ключи Биткоина[править]

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

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

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

Биткоин-адрес и крипто-ключи[править]

Основная статья: Адрес

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

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

Цифровая подпись в Bitcoin[править]

image

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

Цифровые подписи включены в поле scriptSign транзакции. Подписи – это криптографические элементы, которые вычисляются из закрытого ключа и комбинации другой информации, включенной в транзакцию. И именно здесь начинается «игра» криптографии, потому что благодаря этому можно использовать открытый ключ для проверки того, что указанная подпись была создана с использованием соответствующего закрытого ключа. Кроме того, поскольку подписи вычисляются с использованием закрытого ключа и комбинации другой информации о транзакции, они также демонстрируют знание секретного ключа, который владелец этого же и, следовательно, владелец этих биткоинов, подтверждает данные указанной транзакции. Поэтому каждая подпись действительна только для конкретной транзакции.

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

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

См. также на BitcoinWiki[править]

  • [[SHA-3]
  • Уязвимости Bitcoin
  • Dash
  • Ethereum Classic
  • Кран

Источники[править]

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий