区块链共识机制、漏洞及学生压力统计分析
1. 区块链基础概念
1.1 Merkle树
Merkle树是一种无需存储整个集合就能证明某元素存在于集合中的方法,它以二叉树形式表示交易。每个叶子节点代表单个交易的哈希码,非叶子节点代表其两个子节点的哈希码,树从叶子向根以自底向上的方式构建,根节点是所有交易的哈希,也称为摘要根。仅包含Merkle根的区块头意味着所有交易信息以较少的内存空间存储,这对验证至关重要。
1.2 交易
交易是网络参与者使用一组协议执行的原子任务。在比特币中,交易即个人资金转移。区块链是由加密交易数字信息块组成的链,交易在网络节点间交换。
1.3 拜占庭将军问题
在分布式无信任环境中工作时,需要解决拜占庭将军问题(BGP)以达成共识。该问题由Leslie Lamport等人在1982年提出,以故事形式描述:一群将军想制定进攻城市的计划,但彼此距离遥远,依赖信使通信,且部分信使或将军可能是叛徒,问题在于如何在有恶意信息干扰的情况下,让可靠的将军达成共同决策。在区块链等无信任网络中也存在类似问题,若网络能解决此问题,则具有拜占庭容错(BFT)能力,共识机制为此提供了解决途径。
2. 共识机制
2.1 共识概述
共识是用于在用户间建立信任的机制或协议,区块链的共识通过一套大家都同意的规则实现,这些规则自我执行。区块链中有算法确保参与者间的账本副本一致。好的共识应具备安全性、包容性、参与性和平等性等特性,若共识机制不佳,可能导致区块链分叉、性能不佳和不良结果。目前已有很多关于共识的研究,但仍有改进空间。