最近一段时间,Dfinity共识体系是被认为较有希望提供高性能交易的区块链公链方案之一。为了解决PoW性能低下和高能耗的问题,Dfinity也采用了PoS分组模式。与Algorand不同,Dfinity在Github提供了一个GO语言的概念验证POC实现。Dfinity用随机数把矿工分为若干个组,每组400人,组中的一个节点将按顺序被选作提案节点,其它节点为验证节点。每次由随机数决定下一出块组,组内随机轮询决定下一个出块提案节点。提案块全网广播到同组成员,进行验证,使用BLS门限签名来达成组内共识。BLS门限签名要比Algorand的可扩展的拜占庭容错算法更有效率,无需像拜占庭容错算法那样多轮的验证步骤,不但提高了TPS而且还省下了长签名数据入链造成的存储容量问题。其理论上整个铸块时限timeout是10秒,每隔2秒一个提案,且在其testnet上的TPS是2500。我们认为Dfinity在性能方面比Algorand更具优势。但是因采用了先验模式,它的安全性不如Algorand。同时其网络通讯效率不高,像比特币和Algorand一样,完全靠P2P的传播,没有针对分组模式进行设计。容量虽不像Algorand那样浪费,但最大容量仍受限于全帐节点存储空间。
1) 不具有后验性,安全性较差。虽然有多个组,但各组的成员事先固定,容易被攻击,也容易组内窜谋,影响安全性。每次出块组某轮出块期间只有一个节点被选作提案节点,形成单点故障,又容易受到攻击,而且无法保证被选提案节点是否在线。同时,组内各成员按顺序轮流作提案节点,容易被外界所知,造成安全隐患。因其没有采用加密抽签方式,不具有后验性,因此会受到DDOS攻击和女巫攻击。Dfinity也没有考虑同组的提案人和验证者联手共谋的可能,存在被人为控制的隐患。
2) 性能解决方案缺乏鲁棒性,而且系统规模受限。每次随机抽取的一个提案节点如不在线,需要等待到下一轮,影响出块速度。提案块需要广播到全网,到达同组的其它成员,它们构成了验证组(400个节点),验证节点需要等待提案块的到达,浪费时间而影响性能。验证组内需要多轮通讯才能达成共识,而400个成员的组内通信也是依靠P2P的八卦协议,通讯量巨大,效率低下,影响出块速度和系统性能。假设有10个组,每组400个节点,则系统有4000个节点,按TradeBlock上图所示,1M的块需要约18秒传播到3000个节点,远超其铸块timeout时间,系统无法正常工作,影响系统的稳定性、性能和规模。
3) 网络通讯效率低下。Dfinity组内的通讯量是O(n^2),400人的组内通讯量大。不论提案块还是验证组内共识,亦或是共识块的上链,都依靠P2P的广播,增加网络传输负担,影响系统效率。
4) 存储容量受限于单节点的存储能力。与比特币、以太坊和Algorand一样,其系统容量,受限于单节点的存储空间,没有涉及分布式存储技术的应用和优化。
5) 依赖新的密码学基(cryptography primitive)。依赖新的密码学基(椭圆曲线pairing)和密钥生成协议,其安全性和效率都有待时间的考验。
和Algorand对比,Dfinity在性能方面因其分组共识和BLS组签名有所提高,但其安全性有所下降。其400人分组规模的通讯效率也存在一定问题,我们认为其技术架构和宣称的去中心化云服务仍有较大的差距。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。