APP下载

一种基于区块链的工伤康复流程管理模型

2020-01-06蒋周杰李晔锋鲍淑娣郑开瑞

网络安全技术与应用 2020年1期
关键词:工伤共识区块

◆蒋周杰 李晔锋 鲍淑娣 郑开瑞

一种基于区块链的工伤康复流程管理模型

◆蒋周杰 李晔锋 鲍淑娣 郑开瑞

(宁波工程学院电子与信息工程学院 浙江 315211)

现有的工伤康复流程管理过程存在审批工作难以监管、患者隐私难以保障和业务数据难以共享等安全性问题。本文提出了一种基于区块链技术的工伤康复流程管理模型,包括数据的存储和共识算法的实现,能够有效地解决上述难题。

工伤康复;区块链;共识算法

近年来,随着工业化进程的不断加快,工伤事故层出不穷。截至2018年年底,我国工伤保险参保人数已达2亿多人。不断发生的工伤事故,不但影响着个人健康与家庭幸福,而且影响着经济发展和社会进步,使得工伤康复引起了卫计委等相关部门的高度重视[1]。

如今的工伤康复申请及监督流程存在审批过程难以监管,患者隐私信息难以保障,参与部门多,数据流通不便、难以共享等问题;区块链技术拥有对于鉴定过程公开透明;对于鉴定证书可信、可溯源、难篡改;对于隐私信息提供安全保护;对于涉及多方的业务提供安全方便的数据共享方式等作用。据此,本文提出了一种基于区块链技术的工伤康复流程管理模型,旨在解决工伤康复流程中各种安全问题[2]。

1 区块链技术

区块链是以共识算法为核心、块链结构为基础的新兴技术,根据节点开放程度的不同可分为公有链、联盟链以及私有连,就如同这三种链的名称所描述的那样:公有链对所有人均开放,任何人都有权利以节点的形式加入其中;联盟链允许指定的组织机构参与,形成一个联盟,其权限设计会更复杂,可信度也会更高;私有链只对单独的个人或实体开放,存在着数据易被操控的问题,使用场景有限。区块链中每一个区块的生成,都是参与者对整个系统交易记录的事件顺序和当前状态建立的共识,其中没有中心节点的控制。每一个参与者都可以拥有整个区块链数据的备份,每一个参与者都可以参与数据的记录、存储,在没有中央控制节点的分布式对等网络下,使用分布式集体运作的方法,构建了一个P2P的自组织网络。因此,区块链技术具有去中心化、分布式、去信任、数据不可篡改、可追溯等诸多优点[3]。

区块链作为一种做到极致的分布式系统,相较于常规的分布式系统,它具有很多独特的性质,最大的不同在于使用技术的目的。通常使用分布式技术的目的在于利用更多的设备来更好的处理数据,核心点在于以技术成本提高系统性能。而区块链则是利用更多的机器,实现数据控制权的转移,核心点在于以技术成本降低信用成本。一些原本使用区块链技术的系统,如果不使用它,便无法完成其功能。区块链并不会提升系统的性能,恰恰相反,某些区块链共识算法反而是以系统性能作为代价才实现的[4]。

第一代区块链技术是以比特币为首的分布式记账系统,其共识算法大多使用POW算法[5],原理在于使用极高的算法消耗来保证账本数据的不可篡改。为了保证这种区块链系统的算力,系统的拥有者使用一套经济模型,或者一种运营模式,让普通用户通过购买“矿机”(提供算力的机器)得到该区块链系统所提供的虚拟货币。这种虚拟货币类似于网络游戏里的金币,它的特别之处在于系统发布者无法随意修改普通用户所拥有的货币量,这也就是区块链技术所拥有的特性:不可篡改性。第一代区块链技术所存在的问题不在于技术层面,而在于应用层面,它没有提供其他任何服务,用户唯一能做的是玩一场仅有货币功能的游戏,要想成为赢家就要以“华尔街之狼”的方式去进行这场游戏。

