区块链十年∣共识机制的发展历程
区块链的共识机制,已有无数的文章分析过了,本文的目的,不在于对各种共识机制的原理做多么深入的解读,而是主要从时间线角度,梳理比特币第一个十年间,共识机制的发展历程。
一、为何需要共识机制:维护一致性
区块链作为一个分布式账本,即意味着每一个节点都能够验证交易,而面对的对象当然应该是具有一致性的账本,才不会导致相互间的冲突,共识机制就是为了解决这个“一致性”的问题。
在区块链中,各节点发生的交易都将被记入这个账本,形式则是把新账记录打包成一个区块,该区块加上了时间戳,经过了加密,将被附加在最新的区块之后,以此形成一个链式数据结构。
这么一个数据账本,本身不提供去中心化,只有加入了去中心化的共识机制,这个系统才能做到去中心化。简单来说,就是在这个账本中,谁来记账就成为了一个问题,记账权的分配应该是去中心化的。共识机制就是为了解决这个记账权的问题而出现的。
说白了,共识机制就是一个群体决策的问题:一群人要如何做出对所有人都最有利的决定,而且这个决定要对所有人都公平。
可以拿选举、投票来作类比。比如英国脱欧,当时是采用了全民公投的方式进行,当同意脱欧的人数达到了一定比例,那么就选择脱欧。而在英国的议会,议员们代表着把自身选上来的选民的意志,他们作为代理人在议院行使表决权,做出对整个国家(整个社区)最有利的决定。区块链中,PoW机制即类似全民公投,DPoS就有点像代议制。
每种共识机制,都要设计好程序,使之能够把这套规则在区块链中运行下去。而作为一种设计,自然会有其优缺点,某个区块链采用哪种共识机制,是按照自己的理念,适应自身需要,在一开始就决定的。当然,一种共识机制,在最初可能难以预见后续会出现什么问题,其优缺点需要在时间中得到检验。例如比特币采用的PoW共识机制就具有耗能高与矿池导致算力中心化的缺陷,目前以太坊正打算从PoW共识机制换到PoS共识机制上来。
二、现在已提出的一些共识机制
目前为止,区块链共识机制已经发展多年,有了很多不同的种类,下面是一个对区块链很感兴趣的geek(极客)Hasib Anwar制作的现有的一些共识机制图表:
所有共识机制列表
Proof-of-Work 工作量证明
Proof-of-Stake 权益证明
Delegated Proof-of-Stake 委托权益证明
Leased Proof-Of-Stake 租用权益证明
Proof of Elapsed Time 过去时间证明
Practical Byzantine Fault Tolerance 实用拜占庭容错
Simplified Byzantine Fault Tolerance 简单拜占庭容错
Delegated Byzantine Fault Tolerance 委托拜占庭容错
Directed Acyclic Graphs 有向非循环图
Proof-of-Activity 活动量证明
Proof-of-Importance 重要性证明
Proof-of-Capacity 容量证明
Proof-of-Burn 燃烧证明
Proof-of-Weight 重量证明
(以上图表见Hasib Anwar的文章“Consensus Algorithms: The Root Of The Blockchain Technology”,智能比特翻译)
其中,工作量证明(PoW)是第一个区块链共识机制,比特币以及目前的以太坊都是采用了这一共识机制;权益证明(PoS)在2012年第一次被提出,并被应用在点点币、未来币等项目上;委托权益证明(DPoS)最著名的代表则是比特股(Bitshare)、EOS,这三者是目前公链应用最多的三种共识机制。在联盟链领域,Hyperledger Fabric 在 0.6 版中应用了PBFT,而在 1.0 版中放弃了PBFT,转而采用效率更高的Kafka,支持单点和集群两种方式,由 Kafka直接给交易排序和出块;中国的FISCO BCOS则支持并行计算的PBFT和标准RAFT两种方式。
除了Hasib Anwar图表中归纳的这些,还有一些也被视为共识机制,例如瑞波币的Ripple算法、基于交易的股权证明机制(TaPOS)等。还有一些,例如艾欧塔(IOTA),采用的是的DAG(有向无环图)数据结构,通过缠结(Tangle)的方式加入区块链,与区块链的链式数据结构是不同的,这也可以被当作一种共识机制。
共识机制可以被当作是一套算法,分布式系统都需要这样一套算法来保持一致性,区块链作为分布式系统的一个子集,也借用了分布式系统的一些用于达成共识的协议。比如Lamport设计的保持分布式系统一致性的协议Paxos,还有Stanford提出的RAFT协议,上面提到的联盟链FISCO BCOS 就采用了RAFT协议,此外微软主导的联盟链Coco 支持Paxos和 Caesar两种协议。
三、共识机制的发展之PoW-PoS-DPoS
2008年,中本聪在《比特币:一种点对点的电子现金系统》这篇论文中提出了比特币与区块链,其中PoW被应用于比特币上,来解决谁是大多数的问题。但是人们很快发现这种共识机制的问题,即消耗能源大,以及被大矿池把持算力之后,仍然会导致中心化的问题。
2011年,一个名为Quantum Mechanic的数字货币爱好者在Bitcointalk论坛提出Proof-of-Stake(POS)证明机制,该机制被充分讨论之后证明具有可行性。POW是比拼算力,而POS简单来说就是比拼谁手里的币多,手里币越多,获得记账资格的概率就越高。
2012年8月,密码货币极客Sunny King 发布Peercoin(点点币,PPC),它的挖矿方式采用了POW和POS结合的方式。点点币之后,又有新星币(Novacoin,NVC)、黑币(blackcoin,BLK)等采用POS。在这些币当中,黑币对点点币做了一些优化,发布了POS2.0白皮书,其中最重要的一点就是用余额(也就是该矿工手里有多少币)代替币龄。
2013年9月,一个名为BCNext的用户在Bitcointalk论坛发起一个帖子,宣布将发行一种全新的纯POS币种,后来取名为Nextcoin,简称NXT,即未来币。
2013年8月,BM的比特股(Bitshares)项目启动,并带来了一种新的共识机制:Delegated Proof-Of-Stake(DPoS),即股份授权股权证明。它有点像现代国家的代议制,但不是每个选区分配了多少代表席位,而是将持有一定数量代币的节点作为候选人,再由所有节点投票竞选,取得票数前101的当选为代表,由这些代表负责产生区块。代表们轮流产生区块,收益(交易手续费)平分。如果有代表不老实生产区块,很容易被其他代表和股东发现,他将立即被踢出“董事会”,空缺位置由票数排名102的代表自动填补。后来,BM的另一个项目EOS也采用了DPoS的共识机制,不过将原来的101个记账节点减少到了21个。
从POW到POS再到DPOS,可以说是公链共识机制发展的一条主线。这三种共识机制各有优劣,比如POW具有完整的数学证明,理论上来说最安全、实现相对简单,但它在能源消耗、出块时间、交易容量都有很大不足,而POS则有安全风险更大、选举节点时候网络流量压力很大以及“富者愈富,贫者愈贫”等问题,而DPOS缩小了选举节点数量减少了网络压力,但其去中心化程度值得怀疑。
从09年初开始算起,区块链与数字货币的第一个十年马上就要到来,在这个过程中,共识机制扮演的角色,几乎可以说是区块链的灵魂。而从上面粗略的整理来看,从事着区块链行业的人具有着无穷的创造力。共识机制已经出现了多次迭代,而其未来会走到哪一步,现在根本没有定论。
图片新闻
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论