认识比特币

比特币 密钥就是账户的一切 

比特币交易过程

1.用你的密钥在一笔交易上签名 通过系统验证 证明你拥有这笔交易里等额比特币

2. 当我们花费比特币时,会产生一条新交易,这笔交易只有小明的密钥可以打开

去中心化的交易系统

全节点客户端 300GB

轻钱包

比特币交易不可逆

比特币系统流程

1.记账   2.发行货币  3.账户管理 

账户管理 1.私钥管理 2.发送和接收管理 3.账户余额及流水

扫描二维码关注公众号,回复: 9771099 查看本文章

比特币私钥 256个二进制数字

比特币椭圆曲线算法  比特币椭圆算法

上面公式中, \mod{} 是取余符号,而 ​ p 是一个很大的素数,到这一步,公式中就只剩下自变量 ​ x 和因变量 ​ y 了,你完全可以把它看成初中学过的二元多次函数,不过,并不是所有实数 ​ x 都满足这个曲线,所以实际上椭圆曲线是一个散点图,

spec256k1 椭圆曲线

p = 115792089237316195423570985008687907853269984665640564039457584007908834671663

 

椭圆曲线的运算 比特币公钥算法

公钥算法就是运用了这些基本运算

1.加法运算 2.无限点定义 3.乘法运算

比特币椭圆算法

比特币公钥算法

比特币的公钥是椭圆曲线上的点 他的 x和y很大 所以需要比特币地址

比特币地址生成

1.通过哈希算法将公钥转换成定长的字符串

2.将第一步生成的结果进行压缩编码 输出地址

比特币地址生产流程

 在比特币地址生产中使用了两个哈希算法 第一个是 SHA256 算法 另一个是 RIPEMD160算法

先用SHA256吧公钥映射为一个32字节的数字 再用RIPEMD160把产生的数字映射到一个20字节的数

压缩编码使用base58算法 比base64 少了6个字符 

base58check 进行验证

base58check

加入我们需要一个字符串 “1215309” 进行checksum 算法 和为21 ,并将21添加到字符串末尾进行验证   如果不小心将2写成了5那么和为24 就与末尾21不一致

比特币 base58check算法

1.在上一步20个公钥hash的基础上 增加一个版本前缀 输出一个新字符串

2 利用SHA256 算法 将第一步产生的字符串进行2次哈希 取结果前4个字节作为 checksum

3.将 checksum 添加到公钥Hash的尾部

4 对整个字符串进行 base58 压缩编码 产生比特币地址

不同version含义
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开头的地址

猜你喜欢

转载自www.cnblogs.com/validate/p/12462110.html