论文部分内容阅读
近年来,随着以比特币为代表的数字货币风靡全球,作为其核心支撑技术的区块链,由于其本身具有去中心化、数据不可篡改、数据透明等特性,不仅在银行、征信、金融等多领域拥有广阔的应用前景,还和物联网、人工智能等前沿技术有着结合的可能。根据参与节点成分的不同,可以把区块链分为公有链、联盟链和私有链。联盟链中数据不一定是对所有人透明的,根据应用背景进行细粒度的读取权限控制,相较于不受控制的公有链,联盟链可以做到在限定范围内的消息共享,更符合多数潜在使用者的需求。本文试图通过相关的研究,提出一种为联盟链量身定制的共识算法,为联盟链带来性能提升。现有联盟链所采用的共识机制取决于所参与的网络节点的可信程度,在完全可信的情况下可以使用分布式一致性解决算法作为共识机制,在带有准入许可的情况下多使用拜占庭容错算法,而在复杂度最高的非准入环境中,多使用工作量证明(PoW)、权益证明(PoS)以及其他共识算法。工作量证明机制存在严重的性能缺陷,并且还带来巨大的电力资源浪费;权益证明必须依赖代币的存在,适用范围小,同时存在积攒币龄进行攻击的问题;传统分布式一致性解决算法如二段和三段提交以及Raft不支持拜占庭容错;使用拜占庭容错算法使用非对等网络解构,大量广播通信严重浪费带宽,无法使用于节点数量较多的网络中。本文对目前存在的共识算法进行研究,通过归类和横向对比等方法,总结共识算法的核心机制,在其基础上完成共识算法的设计,实现以及测试。最后,选择实用较为广泛的区块链平台,对新共识算法进行本地化组件封装,为其提供共识服务支持。本文所设计的算法在性能方面,交易处理速度可达每秒一千笔,同时可以容忍一定数量的拜占庭节点存在,并且可使用于较大规模的网络中。本文的主要工作有:1)对区块链技术进行深入研究,掌握区块链技术的结构及关键技术。2)对现有共识算法进行广泛细致的研究,明确多种关键运行机制,横向类比,总结不同种类的优缺点。3)完成基于领导选举机制的共识算法设计,实现及测试。4)将所实现的共识算法应用到现有的区块链平台。