专业科普
“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。
区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足下面这两个性质:
1)一致性:所有诚实节点保存的区块链的前缀部分完全相同。
2)有效性:由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区块链协议下的软件系统即可实现交易。这种自信任的前提是区块链的共识机制,即在一个互不信任的市场中,要想使各节点达成一致的充分必要条件是每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之中。换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。
现今区块链的共识机制可分为四大类:工作量证明机制、权益证明机制、股份授权证明机制,Pool验证池。
区块链上采用不同的共识机制,在满足一致性和有效性的同时会对系统整体性能产生不同影响。综合考虑各个共识机制的特点,从以下4个维度评价各共识机制的技术水平:
1)安全性。即是否可以防止二次支付、自私挖矿等攻击,是否有良好的容错能力。以金融交易为驱动的区块链系统在实现一致性的过程中,最主要的安全问题就是如何防止和检测二次支付行为。自私挖矿通过采用适当的策略发布自己产生的区块,获得更高的相对收益,是一种威胁比特币系统安全性和公平性的理论攻击方法。此外,Eclipse攻击控制目标对象的网络通信,形成网络分区,阻隔交易传播。Sybil攻击通过生产大量无意义的节点影响系统安全性。
2)扩展性。即是否支持网络节点扩展。扩展性是区块链设计要考虑的关键因素之一。根据对象不同,扩展性又分为系统成员数量的增加和待确认交易数量的增加两部分。扩展性主要考虑当系统成员数量、待确认交易数量增加时,随之带来的系统负载和网络通信量的变化,通常以网络吞吐量来衡量。
3)性能效率。即从交易达成共识被记录在区块链中至被最终确认的时间延迟,也可以理解为系统每秒可处理确认的交易数量。与传统第三方支持的交易平台不同,区块链技术通过共识机制达成一致,因此其性能效率问题一直是研究的关注点。比特币系统每秒最多处理7笔交易,远远无法支持现有的业务量。
4)资源消耗。即在达成共识的过程中,系统所要耗费的计算资源大小,包括CPU、内存等。区块链上的共识机制借助计算资源或者网络通信资源达成共识。以比特币系统为例,基于工作量证明机制的共识需要消耗大量计算资源进行挖掘提供信任证明完成共识。
基础常识
举个栗子
我们10个人合伙开一家公司,需要从其中推荐一位CEO 来领导大家一起工作,如果,每一个人说的话都算数,问题在于大家意见都不一致的时候,听谁的?这样合伙开公司会出现致命的管理问题,到底是推荐谁当CEO好呢?大家都愿意听他的领导的话吗?,经过大家的努力,达成一致,共识机制产生了一套规则,大家一起投票决定,最终从10个人中选择出来一位CEO。