Ethereumアドレスの生成方法


簡書より
btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf eth address: 0xd91c747b4a76B8013Aa336Cbc52FD95a7a9BD3D9
イーサー坊でアドレスを生成する方法はビットコインと似ており、秘密鍵->公開鍵->アドレスでもあり、イーサー坊は公開鍵->アドレスで簡略化されているだけだ.イーサー坊はSecp 256 k 1楕円曲線を用いて秘密鍵,公開鍵を得,ビットコインも同様の楕円曲線アルゴリズムを用いた.公開鍵を取得した後、公開鍵に対してKeccak-256ハッシュ演算を行い、最後の40ビット16進文字を取り、イーサー坊アドレスを取得する.
イーサー坊アドレスとビットコインアドレスを生成するには、ネットワークに接続する必要はありません.
python code生成イーサ坊アドレス
pythonまずクラスライブラリpip install ecdsa pip install pysha3をインストール
import binascii
import sha3
from ecdsa import SigningKey, SECP256k1

priv = SigningKey.generate(curve=SECP256k1) #    
pub = priv.get_verifying_key() #    

keccak = sha3.keccak_256()
keccak.update( pub.to_string()) #keccak_256    
address = "0x" + keccak.hexdigest()[24:]

priv_key = binascii.hexlify( priv.to_string())
pub_key = binascii.hexlify( pub.to_string())

print("Private key: " + priv_key.decode() )
print("Public key:  " + pub_key.decode() )
print("Address:     " + address)

# Address: 0xd38d3c226d0a86ce9932608edac39163fcbc550e

同じ秘密鍵でビットコインとイーサー坊を管理する
イーサー坊がSecp 256 k 1楕円曲線を用いて秘密鍵、公開鍵を得る以上、ビットコインも同じ楕円曲線アルゴリズムを用いる.
では、Bitcoinアドレスがどのように生成された公開鍵04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429dを使用して、イーサー坊アドレスを生成します.この公開鍵はopenSSLによって得られる非圧縮公開鍵であり、エーテル坊はこのようなタイプの公開鍵を使用する必要はなく、トップの04を削除すればよい.
import sha3
import binascii

_openssl_pub_key= "04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d"

_pub_key = _openssl_pub_key[2:]
_pub_hex = binascii.unhexlify(_pub_key)

keccak = sha3.keccak_256()
keccak.update(_pub_hex)

address = "0x" + keccak.hexdigest()[24:]

print address #0x9156a7cdab767ffe161ed21a0cb0b688b545b01f

これは何を説明しますか?私は完全に同じ秘密鍵を使って、ビットコインアドレスとエーテル坊アドレスをそれぞれ生成しました.この2つの全く異なるアドレスは同じ秘密鍵を使っています.
以太坊アドレス0 x 9156 a 7 cdab 767 ffe 161 ed 21 a 0 cb 0 b 688 b 545 b 01 fとビットコインアドレス14 xfJr 1 DArtYR 156 XBs 28 FoYk 6 sQqirT 2 sの秘密鍵は意外にも同じである.これは資産管理に大きな便利さをもたらしたが、秘密鍵が漏れた場合、2つの資産が盗まれる可能性がある.管理が一時的にさっぱりして,すべての火葬場を漏らした.
参照先:http://blog.luoyuanhang.com/2...https://www.jianshu.com/p/efc...https://www.bilibili.com/vide...https://zhuanlan.zhihu.com/p/...https://www.myetherwallet.com/