美文网首页比特钱包
1、私钥-公钥-地址

1、私钥-公钥-地址

作者: 谷歌派 | 来源:发表于2018-05-24 15:26 被阅读128次

资料:

http://book.8btc.com/books/1/master_bitcoin/_book/4/4.html

http://book.8btc.com/books/6/masterbitcoin2cn/_book/glossary.html

私钥-公钥-地址

  • 创建随机私钥 (64 位 16 进制字符 / 256 比特 / 32 字节)
  • 从私钥推导出公钥 (128 位 16 进制字符 / 512 比特 / 64 字节)
  • 从公钥推导出地址 (40 位 16 进制字符 / 160 比特 / 20 字节)

生成私钥

  • 在 Linux 内核中维护了一个熵池用来收集来自设备驱动程序和其它来源的环境噪音。熵(entropy)是描述系统混乱无序程度的物理量,一个系统的熵越大则说明该系统的有序性越差,即不确定性越大。
  • 所以在选择生成私钥的随机数方法时,需要选择满足密码学强度的随机数方法,比如 Node 中的 crypto.randomBytes。当你调用 crypto.randomBytes(32) 方法时,它会等待熵池搜集足够的信息后,返回 64 位的随机数,即私钥。

WIF 格式私钥

  • 比特币私钥其实是使用SHA-256生成的32字节(256位)的随机数,有效私钥的范围则取决于比特币使用的secp256k1 椭圆曲线数字签名标准。
  • 在私钥的前面加上版本号,后面添加压缩标志和附加校验码,(所谓附加校验码,就是对私钥经过2次SHA-256运算,取两次哈希结果的前四字节),然后再对其进行Base58编码,就可以得到我们常见的WIF(Wallet import Format) 钱包导入格式格式的私钥。

生成公钥

  • 以一个随机生成的私钥k为起点我们将其与曲线上已定义的 生成点G相乘以获得曲线上的另一点,也就是相应的公钥K。生成点是secp256k1(椭圆算法)标准的一部分,比特币密钥的生成点都是相同的:

  • {K = k * G}

地址生成

  • 将公钥通过SHA256哈希算法处理得到32字节的哈希值

  • 后对得到的哈希值通过RIPEMD-160算法来得到20字节的哈希值 —— Hash160

  • 把版本号+Hash160组成的21字节数组进行双次SHA256哈希运算,得到的哈希值的头4个字节作为校验和,放置21字节数组的末尾。

  • 对组成25位数组进行Base58编码,就得到地址。

  • 地址A = RIPEMD160(SHA256(公钥K))

  • 在比特币中,大多数需要向用户展示的数据都使用Base58Check编码,可以实现数据压缩,易读而且有错误检验。

  • Base58Check编码的比特币地址是以1开头的,

  • Base58Check编码的私钥WIF是以5开头的,未压缩过的以5开头,压缩过的以K 或者 L开头。

  • 例: 5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn (未压缩)

  • KxFC1jmwwCoACiCAWZ3eXa96mBM6tb3TYzGmf6YwgdGWZgawvrtJ (压缩)

  • 比特币地址产生的完整过程,从私钥、到公钥(椭圆曲线上某个点)、再到两次哈希的地址,最终产生Base58Check格式的比特币地址。

相关文章

  • 优一区块链知识学习笔记5

    公钥和私钥 公钥加密,私钥解密 私钥→椭圆曲线乘法→公钥→单向加密哈希函数→比特币地址(过程不可逆) 私钥:随机选...

  • 1、私钥-公钥-地址

    资料: http://book.8btc.com/books/1/master_bitcoin/_book/4/4...

  • Freecash 多签测试

    1. 准备好3个地址及其公钥私钥 地址 n1GwLVa9VgynhKSCZksHs5RmrWuuNyhz4E公钥 ...

  • RSA加密解密函数

    一、已有公钥私钥1、私钥解密 二、已有公钥私钥文件

  • 公钥、私钥、地址

    私钥 ->SECP256K1算法处理 -> 公钥 ->公钥 K 为输入,计算其SHA256哈希值,并以此结果计算R...

  • 钱包、公钥、私钥、钱包、地址、助记词、keystore

    我理解的 钱包、公钥、私钥、钱包、地址、助记词、keystore 1、钱包钱包在创建时就会产生一对公钥与私钥,然后...

  • Rsa加解密

    /*** Rsa 加解密* 用法:* (1)公钥加密,私钥解密* (2)私钥加密,公钥解密*/class ...

  • 基础概念之钱包

    1. 私钥、公钥和地址 在比特币体系中,私钥、公钥和地址是三个非常重要的基础概念,那这三者分别代表着什么呢?类比我...

  • php实现非对称加密

    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 1.安装opens...

  • https+ ca证书

    非对称加密 1.公钥加密,私钥可以解密;2.私钥加密,公钥可以解密;3.公钥解密,公钥不可以解密; 伪造公钥 用户...

网友评论

    本文标题:1、私钥-公钥-地址

    本文链接:https://www.haomeiwen.com/subject/ksssjftx.html