当前位置:首页 期刊杂志

一种基于区块链技术的医疗众筹系统

时间:2024-05-04

檀钟盛

(福建工程学院 互联网经贸学院,福建 福州 350108)

0 引言

近年来,区块链技术在非金融领域的应用日渐增加,如域名服务(DNS)、人工智能、医疗卫生、物联网、竞买合约等[1]。尤其在医疗领域,随着区块链技术的发展,其不断衍生出各类应用。医疗众筹领域也不例外,由于我国尚无法实现大规模的全民医疗保障,医疗的高昂费用往往导致患者家庭因病致贫和无钱治疗现象,因此大量医疗众筹项目应运而生。然而,目前医疗众筹存在以下问题:

(1)资金流动不明。在现行筹款体系下,由于人力和物力等一系列因素,很难对资金流向进行公开,捐助人往往自己都不清楚捐款动向,这导致捐款者对医疗众筹项目信心不足,降低了医疗众筹机构的公信力,削弱了民间资本进入众筹机构的热情。

(2)对用户隐私保护不足。随着互联网的兴起,越来越多的用户信息显示在互联网上,众筹机构将用户隐私泄露给第三方的问题也时有发生,这给一些不法分子可乘之机。例如,2022 年2 月北美众筹机构GiveSendGo 就遭遇了黑客攻击,致使9万多人隐私泄露。

(3)筹款退回难。当前,众筹体系中后续退款非常困难,许多病患在疾病不治或治愈后,大量善款占为己有拒不归还,这严重影响了民众参与医疗众筹的积极性。

针对上述痛点,本文将区块链和非对称加密相结合,提出基于以太坊智能合约的医疗众筹方案。该方案可有效解决用户隐私泄露、资金挪用、善后筹款等医疗众筹问题。

1 相关工作

1.1 以太坊

2009 年,随着比特币的推出,区块链应运而生。区块链由数据层、网络层、共识层、合约层、激励层和应用层组成,具体如图1 所示。区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点[2]。比特币为区块链1.0 版本,比特币是专门为数字货币而生,某些程度上限制了其发展[3]。随着区块链技术的不断发展,迎来了区块链2.0 版本,该版本增加了智能合约这一重要项。目前,以太坊是极具代表性的智能合约开发平台之一,它使用以太虚拟机(Ethereum Virtual Machine)处理智能合约。具体而言,以太坊是基于一套图灵完备的脚本语言加以实现,开发者可以通过以太坊官方推荐语言Solidity 创建应用。

Fig.1 Blockchain structure图1 区块链结构

1.2 智能合约

智能合约这个概念最早由美国计算机科学家尼克·萨博(Nick Szabo)提出,智能合约是一种用算法和程序编制合同条款、部署在区块链上且可按照规则自动执行的数字化协议[4]。智能合约一旦部署就会严格按照合约内容进行自我执行和自我验证,执行过程中无法被人为干预,确保了智能合约的权威性。

与传统合约相似,智能合约周期包括合约生成、合约发布、合约执行3个方面,如图2所示。

Fig.2 Smart contract lifecycle图2 智能合约生命周期

合约生成,主要包含合约参与者协商、制定合约规范、进行合约验证、获得合约代码4 个环节[5]。具体实现过程为:合约参与方进行协商,确认各方责任,经验证后获得标准合约代码。其中,合约规范和合约验证尤其重要,合约编写不规范则会发生安全问题[6],例如2016 年以太坊The Dao 事件。合约发布与交易发布相似,签名后的合约通过P2P 发送到每个节点,每个节点会通过共识协议确认合约,最终所有节点会对发布的合约达成共识,并将合约写入区块链中,合约执行过程完全由区块链内置的智能合约自动处理,公开透明、不可篡改。

智能合约与区块链的结合使区块链的应用场景得到极大扩展,并引起多方关注。总体而言,智能合约具有以下优点:①准确性:智能合约一旦部署,其内容与执行过程无法被外界因素干预,保证了智能合约的准确性;②高效性:智能合约是一种按照规则执行的数字协议,具备自我执行和自我验证功能,这极大降低了合约执行中的成本,提高了合约执行效率;③实时性:智能合约调用期间无需第三方参与,任何节点都可以调用智能合约。

