【专题讨论】如何实现更进一步的去中心化?

原帖链接:

【话题】关于去中心化

今天我们讨论密码经济领域使用频率最高的一个词——去中心化。

去中心化常常被视为区块链存在的全部理由,人们评价一个公链也经常把「去中心化」程度做为重要的衡量标准,在区块链技术领域的人们表现得尤其「憎恨」中心化,当一个技术讨论陷入僵局时人们通常会用对方的方案会导致「中心化」来做为反驳技术观点的最有力论据。

之所以要实现去中心化,相信很多人都有各自的理解,这里大致总结几点:

规则透明且广泛参与 :中心化系统的弊端已被诟病了很长时间,一个系统的记账规则(或者说游戏规则)应该由所有的参与者共同确定而绝不应该由单个个人或组织来确定,如果权力过于集中则很难保证有权力的人或组织不会以牺牲其他人的利益来使自己收益。

容错性 :当存在少数恶意节点或故障节点时,不会影响系统的平稳运行,毕竟不太可能所有节点都同时发生故障或同时作恶。

不会被操控 :因为它们缺乏敏感的中心点,攻击和破坏或操纵成本更高。

关注PlatON的同学可能已经发现,PlatON的共识机制将候选节点数量提升到了201,每轮共识节点的数量提升到了43,从去中心化程度上来说相比于先行示范网络Alaya提高了接近一倍。然而是不是意味着参与共识的节点越多越好?试想一下不考虑硬件和带宽成本,全世界70亿人每人都运行一个节点,共同参与记账,会有什么问题呢?

1. 共识效率低

对于基于Giskard共识协议的PlatON来说,区块或状态的确认至少要经过2轮QC(Quorum Certificate),每轮QC要保证全网超过2/3(2f+1)个节点的签名,过多的节点将导致共识效率的严重下降。

2. 安全性问题

按照BFT共识理论,总节点数N=3F+1,在坏节点比例不变的情况下总数越大意味着恶意节点或故障节点F越大,PlatON当前采用随机选取节点参与共识的机制,虽然可以通过改进随机性算法以及通过Slashing及时罚没坏节点等方式尽量避免同一轮共识节点都是坏节点,但目前在安全性上仍不宜将备选节点总数设置太大。

3. 对节点的激励不够

参与共识的节点要维护网络安全和高效,但这并不是无私的,包括PlatON在内的大多数网络通过增发Token来激励节点,但如果节点数过多,则需要激励的数量过于庞大,分配到单个节点的激励将变得非常有限,会影响节点维护网络高效和安全的积极性。

4. 更新升级慢

一个庞大的群体内必然充斥着各种各样的声音,对于新的改进建议(如PIP)的推进并不是一件容易的事,提案发起者需要争取到足够的支持才能得以实施。

基于以上原因,PlatON当前没有将验证人总数和每轮共识节点数完全放开,而是基于当前的技术、严谨的性能要求以及异常测试前提下做的初步调整,关于到底有多少个验证人节点才是最合适的目前并没有一个结论,但从技术迭代和发展长远角度来看,当前201+43这个参数需要进一步扩充,我们可以试着在平衡安全性以及性能的前提下定几个小目标来进一步提升去中心化:

备选节点数量 :计划支持10000个节点以上,考虑根据质押LAT数、交易数、出块率等因素动态调整备选节点数量,增加节点作恶成本,降低被攻击的风险。

验证节点数量 :考虑对Giskard共识协议进行优化,在保证性能没有明显的损耗的前提下支持更多验证节点,由于存在DDoS攻击的时间窗口,参与BFT验证节点数量不能太大,计划支持到200个验证节点。

优化随机性算法 :好的算法可以同时保证安全性和公平性,对于选取共识节点的算法PlatON会持续优化和改进。

欢迎大家就以上改进在本帖发表各自观点, 我们将抽取提出有效建议的5位用户获得10LAT的激励。

6 个赞

以下拙见,权当抛砖引玉:

