Wie wird Master-Seed mit der Bitcore-API generiert?

Kann jemand bitte erklären, wie man Master Seed erhält, wenn ein neuer HD-Schlüssel mit Bitcore-APIs erstellt wird?

Mein Ziel ist es, den Wallet-Service in meiner Anwendung mithilfe von Bitcore-APIs zu implementieren.

Verweisen Sie auf diesen Link hier

Bitte präzisieren Sie Ihre Frage. Möchten Sie private HD-Schlüssel von einem neu generierten öffentlichen Schlüssel oder einer Adresse ableiten? Wenn ja, ist es nicht möglich. Auf welche spezifische Funktion in der Bitcore-API beziehen Sie sich?
Hallo Abhishek, nein. Ich möchte HD Wallets in meine Anwendung implementieren. Nach meinem Verständnis muss es für jedes neue Wallet einen Master Seed geben. Jede Brieftasche ist einfach ein Paar aus privatem und öffentlichem HD-Schlüssel, richtig? Und wir können mit dem privaten HD-Schlüssel mehr öffentliche Schlüssel (Adressen) erstellen. Meine Frage ist, wie bekomme ich diesen Master Seed überhaupt?
Sprechen Sie von 12- oder 24-Wörter-Mnemonik-Seed oder Recovery-Phrase?
Ich würde mich sehr freuen, wenn Sie in Ihrer Antwort auch den Unterschied zwischen ihnen erwähnen könnten. Ich möchte meinen Benutzern Master-Seeds für ihre Brieftaschen geben, damit sie sich in Zukunft mit dem Master-Seed, das sie besitzen, erholen können, wenn sie ihre Brieftaschen verlieren.
Geben Sie ihnen die Mnemonik. Das ist genug. Sie können ihr Geld in jeder Standard-Wallet zurückerhalten, wenn sie über die Mnemonik verfügen, die die richtigen privaten Schlüssel ihrer Wallet darstellen.

Antworten (1)

Falls Sie über mnemonische Samen sprechen, verwenden Sie dies -

Installieren Sie bitcore-mnemonic

npm install bitcore-mnemonic
bower install bitcore-mnemonic

Verwenden Sie es dann, um mnemonischen Seed zu generieren -

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

Wenn Sie nur eine private Bitcore-API generieren möchten, können Sie diese Funktion verwenden -

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

Bitte beachten Sie, dass es keine Regel zum Generieren eines privaten Schlüssels gibt. Ein privater Schlüssel ist nur eine zufällige Zeichenfolge. Es könnte sogar Ihr Name oder ein ganzer Artikel sein. Sie müssen jedoch einen privaten Schlüssel erstellen, der „zufällig“ ist. Verwenden Sie auch niemals Programmiersprachenfunktionen wie MD5-Hash oder ähnliches, um einen privaten Schlüssel zu generieren, da sie nicht wirklich zufällig sind.

Die Bitcore-API bietet jedoch eine einfache Möglichkeit, einen privaten Schlüssel mit der oben genannten Methode zu generieren. Von dort aus können Sie wie gewohnt fortfahren.

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;
Hallo Abhishek, danke für deine Antwort. Können Sie bitte auch bestätigen, ob mnemonischer Seed zum Zeitpunkt der Wiederherstellung von Brieftaschen verwendet wird, wenn sie verloren gehen?
Ja, Sie können tatsächlich Mnemonics in jeder Standard-Wallet wie Trezor verwenden, um Ihr Geld zurückzuerhalten. Mnemonics werden tatsächlich aus privaten Schlüsseln selbst erstellt. Sie können hier mehr über den Prozess erfahren – github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc Wenn Sie var code = new Mnemonic(Mnemonic.Words.ENGLISH); bitcore api wählt den privaten Schlüssel für Sie aus und generiert daraus die Mnemonik, die die ganze harte Arbeit für Sie erledigt. Sie können also denken, dass diese Mnemonik Ihre privaten Schlüssel darstellt, und Sie können sie verwenden, um Ihr Geld zurückzugewinnen.
Froh dir zu helfen. Wenn meine Antwort Ihren Anforderungen entspricht, markieren Sie sie bitte als akzeptierte Antwort. Danke
Erledigt! Abhishek, ich habe eine kurze Frage an dich. Mnemonic Seed wird erstellt, nachdem eine neue Brieftasche erstellt wurde. Ist das richtig? Und wenn ja, bedeutet das, dass der erstellte mnemonische Seed diese Brieftasche repräsentiert? Oder muss ich etwas tun, um den Seed mit meiner Brieftasche zu verknüpfen?
Denn nach meinen bisherigen Recherchen wird Mnemonik aus einer zufälligen Zeichenfolge generiert. Ich bin also verwirrt, wie es meine Brieftasche darstellen wird.
Siehe die xpriv-Variable im obigen Code. Es enthält einen privaten HD-Schlüssel. Erstellen Sie aus diesem privaten Schlüssel öffentliche Schlüssel und Adressen. Verwenden Sie nur diese Adressen, um Geld zu überweisen. Sie müssen also 1. Mneomincs generieren 2. Ihre privaten Schlüssel wie oben gezeigt daraus abrufen. Sobald Sie über private HD-Schlüssel verfügen, generieren Sie Adressen und öffentliche HD-Schlüssel mithilfe der in der Antwort beschriebenen Funktionen.