区块链教程之Bitcoin公钥和地址生成
Posted 任磊abc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链教程之Bitcoin公钥和地址生成相关的知识,希望对你有一定的参考价值。
公钥
Bitcoin的公钥是根据私钥计算出来的。
私钥本质上是一个256位整数,记作k
。根据比特币采用的ECDSA算法,可以推导出两个256位整数,记作(x, y)
,这两个256位整数即为非压缩格式的公钥。
由于ECC曲线的特点,根据非压缩格式的公钥(x, y)
的x
实际上也可推算出y
,但需要知道y
的奇偶性,因此,可以根据(x, y)
推算出x\'
,作为压缩格式的公钥。
压缩格式的公钥实际上只保存x
这一个256位整数,但需要根据y
的奇偶性在x
前面添加02
或03
前缀,y
为偶数时添加02
,否则添加03
,这样,得到一个1+32=33字节的压缩格式的公钥数据,记作x\'
。
注意压缩格式的公钥和非压缩格式的公钥是可以互相转换的,但均不可反向推导出私钥。
非压缩格式的公钥目前已很少使用,原因是非压缩格式的公钥签名脚本数据会更长。
根据私钥推算出公钥:
const bitcoin = require(\'bitcoinjs-lib\');
let keyWif = \'KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP98617\';
const ecPa
以上是关于区块链教程之Bitcoin公钥和地址生成的主要内容,如果未能解决你的问题,请参考以下文章