Was ist der Unterschied zwischen privaten/öffentlichen Schlüsseln und Adressen von Bitcoin und Ethereum?

Ich versuche, eine Bibliothek zum Erstellen von Ethereum-Wallets in einer Webumgebung (PHP, JS) zu finden. Ich habe Keytheremjs lib gefunden, aber wenn es in einem Browser verwendet wird, ist dieses Tool sehr langsam. Aber ich habe viele einfache PHP-Bibliotheken zum Generieren von Schlüsseln für einen Bitcoin gefunden.

Fragen:

  • Was ist der Unterschied bei der Verschlüsselung von privaten/öffentlichen Schlüsseln und Adressen von Bitcoin und Ethereum?
  • Kann ich Bitcoin-Schlüssel für Ethereum verwenden?

Antworten (2)

Ja und nein.

  • Nein - eine Bitcoin-Adresse kann nicht direkt in Ethereum verwendet werden und umgekehrt.
  • Ja - darunter ist ein privater Bitcoin-Schlüssel im Wesentlichen eine zufällige 256-Bit-Zahl (in einem bestimmten Bereich, siehe Bitcoin-Wiki ). Und der entsprechende öffentliche Schlüssel des privaten Schlüssels sind im Wesentlichen die x- und y-Koordinaten eines Punktes auf einer elliptischen Kurve. Bitcoin und Ethereum verwenden beide dieselbe elliptische Kurve (secp256k1), daher kann sowohl in Bitcoin als auch in Ethereum dasselbe private/öffentliche Schlüsselpaar verwendet werden. Die Schritte zum Umwandeln eines öffentlichen Schlüssels in eine Adresse sind jedoch bei Bitcoin und Ethereum unterschiedlich .

Nur um die sehr gut akzeptierte Antwort zu ergänzen:

Coin     | Address size        | Address encoding | Address creation
---------+---------------------+------------------+------------------ 
Bitcoin  | 160 bits (20 bytes) | Base58Check      | RIPEMD160(SHA256(<public_key>)
Ethereum | 160 bits (20 bytes) | HEX*             | KECCAK256(<public_key>)**
  • *Optionale EIP-55- Prüfsumme.
  • **Verwenden Sie die letzten 20 Bytes.