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.
Nehmen Sie einen Samen s
(kann 12 Wörter aus dem 2048-Wörter-Wörterbuch sein, ist aber nicht notwendig)
Nehmen wir an, s
ist 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.
Sollten wir für unser Ziel (Adressen abrufen) zuerst den privaten Schlüssel aus erstellen s
? Wie?
oder
Sollten wir einen öffentlichen Hauptschlüssel aus erstellen s
? Wie?
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
...
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 .
frеdsbend
Basj
frеdsbend