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

  币圈知识之如何用比特币私钥创建以太坊地址,在区块链的钱包中,私钥可以产生出公钥,而反过来要想从公钥推算出私钥则是不可能的。用公钥加密的信息可以用私钥来解密,而用私钥签名的信息则由公钥来验证,验证通过后才能证明该信息确实为私钥持有人所发布。以 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日

相关推荐

  • CWT币怎么样?特点有哪些?

    CWT,号称是可信的内容平台。 CoinWord号称是一个可信内容通证,致力于构建一个真实、可信的价值信息言论平台,剔除信息噪声、无效和虚假内容。 个人认为,CWT项目一般,主要是因为内容类项目缺少创新,项目太多,如UUU、PST、BOX、COS、CNNS、支点PVT、币乎KEY、区分FIND、QUN等等,有些项目有上千万的中心化社区作支撑,都出不了明星,C…

    比特币行情 2022年 12月 10日
  • 十个比特币 比特币知识详解:十个关键点

    比特币知识详解:十个关键点摘要:比特币是一种去中心化的加密货币,是基于区块链技术的产物。本文将深入分析比特币的十个关键点,从比特币的定义、发行、价值、交易、安全等多个方面进行探讨。一、比特币的定义比特币是一种基于区块链技术的去中心化的数字货币,它不依赖于任何信任机构,而是由社区中的节点进行管理和验证。比特币的诞生,给数字经济和金融体系带来了新的思路和可能性。…

    比特币行情 2023年 4月 26日
  • 欧易okex交易平台app下载官网 官网地址永久免费有效

    欧易是一家专业的数字资产交易服务商,为广大投资者提供了多样化的数字资产交易服务,其中包括欧易okex交易平台app。该平台强大的技术和严谨的风控体系,受到了众多数字资产爱好者的高度认可和支持。本文将为大家详细介绍欧易okex交易平台app下载官网的相关信息,让投资者更全面地了解该平台,并做出更明智的投资决策。 欧易okex交易平台app下载官网介绍 首先,我…

    比特币行情 2023年 5月 2日
  • 比特股(BTS币)未来有价值吗

    大家好,句子百科https://www.sws100.com小编下面围绕“比特股(BTS币)未来有价值吗”主题给大家详细介绍一下。 前景真的不明朗。 没有实物支撑,顶多是个泡沫,退一万步看清楚,它最顶多是个大一点的泡沫。所有人都想有泡沫破之前离场,幸存的绝不会是你。 比特股是一个基于区块链技术的去中心化的金融服务平台和开发平台,它也是一个全球化交易网络。比特…

    比特币行情 2023年 4月 7日
  • TT币是哪个国家的?

    作为一个全华人公链,我本质上是挺的,三月初的时候就有过一定程度的了解,当时貌似他们的主网刚上线,不过他们的宣发非常低调,和当时群魔乱舞的交易所那些铺天盖地的宣传相比不值一提。唠叨完了,看看项目吧。 先谈谈技术,翻了下项目白皮书,开头就直奔主题,以双链双速模式(FastMode+SlowMode),确保交易速度的同时仍能保证安全性,不过其实据我所知一些公链项目…

    比特币行情 2023年 4月 22日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

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

关注微信