基于区块链的电子数据存证系统
2022-11-15郑清安程仲汉
郑清安, 程仲汉
( 1. 网络安全与执法技术福建省高校工程研究中心, 福建 福州 350007;2. 福建警察学院 计算机与信息安全管理系, 福建 福州 350007)
0 引言
随着区块链技术的快速发展和普及, 区块链技术已在金融服务、 医疗健康、 供应链管理、 知识版权、 社会管理、 文化教育等多个领域得到应用[1-3]。 区块链具有去中心化、 不可篡改、 可追溯的特性, 将其应用于司法电子数据存证中, 可以很好解决存证过程中电子数据易丢失、 易被篡改等问题, 增强电子数据作为证据使用时的可信性和证明力, 从而简化办案流程, 缩短执法办案时间, 提升办案效率。 目前, 国内已有相关案件判例, 法院对采用基于区块链技术存证的电子数据予以认可, 确认其法律效力[4]。 对基于区块链技术的司法应用研究已成为学术界和行业内关注的热点问题。 文[5]分析了国内在电子数据存证方面的现状, 发现此类证据存在完整性、 真实性和可信性等方面的问题, 探讨了区块链与司法存证进行融合的可行性和必要性, 阐述了优化司法存证体系的方法和路径, 着力推动基于区块链的司法存证体系的构建。 文[6]分析了审判实践中对采用区块链存证常见抗辩事由的司法审查重点及区块链中存证电子数据的法律属性, 分别从证据 “三性” 原则、 证明责任分配规则和证据推定规则三个方面, 探讨如何建立统一的司法审查方式。 文[7]设计了一种基于区块链的电子证据存储系统架构模型, 利用区块链上的证据数据不可篡改的特点, 保证存证数据的真实性, 描述了一种可以降低存证成本、 提高存证效率的批量打包电子证据的方式。 传统以单方为中心的电子数据存储方式存在数据易丢失、 易被篡改、 可信度低等问题[8], 而上述文献中基于区块链公有链平台构建的电子证据存储系统存在系统交易处理效率较低的问题。 针对以上问题, 本文设计一种基于区块链超级账本Fabric 平台的电子数据存证系统, 使用分布式文件系统(interplanetary file system, IPFS)存储原始电子数据文件, 提取原始文件的哈希值等关键信息, 将这些关键信息记入区块链账本中, 确保数据不可篡改和存证数据可信性。
1 超级账本系统架构
超级账本是当前区块链技术中联盟链开源平台的典型代表, 与比特币、 以太坊等公有链平台相比, 其特点在于交易处理效率较高, 具有完善的身份认证许可机制, 采用模块化设计, 扩展性和灵活性更高[9]。 在很多应用场景中, 超级账本可以解决机构主体间的信任问题, 在安全可控的范围内开放敏感数据共享, 降低机构主体间复杂业务流程带来的信任成本, 提升机构主体间的协作效率。 超级账本的系统架构如图1 所示。
图1 超级账本系统架构
上层应用通过调用接口实现超级账本平台提供的成员管理、 账本管理、 交易管理、 链码管理等功能。 其中, 成员管理服务是平台的安全性保障模块, 包含CA(证书颁发机构)和MSP(成员关系服务模块)组件, 为成员提供登录注册服务, 实现权限管理控制。 区块链服务是整个平台的关键支撑模块, 包含分布式账本、 共识机制、P2P 协议、 账本存储等子模块, 可实现节点间数据的高效分发和同步, 确保账本存储的效率以及成员节点账本数据的一致性。 链码即智能合约,链码服务支持多种语言开发智能合约, 采用Docker 容器为智能合约的部署和运行提供隔离环境, 而注册仓储管理可以快速进行环境部署和测试。
2 存证系统模型
2.1 存证系统模型框架
采用超级账本Fabric 为基础技术架构, 存证系统模型底层的复杂应用业务逻辑对用户透明,详细的业务流程如图2 所示。
图2 存证系统业务流程
前端界面采用浏览器/服务器模式与用户进行交互。 应用模块设计采用高内聚低耦合的思路, 模块功能应用紧跟实际应用需求, 主要功能有用户管理、 证据存储、 证据查询、 证据下载、出具证书等。
2.1.1 用户管理
用户分为普通认证用户和管理用户。 普通认证用户可以通过浏览器客户端手动进行电子数据文件的上传、 查询、 下载, 以及申请存证证书;也可以通过调用应用程序接口自动实现相关功能应用。 管理用户负责普通用户的管理和功能应用授权。 用户登录系统, 需要通过身份认证, 默认情况下, 未经认证用户无法登录, 需要重新注册。
2.1.2 证据存储
用户通过身份认证登录系统后, 可以提交电子数据存证请求, 支持的电子数据类型包括常见的文档、 图片、 音频、 视频及电子证据镜像文件等。 文件处理模块会根据请求计算生成文件哈希值, 同时对文件做加密和分片处理来保障数据安全, 提升系统效率。 文件哈希值等关键信息上链记入区块链超级账本中, 加密后的文件分片上传到IPFS 中。 原始证据文件一般比较大, 而其哈希值及相关基本信息组成的关键信息的数据量可控, 轻量级的信息上链可以在充分利用区块链去中心化、 不可篡改、 可追溯特性的同时, 提高交易处理速度。
2.1.3 证据查询
根据权限控制管理规则, 默认情况下, 普通用户只能查询自身存储的电子证据信息, 要查询其他用户的存证信息时, 需要获得相关用户的授权。 当用户提交查询证据请求时, 系统根据查询项关键字, 调用智能合约, 在区块链超级账本中查询是否存在对应的哈希值记录项。 若存在对应记录项, 则读取超级账本中证据文件信息及分片的索引位置, 用户可通过这些信息获取存证的原始电子数据文件。
2.1.4 证据下载
当用户提交下载证据文件请求时, 为保障数据安全, 系统会审核用户授权情况, 若用户未经授权则拒绝下载请求并返回错误信息。 合法授权用户请求下载原始证据文件, 系统通过查询文件哈希值, 获取区块链超级账本中对应的文件信息及分片的索引位置, 根据此信息定位文件分片在IPFS 中的具体存储位置, 调用智能合约, 下载分片数据并进行重组和解密。 计算解密后文件的哈希值, 与存储在区块链超级账本中的原哈希值比对, 一致则代表证据文件保存完整、 未遭破坏或篡改, 同时将原始证据文件返回给用户前端。
2.1.5 出具证书
当合法授权用户需要某个文件的存储证明时, 可以提交出具证书请求, 系统会在区块链超级账本中查询文件对应的哈希值记录, 调用智能合约, 获取存证文件的哈希值、 存证时间戳、 存证来源、 文件存储地址、 存证编号、 区块链ID等信息。 这些信息由区块链网络节点中的司法鉴定机构通过系统认证和电子签名, 生成加盖鉴定机构公章的电子签名证书, 客观显示文件的基本状态信息。
2.2 节点部署
在执法办案过程中, 电子数据从采集、 固定到后续的使用分析, 期间需要根据法律程序在公安局、 检察院、 法院和司法鉴定机构之间流转。在证据固定保全和传输过程中, 保障证据的客观性、 完整性和可追溯性至关重要。 因此, 需要在公安局、 检察院、 法院和司法鉴定机构之间部署一个统一的区块链存证平台, 通过区块链技术和运行机制达成共识, 确保存证电子数据的可信性, 从而提升办案效率, 降低各方办案成本。 网络节点的部署如图3 所示。时, 系统会根据申请需求自动核验证据文件对应的链上哈希值与IPFS 中存储的原始证据文件哈希值是否一致, 若一致则出具鉴定证书。 整个鉴定流程自动完成, 无需要人工干预。
图3 网络节点部署
3 系统测试与分析
所有的原始证据文件都通过IPFS 加密分片存储, 各个组织机构作为区块链网络中的节点共同参与记账, 根据共识算法维护账本同一性。 各个组织机构内部都配置主节点、 背书节点和记账节点, 以确保区块链共识机制的良好运行及账本数据同步。 例如, 公安局可将采集到的原始证据文件通过平台上传至IPFS, 将证据哈希值等关键信息记入区块链账本进行保全。 检察院、 法院需要核验证据时, 只需通过区块链平台查询账本中相应文件的哈希值, 与公安局移交的证据文件哈希值进行比对, 如果一致则说明文件未被篡改, 否则不予认可。 当需要鉴定机构出具报告
为验证系统的可用性, 对基于区块链超级账本平台的电子数据存证系统进行黑盒测试, 进一步分析存证系统的模块设计合理性、 平台易用性和可扩展性。 根据图3 网络节点部署, 在局域网内配置3 台主机, 硬件配置为CPU 3.60 GHz8 核16 线程, 内存 32 GB, 硬盘 1 TB SSD, 部署 3 个模拟组织机构, 每个机构3 个节点共9 个节点,每台主机负责运行3 个虚拟机节点, 其中一台增配IPFS 节点, 主机系统为 Ubuntu。 系统功能测试时, 将电子数据文件分为文档类、 音频类、 视频类和电子证据镜像类等4 种不同类型, 分别选取大小为 0.1、 10.0、 100.0、 1 000.0 Mb 的上述4 种类型文件, 使用测试帐户登录系统, 分别将这些文件上传系统进行存证, 并依次做查询、 下载和出具证书操作, 同时逐一记录每个操作所消耗的时间, 重复以上实验操作3 次并计算平均耗时。 同时, 为检验文件分片能否提升系统存证效率, 分别测试了文件分片存储和不分片存储的存证、 下载操作耗时, 并进行对比。 最后, 分别对区块链平台上4 种类型电子数据的操作做统计测算, 实验结果如表1 所示。
表1 实验结果分析
从表1 可以看出, 所有操作的成功率均为100%。 10.0 Mb 及以下文件, 区块链平台上所有的操作时延在3 到5 s 之间, 其中查询效率最高。查询和出具证书的操作时延相对稳定, 跟文件大小和是否分片存储没有直接关系, 主要原因是存证系统采用IPFS 存储大容量原始数据文件, 只将轻量级的关键信息记入区块链账本, 而这两种操作只涉及区块链账本状态的查询, 没有与IPFS 交互, 不受文件大小和存储方式影响。 存证和下载的操作时延随着文件大小的增加而逐级递增, 当文件大小在100.0 Mb 及以上时, 文件分片存储能够明显减少耗时, 提升系统效率; 而当文件大小在10.0 Mb 及以下时效果并不明显。究其原因, 当文件较大时, 将文件拆成多个分块, 可以调用多个线程, 提升速率; 而当文件较小时, 由于文件上传或下载本来就不需要太长时间, 再加上文件上传或下载过程中, 传输控制协议流量控制和启动多线程调度都需要一定耗时,因此, 这种情况下, 文件是否分片存储耗时相差无几。 测试结果表明, 系统整体功能正常, 相较于比特币公有链每10 min 出一个区块和以太坊公有链每14 s 出一个区块的处理速度, 存证效率明显较高。
4 结语
针对传统中心化的电子数据存储方式存在的数据易被篡改等安全和可信性问题, 设计了基于区块链的电子数据存证系统, 实现用户管理、 存证、 查询、 下载和出具证书等功能。 系统部署IPFS, 将原始电子数据文件加密并分片存储在IPFS 中, 确保源数据安全性, 提升系统存证效率; 将存证文件的哈希值等基本信息记入区块链账本中, 确保存证数据不可篡改、 可追溯, 从而保证存证数据的可信性。 系统测试结果表明, 存证、 查询、 下载和出具证书等模块功能运行正常, 存证效率较高, 解决了传统电子证据易被篡改等安全和可信性问题。 在实际业务应用过程中, 联盟节点一般部署在互联网中, 如何在保证区块链平台系统交易处理性能的同时, 优化共识算法, 提升账本数据传输安全性, 需要进一步研究。