基于联盟区块链和智能合约的传染病预警机制
2021-12-30邱红园,李繁
邱红园,李繁
摘要:提出基于联盟区块链和智能合约的传染病预警机制.传染病预警机制将医疗机构作为联盟区块链的节点,采用非对称加密技术结合星际文件系统(InterPlanetary File System,IPFS)在保护患者隐私的条件下实现传染病数据安全共享.拥有数据访问权限的用户可以使用患者私钥从区块链中获取数据,通过设计智能合约实现疫情预警流程的自动化.该方案可以扩大数据的存储空间、防止数据被篡改,实现传染病数据安全共享性和及时预警性.
关键词:智能合约;传染病预警;星际文件系统;区块链
[中图分类号]TP3[文献标志码]A
Infectious Disease Early Warning Mechanism based on
Alliance Blockchain and Smart Contract
QIU Hongyuan,LI Fan
( school of Information Management,Xinjiang University of Finance and Economics,Urumqi 830012,China)
Abstract:Propose an infectious disease early warning mechanism based on the alliance blockchain and smart contracts.The infectious disease early warning mechanism takes medical institutions as nodes of the alliance blockchain,and uses asymmetric encryption technology combined with the InterPlanetary File System (IPFS) to protect patient privacy Realize the safe sharing of infectious disease data under the conditions.Users with data access rights can use the patient's private key to obtain data from the blockchain,and automate the epidemic early warning process by designing smart contracts.This solution can expand the storage space of data,prevent data from being tampered with,and realize the security of infectious disease data sharing and the timeliness of early warning.
Key words:smart contract;early warning of infectious diseases;interstellar file system;blockchain
传染病数据的哈希值可分布式存储在联盟区块链中通过智能合约技术自动预警,可提高传染病数据的传输效率,实现数据安全共享.目前,国内外对于区块链技术在传染病预警方面的应用研究持积极探索态度.Azaria[1]等提出了MedRec项目,基于以太坊的智能合约,实现自动化的数据共享,促进了医院系统之间的互操作性.Bhattacharya[2]等提出将区块链技术应用于传染病监测中,以有效减少患者死亡人数、发病人数和因传染病防控带来的经济成本.Angraal[3]等基于区块链技术提供了一个平台,可用于传染病防控.Mashamba-Thompson[4]等提出了一种基于社区的新发传染病区块链和人工智能耦合的移动互联自检跟踪系统.欧阳丽炜[5]等将区块链与其他新兴技术相结合,将其应用于传染病预警,实现传染病监测和预警的及时性.黎祖睿[6]等提出了联盟式传染病数据区块链系统,实现了数据的共享.相比于国外而言,国内在传染病预警方面还缺乏系统的研究.本文将设计一个基于联盟区块链架构模型的传染病数据安全共享模型,逐层分析其在传染病预警过程中的功能和任务,使用智能合约技术实现传染病预警.数据传输采用非对称加密技术,解决传染病数据在传输过程中可能存在的患者隐私泄露等问题.[7]
1方法与技术
1.1联盟链
联盟鏈对特定的组织团体开放,预先选择参与区块链的节点,使用除工作量证明机制以外的其他共识算法,具有隐私性、速度快、去中心化等特点.相较于私有链而言,访问权限门槛低、算力高,无需高昂的成本就可以维持节点之间的连接.联盟链上的内容只有联盟链成员才可以看得到,规则由联盟设置.本文采用联盟链架构实现传染病数据共享.
1.2 数据存储
采用星际文件系统进行传染病数据存储.对于医疗机构上传的数据可以使用患者的公钥对其加密,然后将其上传到IPFS中.IPFS会将数据碎片化并生成哈希值.哈希值存储在区块链上,在联盟链成员中共享.IPFS技术的使用可以有效解决区块链扩容问题,具有永久性和去中心化的特点.
1.3 非对称加密技术在传染病数据传输中的应用
非对称加密技术用于数据加密和数字签名.公钥由私钥通过椭圆曲线加密算法生成,用来验证私钥的签名,公钥在整个网络上是公开的.[8]医疗机构发送传染病患者数据时,对数据原文分别做哈希和加密操作.针对哈希生成的摘要,用医疗机构的私钥签名;针对数据原文,用患者的公钥加密生成数据密文,再将加密后的数据和数字签名封装进星际文件系统中.数据访问者通过患者授权后,用患者私钥解密得到数据原文,使用哈希函数获取摘要,再将发送方的签名用发送方的公钥解密得出摘要,将得出的两份摘要进行比较,若一致则表示原文在传输过程中未被篡改,且内容确实是发送方发送的.本文使用非对称加密技术,保证传染病患者数据的安全性和数据的完整性.
2基于联盟区块链的传染病数据共享架构设计基于区块链的传染病数据共享联盟链架构如图1所示,该区块链可为传染病数据共享链平台中的医疗机构提供可靠的渠道.
2.1数据层
数据层是联盟链架构的基础层,采用时间戳、哈希函数、非对称加密等技术.时间戳技术可以使存储在联盟区块链中的传染病数据具有不可篡改和可追溯性的特点.在系统中,每更新数据时生成的新区块的头部都会被加盖时间戳,表明该区块内数据的写入时间.一旦疫情爆发,时间戳技术可以准确地追溯到首例病例,从而控制疫情,降低疫情蔓延风险.[9]该技术可以为传染病的追溯提供依据,并提供一个可靠、可追溯的传染病溯源.
2.2网络层
网络层中,系统每当产生新的传染病数据时,都对其进行广播,通知其他区块.其他区块将自动验证数据,丢弃不合法的数据.区块数据通过大部分节点验证后,可以添加到传染病大数据的主链上.网络层确保流程中各环节信息的顺畅流动,不会因为某些区块的损坏而中断,从而确保数据传输的安全和及时.
2.3共识层
共识层内部封装了多种共识算法.PoW算法要求节点重复执行哈希计算,以找到一个满足规则的随机数Nonce,该值满足哈希块头必须小于或等于目标哈希值的要求.由于对区块数据的攻击和篡改需要重新计算区块以及后续所有区块的SHA256难题,这种攻击的成本要远远高于收益,以此保障区块数据不被篡改.PoS是PoW的一种改进节能机制,它对节点性能要求低,可以很快达成一致,在一定程度上解决了PoW的能源浪费问题,但是也存在着由大股东完全操控的不足.
本文联盟链传染病数据共享模型采用PBFT共识算法.PBFT算法描述了分布式系统的一致性问题,是对PAXOS算法的一种改进.联盟链的共识过程由预先选择好的节点控制,由于联盟链中参与共识的医疗机构节点比较少,因此,将各家医疗机构的网关节点作为记账节点,当网络上有超过2/3的节点确认一个区块,该区块记录的交易将记入区块链上.PBFT共识算法可以使联盟链中的医疗机构在不消耗大量算力和时间的情况下,就新数据的生成快速达成共识.主节点可以根据共识结果,判定所属传染病类型,确保数据增加的有效性,解决节点之间的信任问题,实现传染病数据安全快速共享.
2.4合约层
合約层内部封装了各类可编辑的脚本代码、算法和智能合约等.代码中包含会触发合约自动执行的条件.智能合约是区块链的核心构成要素,是一段部署在区块链上可自动触发的计算机程序,它为区块链赋予了可编程的特性.
在本研究中,智能合约经联盟链中的医疗机构签署后,以程序代码的形式嵌入区块链传染病数据上,经P2P网络传播验证和超过2/3的节点共识通过后,计入区块链的区块中.智能合约封装了预定义传染病数据的上传、存储和访问,传染病自动化预警的规则和自动执行条件.外部应用只需调用智能合约,便可以按照合约定义的规则实行特定场景下的应对行动,区块链也可以实时监测智能合约.[10]将智能合约应用于传染病预警中可以减少预警过程中的人为因素,自动化预警减少由于医院害怕承担责任存在的瞒报现象.为了防止智能合约在运行过程中可能存在的法律漏洞,政府应以管理者身份介入智能合约,或者将法律以代码形式写入智能合约,部分中心化可以保证传染病预警的可靠性和数据的透明可追溯性.
2.5 应用层
应用层为整个传染病数据共享联盟链架构的最顶层,属于模型核心.在传染病数据共享中,传染病患者的数据传输、数据存储、数据更新、数据利用等过程均在应用层实现.
3基于智能合约的传染病预警机制设计基于智能合约的传染病预警机制流程见图2.
(1)高级语言(Solidity)根据传染病数据的存储、上传、预警的业务规则编写合约,将编写好的合约部署到区块链中,并制定用户访问控制权限.医疗机构输入对应密码通过身份验证后,实时采用非对称加密算法把使用患者公钥加密的传染病患者信息和医院签名上传至IPFS,IPFS根据医疗机构上传的传染病数据计算出哈希值.
(2)通过联盟区块链主节点数字签名验证且共识节点达成共识后,调用智能合约,将哈希值和病人属性信息存储在联盟区块链上,打上时间戳.
(3)拥有数据访问权限的用户通过请求区块ID获取链上存储的哈希值,根据该唯一的哈希值在IPFS中访问一个分布式哈希表,查询所需数据,用患者授权使用的私钥解密,获取数据原文.
(4)对获取的传染病数据内容进行数据处理,结合传染病预警合约自动分析结果,产生分析报告.当发现传染病患者时,系统可以快速、准确地分享其诊断信息和临床表现,通过智能合约实时监控各地区传染病数据,有效识别和监管危险区域和传染病患者,进行预警与决策,以预防和控制大规模突发性疫情.预警充分运用智能合约阈值判断和大数据分析,一旦触发智能合约预警,将在联盟区块链内所有节点全网广播.政府机构和有关部门还可以结合历史数据与智能合约预警数据分析突发性疫情蔓延的可能性,提高预防和应对突发疫情的能力.
4结束语
基于联盟区块链和智能合约的传染病预警机制将医疗机构作为联盟区块链的节点,采用非对称加密技术结合星际文件系统(IPFS),在保护患者隐私的条件下实现传染病数据安全共享.模型将架构从下至上分层,并逐层分析其在传染病预警过程中相对应的功能和任务,解决传统疾病预警系统中医疗机构之间共享数据难、传染病预警效率低的问题.
IPFS技术用于数据存储在一定程度上可以减轻系统过载的问题,通过在区块链上部署智能合约并使用非对称加密技术,实现疫情自动预警[11],打破数据孤岛,提高数据的传输效率,在数据共享的同时保护患者的隐私.本研究仍然存在许多不足,下一步研究主要是结合计算机学科的相关知识,将该传染病预警系统开发出来并进行验证.
参考文献
[1]Azaria A,Ekblaw A,Vieira T,et al.Medrec:Using blockchain for medical data access and permission management[C]//2016 2nd International Conference on Open and Big Data(OBD).IEEE,2016:25-30.
[2]Bhattacharya S,Singh A,Hossain M M.Strengthening public health surveillance through blockchain technology[J].AIMS Public Health, 2019,6(3):326-333.
[3]Angraal S,Krumholz H M,Schulz W L. Blockchain Technology:Applications in Health Care[J].Circulation Cardiovascular Quality and Outcomes,201710(9):e3800.
[4]Mashamba-Thompson T P,Crayton E D.Blockchain and Artificial Intelligence Technology for Novel Coronavirus Disease 2019 Self-Testing[J].Diagnostics (Basel),2020,10(4):198.
[5]歐阳丽炜,袁勇,郑心湖,等.基于区块链的传染病监测与预警技术[J].智能科学与技术学报,2020,2(2):135-143.
[6]黎祖睿,李强,张超,陈子豪.Virus Database Chain:联盟式传染病数据区块链系统[J].计算机应用与软件,2019,36(09):21-32.
[7]李宽苗,李超,赵胜,等.大数据时代个人信息安全问题现状研究[J].牡丹江师范学院学报:自然科学版,2020(4):5-9.
[8]Shi S,He D,Li L,et al.Applications of blockchain in ensuring the security and privacy of electronic health record systems:A survey[J].Computers & Security,2020,97:101966.
[9]史磊,李林峰.基于区块链的重大突发疫情防控系统共识机制探析[J].太原理工大学学报,2020,51(6):838-844.
[10]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.
[11]周凤,杨辉,王利.火灾自动监测技术研究[J].牡丹江师范学院学报:自然科学版,2016(3):26-28.
编辑:琳莉