Cómo generar direcciones aleatorias a partir de una clave pública de modo que se puedan recuperar más tarde usando solo la clave de pub

Entiendo que desde una clave pública, puede generar direcciones aleatorias simplemente agregando un nonce a la clave pública. Luego, puede volver a generar todas estas direcciones cuando lo necesite, ¿verdad?

Si mi billetera tiene conocimiento de mi clave pública (por supuesto que sí), puede generar muchos pares de claves privadas/públicas con solo agregarle un número. Por ejemplo, supongamos que la clave privada es xy su clave pública es y. Si la billetera eliminó la clave privada xpor un tiempo, puede generar la dirección y+1y estar seguro de que cuando lo haga x+1obtendrá la clave privada para esta dirección en el futuro cuando necesite gastar esos fondos. Esta es una propiedad de la criptografía de curva elíptica, porque hay un homeomorfismo entre los conjuntos de claves públicas y privadas.

Escuché que si le doy a alguien mi clave pública, puede derivar una dirección única y enviarla a esta dirección con la seguridad de que podré gastarla porque puedo encontrar la clave privada para esa dirección simplemente agregando la misma nonce que utilizó para generar su clave pública. El problema es:

Tiene que decirme qué nonce se usó, de lo contrario, tendría que probar con los aleatorios hasta llegar al que usó. PERO, si así es como está hecho, cualquiera puede elegir mi clave pública y encontrar todas mis direcciones. Si realmente tiene que decirme el nonce utilizado (supongamos que es muy grande y aleatorio, por lo que no podría adivinarlo por fuerza bruta), entonces existe el riesgo de que lo pierda, porque tendría que hacer un seguimiento de todos estos nonces

Entonces, ¿cómo se hace esto? ¿Cómo puedo, dada la clave pública de alguien, generar una dirección aleatoria para él de modo que pueda obtener la clave privada/pública más tarde, pero que no necesite almacenar nada de lo que se usó para generar? esa dirección?

No puedo seguir completamente tu lógica... ¿Hablamos de bitcoin? No estoy seguro de si su declaración es cierta, que agregar un nonce a una clave pública genera direcciones aleatorias. Bueno, uno podría pensar en ello. ¿Está seguro de que no está hablando de billeteras deterministas jerárquicas BIP32/44 y su derivación de claves?
@pebwindkraft Estoy hablando de esto: bitcoin.stackexchange.com/questions/41947/…

Respuestas (1)

Creo que está hablando de claves derivadas de HD, como lo es la pregunta anterior que vinculó. La estructura de la billetera HD se presenta en BIP 32 .

Si alguien tiene su clave pública extendida principal, puede derivar claves secundarias públicas extendidas usándola y un índice/nonce. Deben tener la clave extendida (incluido el código de cadena), pero no pueden derivar las claves privadas secundarias. Solo usted puede hacer eso, usando la clave privada extendida principal. Entonces pueden decirle el índice, y cualquier otra persona con el índice y la clave pública principal extendida puede ver qué clave pública se usó, pero el único que tiene la clave privada es usted.

Para derivar las claves secundarias, debe mantener al menos la clave privada extendida maestra (o la semilla de la que proviene). Sin eso, no puede derivar ninguna clave privada.