主页 > imtoken-冷钱包 > 以太坊地址和公钥_什么是以太坊地址
以太坊地址和公钥_什么是以太坊地址
以太坊生成地址的方式和比特币类似,也是私钥->公钥->地址,而以太坊只是简化了公钥->地址。
以太坊使用Secp256k1椭圆曲线获取私钥和公钥,比特币使用相同的椭圆曲线算法。
得到公钥后,对公钥进行Keccak-256哈希运算以太坊地址是什么,然后取最后40个16进制字符,得到以太坊地址。
生成以太坊地址和比特币地址不需要连接网络
###python代码生成以太坊地址
Python首先安装类库
pip 安装 ecdsa
pip 安装 pysha3
导入binascii
导入 sha3
从 ecdsa 导入 SigningKey,SECP256k1
priv = SigningKey.generate(curve=SECP256k1) #生成私钥
pub = priv.get_verifying_key() #生成公钥
keccak = sha3.keccak_256()
keccak.update( pub.to_string()) #keccak_256 哈希运算
地址 = "0x" + keccak.hexdigest()[24:]
priv_key = binascii.hexlify( priv.to_string())
pub_key = binascii.hexlify(pub.to_string())
print("私钥:" + priv_key.decode() )
print("公钥:" + pub_key.decode() )
print("地址:" + 地址)
# 地址:0xd38d3c226d0a86ce9932608edac39163fcbc550e
复制代码
来个秀操作,用同一个私钥管理比特币和以太坊
由于以太坊使用Secp256k1椭圆曲线获取私钥和公钥,比特币也使用相同的椭圆曲线算法。
04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d地址,生成以太坊地址,
该公钥是通过openSSL获得的未压缩公钥。 以太坊不需要使用这种类型的公钥以太坊地址是什么,只要去掉第一个04即可。
导入 sha3
导入binascii
_openssl_pub_key=“04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec9eab42”
_pub_key = _openssl_pub_key[2:]
_pub_hex = 二进制文件。 unhexlify(_pub_key)
keccak = sha3.keccak_256()
凯卡。 更新(_pub_hex)
地址 = "0x" + keccak.hexdigest()[24:]
打印地址#0x9156a7cdab767ffe161ed21a0cb0b688b545b01f
复制代码
这是什么意思? 我使用完全相同的私钥分别生成了比特币地址和以太坊地址。 这两个完全不同的地址使用同一个私钥。
以太坊地址0x9156a7cdab767ffe161ed21a0cb0b688b545b01f和比特币地址14xfJr1DArtYR156XBs28FoYk6sQqirT2s的私钥原来是一样的。
这给资产管理带来了极大的便利,但是如果泄露了一个私钥,那么两个资产都可能被盗。 管理仓促,火葬场尽数泄密。