论文部分内容阅读
近年来,随着比特币逐渐进入大众的视野,作为其底层支撑的区块链技术也受到了学界和业界的关注。因其特殊的链式数据结构、共识算法和激励机制,区块链系统具有一些独特的属性,如链上数据不可篡改,节点间无需信任等。然而,极低的系统吞吐量却成为了其大规模应用的最大障碍。因此,提高区块链系统吞吐量一直都是研究人员所关注的重点。目前,大多数的研究成果都聚焦于共识算法层面,而忽略了底层广播网络对吞吐量的影响。事实上,出于维持数据一致性的需要,区块链系统中会进行大量的数据广播工作。因此,底层广播网络的性能对整个系统的性能来说至关重要。本文将聚焦于通过优化底层广播网络的方式来提高系统吞吐量。为了优化底层广播网络,本文在目前的网络结构中添加一个卫星节点,并利用卫星广播来代替目前的互联网广播。相较于互联网广播,卫星广播的特点是广播过程中不需要节点参与,从而可以避免恶意节点利用数据广播进行拜占庭攻击。此外,由于所有的数据都由卫星串行广播,故一般情况下,地面节点收到数据的顺序可被视为完全相同。同时,卫星的引入将网络结构转变为以卫星为中心的星形拓扑,从而能够避免数据广播过程中的流量冗余。值得注意的是,由于卫星只负责数据广播而不参与数据共识,故不会损害区块链系统的去中心化特点。本文研究主要分为以下三个部分:底层广播网络分析、基于单卫星网络的共识算法设计和基于多卫星网络的共识算法设计。在底层广播网络分析的研究中,本文以比特币系统为研究对象,对其底层广播网络的拓扑结构与数据广播方式进行了分析并发现其存在的两个缺陷。接着,本文从第三方网站收集了许多关于比特币底层网络的真实数据并利用上述数据分别构造了两个比特币仿真环境。在上述仿真环境中,本文设计了五个测试来探究上述缺陷对系统的影响。在基于单卫星网络的共识算法设计的研究中,本文首先向底层广播网络中引入一颗地球同步卫星作为辅助通信节点来优化网络结构。通过利用卫星广播来代替目前采用的广播算法,可以避免恶意节点利用广播算法制造数据不一致的问题。然后,本文提出了一种基于单卫星网络的共识算法,该算法利用了卫星网络的优点来提高系统吞吐量。接着,本文提出了一种自动恢复机制,用于应对特殊天文现象导致的卫星信道短暂中断的问题。最后,本文通过实验测试了上述算法的性能和效果。在基于多卫星网络的共识算法设计的研究中,本文对基于多卫星网络的算法进行了初步的设计,以完善单卫星网络无法覆盖全球的问题。多卫星网络共识算法主要通过多卫星网络的全局时钟特性,解决了多卫星网络中由于星间路由引起的各节点接收数据顺序不一致的问题。此外,本文还利用卫星签名与询问机制,解决了网络中可能出现的数据丢失问题,即节点未接收到部分被广播的数据。