APP下载

基于完整性的区块链电子存证方法研究

2019-12-23李振汕

计算机时代 2019年12期
关键词:电子证据区块链完整性

李振汕

摘  要: 为了保证电子证据链的完整性,提出采用区块链和云存储的混合架构,利用电子證据文件构建默克尔树,并与案件号、存证人员身份信息共同组成区块体。以上一区块的Hash值、区块编号、区块体默克尔树根节点Hash值和存入时间戳组成区块头,将区块头和区块体共同存储到相应的区块链中,最后通过二维码实现对电子证据的检索、查询和验证。保证了电子证据真实、可溯源、不可篡改,提高电子证据的可信度。

关键词: 电子证据; 区块链; 完整性; 默克尔树

中图分类号:TN911,TP391          文献标志码:A     文章编号:1006-8228(2019)12-01-04

Research on the block-chain based method of electronic certificate deposit with integrity

Li Zhenshan

(Department of Information Engineering, Guangxi Police College, Nanning, Guangxi 530200, China)

Abstract: In order to ensure the integrity of the electronic evidence chain, a hybrid architecture of block-chain and cloud storage is proposed. The electronic evidence file is used to construct the Merkel tree, and to form the block body together with the case number and the identity information of the depositor. The Hash value of the previous block, the block number, the Hash value of the block body Merkel root node, and the time stamp of the block form the block header. The block header and the block body are collectively stored in the corresponding block-chain, and finally generate the two-dimensional code. The code implements the retrieval, query and verification of electronic evidence. It ensures that electronic evidence is truly traceable, cannot be falsified, and improves the credibility of electronic evidence.

Key words: electronic evidence; block-chain; integrity; Merkel tree

0 引言

随着人们使用互联网和信息消费的迅猛发展,电子数据越来越多地被当做证据使用。电子证据附着在数字媒体上,具有技术高、准确、形式多样、易于传输和再现的特点。电子证据的这些优势使得其在证明案件事实方面发挥着越来越重要的作用。但是,相比较于传统证据,电子证据也有很多缺点,比如易于受误操作、硬件故障等因素的影响,很容易被破坏和篡改,这大大限制了电子证据的可信性[1]。

在电子取证领域,许多网络类型的刑事案件涉及到多个电子证据文件,这些文件之间具有一定的关联,它们之间的内容相互印证,共同构成某一案件完整的证据链条,用于证明某一案件的真实性。电子证据链的完整性是衡量证据链证明力的重要属性指标。然而,电子证据链的完整性涉及证据提取、证据固定、证据验证等多个步骤,这是一个复杂的技术过程。在实践中,可以保障电子证据完整性的手段还比较单一。

鉴于现有技术中的不足,本文提出了一种基于完整性的区块链存证方法,可有效地解决电子证据链的完整性验证问题。

1 相关背景知识

区块链技术是由非对称加密、分布式数据存储、加密算法、哈希、默克尔树(Merkel)和点对点传输组成。区块链技术通过可靠的数字加密算法和分布式节点验证和共识机制,解决了分散系统中节点间有效信息保护和信任建立的问题[2],从而在公开透明的基础上完成信息的传输和价值的转移,实现当前网络架构的重大转变。

区块链借由密码学串接并保护内容的串连记录。其存储以区块为单位,每个区块由区块头和区块体组成,存储的内容除默克尔树外,还包含了前一个区块内容的哈希值,它等同于前一个逻辑区块的逻辑指针。同理,本区块的哈希值也会被保存在下一个新区块的内容中[3]。这是一种前向背书的过程,即新区块的产生进一步强化锁定了所有旧区块的内容。这样通过密码学验证的方式构建了保证时序的、不可伪造、不可篡改、不可撤销的链条。因此,区块链具有分布、开放、匿名、自治、协同和透明的特点,从而保证了链中信息的正确时序,具有不可伪造、不可篡改、不可删除的有点。

Merkel树是区块链的重要数据结构。它具有两大特性:一是任意一个叶子节点的细微变动,都会导致默克尔树根节点发生翻天覆地的变化,这可以用来判断两个不同时间或地点获取的数据是否完全一致;二是快速定位修改,如果一个节点被修改,就会向上影响到相邻的节点直至默克尔树根,沿着这条路径便可以快速定位被篡改的节点。

