本文是一篇计算机论文,本文主要研究了三个技术问题并给出相应的解决方案:一是使用非对称加密技术实现数据溯源参与各方的身份真实性验证,二是基于 PROV 数据模型建立了溯源数据模型描述溯源记录,三是设计了一套溯源数据管理的智能合约,通过智能合约将溯源数据存储到区块链上,实现溯源数据的可信存储和可信验证。本文基于以太坊平台,建立了一个私有区块链测试环境对上述方案进行仿真实现,证明方案的正确性和可行性,并分析了物联网环境下的数据溯源,为今后进一步研究奠定了基础。
第一章 绪论
1.1课题研究背景及意义
随着物联网以及移动通信技术的飞速发展,数据呈现爆炸式的增长,人类步入了一个大数据时代。在大数据背景下,数据本身固有的或潜在的价值使其成为重要的资产,这些数据可以分为两类:一类是原始采集直接录入的数据,一类是由这些原始数据派生得到的数据。其中,人们在生活中常见到的是后者,它们通常都经过了一系列的处理,简单的如复制粘贴,复杂的如各种转换和修改等[1]。由于其中间过程不可知,用户在需要某特定数据时无法判断其来源和可靠性。事实也的确如此,派生的数据可能存在纰漏或由于一些人的利益考虑被非法篡改,甚至与原始数据毫无关联,凸显了追踪此类数据的起源以提供信任的需求。
第三章 基于区块链的数据溯源方案的研究 .................................. 22
3.1论文主要解决的技术问题 ................................. 22
3.2面向数据溯源的身份真实性验证 .................................... 23
3.3面向数据溯源的数据模型 .................................. 24
第四章 基于区块链的数据溯源方案的设计与实现 ....................................... 27
4.1方案的功能设计 ...................................... 27
4.1.1 溯源数据的存储功能设计 ........................................ 28
4.1.2 溯源数据的验证功能设计 ............................... 28
第五章 测试与结果分析 ..................................... 37
5.1测试方案及测试环境 ...................................... 37
5.1.1 测试方案 ............................................. 37
5.1.2 测试环境和测试过程 .................................. 39
第五章 测试与结果分析
5.1 测试方案及测试环境
本文设计并实现了一种基于区块链的数据溯源方案,将其部署在以太坊区块链的私有链环境中,首先,确定测试方案,对方案要实现的主要功能模块和整体功能模块进行测试。
5.1.1 测试方案
本文提出基于区块链的数据溯源方案是为了实现安全、可信的溯源,确保获取的溯源数据是可信的。测试方案主要根据此功能需求来制定。本节先介绍了测试方案的设计及采用的测试方法,然后按照测试方案制定出具体的测试用例。
(1)测试方案及测试方法
根据功能模块划分,本文设计的基于区块链的数据溯源方案主要实现溯源数据的存储功能,溯源数据的验证功能。将功能转换为测试点,进行这两个功能的测试。
常见的测试方法主要有两种,即黑盒测试和白盒测试。黑盒测试又称为功能测试,不考虑程序内部结构和特征,从用户角度检验系统各功能是否满足需求,包括用户界面的测试等。论文主要采用黑盒测试方法来进行测试。
(2)测试用例
测试用例是为某个目标编写的一组测试案例,包括测试输入、执行的条件以及预期的结果,从而验证程序是否满足某个特定需求。根据测试方案中提到的关键测试点,细化出如下测试用例。
................................
第一章 绪论
1.1课题研究背景及意义
随着物联网以及移动通信技术的飞速发展,数据呈现爆炸式的增长,人类步入了一个大数据时代。在大数据背景下,数据本身固有的或潜在的价值使其成为重要的资产,这些数据可以分为两类:一类是原始采集直接录入的数据,一类是由这些原始数据派生得到的数据。其中,人们在生活中常见到的是后者,它们通常都经过了一系列的处理,简单的如复制粘贴,复杂的如各种转换和修改等[1]。由于其中间过程不可知,用户在需要某特定数据时无法判断其来源和可靠性。事实也的确如此,派生的数据可能存在纰漏或由于一些人的利益考虑被非法篡改,甚至与原始数据毫无关联,凸显了追踪此类数据的起源以提供信任的需求。
数据完整性验证在创建对上述数据的信任方面具有重要作用,因为在这种情况下,只有未更改的数据是有效的,所以值得信赖。一种常用的核验方法是,如果数据在存储或处理后保持不变,则在保存或处理之前计算数据的密码哈希值。此哈希值是保密还是公开取决于其用途,之后,可以通过重复该过程,然后将结果与先前存储的散列进行比较来证明数据的完整性。如果两个哈希值相同,则可以将数据视为有效,因而可信。
哈希算法的特点在于不同的数据生成的哈希值也是不同的。但是,由我国密码学家王小云发表的“如何破解 MD5 和其它哈希函数”一文表明存在“哈希冲突”问题[2],即不同的输入产生同一个哈希值,使得攻击者能够改变数据,且仍然确保哈希值保持不变。在这种情况下,即使数据已被更改,也会将数据视为有效。随着计算能力的不断提高,当前的哈希算法如 SHA256 或 SHA512 已有研究表明是不安全的[3,4]。提供数据或哈希信任的扩展方法是使用数字签名。签名使得发送方能够证明数据是由自己发出的,因此数据可能被认为是值得信赖的;但也存在安全风险,即若数据内容被恶意者截获,修改原数据内容并进行签名,接收方验证时仍然可以通过。这些方法都不足以提供防篡改的数据。
.......................
1.2国内外研究现状
数据溯源是一个新兴的研究领域。国内对于这方面的研究起步较晚,与之相比较,国外早就展开了数据溯源的研究,很多大学和研究机构将数据溯源作为研究课题。随着电子数据可信度重要性的日趋增强,安全的数据溯源成为国内外近年来研究的一大热点。但是,传统的数据溯源通常是集中式存储,存在数据安全性较差等弊端,且目前关于数据的溯源信息缺乏统一的标准,给数据平台间的信息整合分析增加了困难。区块链技术因其去中心、防篡改、建立信任等特性而广受关注,近年来,将区块链技术应用到数据溯源领域成为研究的热点之一。
1.2.1 国内研究现状
哈希算法的特点在于不同的数据生成的哈希值也是不同的。但是,由我国密码学家王小云发表的“如何破解 MD5 和其它哈希函数”一文表明存在“哈希冲突”问题[2],即不同的输入产生同一个哈希值,使得攻击者能够改变数据,且仍然确保哈希值保持不变。在这种情况下,即使数据已被更改,也会将数据视为有效。随着计算能力的不断提高,当前的哈希算法如 SHA256 或 SHA512 已有研究表明是不安全的[3,4]。提供数据或哈希信任的扩展方法是使用数字签名。签名使得发送方能够证明数据是由自己发出的,因此数据可能被认为是值得信赖的;但也存在安全风险,即若数据内容被恶意者截获,修改原数据内容并进行签名,接收方验证时仍然可以通过。这些方法都不足以提供防篡改的数据。
.......................
1.2国内外研究现状
数据溯源是一个新兴的研究领域。国内对于这方面的研究起步较晚,与之相比较,国外早就展开了数据溯源的研究,很多大学和研究机构将数据溯源作为研究课题。随着电子数据可信度重要性的日趋增强,安全的数据溯源成为国内外近年来研究的一大热点。但是,传统的数据溯源通常是集中式存储,存在数据安全性较差等弊端,且目前关于数据的溯源信息缺乏统一的标准,给数据平台间的信息整合分析增加了困难。区块链技术因其去中心、防篡改、建立信任等特性而广受关注,近年来,将区块链技术应用到数据溯源领域成为研究的热点之一。
1.2.1 国内研究现状
国内对于数据溯源的研究大多集中在溯源的综述和数据溯源模型的研究上。戴超凡[1]系统地论述了数据溯源技术的发展及溯源追踪系统的特性,介绍了开放数据溯源模型 OPM[21]和 Provenir 数据溯源模型[22]。并提出数据溯源领域需要进一步研究的三个问题:(1)统一业界标准。(2)保证溯源信息本身的安全。(3)解决数据流在多系统之间传递的溯源追踪问题。明华等全面系统地做了数据溯源的综述[13],在前人研究的基础上,考虑到数据的异构特点,总结出了异构数据的溯源模型。倪静等详细分析了 PROV 模型及其 Web 应用[23],主要对 Web应用中溯源信息定位和查询机制进行了研究。
对于数据溯源安全方面的研究,李秀美于 2010 年在 Ragib 等人所描述模型[24]的基础上,构建了新的安全的数据溯源模型。Ragib 等人的研究工作致力于文件系统中溯源的安全问题,但未使用时间戳技术,文档存在日期和事件不可确定的问题,李秀美引入了时间戳参数,对数据对象在生命周期内修改行为的记录按时间先后组成溯源链,保护溯源链的安全[14]。刘通提出基于 OPM 的安全溯源研究[25]。
对于数据溯源安全方面的研究,李秀美于 2010 年在 Ragib 等人所描述模型[24]的基础上,构建了新的安全的数据溯源模型。Ragib 等人的研究工作致力于文件系统中溯源的安全问题,但未使用时间戳技术,文档存在日期和事件不可确定的问题,李秀美引入了时间戳参数,对数据对象在生命周期内修改行为的记录按时间先后组成溯源链,保护溯源链的安全[14]。刘通提出基于 OPM 的安全溯源研究[25]。
.............................
第二章 相关技术分析
2.1数据溯源模型
数据溯源技术的研究主要包括溯源描述、溯源存储及溯源应用等多个方面。建立一个有效的数据模型是数据溯源技术的关键,根据模型可以初步确定溯源数据记录了哪些内容以及其获取和存储方式等[13]。早期对于数据溯源研究仅关注某个数据项的来源,并不考虑整个数据源于哪里,这样只能追踪局部数据的根源,达不到整体数据溯源的目的。除此之外,还将注释作为数据的元数据和数据一起存储在数据库中以供查询,这样很容易造成管理混乱。随着研究的深入以及需求的驱动,相继提出了 W7模型,开放溯源模型 OPM 和 PROV 数据模型。W7模型虽然详细周全,但是需要一定的存储开销,且并非每个数据都包含这 7 个信息。因此主要介绍 OPM 和 PROV 两种数据模型并进行比较分析。
第二章 相关技术分析
2.1数据溯源模型
数据溯源技术的研究主要包括溯源描述、溯源存储及溯源应用等多个方面。建立一个有效的数据模型是数据溯源技术的关键,根据模型可以初步确定溯源数据记录了哪些内容以及其获取和存储方式等[13]。早期对于数据溯源研究仅关注某个数据项的来源,并不考虑整个数据源于哪里,这样只能追踪局部数据的根源,达不到整体数据溯源的目的。除此之外,还将注释作为数据的元数据和数据一起存储在数据库中以供查询,这样很容易造成管理混乱。随着研究的深入以及需求的驱动,相继提出了 W7模型,开放溯源模型 OPM 和 PROV 数据模型。W7模型虽然详细周全,但是需要一定的存储开销,且并非每个数据都包含这 7 个信息。因此主要介绍 OPM 和 PROV 两种数据模型并进行比较分析。
2.1.1 开放溯源模型
OPM 开放溯源模型 OPM 于首届 IPAW 会议讨论中被提出,是为了解决来源互操作性问题。该模型建立了一套图形化的符号来对溯源对象不同状态之间的因果关系进行描述,基本上形成了业界信息交换的标准。
在 OPM 中,每条溯源记录是一个有向无环图,其节点包括了工件(Artifact)、过程(Process)和代理(Agent),如图 2.1 所示。其中,工件指事物的一种不可变的状态,可以是物理的一个对象,也可以是计算机系统中的一个数字化表达,图中用 A 表示;过程指施加于工件的一个或者一系列动作,图中用 P 表示;代理促进、控制和影响过程的执行,图中用 Ag 表示。这三者之间存在一些依赖关系包括 used,wasGeneratedBy,wasControlledBy 等,图中用边表示。

