Как генерируется мастер-сид с использованием Bitcore API?

Может кто-нибудь объяснить, как получить Master Seed, когда новые ключи HD создаются с использованием API Bitcore?

Моя цель — внедрить службу кошелька в свое приложение, используя API-интерфейсы Bitcore.

Обратитесь по этой ссылке здесь

Пожалуйста, уточните свой вопрос. Вы просите получить закрытые ключи HD из недавно сгенерированного открытого ключа или адреса? Если так, то это невозможно. Какую конкретную функцию в Bitcore API вы имеете в виду?
Привет, Абхишек, нет. Я хочу внедрить HD-кошельки в свое приложение. Насколько я понимаю, для каждого нового кошелька должен быть мастер-сид. Каждый кошелек — это просто пара закрытого и открытого ключа HD, верно? И мы можем создать больше открытых ключей (адресов), используя закрытый ключ HD. Мой вопрос в том, как я получу этот главный сид в первую очередь?
Вы говорите о мнемонической фразе из 12 или 24 слов или фразе восстановления?
Я был бы очень признателен, если бы вы также упомянули разницу между ними в своем ответе. Я хочу дать своим пользователям мастер-сиды для их кошельков, чтобы в будущем, если они потеряют свои кошельки, они могли восстановить их, используя мастер-сид, который у них есть.
Дайте им мнемонику. Достаточно. Они могут восстановить свои средства в любом стандартном кошельке, если у них есть мнемоники, представляющие правильные закрытые ключи их кошелька.

Ответы (1)

Если вы говорите о мнемоническом семени, используйте это -

Установить биткор-мнемонику

npm install bitcore-mnemonic
bower install bitcore-mnemonic

Затем используйте его для создания мнемонического семени -

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();

Если вы просто хотите сгенерировать приватный API из биткора, вы можете использовать эту функцию -

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

Обратите внимание, что нет правила для создания закрытого ключа. Закрытый ключ — это просто случайная строка. Это может быть даже ваше имя или целая статья. Но вы должны создать закрытый ключ, который по своей природе является «случайным». Также никогда не используйте функции языка программирования, такие как хэш md5 или что-то еще, для генерации закрытого ключа, потому что они не являются действительно случайными.

Однако Bitcore API предоставляет простой способ создания закрытого ключа с использованием вышеуказанного метода. Оттуда вы можете действовать как обычно.

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;
Привет Абхишек, спасибо за ваш ответ. Не могли бы вы также подтвердить, используется ли мнемоническое семя во время восстановления потерянных кошельков?
Да, вы можете легко использовать мнемоники, фактически, в любом стандартном кошельке, таком как trezor, чтобы вернуть свои средства. Мнемоники фактически создаются из самих приватных ключей. Вы можете узнать о процессе здесь — github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc Когда вы используете var code = new Mnemonic(Mnemonic.Words.ENGLISH); Bitcore API выбирает для вас закрытый ключ и генерирует из него мнемонику, выполняя всю тяжелую работу за вас. Таким образом, вы можете думать, что эти мнемоники представляют ваши закрытые ключи, и вы можете использовать их для восстановления своих средств.
Рад помочь вам. Если мой ответ соответствует вашему требованию, отметьте его как принятый ответ. Спасибо
Сделанный! Абхишек, у меня к тебе небольшой вопрос. Мнемоническое семя будет создано после создания нового кошелька. Это правильно? И если да, значит ли это, что созданное мнемоническое семя будет представлять этот кошелек? Или мне нужно что-то сделать, чтобы связать сид с моим кошельком??
Потому что, согласно моим исследованиям, мнемоника генерируется из случайной строки. Поэтому я не понимаю, как это будет представлять мой кошелек.
См. переменную xpriv в приведенном выше коде. Он содержит закрытый ключ HD. Из этого закрытого ключа создайте открытые ключи и адреса. Используйте только эти адреса для перевода средств. Итак, вам нужно 1. Сгенерировать мнемонику 2. Получить от нее свои приватные ключи, как показано выше. Затем, когда у вас есть закрытые ключи HD, сгенерируйте адреса и открытые ключи HD, используя функции, описанные в ответе.