Algorithmus, um vom Seed zu 20 (oder mehr) Adressen zu gelangen

Ich lese gerade den Electrum-Quellcode, um herauszufinden, wie man vom Startwert (12 Wörter) zu Adressen (im üblichen Format) gelangt. Hat jemand das Gesamtbild dieses Prozesses im Auge?

Genauer gesagt suche ich nach Python-Code (standalone, aus Electrum lauffähig), der dies erzeugen kann.

  1. Nehmen Sie einen Samen s(kann 12 Wörter aus dem 2048-Wörter-Wörterbuch sein, ist aber nicht notwendig)

  2. Nehmen wir an, sist ein gültiger Startwert (dh is_new_seed(s)ist True, das bedeutet, dass bh2u(hmac_sha_512(b"Seed version", s.encode('utf8')))das Präfix hat '01'); Code für is_new_seed hier.

  3. Sollten wir für unser Ziel (Adressen abrufen) zuerst den privaten Schlüssel aus erstellen s? Wie?

oder

  1. Sollten wir einen öffentlichen Hauptschlüssel aus erstellen s? Wie?

  2. Wie erstelle ich bei 3. oder 4. die 20 ersten öffentlichen Adressen?


Eingabebeispiel: s = 'x8'(ja, dies ist ein gültiger (unsicherer, weil zu einfacher) Seed, Sie können ihn in Electrum ausprobieren - Erstellen Sie eine Brieftasche aus vorhandenem Seed )

Ausgabebeispiel:

1LNvv5h6QHoYv1nJcqrp13T2TBkD2sUGn1
1P6rnf6VUfSUUWES6wTyjfx9dTFqXdrjLM
1AQ6TNtD2eEdQjwpVpkPSdcvJiiLKziKZz
...
Nicht genau @fredsben, die Ausgabe sollte (öffentliche) Adressen sein, keine privaten Schlüssel. Oder können diese Adressen vielleicht leicht aus pvt-Schlüsseln abgeleitet werden?
Ich denke, dieses Tool zeigt private Schlüssel, öffentliche Schlüssel und Adressen an. Die privaten Schlüssel werden aus dem Seed generiert. Die öffentlichen Schlüssel werden aus den privaten Schlüsseln generiert. Die Adressen werden aus den öffentlichen Schlüsseln generiert. Also ja, Adressen können aus privaten Schlüsseln abgeleitet werden.

Antworten (1)

Electrum verwendet BIP 32, um von einem Startwert zu privaten und öffentlichen Schlüsseln zu gelangen. Aus diesen Schlüsseln werden dann Adressen abgeleitet. Öffentliche Schlüssel werden auch von den privaten Schlüsseln abgeleitet, außer im Fall von Watch-Only-Wallets.

Die vollständige BIP 32-Spezifikation ist hier verfügbar .