主页 > imtoken转账手续费 > 以太坊生成的地址_第一个问题:区块链地址的来源

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

imtoken转账手续费 2023-02-14 07:13:12

问:经常有人问我这样一个问题,某条链的地址格式和比特币(或以太坊)的地址格式一样,是不是代表它们是比特币(或以太坊)的分叉链?

答:不一定。 区块链地址是通过一系列数学运算生成的。 只要操作方法相同,生成的地址格式就会相同。

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

比特币地址:18NBmPg56gty4NLe3hXYucboEvMDhBjBWL

以太坊地址:0x21e441583e377226d3ac6631b3863da2c7b55ca2

地址生成过程(大部分区块链都遵循这个过程):

火币网比特币收款地址_1开头的比特币地址_比特币分叉对比特币的影响

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

对于比特币和以太坊来说,之前的过程是完全一样的,区别只是从公钥到地址的转换过程。

比特币地址生成过程

e0e54446753ecc7bd07c357f9ff36dde.png

比特币地址生成过程

比特币分叉对比特币的影响_1开头的比特币地址_火币网比特币收款地址

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

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

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

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

step5:对上一步的结果进行2次sha256运算。

比特币分叉对比特币的影响_火币网比特币收款地址_1开头的比特币地址

step6:取上一步结果的前4个字节1开头的比特币地址,放在第4步结果的末尾,得到16进制字符串。

step7:对上一步的结果进行base58编码,得到比特币的区块链地址。

以太坊地址生成过程

18e1a2fb22f891b0a6dab78cec7ebe29.png

以太坊地址生成过程

比特币分叉对比特币的影响_1开头的比特币地址_火币网比特币收款地址

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

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

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

stpe4:取公钥散列的最后20位

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

1开头的比特币地址_火币网比特币收款地址_比特币分叉对比特币的影响

扩展问题:

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

当然可以

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

1开头的比特币地址,上述过程是单向的。 地址不可逆推导出公钥,公钥不可逆推导出私钥。

3、私钥很长而且不规则,不方便记忆怎么办?

目前都是使用助记词来记忆,后面的文章会具体介绍一下助记词。