En HD Wallet recovery, ¿cómo saben las billeteras qué direcciones recuperar?

He estado leyendo la propuesta de BIP32 que explica cómo funciona la alta definición, pero no mencionó en ningún momento cómo una billetera en un teléfono puede recuperarse de una simple semilla mnemotécnica.

  1. ¿Simplemente prueba todas las direcciones posibles relacionadas con la clave maestra de esa semilla haciendo que toda la cadena de bloques busque direcciones al mismo tiempo? (Esto parece impracticable imo).

  2. ¿Existen estándares sobre el número máximo de direcciones para generar desde el lado de la billetera?

Respuestas (1)

¿Simplemente prueba todas las direcciones posibles relacionadas con la clave maestra de esa semilla? (Esto parece impracticable imo).

No, esto es realmente imposible de hacer ya que efectivamente hay una cantidad infinita de direcciones que se pueden generar a partir de una sola clave privada maestra.

En cambio, las billeteras generan claves en rutas de derivación estandarizadas y asumen que otras billeteras siguen los mismos estándares. Esto es generalmente una suposición segura. Las billeteras que no siguen las rutas de derivación estándar generalmente tienen documentación que indica qué rutas de derivación usan para que pueda especificar en otra billetera qué rutas de derivación usar.

La mayoría de las billeteras siguen la especificación BIP 44 para las rutas de derivación.

¿Existen estándares sobre el número máximo de direcciones para generar desde el lado de la billetera?

No. Por lo general, las billeteras generan direcciones hasta que han generado ndirecciones sin usar (lo que se conoce como límite de brecha). El límite de brecha no está estandarizado y muchas billeteras te permiten configurarlo. En muchas billeteras, el límite de espacio es de 20 claves, sin embargo, esto probablemente no sea suficiente al restaurar. En otros monederos pueden ser 100 llaves, y otros 1000.

Excelente respuesta. Tengo un par de preguntas: 1. ¿Significa eso que, por cada clave privada extendida, un desarrollador de software de billetera podría esperar que se recuperen de 20 a 1000 direcciones al diseñar una nueva billetera de software? 2. ¿No puede ser una limitación la idea de mantener las claves localmente y el tamaño del dispositivo de teléfono inteligente con cientos de miles de claves privadas extendidas generadas? Gracias nuevamente por su respuesta.
1. Sí. 2. No, las claves se pueden generar dinámicamente y no es necesario almacenarlas. Además, son muy pequeños y requieren cientos de miles de llaves para llegar a cualquier lugar y ocupan una cantidad de espacio realmente notable.
Por lo general, las billeteras generan direcciones hasta que han generado n direcciones sin usar . ¿Significa eso que la billetera de software tiene que hacer un escaneo completo de la cadena de bloques para verificar si la dirección no está en uso?
Sí, las billeteras necesitarán escanear la cadena de bloques. Sin embargo, no es necesario volver a escanear por completo cada clave privada, ya que las personas suelen usar las direcciones en orden. Esto significa que se puede utilizar la misma exploración y se pueden generar claves nuevas a medida que se utilizan las antiguas. Es poco probable que las claves recién generadas se hayan utilizado antes que una clave que ya se conocía, especialmente si el límite de la brecha es grande.
Permítame resumir lo que entiendo aquí, me dirá si todavía me estoy equivocando en algo. La forma en que entiendo que se resuelven estos problemas es a partir de una clave privada extendida, visite las direcciones de los hermanos del índice 0 a n si encuentra una brecha de 20 direcciones, profundizamos en otra generación de direcciones a partir de los hijos del 0.º hijo y repetimos las mismas cosas hasta la brecha se llena desde el nivel generacional desde la perspectiva del árbol? Si ~20 es el límite de brecha de las direcciones de los hermanos, ¿qué se considera como un límite de brecha de la relación de padre a hijo?
El límite de espacio solo se aplica a las claves hermanas. No hay límite de espacio entre las claves principal y secundaria. No buscamos a través de niveles cada vez más profundos, solo buscamos como máximo 2 niveles con el punto de partida asumiendo que coincide con una ruta de derivación estándar. Por ejemplo, si asumimos BIP 44, comenzaríamos con la clave en m/44'/0'/0'/0/0. También buscaríamos m/44'/0'/0'/1/0. Sin embargo, no buscamos ningún otro nivel.