区块链详解

参考:https://www.cnblogs.com/luoqiang111/articles/12350439.html

一、区块链:是一个开放的、分布式的、去中心化的数字账本,以可验证且不可篡改的方式有效记录各参与方的交易。区块链中的区块对数据结构有严格的要求,其中每个区块都记录着先前区块的Hash值,保证历史记录的完整性和一致性。
在这里插入图片描述

区块链发展历程:
在这里插入图片描述

二、区块链工作原理:

1)节点构造新的交易,并将新的交易向全网进行广播

2)接收节点对收到的交易进行检验,判断交易是否合法;若合法则将交易纳入一个新的区块中

3)全网所有旷工节点(网络中具有对交易打包和验证能力的节点)对上述区块执行共识算法,选取打包节点

4)该节点通过共识算法将其打包的新区块进行全网广播

5)其他节点通过校验打包节点的区块,经过数次确认后,将该区块追加到区块链中

比特币交易流程:
在这里插入图片描述

三、区块链框架:

结构①
在这里插入图片描述

结构②
在这里插入图片描述

结构③
在这里插入图片描述

例如:比特币系统的数据结构(nonce是旷工完成POW的输入,也是旷工获取奖励的凭证)
在这里插入图片描述

四、区块链结构:

①链式结构的区块链:要求将新事物附加到区块链主链前对其进行验证,保证一致性

表示1
在这里插入图片描述

表示2
在这里插入图片描述

②有向无环图结构的区块链

在这里插入图片描述

五、区块链4种典型的共识算法比较:

在这里插入图片描述

在这里插入图片描述

六、常见的分布式账本对比结果

账本所有权

1) 比特币等公链系统账本:所有用户都有查看权,特定节点通过共识算法拥有操作权

2)Fabric账本:具有某种通道的用户有查看权,特点节点通过共识算法有操作权

七、隐私保护技术对比

八、区块链安全

1)51%攻击:POW算法下,节点挖块的概率与算力成正比,一旦有矿池联合使得总算力超过全网的51%,将导致区块链系统安全问题。

a)修改交易数据,可能导致双花攻击

b)阻止区块部分确认或全部交易

c)阻止旷工开采任何可用的区块

2)硬分叉:区块链系统升级过程中,共识规则中新协议发生变化,部分旷工还未升级。已升级的新节点和未升级的旧节点,当新节点算力超过51%时,产生遵循不同机制的分叉。系统新版本不兼容旧版本,旧节点不接受新节点产生的区块,导致新旧节点在不同的区块链上运行,一条链变成两条链。

3)智能合约安全:智能合约本质是运行在区块链上的代码,完成用户事先设定好的业务逻辑,规范陌生(互不信任)参与者的行为。在以太坊框架中,智能合约以不可逆转的形式存在,存在漏洞并因此遭受攻击

以太坊三大漏洞

4)诈骗攻击:即使算力不超过51%也能发起攻击

a)自私的旷工:A旷工挖到新区块后不公布,自己私自保留。B旷工不知情的情况下依旧在旧区块链上挖矿,若此时B产生一个新区块,A再产生一个新区块。A再将2个区块一起公布,最长链原则导致B的区块作废。

b)日食攻击:基于区块链节点必须保持不间断的通信才能比较数据的特点,进而其他节点实施网络层面的攻击。攻击者囤积和霸占受害者的点对点连接时隙,将受害节点保留在一个隔离的网络中。比特币中是控制足够数量的IP地址垄断所有受害节点的连接,攻击中征用受害节点的挖矿能力,攻击一致性算法(重复支付、私自挖矿)。以太坊中是攻击者垄断受害接节点所有输入输出,将受害节点与网络中其他正常节点隔离,利用交易细节实施诈骗。

5)钱包安全:区块链去中心化结构,用户通过公开的地址与**获得资产所有权,其不开篡改性容易监守自盗。

九、区块链主要的优势和问题

十、区块链运用领域