本文是一篇计算机应用论文,本文对区块链共识算法进行了研究,重点关注了 PBFT 算法的改进。首先,分析了国内外对 PBFT 共识算法的研究趋势,介绍了区块链和共识算法的基础知识,以及医疗信息共享等相关概念;然后,针对 PBFT 共识算法性能进行分析,并开展相关的改进研究工作;最后,以区块链技术为研究背景,设计了基于区块链技术的医疗信息共享方案。
第 1 章 绪论
1.1 研究背景及意义
当前区块链技术发展迅速,在全球创新领域获得了众多研究者的认可和社会公众的关注。《经济学人》给予区块链将重新定义世界的评价,把区块链当作未来可信任的机器。在物联网[1]、云计算[2]和大数据[3]全面发展的今天,区块链是一种结合了计算技术独特性和创新性的全新的应用程序模型,包括分布式数据存储、分散和独立的点对点交易、自动和智能共识机制、可编程智能合约和动态加密算法[4,5]。Gartner 的报告中指出,2016 年到 2017 年区块链成为了新一代信息技术中预期值最高的技术。区块链实现了分布式和去中心化环境下的多方双边交易,并实现了全网络记录、信息来源追溯和抗篡改的功能[6]。区块链是一个将交易按照时间顺序链在一起的链式数据结构。区块保存着加密的数据和状态信息,并通过网络形成分布式的账本,每一个节点都维持着账本的最新信息,保证信息无法被篡改或伪造。从另一个角度讲,区块链使用特殊的区块头、共识算法、密码学技术和智能合约来完成交易的存储状态、并且保证所有节点的数据和状态的一致性、保证数据传输和访问阶段的安全性、保证节点在交易过程中不出现违约行为[7]。
从区块链被提出之后,其发展分为以下阶段。第一阶段为区块链 1.0[8],比特币等加密货币的使用标志着这一阶段的成熟。第二阶段为区块链 2.0,区块链可以支持可实现的程序和命令,创建更高级的智能合约[9],并且是用来更为优化的和高效的共识算法。区块链技术在这一阶段发展中的应用扩展到了各个行业中,并设计了适应不同领域的应用程序,使它们之间能够相互合作。区块链技术的应用,实现了资源的自动化分配,减少了分配中产生的成本,同时解决了企业或机构之间的信任问题。相比区块链 1.0,第二阶段的区块链使用可编程的智能合约,解决了交易参与者之间的身份和信任问题[10]。
.........................
1.2 国内外研究现状
1.2.1 PBFT 算法研究现状
目前区块链按照应用场景分为以下三种情况,公有链是一种去中心化的无许可区块链,其中数据呈现给所有网络成员,所有节点都可以接收这些信息。例如,比特币分布式账本就是公有链的应用。公有链用共识机制和智能合约使所有节点数据达成一致,因此区块链数据是安全的。公有链中应用的共识算法包括工作证明算法和权益证明算法等。联盟链,也被称为联合区块链,其中数据信息呈现给所有节点,但只有专门的节点才能接受数据。联盟链将权力分配给多个权威机构,而不是由单一的完全控制权威机构来做出决定。私有区块链是一种许可区块链,其中的数据信息呈现给一群授权的节点,并且只有授权的节点才能接受信息。私有链是集中式的区块链,有一个中央权威机构决定参与区块链的权限。私有区块链中的共识机制是由单个中央权威机构决定的。
区块链开源平台主要有两个分别是 Ethereum 平台和 Hyperledger 平台。区块链带来的高效率性能和低成本,为众多行业的发展提供了新的思路。将区块链应用到加密货币、金融市场、医疗保健、数据来源和 5G 应用等领域,是当前区块链的最新研究方向。区块链共识机制是指包含在区块中的交易一旦经过加到区块链上,就会立即被确定不可更改。一个主节点生成的新区块,需要有足够多的节点进行确认才能提交。目前区块链共识主要基于 bft 协议实现,在区块链联盟中受到了广泛关注。传统的分布式一致性共识算法,如 VR[15]、Raft[16]和 Paxos[17]算法等都是假设所有共识节点都不是拜占庭节点。而在实际应用中更需要算法基于故障容错的共识算法,即可以容忍一定比例的由系统崩溃或网络异常引起的故障节点。PBFT 算法允许所有节点中拜占庭节点的比例小于 1/3。PBFT 是一个三阶段协议,在Hyperledger Fabric 中被广泛采用。但 PBFT 算法的效率随着网络规模的增大而急剧下降[18]。研究者对 PBFT 进行了大量的改进工作,许多基于拜占庭容错的共识算法被提了出来。
......................
第 2 章 实用拜占庭容错算法性能分析
2.1 相关技术
区块链是一种通过集成不同的核心技术实现的分布式账本,所有的交易都是以一种分散的方式完成的,从而有效的管理资源、提高效率。区块链核心技术主要有独特的数据结构、分布式存储、密码学和共识算法。
2.1.1 数据结构
区块链主要包含了三个基本概念即交易、区块和链。其中,区块是区块链的基本组成单元,包含着交易的全部信息;链指所有区块连在一起的特定的结构链;交易指请求,请求操作成功后导致所有链的状态发生改变。
区块是一个独特的结构,包含块头(BlockHeader)和交易计数器(TransactionCounter),如图 2-1 所示。
图 2-1 区块结构示意图
块头:块头主要保存数据信息共 80 字节。分别记录了比特币的版本号、前区块的哈希值、Merkle 根、时间戳、困难度和 nonce。
版本号:区块链拥有众多版本,版本号负责保存区块验证规则集的记录,通过这一记录可以轻松地跟踪验证规则的更新和更改。
Merkle 树:它是块头的重要组成部分,是基于不同数据散列组成的数学数据结构。Merkle 根散列由该块中包含时间戳的所有事务的散列组成,确保交易在区块创建后不会被更改。块的头包含一个 32 字节长的 SHA256 哈希的交易,称为默克尔根哈希[37]。
....................
2.2 PBFT 共识算法流程
PBFT 共识算法流程分为五个阶段,针对每个阶段工作方式和作用进行分别介绍:
请求阶段:客户端 c 发送处理交易的请求消息
预准备阶段:主节点收到的请求后为需要共识的内容 m 分配序号,然后向所有备份节点广播预准备消息<
准备阶段:编号为 i 的节点收到预准备消息后,首先对消息的签名,消息序号 n 和 摘 要 d 进 行 验 证 。验 证 通 过 , 则 将 向 所有 从 节 点 广 播 准 备 消息
确认阶段。节点完成准备阶段后进入确认阶段。节点 i 向所有节点广播确认消息
图 2-3 PBFT 算法流程
.......................
第 3 章 基于角色管理的实用拜占庭容错共识算法...................19
3.1 RPBFT 算法的设计.................................19
3.1.1 算法主要思想..................................19
3.1.2 奖励机制................................20
第 4 章 基于 RPBFT 的多客户端医疗信息共享方案............................31
4.1 方案基础.....................................31
4.1.1 MC-DSE 方案...................................31
4.1.2 IPFS 技术...............................33
结论..............................43
第 4 章 基于 RPBFT 的多客户端医疗信息共享方案
4.1 方案基础
4.1.1 MC-DSE 方案Lei Xu , Chungen Xu 等设计实现了基于多客户端的 动态可搜索加密(Multi-client Dynamic Searchable Encryption,MC-DSE)方案[36]。该方案致力于解决医疗数据库保护隐私的加密数据搜索问题,并针对高度敏感的数据设计一种细粒度的访问控制策略。为了使系统更实用,实现系统支持正常的添加和物理删除。为了建立可搜索的加密医疗数据库系统,采用多客户端可搜索加密访问方式,所有客户端都可以使用获得的值自行计算搜索令牌进行搜索。同时,使用额搜索加密和基于属性的加密方案来限制每个客户端的搜索能力,以实现细粒度的访问控制。该加密方案可以使多个客户能够对加密的医疗记录进行授权搜索查询,而不会泄露患者的任何敏感信息。方案结合了可搜索加密和基于属性加密。
可搜索加密的研究内容主要为在文件加密的情况下实现对文件相关内容的存储和搜索。与传统明文搜索相比较,可加密搜索具有可证明安全性、控制搜索、隐藏搜索和查询独立的优势。对于 n 长度的