币圈知识之如何用比特币私钥创建以太坊地址

  币圈知识之如何用比特币私钥创建以太坊地址,在区块链的钱包中,私钥可以产生出公钥,而反过来要想从公钥推算出私钥则是不可能的。用公钥加密的信息可以用私钥来解密,而用私钥签名的信息则由公钥来验证,验证通过后才能证明该信息确实为私钥持有人所发布。以 BTC 为例的话,在这个过程中最重要的角色的就是” 椭圆曲线加密算法”。

  有些人会以为 BTC 跟 ETH 是不同的链所以用的椭圆曲线并不相同,但事实上两个链使用的都是相同的 secp256k1 曲线,所以获得公钥的方式完全一样,差别在从公钥生成地址的过程,接下来我们会先介绍如何安全的生成私钥,然后说明 ETH 如何从地址验证由私钥生成的公钥。

  私钥的规格

  私钥必须为正整数且必须小于 secp256k1 曲线的阶 (secp256k1 的阶为FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141),每个点可由一组 256位代表,而 256 位正好是 32 个字节,所以我们需要提供这个曲线算法 32 个字节的数据。

  换句话说,BTC 及 ETH的私钥都是一组 32 字节的字符串,但它也可以是二进制字符串、Base64字符串、WIF 密钥、助记码( mnemonic phrase )、十六进制字符串。

  安全的私钥生成

  既然都知道他们使用的是同一条曲线,那我们其实就可以使用 BTC 社群比较信任的 bitaddress.org 来生成我们的私钥,(用 MEW 或 Metamask 也都是不错的选择,至少他可以不是一串裸露在外的私钥),但如果有良好安全意识的话,我们甚至不应该用浏览器来生成我们重要的私钥 (可以看看 Reddit 上的讨论),所以我们将用 python 设计一个更简单的 bitaddress。

  了解 Bitaddress原理

  Bitaddress 做了三件事情。首先,初始化字节数组,然后尝试从用户的计算机获得尽可能多的熵,根据用户的输入填满数组,最后生成私钥。

  Bitaddress 使用 256 字节的数组来存储熵。这个数组是被循环覆写的,所以当数组第一次填满时,索引变为零,然后覆写过程再次开始。

  程序从 window.crypto 生成一个 256 字节的数组。然后写入一个时间戳来获得 4 个字节的熵。在这之后,它获得一些其他的数据包括屏幕大小,时区,浏览器扩充套件,地区等。来获得另外 6 个字节。

  初始化后,使用者持续输入来覆写初始字节。当移动光标时,程序会写入光标的位置。当按下按钮时,程序会写入按下的按钮的字符代码。

  最后,bitaddress 使用累积的熵来生成私钥。bitaddress 使用名为 ARC4 的 RNG算法。用当前时间以及收集的熵初始化ARC4,然后逐个取得字节,总共取 32 次。

  初始化我们自己的种子池

  我们从加密 RNG 和时间戳中写入一些字节。__seed_int 以及__seed_byte是将熵插入池的数组中的两个函式,而我们使用secrets生成我们的随机数。

  由输入填充种子池

  这里我们先写入一个时间戳,然后写入用户输入的字符串。

  生成私钥

  首先使用我们的池生成 32 位的数字,并确保我们的私钥在范围内(1, CURVE_ORDER),然后为了方便,我们转为十六进制并删除 0x 的部分。

  生成ETH公钥

  将我们刚刚的私钥代入椭圆曲线,我们会得到一个 64 字节的整数,它是两个 32 字节的整数,代表椭圆曲线上连接在一起的 X 点和 Y 点。

  校验和 (ERC-55)

  比特币通过将公钥哈希后并获得回传值的前 4 个字节来创建校验和,如果不添加校验和则无法获得有效地址。

  但以太坊一开始并没有校验和机制来验证公钥的完整性。直到 Vitalik Buterin 在 2016 年时引入了校验和机制,也就是 EIP-55,并且后来被各家钱包和交易所采用。

  将校验和添加到以太坊钱包地址使其区分大小写

  首先,获得地址的 Keccak-256 哈希值。需要注意的是,将此地址传递至哈希函数时不能有0x的部分。

  其次,依序迭代初始地址的字节。如果哈希值的第 i 个字节大于或等于 8,则将第 i 个地址的字符转换为大写,否则将其保留为小写。

  最后,在回传的字符串开头加回0x。如果忽略大小写,校验和地址会与初始地址相同。但使用大写字母的地址让任何人都能检验地址是否有效。

  此校验和有几个好处:

  1. 向后兼容许多接受混合大小写的十六进制解析器,将来也能轻松引入;

  2. 保持长度为 40 个字符;

  3. 平均每个地址将有 15 个校验位,如果输入错误,随机生成的地址意外通过检查的净概率将为0.0247%,虽然不如 4 字节的校验代码好,但比 ICAP 提高了约 50 倍;

  总结

  为以太坊创建钱包地址相较于比特币简单得多。我们需要做的就只是将私钥丢到椭圆曲线,然后再把得到的公钥丢到Keccak-256,最后撷取该哈希值的后面 20 个字节。

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/btc/148680.html

