以太坊生成地址_第一问:区块链地址的由来

问题:经常被问题到样的问题,某某链的地址格式和比特币(或以太坊)的一样,是不是表示他们就是比特币(或以太坊)的分叉链?

回答: 并不一定,区块链地址生成是经过一系列数学运算得到的,只要运算方式一样,那么生成的地址格式就一样。

下面以比特币和以太坊为例 ,说明他们地址生成的过程。 目前绝大多数的比特币地址都是以1开头,长度在34位(也有非1开头,其它长度的, 不在此文中介绍),而以太坊地址固定以0x开头。

比特币地址: 18NBmPg56gty4NLe3hXYucboEvMDhBjBWL

以太坊地址: 0x21e441583e377226d3ac6631b3863da2c7b55ca2

地址生成流程(绝大多数区块链都遵循这一流程):

随机数—>私钥—>公钥—>地址

对于比特币和以太坊,前面的流程是完全一样的,差别只在从公钥到地址的转换过程。

比特币地址生成流程

e0e54446753ecc7bd07c357f9ff36dde.png

比特币地址生成流程

step1: 计算机通过随机数生成算法生成一个随机数, 并从随机数推导出私钥。

step2: 私钥通过椭圆曲线算法(secp256k1)生成公钥。

step3: 公钥通过两次哈希运算(sha256和ripemd160)得到公钥哈希。

stpe4: 在公钥哈希前加上地址版本号(固定0x00)。

step5: 将上一步的结果做2次sha256运算。

step6: 取上一步结果的前4字节,拼在第4步结果最后,得到一个16进制串。

step7: 对上一步的结果做Base58编码,就得到了比特币的区块链地址。

以太坊地址生成流程

18e1a2fb22f891b0a6dab78cec7ebe29.png

以太坊地址生成流程

step1: 计算机通过随机数生成算法生成一个随机数, 并从随机数推导出私钥。

step2: 私钥通过椭圆曲线算法(secp256k1)生成公钥。

step3: 公钥通过一次哈希运算(keccak-256)得到公钥哈希。

stpe4: 取公钥哈希后后20位

step5: 在上一步结果前固定加上0x, 就得到以太坊的区块链地址。

扩展问题:

1. 可以用同一个私钥同时管理比特币和以太坊地址吗?

当然可以

2. 地址和公钥都是公开的,会不会不安全?

不会,上述的流程都是单向的。地址无法反向推导出公钥,公钥无法反向推导出私钥。

3. 私钥很长,又不规则,不方便记忆怎么办?

目前通过助记词的方式来记忆,后面文章会专门介绍助记词。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值