基于区块链的电子数据存证平台研究

2021-06-03 10:11杨坤桥
现代计算机 2021年9期
关键词:哈希区块证据

杨坤桥

(四川大学计算机学院,成都610065)

0 引言

随着互联网技术的快速发展,人们的生活越来越依赖于各种电子产品。由于互联网的虚拟性和开放性等特点,出现了大量以互联网和计算机作为犯罪工具的网络犯罪。对于这类犯罪,计算机取证成为了司法机关定罪量刑的重要手段。计算机取证是指按照一定的调查流程,通过软件或其他工具扫描计算机,提取相关的犯罪证据,得到的与案件相关的证据也称为电子证据[1]。当前电子证据在司法实践中发挥着越来越重要的作用,许多的证据以视频、音频、文档、图片的形式呈现。传统的电子存证系统普遍采用的中心化的数据管理方式,存在着数据易篡改、保全难度大、采信流程繁琐等缺点[2]。

区块链具备去中心化,不可篡改,数据透明,集体维护、可追溯等特性,使得区块链在许多领域具都有广泛的实用价值[3]。经过多年的发展区块链的应用场景从最初的最初的数字货币领域扩展到了物联网、医疗、金融等多个领域,近年区块链与司法的结合也在逐步探索中。2018年9月,最高人民法院就发布了《关于互联网法院审理案件若干问题的规定》指出[4],人民法院应当对当事人通过电子签名、区块链等证据收集、固定和防篡改的技术手段或者通过电子取证存证平台认证收集的证据应当予以认定。在今年两会的最高人民法院的工作报告中,也同样指出要推动大数据、区块链等技术的深度应用,建设全国司法区块链平台。区块链经过多方维护、数据加密,存储于系统中的多个节点上,使得区块链天然的具备去中心化分布式存储的能力[5]。将电子数据存放于区块链上,就可以有效防止数据丢失、数据被恶意篡改或中心节点发生单点故障等问题[6]。此外区块链具备可追溯性的特性,当电子证据上传至区块链系统中进行审查时可留下详尽的审核记录,能够极大地提升电子存证的可信度[7]。

本文针对以上存在的问题,提出了一种基于区块链技术的电子存证系统。本文的主要贡献是针对现有的电子证据存证数据易被篡改、系统、数据不易保存等问题,利用区块链技术的去中心化、不可篡改、可追溯的特性,保证电子证据存储的安全性并增加证据的可信度。为了解决区块链存储能力有限,无法存储大容量文件的问题,本文采用了IPFS(InterPlanetary File System)文件系统对大文件进行分布式存储,将文件地址及其Hash值信息上链,从而提升了区块的存储能力。

1 相关研究

自2008年比特币白皮书发布以来[8],区块链技术的发展就一直备受关注,区块链因其独特的技术优势已被应用到了各行各业中。如在医疗数据方面,文献[9]针对现有的基于区块链的医疗数据共享研究缺乏合理的激励机制,提出了一个基于区块链共享医疗数据的协作模型。该模型根据数据所有者、矿工和第三方组成的参与者之间的拓扑关系,计算各参与者在联盟链中的Shapley值,然后根据比例进行收益分配。为了解决病历在不同医疗机构的可控共享,张磊等人文献[10]提出了一种基于区块链的病历存储模型,该模型采用了共识效率更高的改进的PBFT共识算法,由各级医院注册联盟区块链,实现病历的混合存储。同时借助于多种加密技术,让病人能够自定义访问策略,实现病历的可控分享。

在物流溯源方面,王可可等人[11]为解决传统农产品供应链产品溯源难等问题,设计实现了基于区块链的农产品追溯系统。该系统为提高存储效率,将文件进行分布式存储,使得系统能够适用于大范围、多数的农产品追溯。李松钊等人[12]针对传统的物流服务中合约执行效率低、供应链多方信用关系缺失等问题,建立物流服务交易智能合约区块链模型。该模型能够实现供应链的全链路追踪,提高物流服务的整体效率。

