Elliptische Schlüsselkrytographie (ECC) zur Generierung privater und öffentlicher Schlüssel

Ich möchte ein öffentlich-privates Schlüsselpaar mit ECC generieren und es dann in Ethereum importieren, um ein Konto über Geth zu erstellen. Ich arbeite auf einem Windows-Rechner.

Welche Schritte muss ich dafür befolgen?

Ich glaube, OpenSSL kann in einem solchen Fall verwendet werden. Wie kann ich damit fortfahren?

Es gibt einen Blog-Beitrag, der genau das ist, wonach Sie suchen. Erstellen Sie eine vollständige Ethereum-Wallet, ein Schlüsselpaar und eine Adresse von Vincent Kobel.

Antworten (1)

Hier ist ein High-Level-Python-Beispiel, wie man einen privaten und öffentlichen Schlüssel (Adresspaar) von Ethereum generiert.

Sie können den privaten Schlüssel mit der personal.importRawKey(hex_key, password)JSON-RPC-API importieren.

Der Großteil der Ethereum-Software verwendet die secp256k1-Bibliothek, die auch in Bitcoin verwendet wird. Für andere Programmiersprachen beziehen Sie sich bitte auf High-Level-Ethereum-Bibliotheken oder Low-Level-secp256k1-Bindungen.

import bitcoin
from secp256k1 import PrivateKey

def get_ethereum_address_from_private_key(private_key_seed_ascii: str) -> str:
  """Generate Ethereum address from a private key.

  https://github.com/ethereum/pyethsaletool/blob/master/pyethsaletool.py#L111

  :param private_key: Any string as a seed, the actual private key will be sha3 hash of this seed. Note that this is not any mnemonic compatible way of generating private keys from seeds.

  :return: 0x prefixed hex string
  """
    priv = utils.sha3(private_key_seed_ascii)
    pub = bitcoin.encode_pubkey(bitcoin.privtopub(priv), 'bin_electrum')
    return "0x" + binascii.hexlify(sha3(pub)[12:]).decode("ascii")
Danke für die Hilfe! In meinem Fall darf ich jedoch nur OpenSSL verwenden.