Восстановление в новом реестре nano s

Допустим, мы создаем 3 биткойн-адреса и 4 эфириум-адреса. Это означает, что у нас есть 3 открытых закрытых ключа для биткойнов и 4 открытых закрытых ключа для эфира.

После восстановления с использованием начального числа из 24 слов, как новый регистр nano s узнает, что я использовал 3 адреса в биткойнах и 4 адреса в эфириуме.

Интересно, как это происходит? Не могли бы вы помочь мне понять?

Я предполагаю, что он сканирует блокчейн и смотрит, сколько адресов из последовательности адресов было использовано. Насколько я могу судить, именно так работает JAXX.
@lungj, но количество адресов бесконечно, верно?
Он ограничен количеством уникальных адресов Ethereum. Но даже если бы это было не так, оно также ограничено количеством транзакций, которые вы можете совершить.
Даже если система предположила, что вам никогда не понадобится более триллиона адресов (достаточно примерно для 50 транзакций в секунду в течение жизни среднего человека), ей пришлось бы проверять не более 40 адресов, чтобы выяснить, где она остановилась (на цепочку). .
Невозможно понять ваш последний комментарий
Используя бинарный поиск, вы можете искать (отсортированное) пространство во времени журнала. Чтобы найти последний использованный адрес в 2^256-битном линейном пространстве поиска (что мы можем предположить, поскольку мы можем сгенерировать n-й адрес, сгенерированный кошельком напрямую), вы выполняете не более 256 поисков. Разделите пространство на две части. Адрес уже используется? Нет? Разделите первую половину пространства на две части и повторите поиск. Это похоже на то, как вы можете искать слово в словаре, листая туда-сюда, пока не найдете нужное слово. В словаре с 512 (2 ^ 9) страницами бинарный поиск означает, что вам нужно проверить не более 9 страниц, чтобы найти нужное слово.
Повторите этот процесс один раз для каждой цепочки, которую вы используете (биткойн, эфириум и т. д.).
Будет ли это работать, если мы создадим n неиспользуемых адресов и начнем использовать n+1-й адрес.
Не используя описанную мной схему. Кроме того, вы не можете «создать» неиспользуемый адрес. Адреса не создаются в цепочке блоков. Каждый адрес уже существует. Вы имеете в виду пропустить некоторые элементы в последовательности сгенерированных ключей/адресов.
Тогда остается вопросом, насколько идеально работает Ledger nano s...
Если бы у меня ранее была учетная запись под названием «ракетные фонды», как бы она отображалась в недавно восстановленной бухгалтерской книге, или я могу получить доступ к средствам только путем повторного создания пользовательских учетных записей вручную?

Ответы (1)

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

При нормальной работе программное обеспечение должно получать новый публичный адрес только в том случае, если последний не видел никаких транзакций. Вы не можете заставить приложение Ledger Nano создать новый адрес. Снова из BIP44:

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

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

Итак, в основном процедура восстановления такова:

  • Получить 20 ключей из главного открытого ключа
  • Сканировать все адреса
  • Возьмите последний использованный (дочерний X) и сгенерируйте ключи до X+20.
  • Сканировать новые адреса
  • Промойте и повторите последние 2 шага, пока ничего нового не появится.

Здесь есть немного более длинное и общее объяснение системы .