论文部分内容阅读
随着对区块链技术研究的深入,区块链技术面临的一些问题也逐渐暴露,例如交易吞吐量过低,区块链容量消耗过大等,其中对区块链技术发展制约最严重的就是交易吞吐量过低的问题。著名的比特币平均吞吐量仅为7笔交易每秒,而以太坊的吞吐量也仅有15笔交易每秒。现有的解决交易吞吐量的方法包括对区块结构进行改造、链下交易和减少共识节点等方法。但是对区块结构的改造并不能很好的解决问题,同时又衍生出了一些新的安全以及验证交易量等问题;链下交易和减少共识节点虽然能够解决问题,但是这两种方法的中心化策略又会使区块链失去其高度去中心化的特性。同时现有区块链对节点的时间戳误差的容忍度过高,使得交易不能够根据真实发生时间来定序,造成了区块链失去了在即时应用上的发展前景。本文希望设计出一种新的共识算法,同时提升区块链的交易吞吐量和对交易按照真实发生时间定序两个问题。本文从节点时间戳入手,设计了一种时间证明共识算法(Po T)。该算法分为两个部分,第一部分是对全网的节点时间进行同步,第二部分是利用同步过时间的全网节点设计并完成节点共识算法。节点时间同步部分利用实验测试了不同节点规模下的算法耗时,证明了本文设计的节点时间同步算法在节点数目指数级增长时依然有着很高的效率。时间证明共识算法涉及到验证节点的选举以及全部节点的投票过程。通过时间证明共识算法,全网节点系统时间保持同步,使得交易能够根据真实发生时间排序,即区块中保存的交易是根据时间严格递增的。同时该共识算法相对于传统的共识算法有着较大吞吐量的提升,在100个节点的规模下,10秒钟平均可以处理高达48832笔交易,交易吞吐量超过了了4800tx/sec。通过分析得知可以使用超级节点或者利用区块链分片技术可以提升节点性能,进一步的提高交易吞吐量。在算法的安全性方面,使用经过认证的节点进行共识操作能够有效的避免女巫攻击,同时对算法容忍度的实验结果显示,本文提出的共识算法在一般情况下的容忍度高于60%,比投票类共识和证明类共识的容忍度都要高。所以本文设计的时间证明共识算法能够很好的提升交易吞吐量,同时也为区块链在即时应用上的发展提供了思路。