第二代区块链技术是以以太坊为首的智能合约平台,这种可编程区块链平台给区块链平台赋予了除“发币”之外的服务和功能,用户可以将代码或数据以区块的形式存储于区块链中,并通过区块地址来进行调用,让代码和数据进行运算并返回结果,平台还使用了一种“零知识证明”的技术[6],能够让某个用户在不泄露自身信息的前提下使用其他用户的数据。例如A用户将数据存储于区块链中,B用户研发了一种算法,也存于区块链中,这时B如果想要通过A用户的数据运算自己的算法并得到结果时,就可以在没有得到数据的情况下实现运算并得到运算结果。这种技术已经在多种应用场景中得到了实现。第二代区块链最大的价值在于克服了数据的可复制性,使得数据真正意义上有了价值,成为数据所有者的一种财产。

2 工伤康复信息化的现状

工伤康复是一种特殊的医疗领域,一次工伤康复申请的业务流程涉及到工伤患者、医疗机构以及民政部门三方的共同参与。当前,政府部门正积极推进工伤医疗的精细化管理,将其分为临床治疗与康复治疗,并分别进行专项管理[7]。

然而,现有的临床医疗HIS系统缺乏专门针对工伤康复治疗的申请、评估、处方、康复评定、移动端医嘱实施及患者查询、医疗及民政部门实时监控等重要功能模块,而各省市的政务网站提供的工伤申请和鉴定功能较为单一,且不能与医疗及民政部门中存储的患者数据实现有效共享,导致当前的工伤康复流程运行过程中的大多数审批工作仍停留在纸质化阶段,无法满足需求[8]。

总而言之,目前工伤康复领域存在以下急需解决的痛点:

(1)透明性:申请前材料的颁布、申请时康复机构的评估、治疗后劳动能力鉴定委员会评定过程都不够公开透明,存在潜在的欺诈行为,民政部门难以监管[9]。

(2)共享性:申请流程复杂,材料繁多,缺乏中心化数据存储机构,大量的文书工作使得存在时间延误长、出错率高、人工成本高等问题。

(3)隐私性:伤患的电子病历及其治疗方案等隐私数据的隐私性难以被保证[10]。

因此,本文提出了一个基于区块链的工伤康复流程管理模型,实现数据的安全存储、共享与保护,保证各项鉴定、评估与审批过程的公开透明。

3 基于区块链的工伤康复流程管理模型

3.1 数据存储的实现

本文研究并设计了一种工伤康复信息数据的存储方案,该方案将存储模块分为两个部分,一个是业务数据存储模块,该模块使用关系型数据库存储业务数据,与业务有关的数据读取操作均会从此数据库中读取;另一个是审计日志存储模块,该模块使用key-value型数据库存储用户对业务数据的操作内容,业务数据的任何修改都会被写入该数据模块中。系统由多个节点组成,每一个节点都有一份完整的审计日志存储模块,并根据日志内容的顺序执行,获得相同的业务数据存储模块。在审计日志存储模块中,数据以键值对的格式存在,键为区块的哈希值,值为该区块的内容。当用户进行数据修改时,修改后的数据不会直接存储进业务数据存储模块,而是会以类SQL语句的形式存储在新形成的区块中,之后再通过共识同步到各个业务数据存储模块。

区块分成区块头和区块体,区块头中含有该区块的身份信息,区块体中存储着用户对业务数据的一次操作内容。

表1 区块头信息

区块头中包含版本号,便于后期的维护升级;上一区块的哈希值,用于形成链式结构;默克尔树根节点哈希值,用于快速验证两个区块中的指令是否相同,便于不同节点之间确认信息(只要有一个指令不同,其默克尔树的根节点哈希值就会不同);以时间戳的格式存储区块的形成时间。签名标记操作发起者,该操作的哈希值是为了生成区块头中默克尔树的根哈希值。

当区块链通过共识算法成功生成一个区块后,便会将该区块在网络中进行广播,各个节点收到广播之后,会对收到的新区块进行校验:首先校验新区块的签名是否合法,再校验该区块的层数是否是现有层数+1,避免将老区块当作新区块入链,接着校验时间戳是否小于当前时间,然后校验HashRoot是否计算正确(计算过程如图1所示),最后校验区块中每一条指令从权限上是否合法。