........................
2.2 区块链原理及分类
任何事物的发展,从来不是一蹴而就的。本节将详细介绍区块链技术的基本原理、分类以及涉及的关键技术。

..............................
OPM 开放溯源模型 OPM 于首届 IPAW 会议讨论中被提出,是为了解决来源互操作性问题。该模型建立了一套图形化的符号来对溯源对象不同状态之间的因果关系进行描述,基本上形成了业界信息交换的标准。
在 OPM 中,每条溯源记录是一个有向无环图,其节点包括了工件(Artifact)、过程(Process)和代理(Agent),如图 2.1 所示。其中,工件指事物的一种不可变的状态,可以是物理的一个对象,也可以是计算机系统中的一个数字化表达,图中用 A 表示;过程指施加于工件的一个或者一系列动作,图中用 P 表示;代理促进、控制和影响过程的执行,图中用 Ag 表示。这三者之间存在一些依赖关系包括 used,wasGeneratedBy,wasControlledBy 等,图中用边表示。

........................
2.2 区块链原理及分类
任何事物的发展,从来不是一蹴而就的。本节将详细介绍区块链技术的基本原理、分类以及涉及的关键技术。
2.2.1 区块链基本原理
从狭义(数据)的角度来看,区块链是一种按时间顺序,将生成的数据区块组合成区块-链式的数据结构, 基于密码学保证已有数据的不可篡改和不可伪造。从广义(技术)的角度来看,区块链是一种使用区块-链式数据结构存储数据、基于分布式共识机制生成数据、基于密码学技术确保数据传输和访问安全、利用智能合约来编码和操作数据的一种新的分布式基础架构与计算范式[40]。
在典型的区块链系统中,数据以区块的方式产生和存储,每一个区块记录了一段时间内发生的所有交易信息,其结构分为两部分:区块头部和区块体。其中,区块头部主要包含前一个区块哈希,Merkel 根,时间戳和一次性随机数。区块头部用于链接之前区块并且通过时间戳机制保证已有数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有交易信息(交易记录导致区块链状态发生改变的操作行为),如图 2.3 所示。各节点的地位平等,所有节点共同进行区块链系统的数据验证、存储及维护。通常,新区块的产生需要得到全网多数(此数量取决于具体的共识机制)节点的认可,并向全网广播以实现全网同步,数据区块一旦生成则不能更改或删除。
从狭义(数据)的角度来看,区块链是一种按时间顺序,将生成的数据区块组合成区块-链式的数据结构, 基于密码学保证已有数据的不可篡改和不可伪造。从广义(技术)的角度来看,区块链是一种使用区块-链式数据结构存储数据、基于分布式共识机制生成数据、基于密码学技术确保数据传输和访问安全、利用智能合约来编码和操作数据的一种新的分布式基础架构与计算范式[40]。
在典型的区块链系统中,数据以区块的方式产生和存储,每一个区块记录了一段时间内发生的所有交易信息,其结构分为两部分:区块头部和区块体。其中,区块头部主要包含前一个区块哈希,Merkel 根,时间戳和一次性随机数。区块头部用于链接之前区块并且通过时间戳机制保证已有数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有交易信息(交易记录导致区块链状态发生改变的操作行为),如图 2.3 所示。各节点的地位平等,所有节点共同进行区块链系统的数据验证、存储及维护。通常,新区块的产生需要得到全网多数(此数量取决于具体的共识机制)节点的认可,并向全网广播以实现全网同步,数据区块一旦生成则不能更改或删除。

