论文部分内容阅读
随着医院系统的信息化发展,电子病历正在逐步取代传统的纸质存档病历。而区块链技术作为一种分布式数据库,可以有效地作为电子病历管理与分享的载体。目前大部分应用区块链技术管理电子病历的系统,都在Fabric项目的基础上进行改进,而在这些改进中都存在着患者隐私无法保护、机构间病历分享困难和无法保证链上数据完全可信的问题。在Fabric项目中使用的实用拜占庭容错(PBFT)共识算法,由于主节点的存在,使得系统中的主节点非常容易因为受到恶意节点的攻击而下线。当主节点由于网络原因离线或者受到恶意节点攻击而下线时,就不能按时对交易作出响应,此时系统会发起视图切换选择新的主节点处理交易。然而在PBFT共识算法中的视图切换协议中,新视图中的主节点是可以被提前预知的,因此非常容易受到预测攻击。同时在发生视图切换的过程中,也影响了网络的性能。本文首先针对主节点容易受到预测攻击的问题,设计了抗预测攻击的实用拜占庭容错算法afBFT(anti-forecast PBFT),并通过模拟实验证明算法的合理性。本文在实验室环境下,从正常运行情况的通信量,平均出块时间以及受到攻击的情况下的通信量,出块时间和TPS五个方面,对afBFT共识算法与Fabric项目所使用的PBFT共识算法和基于信用系数的实用拜占庭容错算法(CPBFT)进行对比实验。通过实验结果,我们可以得出,afBFT共识算法在受到预测攻击时,由于增加主节点共识,稳定性高于PBFT共识算法与CPBFT共识算法,可以在一定程度上抵抗主节点预测攻击,具有较强的安全性。因此,afBFT共识算法可以在一定程度上解决Fabric项目中主节点易遭受预测攻击的问题。在此基础上,本文给出了应用afBFT共识算法的电子病历管理方案。在方案中设计了线下就诊层与病历上链层两个部分。其中线下就诊层可以在一定程度上保护患者的隐私,并且保证线下病历的准确性。病历上链层可以在一定程度上解决医疗机构间病历共享困难的问题。同时,在病历上链层使用了 afBFT共识算法,也保证了链上数据的真实性与可靠性,极大的增加了方案的可用性。