图1 默克尔树的生成

对于应用了区块链技术的系统,数据的读写性能一直饱受诟病,而在工伤康复信息系统中,数据读取操作发生的次数是修改次数的数倍,因此提升数据的读取效率将是系统设计方案是否可用的关键点。本文通过将业务数据与日志审计数据分开存储的方式,业务数据能够让用户从任意节点中快速获取,而数据监管功能则由应用了区块链技术的日志审计模块保证。

3.2 节点共识算法的实现

节点共识一直都是分布式系统中的核心难题。公有链共识算法依靠经济模型达成,例如比特币采用了POW工作量证明算法,需要耗费大量的资源进行哈希运算(挖矿),先完成运算的矿工取得生成区块的权利。在公有链中必须存在虚拟货币,这更完全不符合工伤康复信息系统的业务需求。

联盟链的共识算法更贴合工伤康复信息系统的应用场景[11]。由于一次完整的工伤康复业务流程涉及到多个机构,相应的管理系统需要较高的性能和复杂的权限设计。在联盟链的各种区块链共识算法中,较为常用的是PBFT、Raft以及Paxos[12],考虑到后两者对恶意节点毫无防御能力,而PBFT算法具有吞吐量高,交易确认时间短的优点,更加符合工伤康复信息系统的应用场景[13],因此本文采取PBFT算法作为流程管理模型的共识算法。

假设PBFT能够容忍无效或者恶意节点的数目为f,则为了保障整个系统可以正常运转,需要有2f+1个正常节点。

图2 拜占庭容错算法(PBFT)

如图2所示,该算法的核心是三条投票队列:当一个节点C想要生成一个区块时,它会向全网广播“请求生成区块消息”,其他节点接收到该消息后,会将消息放入PrePrepare队列,然后按如下步骤执行:(1)对区块进行校验,无误后将区块调入Prepare队列,(2)检验Prepare中是否有比该区块号大的区块存在,没有agree该区块的生成并广播agree信息,(3)任何一个节点收到的agree消息超过2f+1,则进入Prepare阶段并广播消息;Prepare队列和Commit队列所做的内容与PrePrepare队列相似,包括如下步骤:(1)检验队列中是否有比该区块号大的区块存在,(2)如果agree消息超过2f+1则进入下一阶段。当区块从Commit队列进入下一阶段时,该节点将会把新区块加入审计日志存储模块中,并广播“我已经生成了新的区块”,其他所有节点便会向该节点请求新区块信息,同步自身节点的审计日志存储模块,达成共识[14]。

以此算法为基础,任何节点都可以构建区块,再全网广播,只要共识结果达成过半节点校验通过并同意生成区块即可落实区块到各个节点。校验内容包括区块格式、操作者签名、哈希值和操作权限。本文设计了一个包含N个节点的区块链网络,其中每个节点的地位都是平等的,既是客户端,也是服务器:即每个节点作为服务端被其他N-1个节点连接,同时每个节点作为客户端要去连接其他N-1个节点的服务端。据此,本文把所在同一个地区的工伤康复有关机构,设定为一个小组,每次消息的广播,都以该小组为范围进行。

在比特币等公有链中,对于新节点发现的解决方案是要让新节点配置一个已在区块链中的老节点的IP,再通过该节点加入区块链;这样的过程其实不适用于工伤康复信息系统,首先参与工伤康复业务流程的机构是固定的,极少会有新的节点加入,同时只有被认证许可的机构才能加入,因此不适合花费大量的资源去进行节点发现,并且对于新节点必须进行加入权限的认证。经过思索,决定在模型的区块链当中设立一个管理节点,该节点不参与区块链的运算,仅仅作为所有节点的管理方,告知每个节点其他节点的所在地址。在生产环境中,同时可以利用该节点观察各节点的硬件状态和日志,如图3所示。

