基于区块链的医疗信息共享平台*
2024-03-05夏维浩赵振江曹佳璐吴俣飞张丽丽
夏维浩,赵振江,曹佳璐,吴俣飞,张丽丽
(河南科技大学信息工程学院,河南 洛阳 471023)
0 引言
区块链的问世,正是因为其作为数字货币的基础底层技术,才引起了各界的广泛关注与重视,但将它与电子货币相提并论,无异于将网络与“万维网”相提并论,狭隘了它的含义。从区块链自身的逻辑来讲,其核心功能主要有3个:一是机器信任,二是价值传递,三是智能合约。这也是最适合将区块链应用到现实世界中的地方。当前,区块链技术已经和大数据、云计算、物联网、人工智能充分融合发展,其集成应用已经延伸到金融、司法、医疗、能源、供应链管理等多个领域,在新的技术创新和产业变革中起着重要作用[1]。
1 系统的总体设计
本平台结合现代Web技术和以太坊去中心化智能合约技术,旨在建立一个去中心化的医疗信息权威数据库,以便患者随时查询就诊记录。为实现此目标,我们利用区块链技术创建了一个独立服务器,用于存储涉及用户隐私的医疗数据和大数据哈希值。
在平台中,医生可将患者就诊信息存储于服务器,患者和医生均可随时访问,以便为患者提供更好治疗。医疗共享系统采用B/S架构,根据用户业务需求,将系统架构分为三层设计。如图1所示,从系统架构图可见,系统主要包括浏览器客户端、Koa WebServer服务端和数据库存储三层。
图2 设计的系统总体架构
图3 以太坊核心架构
2 开发工具介绍
医盟链系统技术架构综合了诸多尖端开发工具和技术,以期为用户呈现一个全方位、稳定而高效的区块链和互联网服务平台。本文将深入探讨医盟链系统的技术架构设计及其各组件的功能与特性。
总的来说,医盟链系统的技术架构可划分为两大部分:页面互动系统和区块链互联网服务系统。
页面互动系统主要负责人机互动,以实现优秀的用户体验。 在页面互动系统中,采用了MVVM(Model-View-ViewModel)架构模式实现前后端分离,从而提升开发效率和代码可维护性。在Web前端页面的开发与构建方面,选择了Vue3框架,它是一种用于构建用户界面的渐进式框架,可协助开发者迅速搭建高性能的SPA(单页应用)。Vue3具有轻量、易学、可扩展的优点,能迅速响应用户操作并提供流畅的界面体验。同时,医盟链系统在移动端使用了广受好评的跨平台解决方案ReactNative。该框架允许开发者运用Web开发技术(例如JavaScript和React)开发移动应用,从而节省开发时间并确保在不同平台(如iOS和Android)上的运行稳定性[2]。
在区块链互联网服务系统方面,为了与区块链进行互动并承担区块链服务,我们构建了互联网服务。在服务器端,我们采用了Koa框架,它是一个基于Node.js的轻量级、高效且模块化的Web框架,可用于搭建高性能的Web服务。为了实现与以太坊智能合约平台的连接,我们使用了Web3.js库,它提供了与Ethereum区块链的接口,支持智能合约的部署和调用。
总之,医盟链系统通过整合多种前沿技术和开发工具,成功打造了一个全方位、稳定、高效的区块链+互联网服务平台。系统的技术架构包括页面互动系统和区块链互联网服务系统,分别负责提供卓越的用户体验和高效地支持区块链服务。利用MVVM架构模式、Vue3框架、ReactNative、Koa框架、Web3.js库、Ganache和Truffle框架等技术,医盟链系统在前端和后端的开发方面表现出卓越的性能和便利性。
3 核心技术
3.1 区块链
1) 去中心化:区块链是一种去中心化的数据库,它可以通过分布式网络来连接所有节点,让每个节点都有自己的身份,能够自由地进行数据、资产和信息等的交换。区块链不需要通过第三方机构来实现交易,而是可以实现点到点的转帐,即在区块链上可以完成数据、资产和信息的交换[3]。
2) 不可篡改:区块链使用了密码学技术来保护区块链上的信息的安全,防止信息被篡改,其主要用到的技术是密码学中的哈希函数以及非对称加密。
3) 可追溯性:以区块+链的方式,将从第一个区块起的全部历史数据进行保存,其连接的方式是后一区块拥有前一区块的HASH值,此外,在区块链上的任何一条记录,都可利用链式结构进行溯源。
4) 用户隐私保护:区块链产品使用地址来标识用户,因此无需再以其他方式来标识用户身份的信息。通常,地址会通过公开密钥算法生成,使用一串如乱码一般的字符串来实现用户隐私保护。这样,在不泄露用户隐私的前提下,可以安全地完成各种数据信息的存取。
3.2 以太坊智能合约
以太坊的核心架构图包括了以太坊客户端、以太坊虚拟机、智能合约和以太币等组件。以太坊客户端是以太坊系统的实体,包括以太坊节点和基于以太坊协议的应用程序。以太坊虚拟机是一种可编程的、执行智能合约的计算机,它运行在以太坊网络中的每一个节点上,并且由以太坊矿工来验证交易并打包区块。智能合约是一种可自动执行的、基于代码的合约,其规则和条款在代码中被预设并被纳入到以太坊网络中,可以实现无需信任第三方的可靠交易和服务。
以太坊的去中心化特性使得该平台具有高度的安全性和透明性。所有的交易信息都会被保存在每一个节点中,并由整个网络维护。这意味着没有单一的中央服务器可供攻击者攻击,从而阻止了黑客入侵和数据篡改的发生。此外,以太坊的智能合约可以自动执行,确保交易的公正性和可信度,同时无需信任第三方。
以太坊的哈希算法确保了数据的有效性和稳定性。通过将原始数据转换为固定长度的数字,可以轻松地存储和检索数据,并验证数据是否被篡改或伪造。在区块链中,单个节点储存的数据是无法修改的,因此无法实现对数据的篡改,从而确保数据的稳定性和可用性[4]。
3.3 哈希算法
哈希函数是一种将一个任意长的输入转换为一个固定长的输出的一种算法。哈希函数具有以下两个特性:
1) 单向性:即对于一个给定的输出结果,不能逆推出输入。
2) 抗碰撞性:即很难找到两个不同的输入,通过哈希计算得出相同的输出。
基于上述两个特性,哈希函数被用来验证数据的完整性和数字签名。
3.4 数据加密
把使用相同密钥加密和解密的算法称作对称密码算法,如DES和RC5。这种公开透明、高效的算法在加密和解密过程中只需要一个密钥,但是密钥管理负担随着用户数量的增加而加重。相比之下,非对称加密需要一对公钥和私钥,例如RSA和ECC算法。发送者用其持有的密钥加密数据,只有对应的私钥拥有者才能解密密文。这种方式保证了数据的安全性。与对称加密不同,非对称加密加密和解密所用的是不同的密钥[5]。图4展示了对称加密和非对称加密发送数据的方式。
图4 对称加密和非对称加密对比图
图5 网页端展示
3.5 数字签名
数字签名(亦称公钥数字签名)是仅信息发送者能产生的一串无法被伪造的数字序列,这串数字序列同时也有效证明了发送者所发送信息的真实性。它类似于写在纸上的传统物理签名,但利用了公钥加密技术来实现,用以验证数字信息的方法。一套数字签名通常包括两种互补操作,一个用于签名,另一个用于验证。数字签名涉及非对称密钥加密技术和数字摘要技术的应用。
4 成果展示
5 结语
本平台涉及区块链网络技术领域,尤其是一种将区块链网络技术和传统数据库技术相结合的存储方式。发明主要是将个人医疗记录保存在区块链网络节点上,把原本掌握在各个医疗结构手上的数据进行更安全、可信的数字化,实现信息的共享。