比特币 密钥就是账户的一切
比特币交易过程
1.用你的密钥在一笔交易上签名 通过系统验证 证明你拥有这笔交易里等额比特币
2. 当我们花费比特币时,会产生一条新交易,这笔交易只有小明的密钥可以打开
去中心化的交易系统
全节点客户端 300GB
轻钱包
比特币交易不可逆
比特币系统流程
1.记账 2.发行货币 3.账户管理
账户管理 1.私钥管理 2.发送和接收管理 3.账户余额及流水
比特币私钥 256个二进制数字
比特币椭圆曲线算法
p = 115792089237316195423570985008687907853269984665640564039457584007908834671663
椭圆曲线的运算 比特币公钥算法
公钥算法就是运用了这些基本运算
1.加法运算 2.无限点定义 3.乘法运算
比特币公钥算法
比特币的公钥是椭圆曲线上的点 他的 x和y很大 所以需要比特币地址
比特币地址生成
1.通过哈希算法将公钥转换成定长的字符串
2.将第一步生成的结果进行压缩编码 输出地址
在比特币地址生产中使用了两个哈希算法 第一个是 SHA256 算法 另一个是 RIPEMD160算法
先用SHA256吧公钥映射为一个32字节的数字 再用RIPEMD160把产生的数字映射到一个20字节的数
压缩编码使用base58算法 比base64 少了6个字符
base58check 进行验证
加入我们需要一个字符串 “1215309” 进行checksum 算法 和为21 ,并将21添加到字符串末尾进行验证 如果不小心将2写成了5那么和为24 就与末尾21不一致
比特币 base58check算法
1.在上一步20个公钥hash的基础上 增加一个版本前缀 输出一个新字符串
2 利用SHA256 算法 将第一步产生的字符串进行2次哈希 取结果前4个字节作为 checksum
3.将 checksum 添加到公钥Hash的尾部
4 对整个字符串进行 base58 压缩编码 产生比特币地址
Type | Version prefix (十六进制表示) | Version prefix (Base58 表示) |
---|---|---|
Bitcoin 地址 | 0x00 | 1 |
脚本Hash地址 | 0x05 | 3 |
Bitcoin 测试网络地址 | 0x6F | m or n |
Private Key WIF | 0x80 | 5, K, or L |
BIP-38 加密私钥 | 0x0142 | 6P |
BIP-32 扩展公钥 | 0x0488B21E | xpub |
所以比特币地址都是以1开头的地址
原文:https://www.cnblogs.com/validate/p/12462110.html