Базы приватных ключей биткоин

Содержание
  1. Пул поиска приватных ключей Bitcoin, Ethereum и других
  2. В поиске участвует база данных с адресами криптовалют:
  3. 1. SecretScan v1.3 GPU Nvidia Private Keys Scanner of Bitcoin, Ethereum, Altcoins addresses для совместного поиска приватных ключей в пуле.
  4. 2. SecretScan GPU AMD для совместного поиска приватных ключей в пуле на видеокартах AMD.
  5. Как участвовать?
  6. Как работает сканер?
  7. Какие шансы?
  8. База всех приватных ключей биткоин адресов
  9. Недетерминированные (Случайные) Кошельки
  10. Детерминированные (Посеянные) Кошельки
  11. Мнемонические Кодовые Слова
  12. Иерархические детерминированные кошельки (BIP0032/BIP0044)
  13. Совет
  14. Создание HD кошелька из семени
  15. Частный дочерний ключ деривации
  16. Использование производных дочерних ключей
  17. Совет
  18. Расширенные клавиши
  19. Совет
  20. Вывод открытого дочернего ключа
  21. Закаленная дочерняя Деривация ключа
  22. Индексные номера для нормальной и закаленной деривации
  23. Идентификатор ключа кошелька HD (путь)
  24. Навигация по древовидной структуре кошелька HD
  25. Experimenting with HD wallets using sx tools

Пул поиска приватных ключей Bitcoin, Ethereum и других

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

1. SecretScan v1.3 GPU Nvidia Private Keys Scanner of Bitcoin, Ethereum, Altcoins addresses для совместного поиска приватных ключей в пуле.

Требуется 64-битная система Windows и видеокарты Nvidia от 2011 года выпуска (версия спецификации 3.0 и выше).

1. Зарегистрируйтесь.
2. Зайдите в Личный кабинет, введите адрес своего кошелька или сгенерируйте новый на сайте.
3. Скачайте и установите Nvidia Cuda 9.2 для работы программы.
4. Скачайте архив программы SecretScan v2.3, распакуйте на диск C или рабочий стол.
5. Отредактируйте файл «1_SecretScanGPU.bat» (для 1060 и новее) или «2_SecretScanGPU.bat» (для видеокарт 1050ti и старше), вместо слова YourWallet укажите номер вашего кошелька, указанный в личном кабинете на сайте. Также в папке есть бат файлы «3. «, «4. «. Выберите файл с максимальной скоростью и стабильностью.
6. Запустите bat файл. Подождите 3-5 минут, проверьте результаты работы программы на сайте.

Рекомендации!
1. Убедитесь, что на 3 строке программы есть такие данные: (CUDA 9.2, Driver 9.2), поменяйте Cuda или драйвер в случае не совпадения, удалив текущие драйвера программой удаления старых драйверов DDU и установив Cuda заново.
2. В случае сбоя потребуется переустановка Cuda 9.2. Драйвера входят в пакет Cuda, отдельно их устанавливать не требуется.
3. Программа для настройки разгона видеокарт: MSI Autoburner. Разгон видеокарт примерно аналогичен настройкам на майнинг по алгоритму Equilhash (70-100 PL, Core 120-200, Memory 400-600). Задействовано ядро и память. Старайтесь получить не максимальную скорость Mk/s, а максимальную эффективность — Mks/Watt.
4. Инструкция как сделать автоперезапуск в случае ошибки или сбое в работе программы/интернет/питания.
В скаченной версии bat файла перезапуск программы установлен по умолчанию. Если требуется перезагрузка при сбое видеокарт,
то уберите слово «rem» перед «shutdown /r /t 10 /f» и при сбое компьютер будет перезагружаться.
5. Инструкция как сделать автозапуск при включении фермы/компьютера. Нажмите правой кнопкой мыши на файле 1_SecretScanGPU.bat в папке с программой, создайте ярлык. В левом нижнем углу нажмите линзу-поиск, напишите и выберите «Выполнить», в коммандной строке наберите: shell:startup, затем перенесите созданный вами ярлык в открывшуюся папку автозагрузки.
6. Рекоммендуется запускать сканер после новой загрузки windows (перезагрузите компьютер/ферму после майнинга, игр и т.п.).
7. Если программа не работает, то нужно вернуть виндовс к заводским настройкам с сохранением файлов (в панели управления в разделе восстановление). 8. Защитник windows, брандмауэр может блокировать программу, их надо настраивать и отключать в некоторых случаях.
9. На компьютере должны быть установлены Visual C++ 2013 и Visual C++ 2017.
10. Увеличить файл подкачки: Панель управления -> Система -> Дополнительные параметры системы -> Быстродействие -> Параметры -> Дополнительно -> Изменить

