区块链教程之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前面添加0203前缀,y为偶数时添加02,否则添加03,这样,得到一个1+32=33字节的压缩格式的公钥数据,记作x\'

注意压缩格式的公钥和非压缩格式的公钥是可以互相转换的,但均不可反向推导出私钥。

非压缩格式的公钥目前已很少使用,原因是非压缩格式的公钥签名脚本数据会更长。

根据私钥推算出公钥:

  const bitcoin = require(\'bitcoinjs-lib\');

      let keyWif = \'KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP98617\';

      const ecPa

以上是关于区块链教程之Bitcoin公钥和地址生成的主要内容,如果未能解决你的问题,请参考以下文章

区块链教程之Bitcoin原理简介

Python开发区块链之04如何生成多签名的bitcoin address

从零开发区块链应用--以太坊地址生成

区块链 公钥 私钥 生成地址 关系

三分钟区块链|区块链核心技术之非对称加密

GO语言-生成区块链账户地址