
1 当前存在的问题
共识机制,是指由特殊节点对一个提议(在账本技术中很可能是包括了若干条交易的一个区块)进行投票,并完成对此提议的验证和确认的机制,通俗的说,对一笔交易的共识,就是由协同参与账本的几个节点达成一个一致的结果,如果达成否决的结果,则交易不记录进账本或者在账本中标记为无效,否则正常记录进账本。

基于区块首尾相连结构的链
当前成熟的区块链共识机制主要是基于链式结构,主要的共识算法有:PoW、PoS、DPoS、PoI、PoP、PBFT等。
基于以上共识算法产生的共识机制(结合链式结构),账本都会以单条链为准, 好比有5家银行面向普通用户联合开放了一种特殊的优惠证券, 不过购买时需要经过5家银行的信任评估,但是只开放了一个受理点, 由于购买人数量较多,所有排队等待的人都需要经过漫长的等待, 这个大大限制了办理的效率,同时信任评估需要五家银行现场连线确认, 如果又有3家银行想要加入并提供信任评估,那么这个确认的时间也会随着新加入银行的数量而变大, 可以看到基于链式结构的共识机制对于性能会有很大的限制,可以总结问题要点如下: (1)吞吐率低——在单位时间内可以完成确认的交易笔数较少,区块生成效率低下,不足以支撑现实场景中的高频交易,类似VISA信用卡交易; (2)共识节点扩容有限——尤其对于支持拜占庭容错的共识,节点数量过多时,将使得通信开销过大,从而极大地降低共识效率; (3)能耗大——这主要是针对类似PoW的共识机制,比拼算力最终演化成比拼电力。 |
2 常用解决方法
为了能攻克这些问题,业界有不少组织正在积极探索基于图结构的共识机制,更多时候,我们使用有向无环图(Directed Acyclic Graph, DAG)
有向无环图原本是计算机领域一种常用数据结构,因为独特的拓扑结构所带来的优异特性,经常被用于处理动态规划、导航中寻求最短路径、数据压缩等多种算法场景。
而由于图结构比链式结构更益于区块的并行创建,所以普遍认为基于图结构的共识机制可以克服区块生成效率低下的问题。

