Hi Guest

More contents, please log on!

Bitmere.com 区块链技术 Content
btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf

eth address: 0xd91c747b4a76B8013Aa336Cbc52FD95a7a9BD3D9

以太坊生成地址的方式跟比特币比较类似,也是 私钥 -> 公钥 -> 地址,以太坊只是在公钥 -> 地址做了简化。

以太坊使用Secp256k1椭圆曲线得到私钥、公钥,比特币使用的也是相同的椭圆曲线算法。

得到公钥后,对公钥做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

来个骚操作,用同一份私钥来管理比特币与以太坊

既然以太坊使用Secp256k1椭圆曲线得到私钥、公钥,比特币使用的也是相同的椭圆曲线算法。

那我们就用 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

这说明啥?我用完全相同的私钥,分别生成了比特币地址与以太坊地址,这两个完全不一样的地址用的是同一个私钥。

以太坊地址 0x9156a7cdab767ffe161ed21a0cb0b688b545b01f

与比特币地址 14xfJr1DArtYR156XBs28FoYk6sQqirT2s的私钥竟然是相同的。

这给资产管理带来很大方便,但如果一份私钥泄露了,2份资产都有可能被盗。
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
You have to log in before you can reply Login | 立即注册

Points Rules

Write the first review

zmhg799417 初中生
  • Follow

    0

  • Following

    0

  • Articles

    16

Promoted