Таблица скоростей
1050Ti 30 Mk/s
1060 54 Mk/s, Gigabyte 70 PL 180 Core 600 Memory
1070 74 Mk/s, Gigabyte 70 PL 150 Core 600 Memory
1070Ti 71 Mk/s
1080 71 Mk/s
1080Ti 94 Mk/s
2080Ti 250 Mk/s

2. SecretScan GPU AMD для совместного поиска приватных ключей в пуле на видеокартах AMD.

Планируется к разработке. Пожалуйста воспользуйтесь разделом «Аренда».

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

Аренда 8 видеокарт GTX1060 на поиск ключей стоит 0.6 ETH в месяц: 30 триллионов ключей в день, 900 триллионов ключей в месяц.
Половина от этой суммы — затраты на электричество. Все средства с аренды или майнинга идут на создание и развитие проекта.

Укажите в личном кабинете и отправьте с адреса, указанного в личном кабинете,
сумму, кратную 0.6 ETH на адрес: 0x940cB21E0B52ea1F9eDE350Ed2811d429e57d341
Включение ферм поиска ключей на ваш адрес будет выполнено в течении 12 часов.

Как участвовать?

Как работает сканер?

1) Генерируется приватный ключ.
2) Из приватного ключа программа математически высчитывает публичный ключ и получает связанный с ним адрес кошелька.
3) Кошелек автоматически сверяется с топовыми адресами в базе, содержащими биткоины, эфир и т.д.

Какие шансы?

Вероятность нахождения 1 адреса 2^256 степени (примерно равно 10^77), что практически невозможно, но это как бесплатная биткоин лотерея и 1) с момента создания проекта скорости выросли в миллион раз, 2) в поиске 10^7 адресов, что увеличивает шансы, 3) в приватном ключе 64 знака, а в адресе только 40, поэтому у каждого адреса существует 2^(256/64*40=96), т.е. 2^96 (10^29) работающих приватных ключей. Проверив 2^(256-256/64*40=160) 2^160 (10^48) ключей, будут найдены все адреса, 4) используется особый математический рандом, сужающий область поиска на порядки, 5) если для поиска 1 видеокарте требуется миллион лет, тогда миллион видеокарт найдет за 1 год. В отличие от майнинга, когда добывается регулярно по чуть-чуть, процесс поиска ключей занимает длительное время, но и вознаграждение существенней.

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

Источник

База всех приватных ключей биткоин адресов

Кошельки — это контейнеры для закрытых ключей. Обычно реализуемые в виде структурированных файлов или простых баз данных. Другой метод создания ключей- детерминированная генерация ключей . Здесь вы производите каждый новый закрытый ключ. Используя одностороннюю хэш-функцию от предыдущего закрытого ключа. Связывая их в последовательности. Пока вы можете воссоздать эту последовательность. Вам нужен только первый ключ (известный как начальный или главный ключ). Чтобы сгенерировать их все. В этом разделе мы рассмотрим различные методы генерации ключей и структуры кошельков. Построенные вокруг них.

Недетерминированные (Случайные) Кошельки

В первых биткойн-клиентах кошельки были просто коллекциями случайно сгенерированных закрытых ключей. Этот тип кошелька называется недетерминированным кошельком типа 0 . Например. Клиент Bitcoin Core предварительно генерирует 100 случайных закрытых ключей при первом запуске и генерирует больше ключей по мере необходимости. Используя каждый ключ только один раз. Этот тип кошельков называется Недостатком случайных ключей является то. Что если вы генерируете их много. Вы должны хранить копии всех из них. А это означает. Что кошелек должен часто резервироваться.

