¿Cómo se genera la semilla maestra usando la API de Bitcore?

¿Puede alguien explicar cómo obtener Master Seed cuando se crea una nueva clave HD utilizando las API de Bitcore?

Mi propósito es implementar el servicio de billetera en mi aplicación utilizando las API de Bitcore.

Consulte este enlace aquí

Por favor, elabore su pregunta. ¿Está solicitando obtener claves privadas HD de una clave o dirección pública recién generada? Si es así, no es posible. ¿A qué función específica en Bitcore API te refieres?
Hola Abhishek, no. Quiero implementar billeteras HD en mi aplicación. Según tengo entendido, debe haber una semilla maestra para cada billetera nueva. Cada billetera es simplemente un par de claves privadas y públicas HD, ¿verdad? Y podemos crear más claves públicas (direcciones) usando la clave privada HD. Mi pregunta es ¿cómo obtendré esta semilla maestra en primer lugar?
¿Estás hablando de una semilla mnemotécnica de 12 o 24 palabras o una frase de recuperación?
Realmente agradecería si también pudiera mencionar la diferencia entre ellos en su respuesta. Quiero dar a mis usuarios semillas maestras para sus billeteras para que en el futuro, si pierden sus billeteras, puedan recuperarlas usando la semilla maestra que poseen.
Dales los mnemotécnicos. Eso es suficiente. Pueden recuperar sus fondos en cualquier monedero estándar si tienen los mnemotécnicos que representan las claves privadas correctas de su monedero.

Respuestas (1)

En caso de que esté hablando de semilla mnemotécnica, use esto:

Instalar bitcore-mnemotécnico

npm install bitcore-mnemonic
bower install bitcore-mnemonic

Luego úsalo para generar semilla mnemotécnica -

var Mnemonic = require('bitcore-mnemonic');
var code = new Mnemonic(Mnemonic.Words.ENGLISH);
code.toString(); 
// army van defense carry jealous true garbage claim echo media make crunch...

var xpriv = code.toHDPrivateKey();

Si solo desea generar una API privada desde bitcore, puede usar esta función:

var bitcore = require('bitcore');
var HDPrivateKey = bitcore.HDPrivateKey;

Tenga en cuenta que no existe una regla para generar una clave privada. Una clave privada es solo una cadena aleatoria. Incluso podría ser su nombre o un artículo completo. Pero debe crear una clave privada que sea de naturaleza "aleatoria". Además, nunca use funciones de lenguaje de programación como md5 hash o algo así para generar una clave privada porque no son realmente aleatorias.

Bitcore api, sin embargo, proporciona una manera fácil de generar una clave privada utilizando el método anterior. A partir de ahí, puede proceder como de costumbre.

var bitcore = require('bitcore');
var HDPrivateKey = bitcore.HDPrivateKey;

var hdPrivateKey = new HDPrivateKey();
var retrieved = new HDPrivateKey('xpriv...');
var derived = hdPrivateKey.derive("m/0'");
var derivedByNumber = hdPrivateKey.derive(1).derive(2, true);
var derivedByArgument = hdPrivateKey.derive("m/1/2'");
assert(derivedByNumber.xprivkey === derivedByArgument.xprivkey);

var address = derived.privateKey.toAddress();

// obtain HDPublicKey
var hdPublicKey = hdPrivateKey.hdPublicKey;
Hola Abhishek, gracias por tu respuesta. ¿Puede confirmar también si la semilla mnemotécnica se usa al momento de recuperar billeteras cuando se pierden?
Sí, puede usar mnemónicos fácilmente, de hecho, en cualquier billetera estándar como trezor para recuperar sus fondos. Los mnemotécnicos en realidad se crean a partir de claves privadas. Puede obtener información sobre el proceso aquí: github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc Cuando usa var code = new Mnemonic(Mnemonic.Words.ENGLISH); bitcore api selecciona la clave privada por usted y genera los mnemotécnicos a partir de ella, haciendo todo el trabajo duro por usted. Entonces puede pensar que estos mnemotécnicos representan sus claves privadas y puede usarlos para recuperar sus fondos.
Encantado de ayudarle. Si mi respuesta cumple con sus requisitos, márquela como respuesta aceptada. Gracias
¡Hecho! Abhishek, tengo una pregunta rápida para usted. Mnemonic Seed se creará después de que se cree una nueva billetera. ¿Está bien? Y si es así, ¿significa que la semilla mnemotécnica creada representará esta billetera? ¿O necesito hacer algo para vincular la semilla con mi billetera?
Porque según mi investigación hasta ahora, la mnemotecnia se genera a partir de una cadena aleatoria. Así que estoy confundido sobre cómo representará mi billetera.
Vea la variable xpriv en el código anterior. Tiene una clave privada HD. A partir de esta clave privada se crean direcciones y claves públicas. Use solo estas direcciones para transferir fondos. Por lo tanto, debe 1. Generar mneomincs 2. Obtener sus claves privadas como se muestra arriba. Luego, una vez que tenga las claves privadas de HD, genere direcciones y claves públicas de HD utilizando las funciones incluidas en la respuesta.