民主集中制既是我党的组织原则,也是以人民代表大会为核心的国家机构的组织原则,党和国家领导体制因此而有效地组织起来。 如果说西方的政治模式是代议制民主,中国的政治模式则是民主集中制。 支撑“中国模式”的根本制度是人民代表大会制度,其生命力和优势来自民主集中制。 我们常说人民代表大会制度是保证人民当家做主的根本政治制度。 人大制度不仅体现了人民民主,即国家一切权力属于人民的原则,也包括实现人民民主的制度形式即代表制民主和协商民主制度。 人民民主, 在我国的政治实践中,一切权力属于人民,是政治制度建设的核心内容和根本原则。

PlatON目前的共识机制为PPoS,简单的讲分为三个阶段(参考PlatON经济蓝皮书):1. 备选节点选举;2. 用VRF从备选节点中选出验证节点;3. 验证节点轮流出块并运行拜占庭协议CBFT。这种机制与我党人民民主集中制的组织原则非常契合。正如帖子中提到,如果全世界70亿人每人运行一个节点,共同参与记账会存在诸多的问题,而我党的组织原则,已经从2008年5.12汶川大地震的救灾与灾后重建,到现阶段依然横行于世的新冠疫情的治理,都展示出了强大的制度优越性,世界有目共睹。

从区块链横空出世开始,就已经有大量学者将链上共识机制,与社会组织与治理的研究联系在了一起,而最直接和最成功的例子其实作为中国人都亲身参与其中。因此,区块链的去中心化使世人看到了在技术上保证生产关系革新的可性能,而具体问题具体分析,也是发展过程中必然需要重视的关键方法论。区块链的发展既离不开项目方的精诚努力,也离不开社区的共识凝聚,知行合一,方能开拓世界!

7 个赞

众所周知,不可能三角是当前任何区块链系统都无法回避的一个问题。

所谓不可能三角,即去中心化、可扩展性以及安全性,这三个方面无法同时兼顾,至少是在当前的技术水平和认知条件下,即使是最广为人知的比特币、以太坊(尤指以太坊1.0),经过这么多年的发展,也没有能从根本上解决这个问题。

一般而言,安全性这个维度上,是不能妥协的,没有安全性的区块链网络是没有价值的。所以,基本所有的项目,都是在去中心化和可扩展性上来做文章,其实也就是取舍,要么保一头,要么两头都妥协,也有做的不好的,那就是两头都没顾上。

以比特币和以太坊等区块链系统为例,它们都选择了以工作量证明(PoW)和最长链原则为基础的共识机制,起初的目的是为了更去中心化,因此,它们的可扩展性都非常差,反应到现象上,就是TPS非常低,比特币系统大概是7左右,以太坊好像也就20左右。

更有意义的是,随着矿场和矿池的大规模产业化,其在去中心化的程度上,也在有所减弱。

回到我们的问题,(PlatON)如何实现更进一步的去中心化?

首先还是回顾刚才提到的一个原则,安全性这个维度是绝不能动的,那么要更进一步的实现去中心化,似乎意味着只能在可扩展性上进行妥协了?

我们知道,PlatON在系统架构上做了一件事情,就是链上和链下的分离,将可扩展性放到链下,而链上只做有限的事情,即验证和打包出块,这在一定程度上提升了可扩展性,但是还是没法跳出不可能三角。

因为链下的计算结果终究是要通过链上来做验证,验证通过了才可能被打包进区块并被确认,成为不可篡改的事实,验证这个行为还是需要验证节点在链上来执行,所以,虽然链下看起来不存在可扩展性问题了,但是链上依然还是有这些问题。

正如楼主提到的,验证节点过多,去中心化程度可能高了,但是大家达成共识的效率可能又要低了,到底有没有解决方案呢?

如果纠结于问题表象,能不能打破不可能三角,那么回答是,没有。

但是我们回到问题的本质来看呢?其实一切问题都是要追求去中心化而导致的。

更深一步的问,为什么我们要追求去中心化?去中心化是要比不去中心化得到更多的什么么?

其实说白了,去中心化的目的是什么?去中心化的目的是要杜绝一件事情,就是少数人(节点)对多数人(节点)的暴政,要防止话语权长期掌握在少数人(节点)的手中。

