搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 分权制衡理论与实务 > 分权制衡是使区块链真正实现去中心化的算法及共识机制

分权制衡是使区块链真正实现去中心化的算法及共识机制

分权制衡理论与实务 2018-06-30

            

  在没有深入研究区块链技术之前,我对“分权制衡”能否成为一种系统运行的算法,并没有具体的思考。尽管我坚定地认为,分权制衡可以成为社会的一种共识,一种机制;而且是一个国家要文明发达的必然组织架构原则。

随着对区块链技术及各种数字加密货币研究的逐渐深入,终于将“分权制衡”与“计算机算法”关联了起来。这也是一种思维的突破,在原来的知识体系中,欧美日那些以分权制衡原则构架起政体的国家案例,也没有将分权制衡原则当作一种算法而开发出一套计算机系统,直至区块链技术知识的出现,终于使“分权制衡”也能与“计算机算法”直接关联了起来,并有可能最终形成真正去中心化的计算机网络生态系统,从而从基础应用上引导一个社会走向造就通向文明发达的分权制衡政体。

 

                一


在比特币火爆之时,我也仍然困惑比特币的形成机制竟然建立在高性能计算机拥有的数量上。尽管有不少人一直认为这就是去中心化的。但怎么看依靠的仍然是中心化集中的优势。尤其是随着比特币价格的狂涨,吸引了更多的大资本涌入。他们凭借资本的优势,控制着更大比例的矿机,并以规模化优势而占据电费更低廉的地方,自然获得了更大比例的比特币数量,呈现为一种中心化寡头垄断的格局。这种格局当然绝不可能是去中心化普惠的。数据表明,BTCGuild50BTCASICMiner三大矿池已经占据全网64%的计算力,这意味着三大矿池若联手,将足以对比特币网络发起51%攻击。黑客丹·卡明斯基(Dan Kaminsky)在2013比特币大会上表示,比特币网络存在系统性风险。

而对于据认为是区块链2.0的以太网,另外一个区块链网络EOS的首席技术官--知名人物BMDaniel Lariner)20186月份的推特中明确指出,只要有三个矿池拒绝处理交易和区块,以太坊网络就会停止运作。但他力捧的EOS其实也好不了哪里,只要有21个节点联合也可以让EOS休克。

为何号称去中心化的这些区块链系统仍然是中心化的?--中心化未必是完全垄断的单极,寡头垄断也是一种中心化--就在于它们的共识机制算法存在着权力独大导致中心化的必然性,即没法消除中心化的魔障。

比特币形成的共识机制称作工作量证明机制POWproof of works,是基于资本以及计算机算力集中优势的算法,这与区块链声称的要去中心化的目标明显有冲突,故而必然难以服众!围绕着去中心化目标的思想,区块链共识机制必然会朝向最终要实现这个目标的技术思想发展下去,故而对于比特币的POW生成机制,否定及改弦易辙是自然必然的结果。当然,耗费大量能源及效率低下,也是决定了该机制不可传承延续。

后来就产生了权益证明机制(Proof of Stake)简称POS,它类似股权凭证和投票系统,因此也叫“股权证明算法”。由持有最多代币(token)的人来公示最终信息。以太坊就是从POW转变到POS算法的一套系统。

如果一个攻击者试图发起51%的攻击,它需要持有超过50%以上的代币,如果一个市值超过10亿美元的网络,攻击者的成本至少5亿美元以上,如果发生攻击,导致网络不安全,对理性攻击者来说也没有意义。而且POS的防御和攻击是不对等的,防御更容易些,恢复网络的代价要低于攻击者的代价。

POS机制据认为不用消耗大量能源,达成共识速度快,且不会产生通货膨胀,因为它的收益奖励主要来自于用户的交易。

但这种机制仍然存在着被攻击的系统风险,毕竟依然可以中心化,资本越多者越容易成为掌权的中心者;纯PoS机制的加密货币,只能通过IPO的方式发行,这就导致“少数人”(通常是开发者)获得大量成本极低的加密货币,在利益面前,很难保证他们不会大量抛售,这其实也是一种中心化机制。另外,并非所有节点都愿意挖矿、永远没有最终性,需要检查点机制来减缓这个问题、也容易产生分叉。