图3 基于区块链的工伤康复流程管理模型网络架构设计

各节点从管理服务器获取其他节点信息,并通过广播建立连接。区块链网络中作为客户端,将会发送:(1)请求最新区块信息;(2)请求某一区块的详细信息;作为服务端,将会发送:(1)响应最新区块信息;(2)响应某一区块的详细信息;(3)请求生产新区块广播;(4)区块生成中的三种投票广播;(5)已有新区块生成的广播。

在一个区块链网络中,为保持连接将不断发送心跳包,频率为30秒,心跳包的内容包含自身区块的高度,当一个节点接收到的心跳包中的高度高于自身节点的高度时,该节点便会向目标节点请求最新的区块,以此避免出现区块链的分叉;当某一节点超过2分钟都没有发送心跳包时,其他节点便会将此节点视为不可达,管理服务器也会标识出该节点,并以邮件的形式提示运维人员,帮助运维人员定位问题,尽快解决问题。

本文所设计的工伤康复流程管理模型优先保障系统的分区容错性和可用性,而放弃强一致性。当区块链中某一节点因网络等问题暂时无法与链中其他节点进行联系时,将会在用户访问时返回旧的数据,而非阻塞至网络恢复,只保证最终一致性。

4 结束语

本文提出了一种基于区块链的工伤康复流程管理模型,不但很好地满足了工伤康复管理系统对监管审计的需求,而且使得民政部门、医院、工伤患者三者之间真正意义上形成了一个联盟。在这个联盟中,不存在对数据有绝对控制权的实体,任何对业务数据的篡改都会被记录在区块链上,可以很大程度上防止工伤康复业务流程中虚假数据的出现与流通,更好地维护三方利益,实现数据的安全存储与交换共享,以及隐私保护。

[1]李红玲,周顺林,胡秋生.我国的工伤康复现状[J].中国康复,2012,27(1):71-72.

[2]孙树菡,毛艾琳.工伤康复的问题与解决[J].北京劳动保障职业学院学报,2007,1(4):9-13.

[3]沈鑫,裴庆祺,刘雪峰.区块链技术综述[J].网络与信息安全学报,2016,2(11):11-20.

[4]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494.

[5]程瑶,高丽芬,胡全贵.区块链共识机制之POW算法[J].数字通信世界,2019(3):81

[6]李顺东,覃征,窦家维. 一种零知识证明算法及其应用[J].西安交通大学学报,2001,35(12):1252-1254.

[7]候凯文,赵升阳,李明利,等.当前HIS系统中使用电子病历存在的主要缺陷[J].西南军医,2005(6):74-75.

[8]冯烨,王燕,翟华.工伤康复早期介入工作的探索与思考[J].中华医疗保险,2018(9):59-61+65

[9]姜晓萍.政府流程再造的基础理论与现实意义[J].中国行政管理,2006(5):37-41

[10]杨毅.医院电子档案数据的安全保护[J].现代商贸工业,2017(31):72-73.

[11]张超,李强,陈子豪,等.Medical Chain:联盟式医疗区块链系统[J].自动化学报,2019,45(8):1495-1510.

[12]Castro M,Liskov B. Practical Byzantine fault tolerance[C]//OSDI. 1999(99):173-186.

[13]宋伻阳,徐海水.区块链关键技术与应用特点[J].网络安全技术与应用,2019(04):18-23.

[14]Vukolić M. The quest for scalable blockchain fabric:Proof-of-workvs.BFTreplication[C]//International Workshop on Open Problems in Network Security. Springer,Cham,2015: 112-125.

猜你喜欢

工伤共识区块
共识 共进 共情 共学:让“沟通之花”绽放
论思想共识凝聚的文化向度
《红楼梦》的数字化述评——兼及区块链的启示
商量出共识
区块链助跑财资管理
陪客户喝酒后死亡是否算工伤
一场区块链引发的全民狂欢
早退途中出车祸 不予认定工伤
区块链助力企业创新
公司烧饭农妇意外坠亡是否认定工伤