..............................
第三章 基于区块链的数据溯源方案的研究 .................................. 22
3.1论文主要解决的技术问题 ................................. 22
3.2面向数据溯源的身份真实性验证 .................................... 23
3.3面向数据溯源的数据模型 .................................. 24
第四章 基于区块链的数据溯源方案的设计与实现 ....................................... 27
4.1方案的功能设计 ...................................... 27
4.1.1 溯源数据的存储功能设计 ........................................ 28
4.1.2 溯源数据的验证功能设计 ............................... 28
第五章 测试与结果分析 ..................................... 37
5.1测试方案及测试环境 ...................................... 37
5.1.1 测试方案 ............................................. 37
5.1.2 测试环境和测试过程 .................................. 39
第五章 测试与结果分析
5.1 测试方案及测试环境
本文设计并实现了一种基于区块链的数据溯源方案,将其部署在以太坊区块链的私有链环境中,首先,确定测试方案,对方案要实现的主要功能模块和整体功能模块进行测试。
5.1.1 测试方案
本文提出基于区块链的数据溯源方案是为了实现安全、可信的溯源,确保获取的溯源数据是可信的。测试方案主要根据此功能需求来制定。本节先介绍了测试方案的设计及采用的测试方法,然后按照测试方案制定出具体的测试用例。
(1)测试方案及测试方法
根据功能模块划分,本文设计的基于区块链的数据溯源方案主要实现溯源数据的存储功能,溯源数据的验证功能。将功能转换为测试点,进行这两个功能的测试。
常见的测试方法主要有两种,即黑盒测试和白盒测试。黑盒测试又称为功能测试,不考虑程序内部结构和特征,从用户角度检验系统各功能是否满足需求,包括用户界面的测试等。论文主要采用黑盒测试方法来进行测试。
(2)测试用例
测试用例是为某个目标编写的一组测试案例,包括测试输入、执行的条件以及预期的结果,从而验证程序是否满足某个特定需求。根据测试方案中提到的关键测试点,细化出如下测试用例。
................................
第六章 总结与展望
6.1工作总结
在大数据背景下,数据由于固有的和潜在的价值成为重要的资产。人们希望在数据使用过程中,可以根据溯源信息来进行可信的数据溯源。传统的溯源已无法满足如今的信任需求,区块链技术具有去中心、防篡改、可追溯等特点,为安全的数据溯源提供了新的解决途径。 对大量的基于区块链的数据溯源方面的研究进行调研发现,现有的方案大多是针对特定应用场景采用比特币区块链实现溯源,存在资源浪费等问题;部分方案考虑到区块链存储大量数据时存在的可扩展性问题专门构建了 BigchainDB,很少有对溯源数据模型的研究,本文提出一种基于 PROV 数据模型和区块链的数据溯源方案。
本文主要研究了三个技术问题并给出相应的解决方案:一是使用非对称加密技术实现数据溯源参与各方的身份真实性验证,二是基于 PROV 数据模型建立了溯源数据模型描述溯源记录,三是设计了一套溯源数据管理的智能合约,通过智能合约将溯源数据存储到区块链上,实现溯源数据的可信存储和可信验证。本文基于以太坊平台,建立了一个私有区块链测试环境对上述方案进行仿真实现,证明方案的正确性和可行性,并分析了物联网环境下的数据溯源,为今后进一步研究奠定了基础。
参考文献(略)
6.1工作总结
在大数据背景下,数据由于固有的和潜在的价值成为重要的资产。人们希望在数据使用过程中,可以根据溯源信息来进行可信的数据溯源。传统的溯源已无法满足如今的信任需求,区块链技术具有去中心、防篡改、可追溯等特点,为安全的数据溯源提供了新的解决途径。 对大量的基于区块链的数据溯源方面的研究进行调研发现,现有的方案大多是针对特定应用场景采用比特币区块链实现溯源,存在资源浪费等问题;部分方案考虑到区块链存储大量数据时存在的可扩展性问题专门构建了 BigchainDB,很少有对溯源数据模型的研究,本文提出一种基于 PROV 数据模型和区块链的数据溯源方案。
本文主要研究了三个技术问题并给出相应的解决方案:一是使用非对称加密技术实现数据溯源参与各方的身份真实性验证,二是基于 PROV 数据模型建立了溯源数据模型描述溯源记录,三是设计了一套溯源数据管理的智能合约,通过智能合约将溯源数据存储到区块链上,实现溯源数据的可信存储和可信验证。本文基于以太坊平台,建立了一个私有区块链测试环境对上述方案进行仿真实现,证明方案的正确性和可行性,并分析了物联网环境下的数据溯源,为今后进一步研究奠定了基础。
参考文献(略)