区块链流程的简单认识

大概了解了一下,可能有问题。

 

主要来自ppt(github)

有一些内容来自网络

另外可以到知乎搜索相关内容

https://blog.csdn.net/kaihuiguoji/article/details/91974530

https://www.jianshu.com/p/7d86785496c6

https://blog.csdn.net/jsjwk/article/details/81671619

中本聪的区块链算法。

每个user有一对公匙私匙(多对,一人多身份)-->问题,某节点被截获则可能会被冒充

重要的概念是交易,块

挖矿:

随机数+HASH->256位前10位是0.(这是一个难问题),找到随机数就是解开了这个问题,会被奖励比特币

 

问题:

双重支付问题,拜占庭将军问题。

双重支付问题:比如同一付款码在不同地点同时支付。(微信限制了此时不能截屏,同时短时间内就会改变图案)

 

过程

两个对象做交易时将交易广播,验证(比如A给B支付比特币,其他节点根据记录验证A是否有足够的比特币),其他节点验证成功会将交易记录到自己的块(非区块链中的块,是临时的一个记录一段时间的交易的块),然后对该块做算法(区块+nonce)(上面说的HASH),成功后广播全网,其他节点验证这个块和该节点算出来的随机数是否正确,若正确(多数节点验证正确),则将该块加入区块链。

 

例子:

A->B的交易,A在支票上用B的公匙加密,然后用A的私匙签名,这是一条交易,这样所有节点都可以知道是A发送的交易,就可以验证A的余额是否充足,是否存在重复支付,但是只有B可以获得货币。

当交易被A广播,大部分节点认为没问题,则整体上认为该交易没问题,则每个节点写入自己的记录的块。

这样每个节点都有块,记录着还没有加入区块链的很多交易。

而先做出来算法的节点的块,广播全网(包括块和一些信息用于验证),验证后会被加入区块链,该节点被认为拥有该块。然后所有的节点都保存了这个被认为是正确的块,相当于这一段时间被记录的交易被保存到区块链中(所有节点都保存该块,都保存了相关交易记录)。

 

块的结构:

prev block  区块链上前一块的hash值

merkle root 当前块交易信息的hash值.即Txh的 hash

Nonce,算出随机数的节点,将随机数记录到Nonce。Nonce使得,块的hash,满足前几位为0

timestamp 时间戳

....对上面四个部分做hash,得到整个块的哈希值

备注:Txh Txh Txh...   (该块记录的交易的信息)

 

 

验证时根据根据区块链中该块的merkle root 和该块中交易的hash值相等即可。不等即可认为交易信息做了修改(认为hash值是不会被修改的,因为大多数用户的hash值不变)

https://zhuanlan.zhihu.com/p/34385708

 

隐私应用:

区块链可以保障隐私计算任务数据端到端的隐私性。通过区块链加密算法技术,用户无法获取网络中的交易信息,验证节点只能验证交易的有效性而无法获取具体的交易信息,从而保证交易数据隐私,并且可按用户、业务、交易对象等不同层次实现数据和账户的隐私保护设置,最大程度上保护数据的隐私性。

 

区块链可以保障隐私计算中数据全生命周期的安全性。区块链技术采用分布式数据存储方式,所有区块链上的节点都存储着一份完整的数据,任何单个节点想修改这些数据,其他节点都可以用自己保存的备份来证伪,从而保证数据不被随便地篡改或者是被删除。此外,区块链中所使用的非对称加密、哈希加密技术能够有效保障数据安全,防止泄露。

posted @ 2019-12-25 20:37  Erio  阅读(564)  评论(0编辑  收藏  举报