美文网首页
【区块链网络】

【区块链网络】

作者: michaelYH | 来源:发表于2018-07-25 20:35 被阅读0次

1.非对称加密:公钥与私钥

 加密与解密需要两把钥匙,一把公钥和一把私钥,由于加密和解密需要两个不同的秘钥,故称为非对称加密。支付的可靠性,就是依靠非对称加密技术。

2.公钥是通过私钥是可以计算出的,私钥是比特币的主人。

3.私钥的格式

原始私钥是32字节,也就是256位2进制数字,换成16进制就是64位长度。

WIF格式:5开头

WIF-compressed格式:K或L开头

官方推荐以WIF-compressed压缩格式作为私钥。

4.椭圆曲线算法

RSA、ECC......

椭圆曲线算法是不可逆的,很容易向一个方向计算,但是不可以向反方向倒推。

5.BASE64、BASE58Check

Base64就是一种基于64个可打印字符表示二进制数据的方法。

6.比特币地址

比特币地址:是26位至34位数字和字母组成的字符串。

私钥==>椭圆曲线==>公钥==>SHA256==>RIPEMD160==>BASE58check==>比特币地址

7.私钥、公钥、比特币地址的关系

private-key===>public-key===>bitcoin address

8.数字签名ECDSA

数字摘要+非对称加密

9.UTXO(unspend transaction outputs)

钱包也有数据库:leveldb

UTXO的最小值为聪,是不可分割的价值单位,一个UTXO只能在一次交易中作为整体被消耗。

未被交易的交易索引:检查inputs中的交易的txn是否在未被支付交易索引中即可。

UTXO1 UTXO2

钱包会自动选择unspend transaction outputs

10.流程

发起比特币转账,将交易广播到全网;最近的节点,会进行验证,如果交易信息没有问题,进行全网广播。

挖矿节点接到交易后先将其放进入本地内存池,进行一些基本验证,判断是否属于UTXO。如果验证通过,则将该笔交易放入未确认交易池,等待被打包;如果未通过验证,则被认为是无效交易,直接放弃,不会被打包。

未确认交易池是所有交易数据的集合,这些交易已经被比特币节点验证,但未被确认。

挖矿节点在比拼算力的同时,还需要及时验证每笔交易,更新自己的“未确认交易池”。矿工挖矿前,将从“未确认交易池”中抽取“未确认交易”进行打包。

有时交易不能被及时打包,是因为“未确认交易池”中交易太多,每个区块能记录交易数有限,这就造成了区块链拥堵。

比特币交易验证

比特币协议规定,申报交易时,除了交易金额,转出比特币的一方还必须提供以下数据。

1.上一笔交易的HASH

2.本次交易双方的地址

3.支付方的公钥

4.支付方的私钥生成的数字签名

验证交易是否属实

1.找到上一笔交易,确认支付方的比特币来源

2.算出支付方的公钥的指纹,确认与支付方的地址一致,从而保证公钥属实。【公钥与地址】

3.使用公钥去解开数字签名,保证签名属实,私钥属实。

经过以上三步,就可以认定这笔交易是真实的。

相关文章

网友评论

      本文标题:【区块链网络】

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