然而,现有的使用区块链保存证据的技术往往认为由某个可信组织申请存入区块链的数据即为真实的证据,忽略了对电子证据完整性的检查,因此,存储在区块链中的数据并不一定是完整的真实证据信息。比如负责证据入链请求的节点被黑客控制,黑客完全可以将自己伪造的信息保存入区块链中,而使其他各方都认为这是真实的电子证据。因此,急需解决现有电子证据存储方法存在的问题。

2 基于完整性的区块链电子存证方法

2.1 存证方法的实现流程

为了保证电子证据链的完整性,确保电子证据的可追溯性,同时提高电子证据保存的安全性,有效降低保存成本。本文采用区块链技术,引入时间戳服务,将同一个案件的多个电子证据记录形成证据链存入区块链,通过证据数据链完整性验证和区块链完整性验证,排除了整个电子证据链被篡改或销毁的可能性,确保了证据链的完整性。其实现方法的流程如图1所示。

如图1所示,基于完整性的区块链电子存证方法具体步骤[4]为:

⑴ 区块链系统对存证人员进行身份认证,身份认证通过后,存证人员方可使用区块链系统进行存证,否则,系统返回错误信息,存证操作失败;

⑵ 以案件号为关键字,将具有相同案件号的多个相关联的电子证据文件组合成电子证据集;

⑶ 处理电子证据集,一方面,加密电子证据集以获得密文,然后将存证人员身份信息、存入时间戳、案件号和密文一起存储到云端存储器,并返回本次存储的云存储位置信息,另一方面,利用电子证据集中的电子证据文件构造Merkel树,再将案件号、存证人员身份信息和生成的默克尔树共同组成区块体;

⑷ 将上一区块的Hash值、区块编号、区块体默克尔树根节点Hash值和存入时间戳共同组成区块头,如果没有上一区块,则其Hash值全为零;

⑸ 将上述所生成的区块头和区块体组成区块,并将区块存储到相应的区块链中,返回本次存储的区块链存储位置信息;

⑹ 生成二維码,二维码中的信息包括存证人员身份信息、案件号、本次存储的云存储位置信息和区块链存储位置信息,便于用户进行电子证据的查询、验证和提取。

2.2 存证方法的实现结构

为了实现上述的存证方法,本文设计了基于完整性的区块链电子存证系统,其体系结构如图2所示。整个系统包括身份管理模块、存证数据归集模块、区块体生成模块、区块头生成模块、区块生成模块、区块链模块和云存储模块。在身份管理模块对存证人员进行身份认证后就可以进行存证,首先由存证数据归集模块按案件号将多个相关的电子证据文件组合成电子证据集,与存证人员的身份信息、案件号和存入时间戳归集在一起,共同组成存证数据集,再将存证数据集送到区块体生成模块和区块头生成模块分别生成区块头和区块体,然后将区块头和区块体交由区块生成模块进行组合,共同组成一个完整的区块,最后将区块送往区块链模块进行存储。同时,触发区块链系统中包含二维码生成程序的智能合约,生成二维码,用于后续查询和验证电子证据。

2.3 区块的构造

2.3.1 区块的结构

区块的构造既是本方法实现的重点,也是难点。一个结构合理的区块既可保证存储信息的完整性,也可提高系统的存储效益和信息的读写效率,便于查询。区块由区块头和区块体两部分组成,对于不同的系统,针对不同的应用目的,区块头和区块体的结构及其内容可以不同,基于证据链完整性的考虑,本文采用了如图3所示的区块结构。

2.3.2 区块体的生成

如图3所示,区块体包括案件号、存证人员的身份信息和默克尔树等信息。默克尔树是利用电子证据链中的电子证据文件构建的。其生成过程[4]如图4所示。

如图4所示,使用电子证据链中的电子证据文件构建Merkel树的具体步骤如下:

⑴ 按取证时间将具有相同案件号的多个电子证据文件进行排序;

⑵ 散列每个电子证据文件,其散列值是树的叶子节点。如果电子证据文件的数量是奇数,则复制最后的散列值以形成偶数个叶子节点。如图4中的叶子节点Hash(0-6)和Hash(0-7)相同,两者均为电子证据文件e17的散列值;

⑶ 连接两个相邻的散列值,然后对它们进行哈希处理以生成上层父节点;

⑷ 重复步骤⑴和⑶,直到生成根节点。

如图4所示,具有案件编号“1”的电子证据链包含7个电子证据文件,并且根据上述过程生成Merkel树。在该Merkel树中,由于叶子节点是电子证据文件的散列值,因此中间节点是其两个子节点的散列值,根节点也是两个中间节点的散列值,因此对底层数据的任更改都将传递给父节点,一直到根节点[5]。

