Was ist der einfachste Weg, mnemonische Phrasen in eine Keystore-Datei zu konvertieren?

Ich habe ein Konto mit Metamask erstellt - es gibt eine Sicherungsphrase mit 12 Wörtern.

Ich möchte dieses Konto in Ethereum Wallet importieren.

Ich glaube, dass ich dazu eine keystoreDatei in ein spezielles Verzeichnis legen muss.

Was ist der einfachere / bequemste Weg, um 12-Wörter-Mnemonik-Phrasen in umzuwandeln keystore?


Etwas Google-Suche: https://www.reddit.com/r/ethereum/comments/5zzwh0/can_mnemonics_currently_be_used_to_create_a_utf/

Es wäre schön, eine Krypto-Testsuite zu haben, die es Leuten wie mir ermöglicht, mit den Schlüsseln zu experimentieren / sie besser zu verstehen / zu spielen.

Verwandt: Metamask-Konto in JSON-Datei exportieren

Ich habe eine Antwort auf die von Ihnen verlinkte Frage hinzugefügt .

Antworten (1)

Es muss ein besserer Weg sein, aber hier ist, wie ich es gemacht habe.

Zunächst ist es wichtig zu verstehen, dass die mnemonische Phrase verwendet werden kann, um eine unendliche Anzahl privater Schlüssel zu generieren, und das JSON-Keystore-Format speichert nur einen privaten Schlüssel. Das bedeutet, dass Sie für jeden privaten Schlüssel, den Sie in die Ethereum Wallet importieren möchten, das folgende Verfahren durchführen müssen.

Zuerst müssen Sie den privaten Schlüssel für eine bestimmte Adresse finden:

  1. Gehen Sie zu MyEtherWallet.com
  2. Wählen Sie das entsprechende Netzwerk in der oberen rechten Ecke aus
  3. Klicken Sie auf „Wallet-Informationen anzeigen“.
  4. Wählen Sie 'Mnemonische Phrase'
  5. Fügen Sie Ihre Mnemonik ein/geben Sie sie ein
  6. Geben Sie Ihr Passwort ein und entsperren Sie das Konto
  7. Wählen Sie den richtigen Ableitungspfad aus. Im Fall von MetaMask sollte dies die erste sein: m/44'/60'/0'/0
  8. Wählen Sie die gewünschte Adresse aus
  9. Sie sollten Ihren privaten Schlüssel unter dem Feld „Privater Schlüssel (unverschlüsselt)“ sehen, nachdem Sie auf das „Auge“-Symbol geklickt haben

Jetzt, da Sie den privaten Schlüssel haben, müssen Sie ihn in die JSON Keystore-Datei umwandeln. Sie können dies mit geth tun, aber in meinem Fall habe ich eine Javascript-Bibliothek namens ethereumjs-wallet wie folgt verwendet:

const fs = require("fs")
const wallet = require("ethereumjs-wallet")

const pk = new Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', 'hex') // replace by correct private key
const account = wallet.fromPrivateKey(pk)
const password = 'something' // will be required to unlock/sign after importing to a wallet like MyEtherWallet
const json = JSON.stringify(account.toV3(password))

// writes to a file
const address = account.getAddress().toString('hex')
const file = `UTC--${new Date().toISOString().replace(/[:]/g, '-')}--${address}`
fs.writeFileSync(file, content)

Um schließlich in Ethereum Wallet zu importieren, kopieren Sie die Datei in das Keystore-Verzeichnis und starten Sie das Wallet neu. In macOS befindet es sich unter /Users//Library/Ethereum//keystore

Hoffe jemand hat da draußen eine bessere Alternative.

Sie können den privaten Schlüssel auch von mnemonic erhalten, indem Sie Folgendes verwenden: iancoleman.io/bip39