(0)
句子百科句子百科
上一篇 2022年 12月 26日
下一篇 2022年 12月 26日

相关推荐

  • GNT币怎么样?

    golem,总量10亿,流通9.6亿,已经上了非常多交易所有几十家,大的小的都有。Golem是算力请求方使用设备资源并对算力供应商,及软件开发商支付酬劳的唯一币种,用户可以让自己闲置的机器成为算力机器租赁获取收益,当前,算力市场垄断严重,他们借助市场优势享受高额利润,进而导致算力价格居高不下。去中心化的算力交易平台或许可以显著降低算力价格,但是其发展非常依赖…

    比特币行情 2023年 2月 11日
  • 币安录地平(币安进不了了)

    关于币安录地平(币安进不了了)这个问题很多人都不太了解,下面由句子百科网小编(sws100.com)derfy为大家详细讲解一下,大家来看下。 已显示“氨氯地平”的搜索结果。氨氯地平片 [ān lǜ dì pínɡ piàn] 英文 Amlodipine Tablets 类型 西药 , 医保甲类 , 处方药 禁忌 过敏禁用 充血性心力衰竭慎用、肝功能不全慎用…

    2023年 3月 25日
  • 第五届进博会|来进博会 体验元宇宙应用

    视频加载中… 在第五届中国国际进口博览会上,元宇宙、机器人、智能汽车等新产品、新技术、新服务引人关注。 11月7日,Unity元宇宙生态论坛在上海国家会展中心举行,论坛由Unity中国主办,以“元宇宙时代,共探发展机遇”为主题,聚焦元宇宙未来热点。 Unity中国,作为全球领先的实时3D内容创作和运营平台Unity在华设立的合资公司,首次参展,以…

    2023年 3月 29日
  • 以太坊转错地址了还能找回吗 以太坊转错地址了还能找回吗?

    以太坊转错地址了还能找回吗?摘要:以太坊是当前智能合约最流行的平台之一,然而在交易或转账中,一不小心输错了地址,不少用户会问能否找回转账的以太币,本文将会深度分析以太坊交易的机制,以及钱包地址错误转账的解决方案。以太坊交易原理以太坊是一个基于区块链技术的智能合约平台。其交易原理是通过创建、签名和广播交易来实现的。当用户想向别人转账时,用户需要使用对应的私钥对…

    比特币行情 2023年 5月 3日
  • 一文了解中国数字货币的发展现状

    2021年9月24日,包括中国人民银行在内的10个政府部门联合发布通知,明确加密货币不是法定货币。此外,中国的所有加密货币交易都被认为是非法的,包括为中国公民提供服务的离岸交易所。当局表示,离岸加密货币交易所的中国员工或任何为其提供服务的公司都将受到调查和起诉。不过中国拥有世界上最大的加密货币市场之一,这就是为什么全球加密货币价格会受到中国市场波动的影响。那…

    2023年 4月 4日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信