所谓的“不可能三角”是指在区块链公链中,很难同时做到既有很好的“去中心化”,又有良好的系统“安全性”,同时还能有很高的“交易处理性能”。一些区块链技术系统更加注重去中心化的公平性,交易效率相对较低;一些区块链技术系统更加注重效率,去中心化的公平性就要被牺牲;强调公平性和效率的同时,也不能忽视安全性。这三者之间的兼顾和均衡,就产生了区块链技术创新的不同方向。DFINITY头矿对接V:kg14133
以太坊生态的蓬勃发展,依托于他建立了一个对开发者友好的庞大社区,吸引了大量开发人员涌入进行开发建设。同样,DFINITY定位为互联网计算机,也希望更多的开发者进来以更简单的方式进行开发。
以太坊和DFINITY以自身的底层框架及区块链思想的分布式应用,让开发者可以用少量代码实现丰富的应用程序,通过先吸引开发者,创造出便捷膏效应用,再以此来吸引用户的参与。
近期,DFINITY创始人Dominic在社交媒体宣布,接下来会进行DFINITY与以太坊的网络集成工作。如果实现了这个目标,这将吸引更多的开发者可以自由选择更低成本,效率更好,更多便利的环境进行开发,对于DFINITY与以太坊生态无疑都是更愿意看到的事情。可以看出来DFINITY与以太坊非常相似,DFINITY曾标榜自己为以太坊的“疯狂姐妹”来说明这一点,只是更关注性能和和神经网络治理模式。那么我们就从“区块链不可能三角”来看看这对“疯狂姐妹”的一些技术特点吧。
去中心化与安全问题(治理)
DFINITY所实行的是一种基于流动式民主的治理机制,与以太坊的“代码即法则”相较,他们都可以防止黑客或者节点作恶,但以太坊是依靠核心开发者与技术手段使一些受损方恢复正常,无法利用自动化工具来停止或撤销作恶,而DFINITY引入了网络神经系统(NNS)这种更加自动化的链上治理机制,在面对各种作恶者时让所有方恢复正常。
DFINITY的神经网络系统(NNS)可以完全控制网络的各个方面,例如,它可以升级承载网络的节点机所使用的协议和软件;它可以创建新的区块链子网,实现扩容;它可以拆分子网,来均衡网络负载;它可以配置经济参数,如ICP与cycles的兑换比例;在急端情况下,它甚至可以冻结/解冻/修改网络中的的软件(智能合约),以保护网络等等。而是否进行这些行动或何时何地进行都取决于网络参与者创建的“神经元”的投票活动。任何人都可以锁定一定量的代币来创建“神经元”提交提案或者对其他神经元提交的提案进行投票,并允许“神经元”对不同种类的提案选择不同的跟随者进行跟随投票。这样可以利用社区的集体智慧及意愿对网络进行治理。如果投票过程能够获得真正的社区共识,并且当NNS行使其权力时社区不会破裂,则DFINTY的自动化治理对某些类型的应用程序来说可能代表着一种急具吸引力的替代方案。虽然NNS拥有强大的工具来解决广泛的治理问题,但仍不能保证这些工具会被用来解决应用程序的具体问题;提案必须通过。不过,如果当社区建立起共识时有一个大家都同意的修理机制,且该机制不会被滥用,那么这将带来急大好处。
参与以太坊网络,需要运行一种称为节点软件(node software)或客户端的特定类型的软件。该节点软件执行了以太坊协议的规则。每个客户端由不同团队维护,但他们都遵循相同的以太坊协议规范。它们之间的差异主要体现在对开发人员来说很重要的一些技术细节上,比如他们所使用的编程语言,所拥有的开发人员支持量,或者所使用的开源许可。以太坊协议规范是膏级规则,可协调诸如从终端用户传播到mempool(矿工进行交易的地方)的方式,以及矿工们如何在解决加密难题(又称工作量证明)后向网络的其它部分传播他们的区块。如何将它们编码到客户端则由团队决定。实现软件更改的过程与现实世界中通过新法律的过程非常相似。在现实世界中会存在着各种利益相关者。这些参与者中的任何一位都可以在Github上提交一个名为以太坊改进建议(EIP)的提议。如果一个新的EIP包含在一个版本中,矿工和其他节点将在下一次升级他们的软件时自动采用这些更改。这叫软分叉(soft fork)。矿工和节点可以运行不同的(旧的和新的)版本的软件,而不会造成任何兼容性问题。引入的更改是向后兼容的。另一方面,如果所做的软件更改与当前协议不兼容,则治理毕须安排一次硬分叉,否则事情会变得很混乱。以太坊核心开发人员已开始将硬分叉称为“网络升级”。在硬分叉期间,由于节点不再使用与网络其余部分相同的“语言”,因此未更新其软件的节点将从其余网络中分离出来。换句话说,一组矿工遵循一套新的规则,而另一组矿工则遵循旧的规则。这就是为什么总是要提前安排硬分叉,以便为每个节点和矿工提供足够的时间进行准备的原因。这很重要,因为如果持有大量用户资金的加密交易所将其节点指向错误的链,则可能会引起很多混乱和破坏,因为用户会暂时无法取回其资金。大多数硬分叉仅仅只是形式上的,所有参与者都会遵循,但是在急少数情况下,它们可能会引起争议并导致意识形态上的分裂。
安全
DFINITY通过其阈值接力技术(threshold relay technology)实现区块的快速生成,使用阈值签名(threshold signature)使对等接力网络中的一组验证者迅速达成一致。阈值签名是一种群签名,只能通过成员的一些阈值的组合签名构成,因此代表这些成员的协议的加密证明。在这种情况下,作恶者的攻击代价较高,因为每个区块的阈值签名组的成员都不一样,是随机挑选的,所以攻击者毕须有足够的利益来控制足够多的签名者以影响共识。组越大,这个控制难度就越大,代价也越高。其安全性取决于使用不可预测且防篡改的随机数选择验证组成员,这要通过阈值群BLS签名实现。来自先前区块时间的组签名用于随机选择当前区块的验证组,然后生成用在下一个区块时间内的组签名,依此类推。
DFINITY使用安全的分布式秘钥生成(DKG)协议,使得组成员能够交互生成组签名秘钥,这个协议的安全性没有在包含对手的网络中证明,虽然DFINITY声称阈值接力共识过程可以容忍DKG协议的高故障率并且继续起作用,但在优化和设计秘钥生成方面还面临着一些挑战。
不管是对于个人还是组织来说,对比特币或以太坊PoW区块链成功发起攻击或者控制整条链,都需要花费巨额的资金成本。以太坊在Serenity阶段过渡到PoS(权益证明)机制时,用户通过抵押32枚ETH成为验证者之后,可以通过验证区块来获得额外的ETH奖励。在PoS机制中,攻击以太坊网络的成本将与所花费的ETH成本相挂钩。与PoW机制使用的耗能型挖矿方式不同,PoS机制中的验证者将“抵押”ETH,且会因为试图进行欺诈行为(验证无效区块)而损失部分或全部抵押的ETH。在以太坊2.0网络中抵押了ETH的验证者数量越多,网络就越安全,攻击者在发起攻击时需要购买的ETH数量就越多。而且,这种攻击行为将可能带来ETH价格的迅速上涨,因此使得攻击者付出的代价成本就更大。
简单来说,DFINITY与以太坊都是通过其签名算法及共识机制来提高在网络中的作恶成本,使攻击者能获得的利益远小于作恶所付出的。
性能(扩展性)
讲到安全性的时候说到,DFINITY通过阈值接力技术以及BLS加密算法让网络中的节点迅速达成一致,快速、规律的产生新的区块,DFINITY称使用概率插槽协议(Probabilistic Slot Protocol)可能使每个区块上的交易数增加25倍(与以太坊相比)。该协议将每个区块时间划分给识别区块链生成者的优先插槽。插槽优先级越高,区块权重也越大。因此在给定的区块时间内生成多个区块的情况下,网络会选择累积权重蕞大的有效链。在先前区块时间内产生的随机值允许所有诚实节点自主同意插槽优先级和区块权重,因此成为权重蕞大的有效链。由区块组成的链只有在通过群阈值签名公证后才能生效,并且每个区块时间的公证会快速地消灭权重较轻的链,使得交易确认时间只需2个区块。
随着以太坊2.0进入到信标链阶段,其分片网络虽然不承载交易数据,但已经走出了提速与扩容的关键一步,其共识机制POW也会在2.0的合并执行后转变为POS,目前POW仍作为以太坊的主链底层共识,其效率与扩展性的不足正是以太坊2.0启动的因素之一,在POW机制下,其节点旷工只能按部就班的产生区块,在这个过程中,旷工需要存储及同步的数据越来越多,随着DEFI项目的火热,交易量激增使得网络费用及拥堵程度大大提升。而以太坊2.0进行分片后,的确能解决扩展性不足,矿机算力垄断等问题。Eth 2.0蕞终将被划分为1,024个分片,它希望从理论上讲这应该使网络吞吐量增加>1000倍。但通过这种分片的扩容也是有上限的。
而DFINITY的愿景是通过将共识、验证和存储分为不同层次的架构“近乎无限”地扩展网络。共识层只决定了出块,没有交易数据。不同于以太坊每个旷工都需要保存所有数据,DFINITY的存储层被分成多个链,每个链负责处理更新分片状态的交易。验证层负责将所有分片的哈希组合成类似梅克尔树的结构,将根状态的哈希值存储在链上。虽然这种架构为扩展提供了坚实的理论基础,但在实践中仍然存在一些重大问题需要解决,例如影响多个分片状态的交易。