• 收藏
  • 加入书签
添加成功
收藏成功
分享

基于区块链和XML技术的电子文件元数据存储方案及简单实现

张寅
  
卷宗
2019年4期

在现代企业档案工作中,电子文件的管理逐渐成为重中之重。其核心的难题始终围绕着如何保证电子文件在长期保存过程中的真实性。2008年比特币横空出世,其核心“区块链”技术向世界展示了一种去中心且数据不可篡改的记录方法,以更自由的方式为解决上述难题提供一种可能。本文尝试结合区块链与XML技术提出一种电子文件元数据存储解决方案。

1 电子文件管理

企业电子文件是指在企业生产制造、运营管理、客户服务等各项业务活动中通过计算机等电子设备形成、办理、传输和存储的作为证据和具有查考作用的信息,其管理目标是要保证电子文件的真实(准确)、完整、可用、安全。在这四点中真实性检测一直是电子文件在单轨制归档中比较棘手的难题之一,具体表现在:

1)技术真实性,表现为电子文件在整个生命周期中未被误改或篡改,在鉴定检测的实现中多数基于对电子文件执行散列算法(例如MD5)后进行数字签名,由可信算法保证其技术上的“真实”。

2)来源真实性,表现为电子文件客观反映和真实记录业务活动,依靠良好的元数据方案设计,通过记录文件的来源、结构、背景来鉴别来源真实性。

在实际工作中主要通过以上两个方面对电子文件真实性进行检测。作为长时期内电子文件真实性凭证,元数据同样需要使用数字签名系技术来保证其内的信息不被篡改。而数字签名的技术特点是基于中心化的信用机构即CA中心。虽然这种信任机制具备很高效率,但过度的中心化呈现出的如CA机构的职责是否清晰、资质是否完备、管理是否规范、存续时间长短、证书有效期限等一系列问题,给电子文件真实性检测带来许多不确定风险。

2 区块链技术简介

2.1 区块链的概念与特性

从信息技术角度来讲普遍认为区块链技术是一个分布式账本,一种通过去中心化、去信任中介的方式,由“集体”维护一个可靠数据库技术方案。简单来说,笔者认为区块链本质上是一种解决信任问题、降低信任成本的信息技术方案,它通过密码学、集体协作等手段来实现了人们对自由公证渴望。因此区块链为人们带来的并不是某项崭新的技术,而是一种全新的信任与协作模式。

区块链中的“区块”指的是信息块,是数据的集合体,结合实际工作可简单理解为我们企业档案管理中统计台账中的“页”,一“页”可以记录许多档案数据。而“链”就是按照时间顺序将区块串联在一起,通过可信的算法使参与者对全部记录的时间顺序和当前状态建立共识。区块链技术包含许多特性:

1)开放性与共识性:任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。节点之间通过共识机制共同维护整个区块链,任何一个节点失效不影响整个区块链。

2)去中心、去信任中介:基于“端对端”网络建立,不存在中心信任节点,各节点产生的数据通过数字签名技术进行验证,基于共识机制无需相互信任,节点之间不能也无法欺骗其他节点。

3)公开透明:共识机制公开透明,对所有节点均可见。

4)可追溯,不可篡改:单个节点甚至多个节点对数据的修改无法影响其他节点,如果区块链中的各个节点始终保持运行,理论上可以保证数据被“永久”保存。区块链中的每一个区块都通过密码学方法与相邻两个区块串联,区块中的数据彼此相连,使得数据可追溯、可审计。

2.2 区块链的“可信”算法简介

1)分布式计算:利用多个互联节点处理能力来解决大型计算问题。区块链中的“分布式”既体现了分布式存储,也体现了分布式记账(即所有节点参与新区块的校验),通过“分布式”来达到去中心化的效果。

2)非对称加密:在加、解密的过程使用私钥、公钥的加密方法,其特点是经私钥加密的数据仅仅能通过与之对应的公钥进行解密(即私钥加密却无法解密)。应用非对称加密技术的数字签名,能够确保信息确实是由发送方签名、发送,并且验证信息的完整性。

3)时间戳:数据存在的时间证明,在计算机中通常是一个字符序列,唯一标识某一刻的时间。

4)Hash算法:将任何一段数据经Hash算法得到一个值,其特点是相同的数据将得到相同结果,如果数据经过哪怕一个字节的变化,得到的结果将千差万别,且结果无法实现预知。因此它广泛应用于数据校验。区块链中应用的Hash算法为SHA256。

5)默克尔树:一种用于快速校验大规模数据完整性的方法。在区块链中它被用来归纳一个区块中所有信息的根(root)Hash值,区块中任何一段信息被更改都会导致默克尔树的根值改变。默克尔树根值可以唯一标识一个区块。

6)挖矿:区块链的共识机制之一,所有节点通过运算解特定题目的方式来创建区块的过程。解题的过程节点会消耗时间,即工作量证明。最先计算出结果的节点会将广播计算结果由其他节点进行验证,验证通过后该节点即拥有生成新区块的权利,比特币中节点会对得到相应奖励。可以说挖矿就是区块链能够让各节点形成共识,达到去中心化的信任机制的核心。