1.3 相关研究

为了保证资金去向明朗、用户隐私不被泄露、资金不被挪用问题,非对称加密和区块链成为医疗众筹方案中不可忽视的重要环节。区块链作为一项新兴技术应用于多个不同的场景,例如人工智能[7]、金融[8]、医疗[9]、能源[10]等领域。

张巧良等[11]对英国Medicalchain 公司的众筹案例做了详细分析,总结其成功融资的因素之一在于项目基于区块链技术的必要性,但项目的财务信息却存在披露不足的问题。Zhang 等[12]指出在医疗众筹领域,许多人对参与众筹信心有限,因为他们害怕诈骗或不知道谁的需求更为迫切,这些信任问题导致许多医疗众筹项目资金不足。苏敏等[13]指出国内众筹平台法律法规尚不完善,需要众筹平台与医院合作。上述研究指出了当前医疗众筹项目的主要问题,但并未给出具体方案。鉴于此,本文根据上述问题,将相关工作的重点转向区块链方面。

李琪等[14]等将布比公司开发的区块链作为底层技术,规定了众筹发起者只能在特定场所使用善款,在一定程度上限制了善款被滥用,但是对善款挪用等问题还是没有好的解决措施。陈志东等[15]提出众筹业务在私有链(Crowdfunding Private Block Chain,CPBC)上的架构应用,极大加强了金融数据方面的安全和公信力。Nor 等[16]提出基于以太坊平台的灾区众筹系统,将区块链技术应用于灾情捐款,在灾难期间为受害者筹集资金和管理援助救济,解决了灾区的捐款问题。付利青等[17]利用区块链技术提出一个隐私性的以太币投票协议,解决了资金流向黑洞的问题。拜亚萌等[18]提出将区块链技术应用于电子健康记录,加强了电子健康记录的安全共享。Jayasinghe 等[19]提出将比特币与慈善系统相结合,建立以区块链为核心的慈善系统。谭文安等[20]提出一种区块链的医疗捐款方案,解决了资金动向不明朗这一问题,方法具有普适性,但是没有解决被捐助人的隐私保护问题。上述研究给众筹系统实现带来了启示,但没有解决医疗众筹方面的用户隐私保护和筹款滥用等问题。

基于此,本文提出并实现一个基于区块链的医疗众筹系统,既保证筹款信息真实可靠,杜绝筹款滥用和筹款挪用,又满足用户隐私不被泄露、合约终止时筹款退回的需求。

2 系统架构模型

2.1 业务流程

为了防止医疗众筹资金挪用和资金动向不明问题,本文引入区块链技术搭建医疗众筹系统。系统功能包括筹款申请、捐款操作、申请支付、筹款退回等操作,具体流程如图3 所示。系统还设置了支付申请机制,同时利用智能合约设置了指定医院地址并完成自动转账,避免了资金挪用问题。

众筹发起者填写必填信息生成合约,系统使用平台官方的公钥对用户隐私信息加密,并将生成的密文上传以太坊节点,平台工作人员从节点上获取用户上传的众筹信息,对其中加密部分使用平台官方的私钥进行解密从而得到明文。平台官方确认众筹真实无误后,将合约审核通过,确保之后该众筹合约可以进行筹款。众筹参与者可以支付合约规定的众筹金额参与众筹,众筹金额达到发起者设定的目标金额后合约将会宣布众筹成功。为了防止资金挪用,系统设置了申请支付功能,当发起者需要购买物品时需要先发起投票,然后等待参与者投票,参与者查看申请要求觉得合理便可投赞同票,赞同票过半则发起者可支付交易,其中转账地址必须为指定的医院地址,若填写地址和指定医院地址不同,则转账失败,确保筹款无法被挪用。若病人病愈则众筹参与者可拿回剩余筹款。

Fig.3 System business flow chart图3 系统业务流程图

2.2 系统设计

