de acuerdo con bip39 , hice 12 mnemonic words
y luego obtuve una 512 bit seed
de ellos.
ahora quiero saber cómo debo convertir esta semilla en clave privada ?
¿Qué funciones debo usar?
por favor, preséntenme bibliotecas para browser javascript
.
aunque sé que debo usar ECDSA
y secp256k1
.
pero no se exactamente cuales son los pasos?
No sé según qué algoritmo necesito para convertir una semilla de 512 bits en una clave privada de 256 bits.
BIP-0039 dice:
De mnemotécnico a semilla
Un usuario puede decidir proteger su mnemónico con una frase de contraseña. Si no hay una frase de contraseña, se usa una cadena vacía "" en su lugar.
Para crear una semilla binaria a partir del mnemotécnico, usamos la función PBKDF2 con una oración mnemotécnica (en UTF-8 NFKD) utilizada como contraseña y la cadena "mnemónico" + frase de contraseña (nuevamente en UTF-8 NFKD) utilizada como sal. El recuento de iteraciones se establece en 2048 y se utiliza HMAC-SHA512 como función pseudoaleatoria. La longitud de la clave derivada es de 512 bits (= 64 bytes).
Así que los algoritmos hasta ahora están descritos por
De acuerdo con la entrada Wiki de Bkitcoin para la clave privada :
El software de billetera puede usar una semilla BIP 32 para generar muchas claves privadas y las claves públicas correspondientes a partir de un solo valor secreto. Esto se llama billetera determinista jerárquica o billetera HD para abreviar. El valor semilla, o clave extendida maestra, consta de una clave privada de 256 bits y un código de cadena de 256 bits, para un total de 512 bits. El valor inicial no debe confundirse con las claves privadas utilizadas directamente para firmar transacciones de Bitcoin.
BIP-0032 dice:
Teclas extendidas
En lo que sigue, definiremos una función que deriva un número de claves secundarias a partir de una clave principal. Para evitar que estos dependan únicamente de la clave en sí, primero extendemos las claves públicas y privadas con 256 bits adicionales de entropía. Esta extensión, denominada código de cadena, es idéntica para las claves privadas y públicas correspondientes y consta de 32 bytes.
Representamos una clave privada extendida como (k, c), con k la clave privada normal y c el código de cadena. Una clave pública extendida se representa como (K, c), con K = punto (k) y c el código de cadena.
Luego pasa a describir el algoritmo utilizado.
Me parece que esto requiere mucha investigación en la documentación y el código fuente.
Inicialmente, no parece ser algo que pueda abarcarse por completo en el espacio asignado a las respuestas en este foro de preguntas y respuestas.
512 bits seed
en dos 256 bits
partes, usar la primera parte como master private key
, y usar la segunda parte como chain code (entropy)
. ¿bien?
rojoarenosoladrillo
saeid ezzati