主页 > imtoken钱包下载官网 > 区块链钱包APP下载分析,区块链钱包支付系统开发步骤分析
区块链钱包APP下载分析,区块链钱包支付系统开发步骤分析
问:经常有人问我这样一个问题,某条链的地址格式和比特币(或以太坊)的地址格式一样,是不是代表它们是比特币(或以太坊)的分叉链?
答:不一定。 区块链地址是通过一系列数学运算生成的。 只要操作方法相同,生成的地址格式就会相同。
下面以比特币和以太坊为例,说明它们的地址生成过程。 目前绝大多数比特币地址以1开头,长度为34位(也有非1、其他长度的,本文不再介绍),而以太坊地址始终以0x开头。
比特币地址:18NBmPg56gty4NLe3hXYucboEvMDhBjBWL
以太坊地址:0x21e441583e377226d3ac6631b3863da2c7b55ca2
地址生成过程(大部分区块链都遵循这个过程):
随机数—>私钥—>公钥—>地址
对于比特币和以太坊来说,之前的过程是完全一样的,区别只是从公钥到地址的转换过程。
比特币地址生成过程
比特币地址生成过程
Step1:计算机通过随机数生成算法产生一个随机数,并从随机数中推导出私钥。
step2:私钥通过椭圆曲线算法(secp256k1)生成公钥。
step3:公钥通过两次哈希运算(sha256和ripemd160)得到公钥哈希。
stpe4:在公钥哈希前添加地址版本号(固定为0x00)。
step5:对上一步的结果进行2次sha256运算。
step6:取上一步结果的前4个字节,放在第4步结果的末尾,得到16进制字符串。
step7:对上一步的结果进行base58编码比特币地址生成算法详解,得到比特币的区块链地址。
以太坊地址生成过程
以太坊地址生成过程
Step1:计算机通过随机数生成算法产生一个随机数,并从随机数中推导出私钥。
step2:私钥通过椭圆曲线算法(secp256k1)生成公钥。
step3:公钥通过哈希运算(keccak-256)得到公钥哈希。
stpe4:取公钥散列的最后20位
step5:在上一步的结果前固定加上0x比特币地址生成算法详解,得到以太坊的区块链地址。
扩展问题:
1. 可以使用同一个私钥同时管理比特币和以太坊地址吗?
当然可以
2、地址和公钥都是公开的,会不会不安全?
不,上述过程是单向的。 地址不可逆推导出公钥,公钥不可逆推导出私钥。
3、私钥很长而且不规则,不方便记忆怎么办?
目前都是使用助记词来记忆,后面的文章会具体介绍一下助记词。