2 系统架构

整个电子存证系统按照功能划可以分为以下模块登录注册模块、权限管理模块、存储模块,以及查询下载模块。用户的登录注册模块主要的工作,首先是在用户初次使用系统时引导用户完成用户注册,在通过注册流程后为用户分配相应的权限。其次若用户已经注册则验证用户的身份。权限管理模块则根据RBAC(Role-Based Access Control)中用户角色的不同为用户级别提供不同的访问权限,在本文中一类用户属于系统管理员拥有系统的最高权限特别之处在于可以增删用户。二类用户拥有系统的普通操作权限相较于一类用户而言不能增删用户。三类用户只要链上数据的查询权限不具备其他操作权限。电子数据存储模块主要完成电子数据的上链存储,链上的数据主要为文件的哈希值和文件地址。查询下载模块根据用户输入的文件名找到链上存储的地址,根据地址下载对应的电子数据,通过与链上哈希进行比对来判定数据是否发生篡改。

表1 用户权限表

功能的不同,主要分为应用层、业务逻辑层、网络传输层、数据存储层等四层构成,系统架构图如图1所示:

图1 系统架构

(1)应用层:应用层主要完成三个任务,一是向用户展示系统的UI,供用户使用。二是根据用户对UI的操作,接收用户的调用请求,并根据对应的API向后台的业务逻辑层发起业务调用。三是在完成业务调用后,获取到业务逻辑层对应用层的返回结果,将对应的信息渲染展示给用户。应用层完成的主要功能包括用户的注册登录,电子证据的上传、查询、下载等功能的UI展示。

(2)业务逻辑层:业务逻辑层主要有两个功能完成相应的业务调用和运行智能合约。业务调用实现包括用户的登录退出,资料的上链、查询、下载等功能,并向对外提供相应的业务接口,在完成调用后返回业务调用结果。业务调用过程中为了简化数据解析增强系统的可维护性,使用JSON格式进行数据交互。智能合约是嵌入区块链中的一段可编程代码,类似于我们编程语言中的if-else语句达到一定条件会自动触发无需人工干预。区块链为智能合约提供了一个可信的执行环境,合约一旦嵌入到区块链中就不能更改。在本文中每个不同的用户角色带有不同的密钥,用户登录时根据用户的密钥与智能合约中的密钥进行对比,为用户分配不同的操作权限。

(3)网络传输层:网络层的功能主要完成数据的通信以及同网络中的各节点达成共识。区块链的作为一个去中心化的分布式数据库,不同于传统的系统架构,在区块链中每个节点都是对等的,它们之间的通信采用的是点对点的通信方式,不依靠于中心服务器。这样做能最大限度的减小中心化的依赖,增强系统的可扩展性。由于在区块链中各节点都是对等节点,为了保证系统中的数据一致性,就必须使各节点达成共识。常见的共识算法有两类,一类是公有链采用共识算法,另一类是联盟链采用的共识算法。由于本文应用场景更符合联盟链的特征,因此综合考虑采用了DPoS共识算法。

(4)数据存储层:数据存储层作为整个系统的最底层,它的作用在于存储数据。在整个区块链系统中从整体上来看是一个链式结构,局部来看整个链式结构由一个一个的区块链接构成。链中的每个区块都记录着前一个区块的哈希值,形成环环相扣的链式结构,组成区块链。如图2所示。