为了提高效率,在需要网络节点验证的POS基础上,有开发者提出了可以在有限的集合范围内进行投票验证的DPOS机制。DPOSDelegated Proof of Stake,称作授权股权证明机制。BMDaniel Lariner)EOS选择的就是这种共识算法。

显然,集群或社区内参与的节点越多则效率越慢。一个典型的分布式数据库,多副本的效率肯定比单副本效率低很多倍。故而,DPOS给出一种思路,将成千上万个POS节点,通过某种机制(例如持有代币的数量)选举出若干(奇数个)节点,在这几个节点之间进行投票选举出(在一些实现中甚至会在这些节点间以令牌环的方式进行轮询,进一步减少投票开销)每次的检查点(出块)节点,而不用在网络中全部节点之间进行选择。

这种将所有节点分为领导者与跟随者,只有领导者之间达成共识后才会通知跟随者的机制,能够大幅度提升选举效率。在几十个最多上百节点之间进行一致性投票一般来说可以在秒级完成并达到共识,因此DPOS机制可以将检查点(事务确认时间)提升到秒级,通过减少投票节点的数量或采用令牌环机制甚至可以降低到毫秒级。

   验证投票的节点少了,效率提高了,但是大量的节点就必然存在“被代表”的风险,它与备受诟病的“人民代表”机制完全是一样的,如果没有有效的制约,导向的必然仍然是中心化。现实中EOS区块链系统就基于20多个超级代表,这意味着如果超级节点被控制,网络就必然难免存在被财阀垄断控制的安全风险;显然与区块链去中心化的目标背道而驰。


         二

 

为了追求区块链网络效率,这个行业的技术人员还提出了其它称作共识机制的算法:

1实用拜占庭容错算法PBFTPractical Byzantine Fault Tolerance,又称拜占庭共识算法。它与上面几种都不相同,PBFT以计算为基础,也没有代币奖励。由链上所有人参与投票,少于(N-1/3个节点反对时就获得公示信息的权利。PBFT这是一种基于消息传递的大体一致性算法--具备(n-1)/3容错性,算法经过三个阶段--预准备(pre-prepare)、准备(prepare)和确认(commit)达成一致性,这些阶段可能因有1/3或以上记账人停止工作后,系统将无法提供服务而得重复进行。另外,少于(N-1/3个节点的权利则直接被忽略掉,即便其中有对节点持有人较为重要的利益,可以视为“多数人暴政”的一种做法。

  2PoI(Proof of Importance)重要度证明共识算法,引入了“账户重要程度”的概念,使用账户重要性评分来分配记账权的概率。通过区分帐户的重要程度,并由被认为重要的帐户来获得记帐权利的做法,自然是能实现低能耗、快速度的目标,但实际上必然存在侵害社区一些被认为不重要帐户权益的巨大风险,依然是一种民主理论实践的中心化算法。

3POP(ProofofParticipation)算法POP 是将 POIDPOS 的思想结合的一种算法。第一步,选举区块生成者。系统将首先选取生态中广泛的具有代表性的账户作为候选账户。社区对系统生成的候选账户进行投票,按照所得票数的多少,系统从中按照概率挑选总共 N 个账户作为区块生成者,其中 N 由社区投票决定,并被写入到链玄规中。候选账户所获得的投票数越多,被选中成为区块生成者的机会就越大。第二步,链按照一定的规则每隔固定 T 秒产生一个区块。第三步、交易确认。在区块生成者的参与度是 100%的情况下,区块链不会出现任何分叉,一笔 交易平均在几秒内就可以得到确认。但是如果出现了软件错误、网络不够顺畅、 或者某些区块链生成者恶意而为之而造成分叉,一笔交易就需要至少(2/3*N+1) 个区块生成者的确认后才能被保证是不可逆的。

这种方法是PoI以及DPOS的补洞版,依然是基于在现实中被广为诟病的“人民代表”生成法,体现了对“民主理论”的一种迷信,尽管有填补窟窿的努力。

   4DAG( Directed Acyclic Graph)算法,称作有向无环图,任意一条边有方向,且不存在环路的图。

DAG通过将事务操作进行异步处理来增加网络吞吐量,采用谣言传播算法(一种用于信息传递的算法)在节点间发送操作日志,并通过某种机制(IOTA每次验证前两条交易,并计算一个PoW代表权重)将一个权重赋给该操作。

相比起同步操作的链式结构,DAG结构与任何异步机制一样,能够带来的提升或许在于吞吐量,但是产生的问题则在于无法有效预测交易被确认的时间与周期。

对历史交易验证时采用随机方式,而没有任何先后规则,那么有可能产生某些交易在极端情况下没有任何其他节点对其验证,从而永远不会被确认。为了追踪每一笔交易与之前交易的关系,整个DAG图谱需要被随时检索和访问。在一个较大规模的系统中其交易图谱溯源会非常复杂,同时几乎不可能被全部保存在内存中以进行实时更新。而如果将这些数据保存在磁盘上,那么实时刷新每个Tangle的权重会造成大量随机I/O(也许可以通过大量部署SSD解决),导致极大的性能问题。由于采用谣言传播的方式将每一笔交易广播到网络中的其他节点,随着网络中节点数的增加(IOTA结构中可能会有百亿级别的设备节点,而非链式结构中几万个全账本节点),整个网络中的通讯量会程指数级上升。

即这种共识机制算法无论从网络性能突破上还是在尊重或保护了每个节点的权益方面,都存在着巨大的问题。


         三

 

去中心化的目标是为了尊重及保护社区或集体组织中每个成员的合理合法权益,但通过选举代表或倾向重要程度的方式忽略掉一些乃至大部分节点成员、且没有相应有效制约机制的做法来提高网络运行效率,一方面催生了财阀或寡头垄断的形成,另外一方面根本就没有实现“去中心化”的最终目标,故而,以上述算法形成的所谓区块链网络最终是一定要被广大民众所抛弃的。

那么,如何才能实现真正的去中心化呢?只要存在独大的权力,就必然是中心化的。或许当前未能体现出中心化独大权力的恶果,但只要存在未能有效制约到的权力,就会有其加害其它方权益的完全可能性。比如,基于POW机制的比特币,目前其实已经被集中了,成为了小撮人吸食众多投机者血汗钱而积聚暴利的一种工具,而绝不可能是惠及广大民众的雨露甘霖。导致这种结果的就是其生成机制是基于可以理解为民主理论及劳动力价值理论的设计,使资本能够堆集出独大难以为其它力量有效制约住的权力。

POWPOSDPOSPOIPOPPBFTDAG等等方式,在赋予一方权力的同时,并没有有效制约它使之不能膨胀为独大权力的体制安排,甚至为了追求效率直接就忽略掉众多节点的参与权搞“被代表”,这些都难以逃脱造就独大权力者最终寡头垄断或完全集中垄断的中心化结局。参与以这些方式组建起的所谓区块链只能持以投机的心态,尤其是众多的小户参与者。

分权制衡的算法机制理论原则是:赋予一方某个权力的同时,在其可制约的另一方增加相应有效约束的权力,并使各权力之间的制约皆对等有效;并写入计算机可执行程序中,只要条件一满足,由计算机自动运行,目标就是遏制独大权力的形成,从而确保去中心化的必然。

在区块链生态系统中,对应现实的社会,也能分化出重要的及一般的参与者;这是POIPOP方式形成的基础。还有可区分为Maker, Voter, Observer的身份,打包交易并生成区块者,可以为收到的区块投票节点者,还有观察者;检验是其中重要的程序工作。

既然可以区分出重要及一般的,而且极为重要的总是少数,那么就可以参照上下院、行政院、法院的分权制衡做法设置权限。极其重要的那些可以直接进入类似上院的机构,可以提议出块;而人数众多的一般者倘若数量不多,可以集体针对极其重要的出块要求进行检验表决,以确保非中心化及各方权益的尊重与保护。真正出块的行为应该可以视为实施执行的权力。各方的权力实施可以通过时间的规定确定,以确保效率。倘若一般者人数众多,则可以采取选举的方式减少需要的参与者,以提高效率。由于各种权力都受到制约而并非独大,因此,即便广大未当选者的权益也可以得到保护。当选者要履行其权利和义务,可以附带一定的惩罚。整个系统中的惩罚可以是第三方权力的体现,即制约着重要者、当选的一般者以及执行者,也是制约均衡的必不可少措施。

这方面的具体设计还得与区块链的技术人员沟通后才能进行。但分权制衡原则通过算法来实施是可以确定的。


       四

 

澳大利亚知名的区块链公司Penta首创的DSC共识算法,就在总体方向上应用了分权制衡的思想,试图打造区块链普惠生态应用群系。

DSC共识算法通过如下几个步骤来实现区块的生产:

  首先是从全网节点进行代表的投票选举,选出两种代表,一是持有较多PNT代币的议员,一个是持有较少PNT代币的观察员。这就产生了目前分权制衡政体国家的中两院机制。

  其次,在两种代表中通过散列抽签算法,随机挑选部分议员和观察员组成若干的共识组,每个共识组的议员或观察员占比不得少于1/3。即两院都采取了类似选举的挑选方式,以提高运行效率。

  共识组进行BFT共识。在议员中选举出议长。议长提议生成区块,其他议员和观察员进行区块验证,2/3以上节点验证通过后,生成该共识组所对应的候选区块。共识组数量的多少没有固定,根据网络情况进行动态调节,以保证正常出块。提议是一种权力,类似于提案权,只有经过区分出不同阶层的表决通过后方可处于待生效的状态。这类似于分权制衡政体中上院通过的提案还需得到下院的表决通过才能视为整个议院的合法通过。这种表决通过的提案并不是可立即生效,还需要具备执行权的同意方可生效。故而,在DSC算法中,这样生成的区块称作“侯选区块”,即不是生效的正式区块。

  最后,候选区块并不会自动成为正式区块,还需要通过散列抽签函数从所有共识组产生的候选区块中选择正式区块。如果出现区块共识在一定时间内无法达成的情况,会启动RESET机制。所有议员进行一轮BFT共识,产生一个RESET区块,重新组成共识组,恢复网络正常运行。正式区块的形成在DSC中采取了由函数选择法以及RESET机制,这点和当前的分权制衡政体运行机制并不一样,在现实的分权制衡社会中,是由行政权来决定是否生效以及被行政权否决后由立法权的再次大比例通过来使法案生效的流程。

  显然,DSC通过议长、议员、观察员、共识组的设计,有制衡及确保不同阶层权益公平的考虑。因为观察员有机会进入共识组,且不少于1/3,所以即使用户是持有较少PNT的代表,也有机会获得奖励。这兼顾了公平,而在PoS共识机制中,一个持有很少代币的用户,能得到奖励的概率非常低。

  Penta的议员是PNT代币持有节点主动发起申请,其他节点进行投票选择。要想当选议员,首先要质押一定数量的PNT代币,同时必须获得超过一定数量的票数。一旦当选议员,所有节点获得记账的机会均等。不是PNT数量越多,机会越大。议长是通过BFT共识过程产生,主要负责区块生成。

   观察员是监督的角色,它跟议员不同,所需要质押的PNT数量较少,获得的选票也较少。但观察员分布更广,数量更多。它代表了更多普通PNT代币持有人的利益。更类似于众议院的角色。观察员无法当选为议员或议长,没有生成区块的权利。

  Penta网络的议员人数是动态增长的,这个跟美国参议院固定席位不同。根据参与节点和PNT持有排名情况,Penta网络确定最初的议员数量和最低PNT代币的质押数量。同时,议员的数量和也会根据运行情况进行动态调整。观察员的数量则不设置上限。


  记账过程也是灵活参与。首先存入作为保证金的PNT代币,然后申请记账,经过投票、锁定代币之后,获得参与记账的机会。如要退出记账,申请解锁质押的代币,到期后获得解锁代币,完成退出。

  通过散列抽签算法,Penta网络可以从议员和观察员中随机选择组成若干个共识组。假如每个共识组记账人数n,n是动态调整的,其中,议员数量是(n1),那么,n/3<n1<2n/3,观察员的数量是n2=n-n1。这样保持了共识组里面灵活的组员比例,议员和观察员都是动态调整,同时都保持在一定的数量范围之内。

  关于恶意节点的惩罚:由于账户上质押了保证金,一旦发现任何故意破坏系统的行为,将会对节点进行惩罚。比如议长提出两个及以上区块BFT共识提案,其他节点可以举证,一旦确认,议长会收到远高于收益的惩罚。这会让作恶的成本处于不对称的状态。这种惩罚机制的条件一旦满足的硬约束,就有了司法权力运行的作用。即司法的权力可以作为程序写入系统中,而有了运行的机制。但对于这种司法权力写入代码的权力,则必须得到提案权及区块生成权成员的表决通过以有效制约。这就使分权制衡原则得到有效及有效率的应用。

  带有分权制衡思想的Penta网络DSC共识还能避免分叉。它有协议升级的机制。协议升级需要所有议员进行BFT投票,(2n+1)/3以上议员赞成,即可在指定区块高度自动切换到新协议,保证协议升级不发生分叉。协议升级主要是一些参数调整,比如共识组节点数量、交易手续费、最低保证金、议员和观察员人数等。

  对于节点来说,记账可以获得收益,交易也有手续费收益。其中50%的PNT用于共识记账激励。在议长提议的区块被议员和观察员确认之后,候选区块变成正式区块,在这个过程中,参与贡献的记账节点,也就是产生备选区块的共识组成员都会得到相应的PNT奖励。

Penta的共识机制吸取了PoS、DPoS的优点,也有自己的独创之处,不用担心分叉,不用担心能源浪费,提高了效率,同时兼顾代币较少持有人的利益,鼓励更多人参与进来,减少寡头利益风险,兼顾安全、效率、公平。

  Penta的DSC共识协议跟DPoS不同的是,多了一个散列抽签的算法,不仅仅照顾了代币持有人的利益,还兼顾了更多公平和安全。


          五

 

以上通过对比现有的共识机制算法的介绍及其问题的分析,认为惟有分权制衡共识机制的算法才能真正实现区块链去中心化的目标。因为无论是POW,还是POS、DPOS、POI、POP、PBFTDAG,都必然会导致中心化而难以实现去中心化、确保参与者合理合法权益的目标。正如现实社会中,有三权分立但无制衡的政体依然最终走向集权专制独裁并规模化祸害民众合理合法权益的结果。

那么如何才能将分权制衡共识机制算法应用到区块链生态系统中呢?本文例举了在总体方向上应用了分权制衡的思想、努力打造区块链普惠生态应用群系的澳大利亚知名区块链公司Penta首创的DSC共识算法,说明将分权制衡共识机制算法完全有办法应用到区块链生态系统的开发中。

我从事分权制衡理论的研究已有多年,并且在逐渐出版相应的书籍,认识到无论是人类社会还是计算机系统,只有贯彻应用分权制衡原则才能真正确保:在去中心化状态中不存在独大的权力而尊重及保护到社区每个成员合理合法的权益。这是要实现该目标除此无它的原则,是确定的惟一原则。

在分权制衡的技术实现上,重点就是如何精心地设计各种权力的行使应用互相之间能够有效地均衡地制约与被制约,而且还能够有其效率的可接受性。当然,我也论述过贯彻分权制衡原则的实际运行反而比其它机制更富有效率,因为它能够带来整个社会社区福利的帕累托优化增进。通过计算机的算法来实现分权制衡原则应用的效率,会相对更简单明了。比如通过时间戳的硬约束来实现效率的保障。

也由此,应用分权制衡的机制算法,也可以生成并流通真正益于广大民众的加密数字货币。在现实中,美元英镑等世界货币之所以能够为世界各国所乐意接受,就在于这些货币的发行与流通是基于分权制衡政体中架构的分权制衡中央银行管理体制下实现的购买力价值相对稳定。以分权制衡共识机制算法生成并流通的加密数字货币,自然也能够确保其购买力价值的相对稳定。而不像目前的比特币等,剧烈的波动根本承担不了货币的职能。




版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《分权制衡是使区块链真正实现去中心化的算法及共识机制》的版权归原作者「分权制衡理论与实务」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注分权制衡理论与实务微信公众号

分权制衡理论与实务微信公众号:fenquanzhiheng

分权制衡理论与实务

手机扫描上方二维码即可关注分权制衡理论与实务微信公众号

分权制衡理论与实务最新文章

精品公众号随机推荐