2018年8月,清华大学的一个团队发表了一篇文章《Scaling Nakamoto Consensus to Thousands of Transactions per Second》,宣称突破了区块链的性能瓶颈,其共识算法的TPS达到6400。
文章里甚至表示:共识算法已经不是瓶颈,节点处理能力才是瓶颈。
这可信吗?
答案是:部分可信。
下面将描述其实现逻辑
一、Conflux项目共识算法步骤
S1:所有节点随便打包,假设交易间不会相互冲突
S2:形成DAG结构
S3:使用GHOST算法确定主链
S4:确定叔块的高度(或者说epoch)
S5:删除掉冲突的交易
看起来就是,以太坊的GHOST共识协议浪费了叔块的贡献,Conflux项目把它们给收罗进来
二、Conflux项目测环境配置
全球20个城市
800台亚马逊EC2虚拟机(每台25个全节点)共2万个节点,3.规模类似于现在的BTC和ETH
各个节点算力一致
每个全节点默认20Mbps带宽,随机连接10个全节点
节点发送消息前靠程序模拟网络延迟
为了和POW对比,POW出块使用泊松过程模拟
看起来就是,实验环境挺严谨的,在BTC里面,每个节点外连8个节点,而Conflux项目连接了10个
三、Conflux项目实验内容
测试指标包含三大部分:吞吐量、确认时间、扩展性。特别地,要考虑跟Bitcoin、Ghost相比,性能如何。
吞吐量=区块大小 * 区块产生速度 * (1-废块率)
区块从1M增大到8M,20秒/块,运行两小时
出块时间从5秒到80秒,4M/块,运行两小时
确认时间
无恶意算力,出块时间从5秒到80秒,4M/块,假设用户要求99%确认
无恶意算力,区块从1M增大到8M,20秒/块,假设用户要求99%确认
恶意算力从10%到40%,出块时间10秒,4M/块,假设用户要求99%确认
恶意算力20%,出块时间10秒,4M/块,等待确认时间与风险的统计关系
扩展性(网速增加会怎么样,节点增加会怎么样)
出块时间2.5秒,4M/块,节点带宽提升到40Mbps,节点数量1万个,无恶意节点,考核吞吐量和确认时间
出块时间10秒,4M/块,节点数量从2500到2万,无恶意节点,考核确认时间
出块时间10秒,4M/块,节点数量从2500到2万,无恶意节点,考核网络宽度
网络宽度:一个块传递给了99%节点的时间
从实验内容来看,其设计也很完美,然而问题出现在计算吞吐量(TPS)时,用错了公式。
吞吐量=区块大小 * 区块产生速度 * (1-废块率)
然而其共识算法当中,将所有的叔块都纳入考虑,所以废块率为“0”,这也是其根GHOST协议不同的一个地方。
且其共识算法当中,仍需
S5:删除掉冲突的交易
所以这个公式需要改成:
吞吐量=区块大小 * 区块产生速度 * (1-废块率)*有效率
有效率表示区块打包的交易中,剔除相互冲突的Transaction之后,有效Transaction的比重。
网友评论