В чем разница между закрытыми/открытыми ключами и адресами Биткойн и Эфириум?

Я пытаюсь найти библиотеку для создания кошельков Ethereum в веб-среде (PHP, JS). Я нашел библиотеку Keytheremjs, но если использовать ее в браузере, этот инструмент очень медленный. Но я нашел много простых PHP-библиотек для генерации ключей для биткойна.

Вопросы:

  • В чем разница в шифровании закрытых/открытых ключей и адресов Биткойн и Эфириум?
  • Могу ли я использовать биткойн-ключи для Ethereum?

Ответы (2)

Да и нет.

  • Нет — биткойн-адрес нельзя напрямую использовать в Ethereum, и наоборот.
  • Да, закрытый ключ биткойна — это, по сути, случайное 256-битное число (в определенном диапазоне, см. биткойн-вики ). А соответствующий открытый ключ закрытого ключа — это, по сути, координаты x и y точки на эллиптической кривой. Биткойн и Эфириум используют одну и ту же эллиптическую кривую (secp256k1), поэтому и в Биткойне, и в Эфириуме можно использовать одну и ту же пару закрытый/открытый ключ. Однако шаги по преобразованию открытого ключа в адрес различаются для биткойнов и эфириума .

Просто чтобы добавить к очень хорошему принятому ответу:

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>)**
  • *Необязательная контрольная сумма EIP-55 .
  • **Используйте последние 20 байт.