DAG基本结构示意图
传统区块链和图结构区块链的区别,简单地说是拓扑。
区块链是由区块组成的单链,只能按出块时间同步依次写入,好比单核、单线程CPU;
图结构区块链是由交易单元组成的网络,可以异步并发写入交易,好比多核、多线程CPU。
当前较有代表性的图结构区块链的共识协议有:Tangle、Hashgraph、SPECTRE/PHANTOM等。
1.Tangle
Tangle是IOTA项目背后的共识协议,早在2013年就已经提出。
协议概述:以交易来组织网络,一个节点发起新交易时,在tangle网络中找到2笔合法的历史交易作为父交易,并将自己的新交易指向这两笔交易作为子交易,指向的过程中也对父交易进行了验证。
至于如何选取验证的父交易,Tangle采用马尔可夫蒙特卡洛(Markov Chain Monte Carlo, MCMC)随机游走的方法,其目的是保证尽可能均匀地选出当前已记入账本的交易作为父交易,从而提升整体网络的确认度。
同时,为提高产生交易的门槛,Tangle中加入了交易的权重指标,由生成该交易完成的工作量决定交易权重的大小(如哈希值开头是几个0等),每个交易都具有累积权重,即该交易的权重加上所有直接、间接确认该交易的权重总和,代表着交易的确认度。
另一方面,Tangle给每个交易进行打分,其分数由该交易直接或间接确认的交易的总权重构成,并限定新交易只能确认分数达到一定标准的旧交易作为父交易,从而避免新交易过多选取过旧交易作为父交易的行为,保证网络的健康成长。
Tangle的优势有如下几点: (1)由于新交易的加入较为轻量且方便,Tangle网络中没有记账费用,对小额支付场景十分友好; (2)由于Tangle网络中交易相互确认的特性,使得该网络具有交易量越大,交易越快被确认的特点。 然而,Tangle目前也存在一定的问题: (1)Tangle中的共识是一种脆弱的共识,也就是随时间推移,交易确认度不一定上升;因此在整体Tangle网络中节点较少的当前,Tangle放置了一个闭源的协调者,该协调者发送milestone交易,并设定由该交易直接或间接确认的交易均为可信度100%的交易;然而,该协调者目前仍是中心化的实现,其降低了Tangle网络的去中心化程度; (2)Tangle中的共识是由全网交易确定的,理论上讲,如果有人能够产生1/3的交易量,就可以将无效交易变成有效交易; (3)Tangle网络中交易无手续费,所以没有矿工激励,其面临着拒绝服务攻击和垃圾信息攻击的可能。 |
2.Hashgraph
根据Hashgraph白皮书定义,其本质上是一种数据结构和共识算法,旨在解决异步拜占庭容错问题。
根据FLP定理,在网络可靠且存在节点失效的异步分布式系统中,不存在一个可以解决一致性问题的确定性算法,可见Hashgraph也并非一个完美的异步拜占庭容错算法。
Hashgraph对确定性做了些许放宽,即在特定条件下,共识算法可能无法终止(即区块链中无法给出交易排序结果),但这种事件发生的概率极低,随着更多信息的汇入,共识算法无法终止的概率无限趋近于0。
Hashgraph主要通过互相投票(Gossip about Gossip)以及虚拟投票(VirtualVoting)来实现共识过程,概述如下:
1)用事件记录交易,每个事件包括:交易、两个父节点的哈希值、时间戳、签名。
2)基于gossip协议,随机生长账本。
通过round划分阶段,基于前后节点之间的连接关系确定每个阶段的famous witness,再由witness确定DAG中的事件的顺序。
其特点在于: 1)公平:账本具有一致的时间戳,可以对每笔交易进行定序; 2)安全:其所使用的异步拜占庭容错(Asynchronous Byzantine Fault Tolerance,ABFT)系统,有相当的安全理论证明,验证简单; 3)速度快:可达到250000TPS的吞吐量。 Hashgraph当前存在的问题主要包括: 1)gossip算法在大规模公链环境下的应用可能会遇到问题; 2)其中的每个共识节点均需要保存全网数据,数据压缩问题不易解决。 |
3.SPECTRE/PHANTOM
SPECTRE和PHANTOM是由DAGLabs公司推出的基于DAG结构的区块链扩容共识协议。
DAGlabs是一家位于美国加州旧金山的区块链技术服务公司。
主创人员包括了SPECTRE和PHANTOM的联合作者Yonatan Sompolinsky和SPECTRE的联合作者Yoad Lewenberg。
SPECTRE Protocol采用了BlockDAG的技术,可以并行挖矿,从而带来更大的吞吐量和更快的交易确认时间。
2018年2月基于SPECTRE改进的扩容协议PHANTOM发布,能够大大扩充网络交易容量,并兼容智能合约。
不同于闪电网络等链下解决方案,PHANTOM是链上扩容方案。
PHANTOM主要通过使用具体偏序变全序的算法来确定整个DAG上区块的线性排列,从而达到对整个DAG组织里的区块的共识。
虽然PHANTOM实现了区块在DAG上的线性排列,并大大提高了整个网络的交易容量,但它并不保证迅速地确认区块时间。
凡事都有两面性,DAG的结构天然支持了区块的并行创建,让人有直观的感觉,可以轻松地提升吞吐量。
但基于DAG结构的共识协议,一致性未得到有效的验证和认可,同时应用场景也不同于传统区块链那么广泛;
但DAG结构的优势和基于DAG结构的共识创新已经慢慢出现到人们的视野之中,相信不久的将来,会有越来越多基于DAG结构的创新项目、共识机制会成熟地出现到各类应用之中。
结构的创新项目、共识机制会成熟地出现到各类应用之中。
虽然当前基于DAG结构的共识机制还未完全解决以上所述问题,我们可以适当保持理性的态度,将其视为区块链技术的一个必然的探索方向,大胆地去尝试,大胆地去创新。
目前的区块链技术尚处于发展的初级阶段,在技术层面上仍存在许多问题。
由于目前的区块链技术存在一定程度的扩展性问题,人们开始考虑区块链并不一定要是一个链状结构。