Читайте также:  Инвестиция по атырауской области

Каждый ключ должен быть резервирован. Иначе средства. Которые он контролирует. Будут безвозвратно потеряны. Если кошелек станет недоступным. Это прямо противоречит принципу избегания повторного использования адреса. Используя каждый биткойн-адрес только для одной транзакции. Повторное использование адресов снижает конфиденциальность. Связывая несколько транзакций и адресов друг с другом. Недетерминированный кошелек типа 0-это плохой выбор кошелька. Особенно если вы хотите избежать повторного использования адреса. Потому что это означает управление многими ключами. Что создает необходимость в частом резервном копировании.

Хотя клиент Bitcoin Core включает в себя кошелек Type-0, использование этого кошелька не поощряется разработчиками Bitcoin Core. На рис. 4-8 показан недетерминированный кошелек. Содержащий разрозненную коллекцию случайных ключей.

Детерминированные (Посеянные) Кошельки

Детерминированные. Или” посеянные Начальное число-это случайно сгенерированное число. Которое объединяется с другими данными. Такими как индексный номер или иерархические детерминированные кошельки (BIP0032/BIP0044)) для получения закрытых ключей. В детерминированном кошельке семя достаточно для восстановления всех производных ключей. И поэтому достаточно одной резервной копии во время создания.

Семя также достаточно для экспорта или импорта кошелька. Что позволяет легко переносить все ключи пользователя между различными реализациями кошелька.

Рис. 4-8. Недетерминированный (случайный) кошелек Type-0: коллекция случайно сгенерированных ключей

Мнемонические Кодовые Слова

Мнемонические коды — это последовательности английских слов. Которые представляют (кодируют) случайное число. Используемое в качестве семени для получения детерминированного кошелька. Последовательность слов достаточна. Чтобы воссоздать семя и оттуда воссоздать кошелек и все производные ключи.

Приложение wallet. Реализующее детерминированные кошельки с мнемоническим кодом. Покажет пользователю последовательность от 12 до 24 слов при первом создании кошелька. Эта последовательность слов является резервной копией кошелька и может быть использована для восстановления и повторного создания всех ключей в одном или любом совместимом приложении кошелька. Мнемонические кодовые слова облегчают пользователям резервное копирование кошельков. Потому что они легко читаются и правильно расшифровываются. По сравнению со случайной последовательностью чисел.

Мнемонические коды определены в предложении по улучшению биткойна 39 (см. [bip0039]), которое в настоящее время находится в стадии разработки. Обратите внимание. Что BIP0039-это проект предложения. А не стандарт. В частности. Существует другой стандарт. С другим набором слов. Используемый кошельком Electrum и предшествующий BIP0039. BIP0039 используется кошельком Trezor и несколькими другими кошельками. Но несовместим с реализацией Electrum.

