Как кошельки (например, jaxx) соединяются друг с другом, используя мнемоническую сид-фразу?

Я немного озадачен тем, как работает процесс сопряжения кошелька. Я знаю, что вы можете восстановить свой родительский закрытый ключ из мнемонической исходной фразы. Это даст вам родительский закрытый ключ. Используя этот закрытый ключ, как кошелек определяет закрытые/открытые ключи, которые вы получили из этого родительского ключа?

Спасибо!

Ответы (1)

У тебя все правильно. Последний шаг (тот, о котором вы говорите) выполняется методом грубой силы. Кошельки просто пробуют множество вариантов, пока не решат, что угадали все производные privKeys, которые вы на самом деле использовали. Для каждого возможного privKey кошелек вычисляет адрес и проверяет, существует ли этот адрес в блокчейне (= на этом адресе есть или были монеты).

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

Примечание: программное обеспечение кошелька не «угадывает их все», поскольку начальная фраза BIP32 может при необходимости генерировать бесконечное количество дочерних ключей. Большинство программных кошельков просто следуют некоторой логике, например, «просмотрите 50 адресов вперед, остановитесь, если не будут найдены финансируемые адреса». Проверьте еще 50, если найден финансируемый адрес» . Кошельки также должны следовать одному и тому же пути получения, иначе кошелек может не проверить правильный путь получения.
Спасибо, ребята, за ваши ответы! Теперь, кажется, я понял, как это работает :-)