报告摘要
技术是存在边界的,这决定了需要引入一些其他的激励和约束机制来使得整个系统正常工作。同时在共识机制设计上,常常需要牺牲系统的某些性能来保证一致性和正确性。
公有链里的共识机制主要侧重于使用去中心化和更加具有激励性的设计,目前的许多新型区块链体系,支持可插拔的共识机制模块,可以根据应用场景和需求切换使用不同的共识机制。
联盟链更注重隐私、安全和监管,因此会加入更多的管控元素,更喜欢采用类似于传统的拜占庭家族等共识机制。
达成共识是需要成本的,最终需要衡量投入产出比,有时设计得再复杂的共识机制也许并不如一个好的商业模式来的有效。
引言在分布式系统中,多个主机通过异步通信的方式形成网络集群,主机之间进行状态的复制从而达成一致的状态共识。但是异步系统中的主机可能性能下降、网络拥塞,使得系统内传播了错误的信息。因此在设计共识机制时,要默认系统中存在不可靠的节点。从算法的角度,这些机制的设计本质上是基于经济利益的博弈,对于恶意破坏系统的参与者,好好记账获得的收益大于其破坏的收益,从而保证大部分人的合作。
以太坊共识层首个PoS区块于高度15537394诞生:金色财经报道,北京时间9月15日14时42分,据欧科云链OKLink多链浏览器监测,以太坊执行层(即此前主网)与权益证明共识层(即信标链)于区块高度15537393触发合并机制,并产出首个PoS区块(高度为15537394),自此以太坊共识正式从PoW转为PoS机制。作为首个监测到以太坊PoS出块的多链浏览器,首个PoS区块打包验证人为:0xeee27662c2b8eba3cd936a23f039f3189633e4c8。[2022/9/15 6:57:59]
一、技术的边界苹果公司在设计一款新产品时,都会先了解当下技术的边界在哪里,哪些技术已经可以完全使用了,哪些还要等几年,对于需要等几年的,它会在几年后再考虑。当然,科学和技术有着很大的不同,科学研究可以给出理论上的极限边界,而从工程设计的角度更多考虑的是如何在大概率情况会出现的大致边界内,整体上做到最好,类似于一个优化问题,我们需要知道给定的约束条件,才能最终正确地求解。
就分布式系统中状态共识问题而言,前人的科学研究已经给出了两个重要的边界:
声音 | 华为张小军:区块链业界有联盟属性、节省成本、聚焦场景三点产业共识:据每日经济新闻消息,12月14日,由工业和信息化部电子第五研究所指导,互链脉搏主办,主题为“区块链时代——产业协同与智慧政务”的“IN-Chain全球区块链峰会”在北京香格里拉酒店举办。华为区块链负责人张小军表示,区块链业界有三点产业共识。一是联盟属性。区块链天生具有联盟的属性,多方参与以完成统一的贸易为目标。二是节省成本。区块链以数据安全为中心,以简化流程为目标,节省交易成本是其关键价值。三是聚焦场景。区块链不以技术为重心,而以合适的场景为其价值的根本。[2019/12/14]
Fischer-Lynch-Paterson在1985年的论文中证明了:在一个多进程的异步系统中,只要有一个进程不可靠,那么就不存在一个协议,此协议能保证有限时间内使所有进程达成一致。
CAP原理:分布式计算系统不可能同时确保一致性、可用性和分区容忍性,设计中往往需要弱化对某个特性的保证。
其中一致性是指系统中服务节点对于处理结果达成的一致;可用性是指在有限时间内,任何非失败节点都能应答请求;分区容忍性是指网络可能发生分区使得节点之间通信不保障。
现场 | POC共识大会暨POC Community圆桌辩论:POW、POS、POC共识战乱:金色财经现场报道,7月30日,首届POC共识大会暨POC Community成立仪式于深圳举办,圆桌辩论以《POW、POS、POC共识战乱》为主题,HPool CEO POC生态布道者Alex、币印联合创始人朱砝、Hello EOS创始人梓岑进行辩论,并分享了精彩观点,在争辩中HPool CEO POC生态布道者Alex提到,目前POW的缺点最大最明显的发生在矿业,普通人很难参与底层的共识建设,DPOS最大的问题就在于它本身更像一个叫传统的公司股份制的方式,用这种方式去发行货币其实跟国家发行货币没太大区别,关键是看项目、应用、信用等级适不适用。
币印联合创始人朱砝表示,花200亿人民币的矿机去攻击一个价值万亿的网络是不可能的,一是网络攻击的是一个交易,并不是整个网络生态价值,并且单笔交易金额不可能与比特币生态价值相当;二是很难买到矿机。
Hello EOS创始人梓岑谈到,在2014年、2015年Dpos刚刚诞生的时候,Dpos和POW的冲突是非常激烈的,曾经以为我们要挑战POW,经过多年认知的更新,要挑战的根本就不是POW,当然也更不会是POC,POW和POC做不了DPOS要做的事情,DPOS是为应用而生的,DPOS赛道是非常安全,DPOS要的是最低成本,运行最多的应用,服务最多的用户,可以用任何的货币体系,可以支持任何的货币,并不需要挑战POW或者POC已经构建好的货币体系。[2019/7/30]
科学家认为在分布式场景下达成完全一致性是不可能的,但是工程上的许多问题的解决,都在于如何进行合理地取舍,我们可以牺牲一部分代价来换取分布式场景的一致性。目前,基于区块链设计的各种共识机制的不同主要来源于以下两个方面的不同:
动态 | IOTA官方宣布将引入与物联网有关的NB-Pow共识:近日IOTA官方宣布将推出与物联网相关的Azimuth共识(以前称为NB-PoW),以作为IOTA长期愿景的一部分。[2019/6/25]
第一,算法假设的条件不同,例如Paxos和Raft等算法假设节点不会故意发送错误的消息,这当然是一个比较强的条件。在比特币使用的PoW共识机制的前提条件是并不预先知道系统内有多少记账的节点,而联盟链里常使用的PBFT等协议则假设节点需要许可。
第二,可以看成是牺牲哪一部分代价来换取多少程度的一致性。例如根据CAP原理,弱化可用性,在系统故障时拒绝服务,Paxos、Raft等算法就是弱化了可用性来保证结果一致性。再如比特币通过算力的比拼牺牲了一部分最终一致性,但是保证了整个区块链系统的合法性和鲁棒性。
算法当然不是万能的,它的边界决定了必须要引入一些其他的激励和约束机制来使得整个系统正常工作。:在基于权益证明的加密货币中,创建新的区块并不会消耗大量CPU,如果它不诚实并不会失去什么,对于一个节点来说,利益最大化的选择是在多条链上同时挖矿,这会造成网络中的节点很难对使用哪条链达成共识,这种情况下需要通过算法外的办法来解决,加入一些惩罚的协议等等。
中国信通院云计算与大数据研究所所长何宝宏:区块链中如何使用共识机制是大问题:中国信通院云计算与大数据研究所所长何宝宏:区块链是唯一崛起于草根的颠覆性技术,越来越多的行业应用正在采用分布式账本技术;在区块链中如何使用共识机制是大问题,当信任缺失时,共识机制十分消耗算力;区块链技术人才需求朝复合型方向发展。[2017/12/22]
二、公有链的常用共识机制
就目前而言,公有链里的共识机制主要侧重于使用去中心化和更加具有激励性的设计,目前的许多新型区块链体系,支持可插拔的共识机制模块,可以根据应用场景和需求切换使用不同的共识机制。
系统的记账者都有唯一公认的历史交易序列对于公有链来说至关重要,因为这是解决“双重支付”问题的关键:为了避免双重支付的出现,那么就应当获悉这笔交易之前的所有交易,以确保这笔交易是第一次出现的。如何在双方信息不对称、不确定的环境下,使得交易可以顺利进行,这就是“拜占庭将军问题”。
比特币的PoW工作量证明机制通过以下途径来解决了拜占庭将军问题:
维持周期循环,保证节点步调一致:调整难度来保证网络一直需要花费10分钟找到一个数学难题的解,并产生一个新区块。在这10分钟内,网络上的参与者发送交易信息并完成交易,最后才会广播区块信息,这样就杜绝了节点无限制、无规律地发送命令的状态。
通过算力竞赛,确保网络单点广播:比特币通过时间戳和电子签名,确保在某一个时间点只有一个节点传输区块信息,改变了节点之间互相传送的混乱。
通过区块链,使用一个共同账本:基于P2P网络的BT技术是成熟的,网络中的节点,在每个循环周期内都是同步的,这让每个节点做决策的时候就有了共同的基础。
事实上,无论你采取什么样的方式,只要保证时间统一、步调一致、单点广播、一个链条就能解决加密货币这种分布式系统的拜占庭将军问题。
PoS作为另一种共识机制,矿工掌握的加密货币数量占比等于其挖出一个PoS矿的概率。这会导致首富账户的权力更大,有可能支配记账权,也会造成权益越来越中心化,但是PoS确实大大减少了挖矿的能源成本。长远来看,可能会有更多的币种会向PoS方向发展。
除了以上两种比较常见的基本的主流共识机制,目前的公有链共识机制的创新点在于两者之间的混合,从而可以保留去中心化特征的同时提高处理的效率。例如以Decred为代表的PoW/PoS混合共识:挖矿的过程和比特币类似,也需要完成一定量的工作量证明,但是在达成共识的环节有所区别,不同于比特币需要全网节点来验证区块,最终以最长的链为主链,混合机制引入PoS投票来决定刚挖出的区块是否有效,大大提高了验证的速度。除此以外还有以Hcash为代表的PoW/PoS混合共识+双层链结构。将PoW难度分成两级,分别发布在两条链上,使得PoW矿工和PoS矿工都能参与系统共识并发挥作用。
三、联盟链的常用共识机制
联盟链更注重隐私、安全和监管,因此会加入更多的管控元素,更喜欢采用类似于传统的拜占庭家族等共识机制。联盟链相对于公有链而言,弱化了对于去中心化的强调,同时由于节点准入制,可以理解为已经赋予了节点一定的信任。
股份授权证明机制里有股票权的人是通过选举产生和更换的,而不是和PoS一样通过币多币少这一个维度来产生的。它通过不同的策略,不定时地选中一小群节点,由这一小群节点做新区块的创建、验证,签名和互相监督,大幅度的减少了区块创建和确认所需要消耗的时间和算力成本。DPoS不需要太多的信任,所选的这些委托人不能改变交易的细节,如果节点存在试图作恶、提供的算力不稳定、计算机宕机等行为,公开的社区可以快速将他投票驱逐。
如果说PoW和PoS都是以经济模型为主解决共识问题,那么PBFT就是以算法模型来解决共识,它不存在代币分发机制,能耗很低。过程可以简述为大家先投票选出领导者,领导者记账后其他人投票通过。在PBFT算法中,可以证明只要会出错的拜占庭节点小于系统全部数量的1/3,那么整个系统就可以正常工作。目前的改进算法方向大致包括使用P2P网络、动态调整节点的数量,减少协议使用的消息数量等。
联盟链的共识机制算法的创新也包括了例如DPoS和PBFT的混合,将DPoS的授权机制应用于PBFT中实现动态授权,文献已经证明这样的算法在最佳出块时间为20秒的时间间隔下,TPS可以达到10000-12000,时延控制在100-200ms之间。正是由于联盟链保留了部分的“中心化”,从而得到了交易速度增快,交易成本大幅降低的回报。
四、共识的成本
很显然,共识是需要成本的,公有链如PoW付出了大量的算力成本,大量的硬件花费了很长的时间和很多电力来进行SHA256运算,求解一个实际上没有什么意义的难题,仅仅为了竞争记账权;即使是在联盟链上要达成共识,就像民主投票一样,需要经过一轮又一轮的磋商,交换意见最后达成一致。如何降低民主的成本,如何用最少的磋商次数,最小的沟通成本达成共识是算法追求的目标,也是决定区块链这台机器是否跑得足够快的重要因素。
而最重要的问题,我们应该思考的是从用户的角度,是否真正提升了用户的体验。毕竟,仅仅因为信仰而使用区块链上的各种服务的人只是少数,如果对于普通人而言,新的产品对他的生活品质、产品体验并没有太大的提高,那么究竟是否应该继续投入也是值得深思的问题。对于企业而言,企业当然应该仔细思量自己的投入产出比,以决定是应该使用区块链技术还是说存在成本更低的替代性方案。例如使用分布式数据库来解决企业之间的信息不对称性,对数据设置查看权限和加密等级来实现不可篡改,并配合一系列的管理办法,加上大部分场景里可能龙头企业并无太大的动机去实现数据篡改,并且有足够的动力去维护数据库,在这种情况下,设计得再复杂的共识机制也许并不如一个好的商业模式来的有效。
文章为哈希未来研究院原创作品,如需转载,请联系哈希未来工作人员。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。