元宇宙非小号金色财经交流群社区官网

如何通过私钥创建以太坊钱包地址?

浏览:1573|时间:2021-12-20 15:00:38

通过私钥来获得比特币钱包地址的具体流程有些复杂,因此我们会描述简化后的版本。我们需要使用一个哈希函数去获得公钥,还需要使用另一个函数去获得地址。

现在,让我们开始吧。

公钥

这部分内容和之前讨论比特币的文章中所说的相同,所以如果你已经读完了,那么就可以跳过(除非你想要复习一下)。

首先,我们需要在私钥上使用 ECDSA,即椭圆曲线数字签名算法。椭圆曲线是通过 y² = x³ + ax + b 公式得出的,其中 a 和 b 可以自定义。椭圆曲线家族有很多知名并且广泛应用的案例。比特币使用了 secp256k1 曲线,关于椭圆曲线密码学,如果你想了解更多,可以参考此文章。

以太坊使用了同样的椭圆曲线,secp256k1,因此对于比特币和以太坊来说,获得公钥的流程是相同的。

对私钥作了 ECDSA 运算之后,我们得到了 64 字节的整数,这是由两个 32 字节的整数串联组成,代表了椭圆曲线上某个点的 X 值和 Y 值。

在 Python 程序中,代码显示如下:

private_key_bytes = codecs.decode(private_key, ‘hex’)

# Get ECDSA public key

key = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1).verifying_key

key_bytes = key.to_string()

key_hex = codecs.encode(key_bytes, ‘hex’)

注意:从上面的代码可以看出,我使用了 ecdsa 模块并通过编码器解码了私钥。这样写更多是因为 Python 的关系,而与算法本身无关,为免误解,让我来好好解释一下。

如何通过私钥创建以太坊钱包地址?

Python 语言中,至少有两种数据类型可以保存私钥和公钥:“str”和“bytes”。前者对应的是 string(字符串),后者则是 byte array(数值)。Python 语言中的密码学运算只能对“bytes”类操作,将 byte 型数据作为输入,并且将输出作为结果。

但是,这里面有个小问题:作为字符串的“4f3c”和作为 byte array 的 4f3c 是不等同的,string 等于 byte array 和两个元素 O< 的结合。codecs.decode 方法就是将字符串转换为 byte array。本文中使用的密码学操作都要进行这一步骤。

钱包地址

一旦获得公钥,我们就可以计算出钱包地址,和比特币不同,以太坊在主网和所有测试网都有相同的地址。当用户发起转账和签名的时候,他们需要选择相应的网络。

为了通过公钥得出地址,我们需要做的就是在公钥上应用 Keccak-256 加密算法,然后拿出结果的后 20 个字节,这样就可以了。整个过程不需要其他的哈希函数,无需 Base58 编码,也不用其他任何转换,你唯一需要做的事情就是在地址的开头添加“0x”。

以太坊 以太坊钱包 地址 私钥 钱包

  • 以太坊钱包备份方式有几种?以太坊钱包怎么安装?

    以太坊钱包备份方式有几种?以太坊钱包怎么安装?

    2021-06-21 12:10:37

    由于钱包的形状多种多样(实质一样),因此备份数据的方法也一样多一点,但最后的目地:防盜,防丢,分散化风险性。 防盜:分离出来备份数据,倘若keystore或登陆密码失窃,但相匹配的登陆密码和keysto...

  • 比特币qt钱包地址比特币私钥与钱包地址的关系

    比特币qt钱包地址比特币私钥与钱包地址的关系

    2022-04-02 15:50:05

    为了深入了解比特币的交易部分,我们需要掌握大量的密码知识:公钥、私钥、哈希、对称加密、非对称加密、签名等。那么,普通用户最关心的是用户需要小心保,不能泄露给外部世界,什么可以泄露给外部世界呢?接下来,让我们从钱包的地址开...

  • 私钥泄露导致1.6亿天价损失,关于私钥你需要知道这些事

    私钥泄露导致1.6亿天价损失,关于私钥你需要知道这些事

    2022-09-29 22:55:54

    赛博朋克的现代密码学,可不是敲玻璃「有内鬼,终止交易」那么简单。 两天前,加密做市商Wintermute遭到黑客攻击。由于使用Profanity生成以太坊地址的方式有漏洞,造成了私钥的泄露,1.6亿美元不翼而飞。 早...

  • 比特币钱包详细地址、私钥和公钥有哪些?

    比特币钱包详细地址、私钥和公钥有哪些?

    2021-12-16 12:00:26

    据欧易比特币市场行情结果显示,截至文中编写時间,比特币价钱49,142.30美金,日内涨跌幅0.96%。尽管比特币价钱相对性昨日有一定的降低,但市场前景仍然值得期待的,吸引住了诸多初学者新手进到比特币销售市场。于初学者来...

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( zztaobao@vip.qq.com )