BIP0039 определяет создание мнемонического кода и семени следующим образом:

  1. Создайте случайную последовательность (энтропию) от 128 до 256 бит.

  • Создайте контрольную сумму случайной последовательности. Взяв первые несколько битов ее хэша SHA256.
  • Добавьте контрольную сумму в конец случайной последовательности.
  • Разделите последовательность на секции по 11 бит. Используя их для индексации словаря из 2048 предопределенных слов.
  • Составьте от 12 до 24 слов. Представляющих мнемонический код.
  • В таблице 4-5 показана зависимость между размером энтропийных данных и длиной мнемонических кодов в словах.

    Таблица 4-5. Мнемонические коды: энтропия и длина слова

    Мнемонический код представляет собой от 128 до 256 битов. Которые используются для получения более длинного (512-битного) начального кода с помощью функции растяжения ключа PBKDF2.

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

    В таблицах 4-6 и 4-7 приведены некоторые примеры мнемонических кодов и производимых ими семян.

    Таблица 4-6. 128-битный энтропийный мнемонический код и результирующее семя

    Энтропийный вход (128 бит)

    Мнемоника (12 слов)

    армейский фургон defense carry ревнивый истинный мусорный иск echo media make crunch

    Семя (512 бит)

    Таблица 4-7. 256-битный энтропийный мнемонический код и результирующее семя

    Энтропийный вход (256 бит)

    Мнемоника (24 слова)

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

    Семя (512 бит)

    Иерархические детерминированные кошельки (BIP0032/BIP0044)

    Детерминированные кошельки были разработаны для того. Чтобы было легко получить много ключей из одного “семениНаиболее совершенной формой детерминированных кошельков является иерархический детерминированный кошелек или HD-кошелек , определенный стандартом BIP0032. Иерархические детерминированные кошельки содержат ключи. Полученные в древовидной структуре. Так что родительский ключ может получить последовательность дочерних ключей. Каждый из которых может получить последовательность внуков ключей. И так далее. До бесконечной глубины.

    Эта древовидная структура показана на рис. 4-9.

    Рис. 4-9. Иерархический детерминированный кошелек типа 2: дерево ключей. Генерируемых из семени

    Совет

    Если вы внедряете биткойн-кошелек. Он должен быть построен как HD-кошелек в соответствии со стандартами BIP0032 и BIP0044.

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

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

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

    Создание HD кошелька из семени

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

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

    Процесс создания мастер-ключей и мастер-кода цепочки для HD-кошелька показан на рис .4-10.

    Рис. 4-10. Создание мастер-ключей и цепного кода из корневого семени

    Корневое семя вводится в алгоритм HMAC-SHA512, и полученный хэш используется для создания главного закрытого ключа (m) и главного кода цепочки . Главный закрытый ключ (m) затем генерирует соответствующий главный открытый ключ (M). Используя обычный процесс умножения эллиптической кривой m * G , который мы видели ранее в этой главе. Цепной код используется для введения энтропии в функцию. Которая создает дочерние ключи из родительских ключей. Как мы увидим в следующем разделе.

    Частный дочерний ключ деривации

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

    Функции деривации дочерних ключей основаны на односторонней хэш-функции. Которая объединяет:

    • Родительский закрытый или открытый ключ (несжатый ключ ECDSA)
    • Семя называется цепным кодом (256 бит)
    • Индексный номер (32 бита)

    Цепной код используется для введения в процесс. Казалось бы. Случайных данных. Так что индекс не является достаточным для получения других дочерних ключей. Таким образом. Наличие дочернего ключа не позволяет найти его братьев и сестер. Если у вас также нет кода цепочки. Начальное семя кода цепи (в корне дерева) создается из случайных данных. В то время как последующие коды цепи выводятся из каждого родительского кода цепи.

    Эти три элемента объединяются и хэшируются для генерации дочерних ключей следующим образом.

    Родительский открытый ключ. Код цепочки и номер индекса объединяются и хэшируются с помощью алгоритма HMAC-SHA512 для получения 512-битного хэша. Полученный хэш делится на две половины. Правая половина 256 бит хэш-вывода становится цепным кодом для дочернего элемента. Левая половина 256 бит хэша и индексный номер добавляются к родительскому закрытому ключу для получения дочернего закрытого ключа. На рис. 4-11мы видим. Что это иллюстрируется индексом. Установленным в 0 для получения 0 ‘ — го (первого по индексу) дочернего элемента родителя.

    Рис. 4-11. Расширение родительского закрытого ключа для создания дочернего закрытого ключа

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

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

    Использование производных дочерних ключей

    Дочерние закрытые ключи неотличимы от недетерминированных (случайных) ключей. Поскольку функция вывода является односторонней функцией. Дочерний ключ не может быть использован для поиска родительского ключа. Дочерний ключ также не может быть использован для поиска братьев и сестер. Если у вас есть n ребенок. Вы не можете найти его братьев и сестер. Таких как N–1 ребенок или n+1 ребенок. Или любые другие дети. Которые являются частью последовательности. Только родительский ключ и код цепочки могут получить все дочерние элементы. Без кода Дочерней Цепочки дочерний ключ также не может быть использован для получения внуков. Вам нужен как дочерний закрытый ключ. Так и код Дочерней Цепочки. Чтобы начать новую ветвь и получить внуков.

    Так для чего же может использоваться дочерний закрытый ключ сам по себе? Он может быть использован для создания открытого ключа и биткойн-адреса. Затем он может быть использован для подписания транзакций. Чтобы потратить все. Что было оплачено по этому адресу.

    Совет

    Дочерний закрытый ключ. Соответствующий открытый ключ и биткойн-адрес неотличимы от ключей и адресов. Созданных случайным образом. Тот факт, что они являются частью последовательности. Не виден за пределами функции HD wallet. Которая их создала. После создания они работают точно так же. Как” обычные

    Расширенные клавиши

    Как мы видели ранее. Функция вывода ключа может быть использована для создания дочерних элементов на любом уровне дерева на основе трех входных данных: ключа. Кода цепочки и индекса желаемого дочернего элемента. Два основных ингредиента-это ключ и код цепочки. И в сочетании они называются расширенным ключом . Термин

    Расширенные ключи хранятся и представляются просто как объединение 256-битного ключа и 256-битного цепного кода в 512-битную последовательность. Существует два типа расширенных ключей. Расширенный закрытый ключ представляет собой комбинацию закрытого ключа и кода цепочки и может использоваться для получения дочерних закрытых ключей (а из них-дочерних открытых ключей). Расширенный открытый ключ — это открытый ключ и цепной код. Который можно использовать для создания дочерних открытых ключей. Как описано в разделе создание открытого ключа.

    Представьте себе расширенный ключ как корень ветви в древовидной структуре HD-кошелька. С корнем ветви вы можете получить остальную часть ветви. Расширенный закрытый ключ может создать полную ветвь. В то время как расширенный открытый ключ может создать только ветвь открытых ключей.

    Совет

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

    Расширенные ключи кодируются с помощью Base58Check. Чтобы легко экспортировать и импортировать между различными кошельками. Совместимыми с BIP0032. Кодировка Base58Check для расширенных ключей использует специальный номер версии. Который приводит к префиксам Поскольку расширенный ключ составляет 512 или 513 бит. Он также намного длиннее. Чем другие строки. Закодированные Base58Check. Которые мы видели ранее.

    Вот пример расширенного закрытого ключа. Закодированного в Base58Check:

    Вот соответствующий расширенный открытый ключ. Также закодированный в Base58Check:

    Вывод открытого дочернего ключа

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

    Таким образом. Расширенный открытый ключ может быть использован для получения всех открытых ключей (и только открытых ключей) в этой ветви структуры HD wallet.

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

    Одним из распространенных применений этого решения является установка расширенного открытого ключа на веб-сервере. Обслуживающем приложение электронной коммерции. Веб-сервер может использовать функцию деривации открытого ключа для создания нового биткойн-адреса для каждой транзакции (например. Для корзины покупок клиента). Веб-сервер не будет иметь никаких закрытых ключей. Которые были бы уязвимы для кражи. Без HD-кошельков единственный способ сделать это-сгенерировать тысячи биткойн-адресов на отдельном защищенном сервере. А затем предварительно загрузить их на сервер электронной коммерции. Этот подход громоздок и требует постоянного обслуживания. Чтобы гарантировать. Что сервер электронной коммерции не “исчерпает” ключи.

    Еще одно распространенное применение этого решения — для холодных хранилищ или аппаратных кошельков. В этом случае расширенный закрытый ключ может храниться на бумажном кошельке или аппаратном устройстве (например. Аппаратном кошельке Trezor). В то время как расширенный открытый ключ может храниться в сети. Пользователь может создавать адреса Чтобы потратить эти средства. Пользователь может использовать расширенный закрытый ключ на оффлайн-подписывающем биткоин-клиенте или подписывать транзакции на аппаратном кошельке устройства (например, Trezor). Рис. 4-12 иллюстрирует механизм расширения родительского открытого ключа для получения дочерних открытых ключей.

    Рис. 4-12. Расширение родительского открытого ключа для создания дочернего открытого ключа

    Закаленная дочерняя Деривация ключа

    Возможность вывести ветвь открытых ключей из расширенного открытого ключа очень полезна. Но она сопряжена с потенциальным риском. Доступ к расширенному открытому ключу не дает доступа к дочерним закрытым ключам. Однако, поскольку расширенный открытый ключ содержит код цепочки. Если дочерний закрытый ключ известен или каким-то образом просочился. Его можно использовать вместе с кодом цепочки для получения всех остальных дочерних закрытых ключей. Один просочившийся дочерний секретный ключ вместе с кодом Родительской Цепочки раскрывает все секретные ключи всех детей. Хуже того, дочерний закрытый ключ вместе с кодом Родительской Цепочки может быть использован для вывода родительского закрытого ключа.

    Чтобы противостоять этому риску. HD кошельки используют альтернативную функцию деривации. Называемую закаленной деривацией , который “разрывает Закаленная функция деривации использует Родительский закрытый ключ для получения кода Дочерней Цепочки вместо родительского открытого ключа. Это создает Закаленная функция вывода выглядит почти идентичной обычной функции вывода дочернего закрытого ключа. За исключением того. Что родительский закрытый ключ используется в качестве входных данных для хэш-функции вместо родительского открытого ключа. Как показано на диаграмме на рис .4-13.

    Рис. 4-13. Усиленная Деривация дочернего ключа; опускает Родительский открытый ключ

    Когда используется закаленная частная функция деривации. Результирующий дочерний закрытый ключ и код цепочки полностью отличаются от того. Что было бы результатом нормальной функции деривации. Результирующая Поэтому усиленная Деривация используется для создания

    Проще говоря. Если вы хотите использовать удобство расширенного открытого ключа для получения ветвей открытых ключей. Не подвергая себя риску утечки кода цепочки. Вы должны получить его от закаленного родителя. А не от обычного родителя. Как лучшая практика. Дочерние элементы уровня 1 Мастер-ключей всегда выводятся через закаленную деривацию. Чтобы предотвратить компрометацию мастер-ключей.

    Индексные номера для нормальной и закаленной деривации

    Индексный номер. Используемый в функции вывода. Представляет собой 32-разрядное целое число. Чтобы легко отличить ключи. Полученные с помощью обычной функции деривации, от ключей. Полученных с помощью закаленной деривации. Этот номер индекса разделен на два диапазона. Индексные числа от 0 до 2 31 -1 (от 0x0 до 0x7FFFFFFF) используются только для нормального вывода. Индексные числа между 2 31 и 2 32 -1 (от 0x80000000 до 0xFFFFFFFF) используются только для затвердевшего вывода. Поэтому, если индекс меньше 2 31 , это означает. Что ребенок нормальный , тогда как если индекс равен или выше 2 31 , ребенок закален.

    Чтобы сделать индексный номер более удобным для чтения и отображения. Индексный номер для закаленных детей отображается начиная с нуля. Но с простым символом. Поэтому первый нормальный дочерний ключ отображается как 0, тогда как первый закаленный дочерний ключ (индекс 0x80000000) отображается как 0′ . Затем последовательно второй закаленный ключ будет иметь индекс 0x80000001 и будет отображаться как 1′. И так далее. Когда вы видите индекс кошелька HD i’. Это означает 2 31 +i.

    Идентификатор ключа кошелька HD (путь)

    Ключи в HD-кошельке идентифицируются с помощью соглашения об именовании таблицу 4-8). Закрытые ключи. Производные от главного закрытого ключа. Начинаются с буквы Открытые ключи. Производные от главного открытого ключа. Начинаются с буквы Таким образом. Первый дочерний закрытый ключ главного закрытого ключа равен m/0. Первый дочерний открытый ключ — M / 0. Второй внук первого ребенка — это m / 0 / 1, и так далее.

    Например, идентификатор m/x/y/z описывает ключ. Который является z-м дочерним элементом ключа m/x/y. Который является y-м дочерним элементом ключа m / x. Который является x-м дочерним элементом m.

    Таблица 4-8. Примеры путей к кошельку HD

    Первый (0) дочерний закрытый ключ от главного закрытого ключа (m)

    Первый внук закрытый ключ первого ребенка (m / 0)

    Первый нормальный внук первого закаленного ребенка (М / 0′)

    Первый внук закрытый ключ второго ребенка (m / 1)

    Первый праправнук открытый ключ первого правнука 18-го внука 24-го ребенка

    Древовидная структура кошелька HD обеспечивает огромную гибкость. Каждый родительский расширенный ключ может иметь 4 миллиарда детей: 2 миллиарда нормальных детей и 2 миллиарда закаленных детей. Каждый из этих детей может иметь еще 4 миллиарда детей. И так далее. Дерево может быть настолько глубоким. Насколько вы хотите. С бесконечным числом поколений. Однако при всей этой гибкости становится довольно трудно ориентироваться в этом бесконечном дереве. Особенно трудно переносить HD кошельки между реализациями. Потому что возможности внутренней организации в филиалы и подветвления бесконечны.

    Два предложения по улучшению биткойна (BIPs) предлагают решение этой сложности. Создавая некоторые предлагаемые стандарты для структуры деревьев кошельков HD. BIP0043 предлагает использовать первый закаленный дочерний индекс в качестве специального идентификатора, который обозначает Основываясь на BIP0043, HD-кошелек должен использовать только одну ветвь дерева уровня 1, с индексным номером. Идентифицирующим структуру и пространство имен остальной части дерева. Определяя его назначение. Например. HD-кошелек. Использующий только ветвь m / i’/. Предназначен для обозначения конкретной цели. И эта цель идентифицируется индексным номером “i”.

    Расширяя эту спецификацию. BIP0044 предлагает структуру мультиаккаунта в качестве” целевого 44′ под BIP0043. Все HD-кошельки, следующие за структурой BIP0044, идентифицируются тем фактом. Что они использовали только одну ветвь дерева: m/44’/.

    BIP0044 определяет структуру как состоящую из пяти предопределенных уровней дерева:

    m / purpose’ / coin_type’ / account’ / change / address_index

    44′ . Второй уровень На данный момент определены три валюты: Bitcoin-это m/44’/0′. Bitcoin Testnet- m/44’/1′ , а Litecoin- m/44’/2′ .

    Третий уровень дерева-это Например. HD-кошелек может содержать два биткойн — m / 44′ / 0′ / 0′ и m/44’/0’/1′ . Каждая учетная запись является корнем своего собственного поддерева.

    На четвертом уровне. “изменение”. HD-кошелек имеет два поддерева: одно для создания адресов приема и одно для создания адресов изменения. Обратите внимание. Что в то время как предыдущие уровни использовали закаленную деривацию. Этот уровень использует нормальную деривацию. Это делается для того. Чтобы позволить этому уровню дерева экспортировать расширенные открытые ключи для использования в незащищенной среде. Используемые адреса выводятся HD-кошельком как дочерние элементы четвертого уровня. Что делает пятый уровень дерева Например. Третьим получающим адресом для биткойн-платежей на основном счете будет M/44’/0’/0’/0/2. Таблица 4-9 приведем еще несколько примеров.

    Таблица 4-9. Примеры структуры кошелька BIP0044 HD

    Третий получающий открытый ключ для основного биткоин счета

    Пятнадцатое изменение адреса открытого ключа для четвертого биткоин-счета

    Второй закрытый ключ на основном счете Litecoin для подписания транзакций

    Experimenting with HD wallets using sx tools

    Using the command-line tool sx , introduced in Chapter 3, you can experiment with generating and extending BIP0032 deterministic keys. As well as displaying them in different formats:

    Источник

    Читайте также:  Twt токен binance что это такое
    Оцените статью
    Энтропия (биты) Контрольная сумма (биты) Энтропия+контрольная сумма Длина слова