2.3.3  区块头的生成

从图4中可以看出,区块头由上一区块的Hash值、区块编号、区块体默克尔树根节点Hash值、存入时间戳组成,如果没有上一区块,则其Hash值全为零。

2.4 完整性验证

验证人员通过扫描二维码查看信息并验证身份;身份认证通过后,验证人员就可以开始验证操作,本文的完整性验证包括默克尔树完整性验证和区块链完整性验证。

2.4.1 默克尔树完整性验证

验证人员通过扫描二维码获得相应案件号的电子证据在云存储中的位置信息,并根据该位置信息在云端存储器中查找并获取相应的电子证据密文,解密后得到相应的电子证据集,然后根据上图4中的方法生成新的Merkel树,将其与区块链上的Merkel树进行比较,其具体步骤为:

⑴ 比对根节点,若根节点相同,说明默克尔树完整,从而表明电子证据链满足完整性要求,验证结束,否则电子证据链不完整,继续执行步骤2;

⑵ 比对两个子节点,并检索哈希值不一致的子节点;

⑶ 重复步骤2,直到比对至叶子节点;

⑷ 確定与不一致叶子节点对应的电子证据文件,表明该电子证据文件已被篡改。

2.4.2 区块链完整性验证

验证人员通过扫描二维码获取相应案件号的电子证据在区块链中的存储位置信息,根据案件号检索相对应的区块,从该区块的区块头中获得该区块的区块编号,从而可以确定上一区块的区块编号,根据该区块编号就可以定位检索到上一区块,由此计算得到上一区块的Hash值。采用相同的办法就可以计算得到下一区块的Hash值,通过比较上一区块Hash值与该区块头中存储上一区块的Hash值,比较该区块Hash值与下一区块的区块头中存储的上一区块Hash值,当两者均相同时,表明区块链是完整的,从而证明相关的电子证据也是完整的[6]。

3 结论

电子数据是现代高科技的产物,具有易创建、易存储、易传输和高利用率等特点,可靠性高、证明力强。电子数据存证不仅要保障数据的可信性和完整性,还要便于存储、共享、验证和分享。借助于区块链技术,本文提出采用区块链和云存储的混合架构保存电子证据,通过使用时间戳,为电子证据提供原始的唯一时间证据,并确保电子证据真正可追溯,不会被篡改;在存证端对电子证据加密后再保存,不仅可以确保传输过程中电子证据的安全性,有效避免隐私证据泄露的风险,而且这种全过程密文传输和存储方法不需要访问控制网关,适用性高,降低控制网关被入侵的风险,还可在客户端实现高速数据处理;使用Merkel树存储电子证据文件,便于验证电子证据链的完整性,同时提高电子证据保存的安全性,并有效降低保存成本;采用二维码技术,便于客户端检索、查询和验证相关的电子证据,提高方法的可用性。随着区块链技术的发展和应用的深入,目前的电子存证将显现其不足,诸如存证过程自动化程度不高、存证过程中电子数据风险较大、第三方机构法律处理流程繁琐等问题,这些问题需要进一步解决。

参考文献(References):

[1] 赵志岩,石文昌.基于证据链的电子证据可信性分析[J].计算机科学,2016.7:131-135

[2] 刘敖迪,杜学绘,王娜,等. 区块链技术及其在信息安全领域的研究进展[J].软件学报,2018.7:2092-2115

[3] 翟晨曦,徐伟,徐坤,等.区块链在我国证券市场的应用与监管研究[J].金融监管研究,2018.7:33-54

[4] 梁庚,李玉成,左春,等.基于默克尔树的电子证据链完整性验证方法[P].中国:CN 108897760A,2018.11.27.

[5] 翁晓康,张平,王炜,等.基于非平衡哈希树的平台完整性远程验证机制[J].计算机应用,2014.2:433-437

[6] 杨志刚,熊瑜,陈蕾,等.一种消息发布、校验方法及系统[P].中国:CN 109462470A,2019.03.12.

猜你喜欢

电子证据区块链完整性
稠油热采水泥环完整性研究
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
浅析电子数据保全证据公证
网络犯罪中电子证据的收集及保全分析
电子证据与网络保全证据公证研究
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
网络安全取证的应用分析
精子DNA完整性损伤的发生机制及诊断治疗