系统可分为3部分:Web 前端、智能合约、以太坊模块。系统具体架构如图4所示。

Fig.4 System architecture design图4 系统架构设计

Web 前端使用react 框架,Web 前端模块为用户提供了良好的可视化交互界面。通过与前端页面交互提交各类请求数据,通过智能合约提供的接口将数据提交到以太坊节点上。

中间部分为智能合约,本文智能合约使用Solidity 语言开发。智能合约为众筹参与、支付申请、投票支付申请等函数提供了一个交互的接口,通过智能合约将数据存储到以太坊区块上,当进行众筹参与时会自动调用智能合约上的众筹参与函数完成交易操作。病人治愈后,当众筹参与者进行筹款退回时会自动调用智能合约上的筹款退回函数完成交易操作。

以太坊模块作为底层支撑提供了数据存储功能,负责存储智能合约代码和执行智能合约,对前端传来的请求通过执行智能合约中对应的算法生成结果,结果通过PoW(Proof of Work 工作量证明机制)共识协议写入以太坊账本中。

3 模块功能与合约设计

3.1 前端设计

MetaMask 钱包是一个轻量级钱包,支持大多数以太坊网络,可以保管用户的私钥、交易记录、地址等。区块链钱包分为全节点钱包与轻节点钱包。全节点是完整拥有区块链上所有数据的节点,使用全节点钱包需要下载区块链上所有的数据以便与区块链上别的节点同步,对硬盘容量要求大,下载数据也比较费时。轻节点钱包依赖区块链上的其他全节点,只需要同步自身数据,不用下载庞大的区块链数据,使用户可以十分方便地管理自身数据。

3.2 智能合约模块

医疗众筹系统利用区块链技术完整地记录众筹发起人、众筹参与人、目标金额、众筹参与金额等信息。通过区块链数据追溯性和不可篡改性,从而构建可信第三方,同时为监管机构和司法仲裁机构监管提供有效的数据支持,有助于解决涉及医疗众筹的真实性等纠纷。众筹合约发起前必须向众筹平台进行身份确认和病情确认,确认无误后审核方可通过,合约发起后任何人都可投注支持金额加入众筹合约。医疗众筹系统具有申请付款、同意付款和完成付款等功能。智能合约字段如表1所示。

Table 1 Crowdfunding contract fields表1 众筹合约字段

3.2.1 众筹申请

众筹申请为该系统中非常重要的的功能之一,众筹发起者首先使用平台公钥对其隐私信息进行加密,并将信息上传以太坊,之后众筹平台工作人员从以太坊节点上获取众筹发起者上传的信息,使用平台私钥对加密部分进行解密。工作人员对众筹合约真实性确认无误之后将合约审核通过,合约审核通过后,任何人都可以参与医疗众筹。

算法1众筹申请算法

3.2.2 众筹参与

合约发起后,任何爱心众筹人都可参与众筹,众筹参与人投注合约的固定支持金额就可加入该合约。众筹参与人投注的合约、审核状态通过、众筹未完成,如果上述条件全部通过则跳出合约支付界面用于支付众筹金额,支付成功则表明加入该合约。

算法2众筹参与算法

4 实验分析

4.1 测试环境

在Window10 操作系统下实现医疗众筹系统,实现众筹系统必须安装 Node.js,Truffle 框架、MeatMask 钱包、Ganache-cii、web3.js、remix(智能合约网页编译器)。智能合约首先在remix 上测试功能,之后使用ganache 在本地测试智能合约。在本地测试完毕后部署到以太坊rinkeby 网络上。

曾先生16日介绍称,他与父母在当地时间1日晚近12点的时候从挪威首都奥斯陆乘火车抵达斯德哥尔摩,并前往距离斯德哥尔摩中心火车站不远、提前在网上预订的“斯德哥尔摩发电机(GeneratorStockholm)”旅店。

4.2 测试结果

