Author

Topic: HD-кошельки,обзор технологии (Read 292 times)

newbie
Activity: 23
Merit: 853

.........................

Поверил на слово Smiley, напишите правильный вариант. Стараюсь начинать с простого, потом уже более сложное.



Хотя бы так. У пользователя HD wallet есть программный кошелёк с  иерархически детерминированной структурой (деревом) секретных/публичных ключей. В корне такой структуры (дерева) находится  секретный/публичный мастер ключ. Этот корень  высчитывается из случайного числа, называемого затравочным числом или затравкой (см. https://bitcointalksearch.org/topic/derivation-path-5159855), которая наглядно отображается пользователю в  виде SEED фразы.

Фраза
Объединив тем или иным образом "мастер-ключ" с хэш-функциями, мы получим неограниченное количество связанных друг с другом адресов,

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

И еще, чтобы было понятно, что такое путь деривации. Простыми словами путь деривации это символическая запись алгоритма вычисления ключей НD кошелька. Полный алгоритм расписан здесь https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki  Математики (криптография относится к одной из ветвей прикладной математики) - люди рациональные и вместо слов и длинных описаний используют абстрактные символы,   вся математика это ни что иное как символы и соотношения между ними.
newbie
Activity: 23
Merit: 853


 Его также называют "мастер-ключ", или "семя".

Откуда вы  взяли что "мастер-ключ" и "семя" можно отождествить? Даже из той схемы, что приведена, видно что мастер ключ вычисляется из SEED и отождествлять их  нельзя. И возьмите на заметку. В криптографии слово SEED переводится как затравка или как  затравочное число или как затравочная фраза, но никак не семя.
legendary
Activity: 1974
Merit: 4715


 Его также называют "мастер-ключ", или "семя".

Откуда вы  взяли что "мастер-ключ" и "семя" можно отождествить? Даже из той схемы, что приведена, видно что мастер ключ вычисляется из SEED и отождествлять их  нельзя. И возьмите на заметку. В криптографии слово SEED переводится как затравка или как  затравочное число или как затравочная фраза, но никак не семя.

https://bits.media/hd-wallet/

Поверил на слово Smiley, напишите правильный вариант. Стараюсь начинать с простого, потом уже более сложное.

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
BIP 32: m/0'/0/0 (устарел)
Почему "устарел"?
legendary
Activity: 1974
Merit: 4715
Статью добавил

апдейт
_
Ошибки исправил
legendary
Activity: 1974
Merit: 4715
Пути деривации

Вот некоторые фактические пути деривации, используемые кошельками.

BIP 32: m/0'/0/0
Это исходная спецификация пути деривации в BIP 32 .
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#specification-wallet-structure

Он просто использовал первый дочерний элемент для учетных записей , а следующие два дочерних элемента ниже для разделения внешних и внутренних адресов. Дети из них используются для их актуального private keys и public keys для создания addresses.


BIP 44: m/44'/0'/0'/0/0
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

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

public keys закодированы 1addresses ( P2PKH ).


BIP 49: m/49'/0'/0'/0/0
https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki

BIP 49 использует ту же структуру, что и BIP 44, но используется для указания того, что public keys кодирование должно быть в 3 addresses( P2WPKH-P2SH ).



BIP 49 Сериализация
Расширенные ключи в пути деривации BIP 49 используют байты версии 049d7878 «yprv» или 049d7cb2 «ypub» во время сериализации . Это позволяет идентифицировать расширенный ключ, когда он является частью схемы BIP 49.

Например:

yprvABrGsX5C9jant45o1Au7iHH54A8GXQH9SGhK5vkYKPUBDYsFy6KNUWX24moUE6KxoCh2qtZ8UpL aDWQiqt4aPdvvgjszQ4VrbLpfp5patGg

BIP 84: m/84'/0'/0'/0/0

BIP 84 использует ту же структуру, что и BIP 44, но используется для указания того, что код public keys должен быть закодирован в bc1addresses( P2WPKH ).



BIP 84 Сериализация

Расширенные ключи в пути деривации BIP 84 используют байты версии 04b2430c«zprv» или 04b24746«zpub» во время сериализации . Это позволяет идентифицировать расширенный ключ, когда он является частью схемы BIP 84.

Например:

zprvAWgYBBk7JR8GjMGuqXgjvNNaE8GiU2GeMPDXsKeRhPr4GegVDkUw6aBA5ym4DzytCqoqbN9gwUh 86o2HZaUbBscXZ5aQyyKLs4tKCeThpsa

https://learnmeabitcoin.com/guide/derivation-paths


Материалы:
https://bits.media/hd-wallet/
https://medium.com/mycrypto/wtf-is-a-derivation-path-c3493ca2eb52
https://learnmeabitcoin.com/guide/mnemonic
https://learnmeabitcoin.com/guide/derivation-paths
https://learnmeabitcoin.com/guide/derivation-paths
https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2
https://bitcointalksearch.org/topic/derivation-path-5243350
https://bitcointalksearch.org/topic/derivation-path-5159855

legendary
Activity: 1974
Merit: 4715
HD означает "hierarchical deterministic" (иерархически детерминированный) звучат сложно, но на самом деле всё довольно просто. Слово "иерархический" в контексте Биткойна значит, что адреса в какой-то мере связаны друг с другом. В частности, вы можете использовать один адрес для получения другого, и использовать значение "seed" (секретную фразу) для того, чтобы сгенерировать множество связанных адресов.

Слово "детерминированный" описывает систему, в которой нет места случайностей в развитии будущих состояний системы.

"У пользователя HD wallet есть программный кошелёк с  иерархически детерминированной структурой (деревом) секретных/публичных ключей. В корне такой структуры (дерева) находится  секретный/публичный мастер ключ. Этот корень  высчитывается из случайного числа, называемого затравочным числом или затравкой (см. https://bitcointalksearch.org/topic/derivation-path-5159855), которая наглядно отображается пользователю в  виде SEED фразы." (С)( Captain-Cryptory)
https://bitcointalksearch.org/topic/m.54392334
https://bits.media/hd-wallet/



Деривация и путь деривации.

Прежде чем мы попытаемся понять, что такое путь деривации, давайте посмотрим, что означает слово « деривация» . Стандартное определение - «получить что-то из указанного источника». В математическом контексте определение является немного более конкретным: «Получить [функцию или уравнение] из другого с помощью последовательности логических шагов, например, путем дифференцирования».

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

Анатомия пути происхождения

Вот как выглядит путь деривации: m / 44 '/ 60' / 0 '/ 0' / 0

Каждое из чисел в этой последовательности играет роль, и каждое из них меняет, каким будет частный ключ, открытый ключ и адрес. Если вы хотите узнать больше о технических аспектах этого, вы можете прочитать больше здесь .
https://ethereum.stackexchange.com/questions/70017/can-someone-explain-the-meaning-of-derivation-path-in-wallet-in-plain-english-s

Наиболее важный вывод заключается в том, что если вам нужен следующий адрес из фразы, вы просто увеличиваете последний номер на единицу:
Адрес № 1: m/ 44 '/ 60' / 0 '/ 0' / 0
Адрес № 2: m / 44 '/ 60' / 0 '/ 0' / 1
Адрес № 3: m / 44 '/ 60' / 0 '/ 0' / 2
….
Адрес № 99: m / 44 '/ 60' / 0 '/ 0' / 98
(В программировании вы начинаете считать с 0. 0… 1… 2… 3… вместо 1… 2… .3…. Это отличается от того, как мы считаем в нашей повседневной жизни, поэтому поначалу это может сбить с толку .)

https://medium.com/mycrypto/wtf-is-a-derivation-path-c3493ca2eb52


Пример: пути деривации и его соответствующих адресов

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

Оттуда кошелек использует BIP, что означает «Протокол улучшения биткойнов», чтобы определить, как начальное число разветвляется на разные адреса или криптовалюты. Несмотря на то, что в этом стандарте есть слово Bitcoin, BIP 44 позволяет использовать протоколы в разных криптографических системах. Существуют и другие BIP, такие как BIP 32, 39 и 43. Они часто упоминаются в криптопространстве, и каждый несет свое значение для всей системы. Например, BIP 39 используется для генерации мнемонических фраз, взятых из длинного списка слов, показанных здесь.
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
Эти протоколы важны, но не являются необходимыми для понимания широкой публикой.

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

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

Один и тот же стандарт, другая последовательность
Когда вы подключаетесь через HD-кошелек, некоторые кошельки используют несколько разные пути для подключения. Каждый путь генерирует совершенно новый список адресов относительно вашего корневого закрытого ключа. Вот почему важно учитывать пути деривации при устранении неполадок, связанных с адресами, доступ к которым осуществляется с помощью аппаратных кошельков.
Например, общий путь для подключения к базовому набору адресов Ethereum выглядит следующим образом: m / 44 '/ 60' / 0 '/ 0. Trezor, MetaMask, Digital Bitbox, Jaxx и Exodus, MEWconnect - это всего лишь несколько HD-кошельков, которые используют этот путь.

Эта последовательность разбита на различные разделы и изменяется в зависимости от того, с чем вы работаете. Последовательность идет:
m / цель / coin_type / account / change / address_index

Любое изменение этого номера пути или последовательности полностью изменит адреса, которые вы ожидаете увидеть. Ethereum Classic использует другой путь, используя эту последовательность: m / 44 '/ 61' / 0 '/ 0. Затем аппаратные кошельки, такие как Ledger, принимают еще более разнообразную последовательность, характерную для Ethereum Classic: m / 44 '/ 60' / 160720 '/ 0.

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

путь деривации
Вот список путей деривации, которые мы предлагаем для соединения с MyEtherWallet:
Ethereum — m’/44’/60’/0’/0
Ethereum Classic — m’/44’/61’/0’/0
Ethereum Testnet (Ropsten) — m’/44’/1’/0’/0
Ethereum (Ledger) — m’/44’/60’/0’
Ethereum Classic (Ledger) — m’/44’/60’/160720’/0
Ethereum Classic (Ledger, Vintage MEW) — m’/44’/60’/160720’/0’
Ethereum (Ledger Live) — m’/44’/60’
Ethereum Classic (Ledger Live) — m’/44’/61’
Ethereum (KeepKey) — m’/44’/60’
Ethereum Classic (KeepKey) — m’/44’/61’
RSK Mainnet — m’/44’/137’/0’/0
Expanse — m’/44’/40’/0’/0
Ubiq — m’/44’/108’/0’/0
Ellaism — m’/44’/163’/0’/0
EtherGem — m’/44’/1987’/0’/0
Callisto — m’/44’/820’/0’/0
Ethereum Social — m’/44’/1128’/0’/0
Musicoin — m’/44’/184’/0’/0
EOS Classic — m’/44’/2018’/0’/0
Akroma — m’/44’/200625’/0’/0
Ether Social Network — m’/44’/31102’/0’/0
PIRL — m’/44’/164’/0’/0
GoChain — m’/44’/6060’/0’/0
Ether-1 — m’/44’/1313114’/0’/0
Atheios — m’/44’/1620’/0’/0
TomoChain — m’/44’/889’/0’/0
Mix Blockchain — m’/44’/76’/0’/0
Iolite — m’/44’/1171337’/0’/0
ThunderCore — m’/44’/1001’/0’/0

Если вы не видите свой путь, или если вы недовольны вариантами, доступными по умолчанию, мы предлагаем вариант «Пользовательский путь» для взаимодействия с вашим HD-кошельком. Это покажет пользовательский список адресов по выбранному вами пути. Однако, пожалуйста, будьте осторожны при использовании пользовательских путей, так как вам придется запомнить этот путь для будущего доступа.
При взаимодействии с некоторыми аппаратными кошельками, такими как аппаратный кошелек Ledger, важно отметить, что устройство не позволит вам получить доступ к определенным путям, таким как Ethereum Classic или Mix Blockchain, без загрузки соответствующего программного обеспечения для устройства. Путь к Ethereum Classic потребует загрузки приложения Ethereum Classic через Ledger Live. Затем при доступе к вашему кошельку через MEW вам нужно будет убедиться, что на устройстве открыто соответствующее приложение.
Мы надеемся, что вы найдете это руководство по пути деривации полезным! Аппаратные кошельки являются наиболее безопасным способом управления вашей криптографией, и вам стоит позаботиться о том, чтобы разобраться в некоторых тонкостях их использования.

https://medium.com/myetherwallet/hd-wallets-and-derivation-paths-explained-865a643c7bf2
Jump to: