当前位置:网站首页 > 专栏 > 正文

共识机制的前世新生

作者: Aimersion 2019-12-16 18:04:00 1611 0

在区块链的世界里,“共识机制”是一个非常重要的概念。从PoW,到PoS、DPoS,再到PoRS人类在不断的尝试解决和优化“去中心化”中的“信任”问题,而到底是什么原理?为什么要用“账本”的概念?“信任”问题究竟该怎么解决?新秀PORS如何填补当今的“共识缺陷”,那么还是要回顾一下这些“共识机制”的前世今生。

 (一)  PoW(Proof-of-Work)工作量证明机制

1997年,英国密码学专家亚当.贝克(Adam Back)发明了哈希现金(Hashcash),用工作量证明系统解决了互联网垃圾邮件问题,而中本聪(目前被确信为一个神秘的技术团体,并非一个人)采用PoW来设计比特币系统,希望通过节点的算力来竞争记账权。由于比特币网络中有成千上万个节点,那该把币发行给谁呢?按照工作量证明的策略,在比特币系统中,大约每10分钟进行一轮算力竞赛,竞赛的胜利者获得一次记账的权力,并向其他节点同步新增账本信息。从这个角度看,“工作量证明机制”也可以看作是比特币系统的激励机制。

中本聪在比特币系统中,给每一个节点出了一个难题:

在给定的字符串“blockchain”,后面连接一个称为nonce的整数值串, 对连接后的字符串进行SHA256哈希运算,如果得到的哈希结果(以十六进制的形式表示)是以若干个0开头的,则验证通过。为了达到这个工作量证明的目标,我们需要不停地递增nonce值,对得到的新字符串进行SHA256哈希运算。

由于hash算法是一个不可以逆的算法,没法通过具体的hash值,倒推出原文;这样的话每个节点只能采用穷举的方法,也就是从1开始,2 3 4 5…不断的往后试;在这个过程就开始考验各个节点的CPU计算速度了,算的快的,很快就能得到Nonce值,然后他就把这个Nonce值放在结构体里,通过P2P网络广播出去;每个系统节点收到后,发现这个Nonce值是合法的,能满足要求,就认为挖矿成功;对于那些算到半截的节点,发现有人已经算出来了,就放弃本次穷举了;然后开始通过穷举的办法,去寻找下一个区块的Nonce值;这也就是“挖矿”的原理,就是计算机通过穷举的办法,不断去找Nonce值、算Hash值的过程;谁先找到,谁就挖成功了;

大家一起参与计算,都要耗费算力,而最终有效的只有一个用户所做的功,其他人做的都是无用功。这无疑伴随着巨大资源浪费,而日渐庞大的账本体量,导致全网确认信息的实效越来越长。

(二)(PoS)Proof of Stake 权益证明机制

2011年7月11日在Bitcointalk论坛首次提出的 Proof of Stake,当时还没有PoS的简称,是对Proof of Work提出来的。简单而言,即拥有越多股权,就可以获得更多奖励。这里的股权是指你持有的数字货币的数量和时间,根据它来分配权益,类似股票的分红制度。你持有的币越多,持有的时间越长,即币龄(币龄=持币数*持币时间)越大,就能拿到越多的分红,也就有更大的记账权利。

以太坊就是最典型的例子。从提出到落地,大概经历了1年左右的发展,2012年8月19日,首个基于PoS共识的区块链项目点点币(Peercoin)诞生。SunnyKing(点点币创始人)在最初设计的时候,可能因为时间过短,没有想清楚如何解决 PoS 机制下出现的问题,也可能是 PoW 共识在人们的思维方式里面占据着主要地位,点点币的共识实际上是基于PoW+PoS的混合共识,而不是纯PoS(Pure PoS)的共识,在点点币的白皮书里面,我们可以看到当时很多新的概念,币龄(Coinage),随机数参数(prev_blocks_data),PoS的checkpoint等等。

在2009~2014年期间,比特币的 PoW 还是具有较高的权威性,大部分人对PoW的印象里面,除了浪费资源和效率稍低一点之外,并没有太大的致命性问题,到了2015年~2016年,币圈进入了大熊市,很多项目和开发者就进入了冬眠过冬阶段,也很少有项目再出现吆喝捐赠,IPO或者ICO了,PoS的研究也在市场上消失了一段时间,PoS机制的币种也相继崩溃,排除市场大周期的原因,我们归结那段时间PoS机制币种失败的原因,点点币,Nxt,黑币,影子币都是PoS很早期的探索项目,技术上并未完全考虑全面。

通俗的说,PoS 就是资本主义,按钱分配,钱生钱。

 

一定程度上缩短了共识达成的时间。不再需要大量消耗能源挖矿。PoS 当然也能防作弊,因为如果一名持有 51%以上股权的人作弊,相当于他坑了自己,因为一个人自己不会杀死自己的钱。但本质上还是需要挖矿,没有解决商业应用的痛点,而且所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。

例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC由此事件出现,事实上证明了此次硬分叉的失败。极端的情况下会带来中心化的结果。PoS 机制由股东自己保证安全,工作原理是利益捆绑。在这个模式下,不持有 PoS 的人无法对 PoS 构成威胁。PoS 的安全取决于持有者,和其他任何因素无关。

在POS机制里,拥有币和币龄越高的节点拥有着越高产生新区块的权力。简单来说,就是你拥有越多的币,并且你拥有的币的币龄越久,就有可能获得记账权的概率越大。POS虽然解决了POW的能耗的问题,但全节点确认会让区块确认的效率提不起来,且时间越长,也越容易产生马太效应,即持有币越多的人会获得更多的币奖励,从而加大贫富差距,最终产生超过50%的中心化节点,被动演化为非预期的中心化的结果。

 

(三)DPoS(Delegated Proof of Stake)委托权益证明

简单来理解,DPoS共识算法就是将PoS共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账,这个圈子可能是21个节点,也有可能是101个节点,这一点取决于设计,有这个圈子中的节点才能获得记账权。这将极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

在PoS共识中,人们使用财产证明来“挖矿”,也就是说,这是任何人都可以参与的,只要你持有币,你就可以参与挖矿。但是我们可以看出,PoS并没有解决性能问题,在这里我们直接认为提高性能就是提高TPS,TPS表示区块链每秒能确认的交易数, 交易数量是由区块大小和平均每笔交易大小决定的,而区块大小受全网网络状态限制,也是由记账节点之间物理带宽决定的。记账节点的个数直接决定了物理带宽的上限,因为记账节点数量越多,则对物理带宽要求越高,对网络的稳定性要求也越高。

在PoW和PoS中,成为记账节点是无需门槛的,你可以随时参与挖矿,随时退出。那这会带来什么问题呢,首先无法确定记账节点的数量,其次无法确定记账节点之间的网络环境,记账节点数越多网络环境越复杂,这些不确定性会增大网络分区的概率,从而导致区块链分叉。

如果我们事先规定好记账节点的数量,接着让全网所有节点可以投票决定哪些节点可以成为记账节点,这样就限制并减小了记账节点,这个过程我们也称作投票选举。因为记账节点数量不多,那么我们可以在共识算法中规定出块时间为一个固定值,这个值可以很小,通过轮流出块的方式来进行记账。

通过投票选举的方式,选出记账节点,代表他们履行权利和义务,而不是用算力来决定。如果记账节点不称职,随时可能会被投票出局。投票的权重和分配的收益,都是按照持有的加密货币数量占总量的百分比来计算的,51%的股东的投票结果是不可逆且有约束力的。


EOS采用的就是“委托权益证明(DPoS)”机制,将“记账权力”委托(Delegated)给一小群“超级节点”。一个超级节点,则代表的是一群普通节点的利益。

在委托权益证明机制(DPoS)中,不需要算力解答哈希函数,而是由持币者投票选出生产者(也就是记账节点)。因此,相对于PoS,DPoS减少了记账节点,交易更快,号称能到百万级TPS,同时系统相对更加稳定安全,全包最终一致性,相对于PoW 也解决了资源消耗问题。

但是DPoS机制的设计并不能保证一定有足额的真实的记账节点,因为一个人或一个实体,可能控制着多个节点。比如LBTC,就一度出现半数节点被鱼池一家控制。EOS在启动过程中,也疑似出现一个人虚拟出7个节点的事。

其次,在真实的网络环境中,EOS实际的运行效率远没有吹的那么厉害,同时超级节点的治理权力和经济利益过于集中,如果他们串通,将进一步形成巨头龙垄断。由于DPoS共识机制本身将“矿池”纳入系统内部,并被委托记账,虽委托的记账节点权力较大,可以认为DPoS本身就是带中心化思路的共识机制。而且对于坏节点的处理存在诸多困难。社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患。这也是为什么V神怒怼DPoS的原因。


(四)PoRS (Proof of Resource staking)资源权益证明

在2019年,一个叫做  Aimersion 的技术组织提出了一种新的共识机制——PoRS(据说孕育了十年之久),通常在对等式的网络结构中,节点需要提交一定的数学证明,以确认其贡献的有效性。例如前面提到的PoW、PoS  。

在过去,一些采用对等式网络结构的存储技术发展迅猛,例如:Maidsafe、Ipfs、Sia、Storj等,这些技术需要验证节点所贡献存储资源的综合能力,而传统依靠节点算力进行验证的共识机制并不适用于存储领域。而PoRS共识机制,通过算法结合节点贡献的存储空间大小、利用程度以及在线时间等因素验证节点贡献的有效性,来判定节点的贡献价值,这样一来,作为节点只需要贡献硬盘资源和少量CPU算力,即可为整个网络系统提供处理数据的空间和效率,因此PoRS 相比于传统的共识机制而言,节省了大量能源消耗,资源消耗,以及环境消耗,进入门槛也非常低,只要节点的参与费用不是让人望而却步的话,这种机制更容易进退自由。

其次就是存储行业正在兴起一股无法避免的挑战和变革,但无论是以Hadoop为首的传统存储行业,又或是以Maidsafe、IPFS这类属于第二代的分布式存储技术,PoRS  真的能以黑马新人的角色傲立在群雄逐鹿的底层存储市场吗?毕竟谁先征服底层领域,谁就是未来的规则制定者。

然而Aimersion已经提出,不久之后即将开始物理层和设备层的测试,PoRS 共识机制最终是要面对大量的真实数据和事件的,并非仅仅在理论层面,因此会进行实际的网络存储系统和节点测试,并且测试的问题也是目前市场上的其他同类技术还不具备,但不得不面对的问题:

数据需要随机拆分;

拆分逻辑不被追踪;

数据碎片能够自我加密;

碎片传输过程加密;

数据碎片权限自我验证;

整个存储系统能够自我治理。


如果按以上问题来说,光有PoRS 的共识算法是不够的,这个存储系统必须自带新的网络协议,新的验证密匙,智能管理系统(理论上来说,这种智能管理系统必须得是去中心化的,否则一开始就失去分布式的意义,那么就意味着数据在被碎片化的过程中就得自带该属性),而这样的标准毫无疑问也是给分布式存储提出了新的定义和参考,以目前市场上存在的这些分布式存储技术来说,都还遥不可及,即使在近两年炒的火热的IPFS也远远没有达到这样的要求。这个神秘的Aimersion真的可以吗?如果真的能够达到以上标准,那么节点贡献的判定机制将会非常可期,大资源节点和小资源节点之间的权益归属也会更加公平,新共识机制 PoRS 的诞生将真正给矿业带来巨大的颠覆,又或者说是福音,同时有可能结束目前共识机制的乱象之争。

可惜的是目前还没找到更多关于Aimersion的相关测试公告或者节点参与说明,节点是怎样的?也是存储机吗?单个节点存储量多大?参与方式如何?有没有模式?有没有代币?安全性多高?网络系统的效率如何?真的十分期待Aimersion 有更多详情可以公布。

本文暂时没有评论,来添加一个吧(●'◡'●)

发表评论:

  • 评分:
  • 回到顶部