¿Qué significa 44' en BIP44?

Después de leer BIP44, vi

El propósito es un conjunto constante de 44' (o 0x8000002C) siguiendo la recomendación BIP43.

Creo que 0x8000002C es 128 como un número entero, ¿cómo equivale esto a 44 'sin embargo?

También creo que el ' significa que es una "clave reforzada", ¿está reforzada porque 128 está entre 0 y 2^32 - 1? ¿Lo que significa que la única clave que puede derivarlo es la clave privada?

Para elaborar más mi pensamiento, que puede o no ser correcto:

Estos son los niveles:

m / propósito' / tipo_moneda' / cuenta' / cambio / índice_dirección

propósito, tipo_de_moneda y cuenta, todos deben derivarse con la clave privada. Siempre estarán entre 0 y 2^32 -1

También he llegado a creer que si derivamos una dirección de cambio con xpub, entonces si derivamos la misma ruta con xpriv, ¿podemos gastar desde esa dirección de cambio?

Por ejemplo, si recibo algunos fondos en la dirección de cambio con la ruta:

m / 44' / 0' / 0' / 0 / 0

Entonces para gastar desde esta dirección específica, necesitaría la clave privada que le corresponde. Para obtenerlo, ¿usaría el xpriv en este camino?

No es una respuesta completa, pero debe leer BIP32. Explica qué es la derivación endurecida y qué es posible con y sin ella.
@ pieter-wuille Muy bien, lo volveré a leer. Esperaba obtener alguna aclaración ya que estoy leyendo una implementación y no parece estar siguiendo la guía. Edit: tu eres el autor jaja, el barbudo. ¡Gracias por BIP32, le daré otro vistazo!
Además, las direcciones de cambio tendrían la ruta m/44'/0'/0'/1/n.
@raghav-sood gracias por la corrección. ¡Ayuda mucho a ver dónde entendí mal o cometí errores imprudentes!

Respuestas (1)

Creo que 0x8000002C es 128 como un número entero

... No, no lo es. En primer lugar, ya es un número entero, solo representado en hexadecimal. En decimal es 2147483692. ¿Cómo obtuviste 128?

¿Cómo equivale esto a 44 'sin embargo?

44' significa que se deben usar llaves endurecidas. El distintivo de si una clave de un índice dado se fortalece es que el índice es mayor que 2^31, que es 2147483648. En hexadecimal, eso es 0x80000000. Eso es lo que significa el apóstrofe ( ').

El 44 proviene de agregarlo a 2 ^ 31 para obtener el índice de clave endurecido final. En hexadecimal, 44 es 2C, por lo que 0x80000000 + 0x2C = 0x8000002C.

También creo que el ' significa que es una "clave reforzada", ¿está reforzada porque 128 está entre 0 y 2^32 - 1?

No, endurecido significa que el índice de clave está entre 2^31 y 2^32 - 1. Entre 0 y 2^31 - 1 son claves no endurecidas.

¿Lo que significa que la única clave que puede derivarlo es la clave privada?

Sí.

¡Hola, Andrés! Vi 0x80 en el código y cometí ese error. Gracias por mostrarme dónde me equivoqué. Su explicación deja en claro por qué 0 puede endurecerse. Si obtengo la clave normal con xpub en un servidor vulnerable, ¿cómo sabría qué camino tomar con xpriv para obtener la clave privada para gastar los fondos?
No sabría la ruta de algo derivado del xpub a menos que registrara la ruta que usó.
Oh, entonces, si obtengo una clave normal usando xpub, ¿cómo obtendría la clave privada correspondiente? Si conociera el camino, ¿sería el mismo camino pero endurecido?
No, es el mismo camino pero derivado del xpriv. El endurecimiento es otra cosa.
Ah entiendo El xpriv puede hacer llaves normales y reforzadas. Si crea una clave normal con xpub, puede usar la misma ruta con xpriv para producir la clave normal, pero con la clave privada para gastarla. Gracias por tomarte el tiempo de explicar, Andrés.