区块类似于的网络中的数据包,分为消息头和消息体,即区块头和区块体。区块头主要由父块的哈希值、创建区块的时间戳、区块长度、版本号、Merkle根等构成[13]。区块体主要由多个交易单构成,交易单也分为交易头和交易体。交易头记录着交易的ID、交易单的Hash值、创建交易的时间,以及数字签名构成。交易体主要由文件名称、文件类型、文件地址、文件的哈希值等构成。因区块链中的区块存储容量有限,区块中不可能存储大容量的文件,因此在本方案中并未直接将文件存储到区块当中,而是采用文件分片的方式存储到分布式的IPFS文件系统当中。即当要存储大文件时,先把文件拆分成若干个小的文件,然后计算各文件分片的哈希值并把各小文件分布式的存储到不同的节点上。计算分片的哈希值是为了保证各分片文件的完整性,便于后面查询时验证分片数据是否被篡改。在本文方案中区块体的交易单中只存储文件名和文件分片的哈希值以及文件的存储位置。在进行查询操作时可通过文件名得到各文件分片的哈希值和存储位置,通过存储位置可以得到各文件分片并验证分片的完整性,然后将各文件分片组合成一个大的文件返回给用户。这样既能够满足大容量存储的需求,同时又能最大限度的减小区块的存储压力。

图2 区块及交易单结构

3 系统流程

利用区块链和IPFS分布式文件系统,作为电子存证的底层技术来确保数据的安全存储,提高电子存证的可信度。存证系统的详细流程图如图3中,主要分为以下步骤。

(1)用户在进入系统时,提示用户登录系统。若用户没有账户登录,则引导用户注册账户。用户若注册二类权限,需经过一类用户审核后方可生效。用户若只注册三类权限,则直接为用户注册。

(2)用户登录到系统后,根据RBAC权限控制模块为用户分配权限,一类用户拥有系统最高控制权限,既可将数据上传到区块链中,还可以增删用户。二类用户拥有数据上链和查询的权限,但无法增删用户。三类用户则只有数据查询权限。

图3 系统流程图

(3)区块的存储能力有限,因此系统的存储功能分为链上存储和链下存储,链上存储的主要是文件的哈希值,链下存储的是文件实体部分。用户在上传文件时,系统首先计算文件的哈希值,并将文件的哈希值打包成交易上传至区块链中进行链上存储,链上存储成功后给用户返回一个电子凭证,上面记录着文件的上链信息,如文件名、时间戳、哈希值等关键内容,便于后期进行文件检索。链下存储是为了弥补区块的存储能力不够而增设的。文件的链下存储功能主要由IPFS文件系统来实现,在上传到IPFS文件系统时,大文件会被分成256kb的小块,每个分片会被映射成一个分布式哈希表,最后构成一个Merkle树的有向无环图,进行分布式存储。同时将每个分片的存储地址写入到区块链合约当中保存。

(4)电子存证的验证分为两种方式,第一种是根据第三步得到的电子凭证上的消息进行检索,若能够在区块链中检索到对应信息说明信息已经上链,系统向用户返回存证的归属信息。第二种是用户上传电子文件,系统根据上传的文件得到文件的摘要,系统再根据摘要进行检索若能检索到文件信息,向用户反馈验证成功,若不能检索说明上传的文件未上链或被篡改。

(5)若用户需要下载电子证据,用户需先进行登录确定用户是否为一二类用户,如何根据电子证据合约中存储的数据块地址,下载各文件块合并后返回给用户。

4 结语

当前传统的电子数据存证系统存在恶意篡改、数据保全难度大、缺乏可信的认证流程等问题。本文针对现存的这些问题设计了基于区块链的电子存证认证平台,系统通过区块链技术保证电子数据存证的安全可信不可篡改。为解决区块存储能力不足的问题,本文采用了IPFS分布式存证系统存储上传的电子数据,能够有效地提高整个系统的存储能力。此外为了更好地保证系统的安全运行,本文基于RBAC权限控制,制定了三种用户操作权限,能够有效地保障系统的安全高效的运行。

猜你喜欢
哈希区块证据
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
《红楼梦》的数字化述评——兼及区块链的启示
一场区块链引发的全民狂欢
区块链助力企业创新
区块链投机者
手上的证据
家庭暴力证据搜集指南
手上的证据