3 XML技术

XML即可扩展标记语言,通过标记数据与定义数据类型,使计算机之间可以处理各种信息。它是Internet环境中跨平台的、依赖于内容的技术,也是处理分布式结构信息的有效工具。经过多年的应用与发展,它良好的可扩展性、跨平台性,使其在网络服务、数据交换、电子商务、内容管理等领域广泛使用。在档案管理领域国内外更多地使用XML技术来实现对元数据的描述、结构化存储及交换,例如国内的《基于XML的电子文件封装规范》,国外的EAD、MODS等。

在XML常用技术中笔者认为命名空间(namespace)、语法定义(xml schema)十分重要。XML允许用户自定义描述对象的各种词汇,这样在数据互操作时就不必考虑诸如平台、操作系统、语言等方面的差异,但这种互操作性同样给数据带来不可避免语义上的歧义。此外XML还承担着网络数据交换的重任,语义歧义可能直接降低数据处理的效率,这就要求XML既要严格遵守格式规范,同时还应符合语义规范。为此XML中引入了命名空间与XML定义文件,两者相结合,用户便可以在互联环境中保证XML文档中所有的标记名称的唯一且能够被有效验证。基于这种特性使得XML技术对于解决异构环境中数据交换,降低不同系统间集成接口开发难度、建立语义化的网络环境具有十分重要的意义。

4 基于区块链的电子文件元数据简单实现

4.1 实现思路

结合上述两种技术,笔者提出一种保证电子文件元数据真实性与完整性的数据存储方案:以XML为区块链基本存储格式,利用其良好的格式特点作为电子文件元数据在较长时间内存储基本形式;使用XML Schema进行语法、语义层面的规范,并逐一通过XML Signature进行签名,签名后的元数据创建新的区块,并将结果广播到各个节点实现分布存储。每个区块中包含上一个区块头哈希、本区块的默克尔树根植及时间戳等信息,因此所有区块就形成了以时间为顺序的链条,最终通过分布式与哈希算法验证数据真实与完整。

4.2 实践与测试

笔者选择微软.NET Framework 4.5作为开发平台,测试网络环境基于为内部局域网。程序最终实现的功能包括非对称加密密匙创建、单机模拟挖矿、接收新创建区块。

在元数据规范方面笔者以METS(元数据编码及传输标准)为基础,通过制定电子文件元数据标准固化标签语义并通过局域网共享(如图1)。其中以开头的标签表示METS标准提供的语义标签,以开头的标签表示企业对电子文件管理自定义的元数据语义标签。两者分别由xmlns及schemaLocation以url地址指向各自的命名空间及语义规范文档,整个XML文档实现了在互联环境中元数据存储及验证。

在区块创建方面笔者参考了比特币算法及NBitcoin实现方案,即模拟挖矿题目设定为前一个区块的头Hash值、本区块默克尔树根植、时间戳、目标值及随机数经过两次SHA256运算后小于目标值。程序运行得到区块部分结构(如图2)。其中 标签代表一个特定区块,标签代表区块中包含的元数据个数,标签代表区块大小,

标签代表区块头文件,内容依次包括前一个区块的头哈希值,默克尔根值、时间戳、目标值及随机值。标签内包含着区块内所记录的电子文件元数据,每一个元数据包含在一个标签表示,其中电子文件元数据由标签表示,签名信息由标签表示。

挖矿测试中笔者在单机CPU:corei5(4核)2.70GHZ,内存8G环境下,输入相同测试数据、不同目标值测试结果(如表1)。从结果来看在不考虑CPU计算波动的情况下,目标值越小,计算难度越大,区块生成时间间隔也越长。

5 应用展望

从上述实验看来将区块链技术应用于企业电子文件元数据存储是基本可行的,区块链的公开、透明、不可篡改等特性决定了将区块链技术运用于电子文件元数据存储可以有效解决其在交换及长期保存过程中真实性难题,且分布式的存储也能保证元数据的冗余,从而保障元数据信息的安全。此外基于XML语义化的元数据标准不仅有利于解决企业内部异构环境中电子文件元数据的交换,而且使得区块链基本设施可以复用,从而降低成本。随着区块链技术与P2P、云存储等技术深度结合,将进一步推动电子文件管理及“单套制”归档,给予企业档案管理目标、模式及方法等非常巨大的转变。

参考文献

[1]张偲.区块链技术原理、应用及建议[J]. 软件,2016,37(11):51−54

[2]佚名.区块链原理详解[EB/OL].[2016-8-10]. http://wenku.baidu.com/link?url=yQnZYAuYGUPorrYxoTSVtVJrBTfEcM6NDl17UVfqRjbtNDtNnlw9R6obC8yXd6OFoqSqWV8tt89ffALwNFm1rwfb3nRFJTbuNQcHFXR4cPG

[3]王晶晶、张坤等.XML实用教程[M].北京:电子工业出版社,2012.8:5-8

[4]Nicolas,Dorier.NBitcoin3.0.0.49[DB/OL]. http://www.nuget.org/packages/NBitcoin/3.0.0.49, 2016-08-18

*本文暂不支持打印功能

monitor