针对该系统的众筹申请、众筹参与、退钱等重要功能进行一系列测试。众筹申请和众筹参与退钱等会对以太坊节点数据有修改的操作都会通过MeatMask 被打包写入以太坊节点中。众筹筹款展示、众筹信息查询这些不会对以太坊节点有修改的数据则不用被打包写入以太坊节点中。

以太坊节点在以太坊虚拟机中运行交易触发代码,以太坊中发送、存储、执行计算等一系列改变区块状况的操作都需要消耗gas(EVM 中每步操作都会消耗一个固定的消耗值)。gas price 是单个gas 的价格,实际操作中交易成本为gas × gas price。

该系统中,智能合约部署在以太坊rinkeby 网络中,部署合约的账户地址为 0xC2FC51c9eD99905bCBDcB1d5fe9296E6E5977510,智能合约的部署地址为0xe6016458c06036c0e335ac3d52d0b8d4714e69a6。利用智能合约分析各函数消耗的花费。众筹发起者发起constructor 需要花费0.0050030284ETH(以太币),众筹参与者发起support 需要花费0.0002420076ETH,平台人员审核通过众筹合约需要花费0.000109710ETH,众筹发起者发起支付请求需要花费0.000325312ETH,众筹参与者对支付请求进行投票需要0.000178620ETH,众筹参与者拿回筹款需要花费0.00013872ETH。智能合约具体花费如表2 所示。表2数据证明方案所消耗的成本是可接受的。

Table 2 Smart contract spending test表2 智能合约花费测试

4.3 与传统平台比较分析

与传统众筹平台相比,该系统有较大优势,主要分析如下:

(1)众筹善款不能被挪用。智能合约规定了投票机制,任何支付申请都需要通过参与者的赞同投票,严格控制了资金使用,同时又对转账地址做了严格控制,资金只能转向指定医院,若转账地址和指定医院地址不符合,则无法支付,有效规避了资金挪用的风险。

(2)善款流向透明。系统将众筹申请、众筹参与等交易信息全部写入以太坊节点中,每个以太坊节点都完整保存了每笔交易的交易信息,任何人都可通过以太坊平台查询众筹合约细节及众筹善款流向。

(3)确保筹款真实性。该系统采用人工审核方式,众筹发起人填写信息发起合约后需要与众筹平台进行联系,当众筹平台工作人员对众筹发起人提交的信息核实确认无误后则将合约审核通过,有效确保了众筹的真实性。

(4)筹款可退还。对于传统众筹平台,当众筹完成之后,病人治愈后也不会退回剩余筹款。本文设计筹款退回算法,病人治愈众筹参与者则可领会剩余筹款。由于智能合约上链无法被修改,因而剩余筹款一定会退还到众筹参与者手中,有效增强了众筹参与者对众筹系统的信心。

(5)用户隐私得到保护。近来年,隐私泄露问题屡见不鲜,本文将非对称加密运用于医疗众筹中。众筹发起者的隐私信息通过平台的公钥进行加密,并上传以太坊节点,此时即便信息被拦截,没有对应的私钥仍然无法解开,有效保护了用户隐私安全。

5 结语

传统的众筹平台存在诸多问题,众筹参与者普遍怀疑众筹真实性。本文探究如何将区块链用于医疗众筹,提出了一种新的方案,通过智能合约对资金挪用、资金去向不明、筹款退款难等问题进行处理,有效防范了上述风险,解决了传统众筹平台公信力问题。

下一步研究中,将重点考虑以下几点:①目前Pow 共识算法对平台效率有一定影响,考虑是否换成Pos 或者别的共识协议;②该系统在众筹申请时需要众筹发起者与众筹平台工作人员核实信息,是否可以通过智能合约考虑去掉第三方,真正实现众筹发起者和众筹参与者点对点交互;③该系统为了保护用户隐私,对用户隐私信息进行加密,但同时也让合约真实性受到一定质疑,下一步应该考虑是否按文献[9]所述将众筹系统与医院相结合,由医院担保众筹真实性,从而提高合约真实性;④由于数字货币在当下政策环境中可行性存疑,是否考虑用数字人民币与智能合约相结合,实现基于数字人民币的医疗众筹系统。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!