一个节点,当它成为出块节点时候,事实上,此时此刻,它就是这个系统的中心,而我们之所以认为区块链是去中心化的,是在于这个节点并非时时刻刻都是中心,并且它的行为是被其它多数节点所共同监督,这也就达到了我们刚才说的目的,这个节点作为少数,无法靠一己之力对其它多数节点实施暴政,另外,由于它无法保证自己时时刻刻都是出块节点,所以无法长期掌控话语权。

所以我们看到,去中心化是一面旗帜,但是盲目的追求去中心化是没有意义的,去中心化不代表没有中心,只是代表没有永恒的中心。

PlatON是采用PoS+VRF+BFT的共识机制的,我们都知道,采用PoS共识机制的一个很大的目的就是提升链的可扩展性,当然了,去中心化程度会有所降低,坦白的讲,PoS是投票选举制度,在大多数备选节点基本盘不发生重大改变的情况下,备选节点的名单是不会有太大变化的,你很难想象,一个节点,今天有一千万选票被纳入备选节点,明天又一票未得被踢出候选序列,后天又拉到一千万票强势回归。

这个现象是没法很好的改变的,这是为了可扩展性做的妥协,其实和现代公司的管理架构是一样的,如果公司真正讲究公平,任何事情都要所有股东参与决策的话,这个公司基本上就不用做事情了,所以实际上公司治理都会由股东大会选举出董事会,董事会再任命CEO,来对公司进行管理,这就是公平和效率的兼顾。

所以,我们不要妄图一下解决这个问题,而是回到我们的初心,即去中心化的目的,那就是,杜绝少数人(节点)对多数人(节点)的暴政,防止话语权长期掌握在少数人(节点)的手中。

因此,我们最好的办法,不是大量的增加备选节点和验证节点,因为这必将带来效率上的损耗,而是增加随机性、减少连任、和加入审计制度。

  • 所谓增加随机性,就是使得备选节点的选举的越随机越好,这样做主要是两个目的,一个是防止出块节点的串通,二是防止节点预测自己当选的时机,说白了,就是让想作恶的人猝不及防以至于来不及准备作恶;

  • 所谓减少连任,就是防止某个节点连续成为出块节点,也就是让其掌握话语权的时间有限;

  • 所谓加入审计制度,也许备选节点和其它验证者节点监督不力,毕竟大家时间精力都有限,不是自己出的块可能也不认真检查,但是没有关系,我们可以发动群众的力量,让潜在的作恶节点陷入人民战争的汪洋大海中,任意节点都可以对作恶现象进行审计和举报,如果经验证核实,举报的节点也可以获得相应的奖励,让维护网络安全,成为所有人的事情。

当然了,我刚才说到了,不大量的增加备选节点和验证节点,也不是一个绝对,因为随着我们硬件性能的不断提升,计算、存储和网络的性能都在不断的提升,也许,在未来,也许节点再扩大几倍,其交互达成的共识的时间也和现在差不多,所以,增加备选节点和验证节点,也未尝不是随着时间和技术进步而来的一个解决方案。

以上,就是关于如何实现更进一步的去中心化的粗浅思考,纯属抛砖引玉,群众轻拍。

11 个赞

太透彻了,佩服佩服 :+1: :+1: :+1:

完全同意 @404NotFound_Cross 的观点。

纯粹追求去中心化没有任何意义,在可能的硬件和网络能力下,保证性能可商用,对于一个公链来说,意义要比盲目地为了去中心化而去中心化要大得多。

不是去中心化不重要,而是不值得为其牺牲掉基本的可商用能力。

如果假定:安全性乘以性能乘以去中心化程度等于一个常数,那么前两者必须设定满足需求的最低值,在这个前提下,去中心化程度有多少就算多少。

随着技术的发展,这个常数必然会不断提高,在此基础上,去中心化程度也会随着提升,这已经是很好的结果了。

在当前的情形下,作为PoS公链,建议PlatON也可以考虑从加强“规模不经济”程度的方式着手,以经济手段来推动在现有技术能力约束下的去中心化程度提升。

5 个赞

惭愧,粗浅见解,抛砖引玉

1 个赞