APP下载

基于区块链的农业科学数据溯源应用初探

2020-08-05孙善鹏樊景超郭志斌王丽娟李成赞周国民周园春

农业大数据学报 2020年2期
关键词:合约数据中心区块

王 姝 孙善鹏 樊景超 刘 佳 郭志斌 王丽娟 李成赞 周国民 周园春*

(1.中国科学院计算机网络信息中心,北京 100190;2.国家农业科学数据中心,北京 100081;3.中国农业科学院科技管理局,北京 100081;4.中国农业科学院农业信息研究所,北京 100081)

1 引言

近几年农业科学技术呈现快速发展的趋势,同时农业科学数据的快速增长为科研人员获取信息和研究成果带来更多机遇,同时农业科学数据的开放共享也带来了巨大的挑战。

在大数据背景下,农业科学数据成为重要的数字资产。农业科学数据溯源涉及科学数据生成、处理、发布等一系列环节[1]。传统的数据溯源系统一般采用集中方式存储数据,存在单点故障、易受攻击等安全问题。农业科学数据溯源目的是为了实现农业科学数据生成、处理、发布等环节的追溯,而区块链具备数据的防篡改、可溯源等特性,两者的结合对于农业科学数据溯源具有重要作用。同时,如果科学数据没有标识,数据溯源信息无法互联互通及共享,导致溯源信息难以实现全环节覆盖,给数据全生命周期的跟踪与溯源造成阻碍。科学数据标识技术将在Internet环境中提供对科学数据的便捷访问,从而可以更有效地对各种科学数据进行唯一标识、引用、关联、数据溯源、版本管理和重用等。

本文针对目前农业科学数据工作中对数据标识和数据溯源的问题,提出了一种基于区块链技术的解决方案,解决农业科学数据溯源中存在的问题。通过区块链和标识技术记录数据集的变化和演变过程,实现验证数据集真实性、完整性并保证科学数据的可追溯性。

2 科学数据标识体系

科学数据是人们通过观测、实验、测量、调查和计算等方式进行数据采集,形成对自然、社会等客观现象描述的实体。目前农业科学数据快速增长,对数据标识的需求越来越大。利用标识技术实现不同编码体系之间的数据的互联互通,对农业科学数据的开放共享具有重要的推动作用。通过对农业科学数据分配唯一标识,使用标识解析服务实现农业科学数据的定位、查询、寻址访问等,从而实现科学数据层面的开放共享[2]。

目前,国际上主要科学数据标识体系包括Han‐dle、OID(Object Identifier)[3]、CSTR(China Science and Technology Resource)[4]等,其中Handle 标识体系中主要面向科学数据应用的DOI(Digital Object Iden‐tifier)[5‐6]和PID(Persistent Identifier)[7]。通过表1 分析对比了目前主要的科学标识体系的编码格式、应用领域、优缺点等方面内容。

为了在推动农业科学数据广泛的开放共享,同时在保证安全性的前提下自主可控地开放科学数据,将区块链技术应用于科学数据溯源应用将极大促进数据的开放共享,同时支持国际多种标识体系和国家标识标准的兼容互通。

3 农业科学数据溯源联盟链概述

3.1 简介

2008 年比特币白皮书中提出了“区块链”的概念,区块链技术逐渐引起全球范围广泛的关注,区块链技术是由多方参与共同维护全网一致的分布式账本,通过使用密码机制确保传输数据和访问数据安全性的技术体系。随着区块链技术的发展,“区块链+”行业应用模式在各行各业积极探索[8‐10]。

根据区块链的开放程度,可以分为公有链和联盟链,公有链没有准入要求,是一种完全去中心化的区块链,而联盟链只对联盟成员开放,参与用户需要事先经过审核,联盟成员共同维护公共账簿,联盟链能够更好地解决数据权限、开放共享、数据安全、隐私保护等方面的问题[11]。

Fabric 是一个模块化且可扩展的开源系统,用于部署和操作许可的区块链,也是Linux 基金会(www.hyperledger.org)托管的Hyperledger 项目之一。Fab‐ric 是用于运行分布式应用程序的第一个真正可扩展的区块链系统。Fabric 和以太坊有些相似,企业级区块链可以基于Fabric构建支撑平台。

目前,许多国内的互联网公司还与Hyperledger Fabric 合作推出了BaaS 平台,该平台也用于贸易金融、数字出版、数据交易、产品追溯等应用领域。为了虚拟和数字形式实现价值交换,通过采用分布式账本技术,实现安全可控的溯源和交易[12‐13]。

3.2 技术架构

本文试验验证采用Fabric 联盟链作为农业科学数据溯源联盟链的技术基础,将区块链、数据标识和科学数据溯源集成到平台中,技术架构如图1 所示,同时提供异地节点运行环境和科技云运行环境。节点管理包括创建物理链、异地节点加入等,智能合约管理包括智能合约部署、更新、日志管理、合约浏览等。开放区块链API服务可以提供身份认证、合约管理、节点管里、数据存储等API为上层科研应用提供服务[15]。

3.3 物理链

区块链网络中的成员共同创建区块链网络联盟,这就是物理链,物理链中的成员需各自维护CA 节点和peer 节点,并通过共用order 节点进行共识。在Fabric 网络中,CA 节点为物理链中的成员提供安全可靠的身份信息。Peer节点是记账节点,负责维护状态数据和账本的副本。除了记账之外peer 节点也可以是背书节点、记账节点或主节点等。

3.4 逻辑链

为了保护区块链成员之间数据交易范围和机密性。通过构建逻辑链子链,包括区块链网络中两个或多个特定成员,逻辑链成员共同维护一个分布式账本。逻辑链上的成员可以通过安装链代码来执行简单的交易指令。如图2 所示展示了逻辑链的典型事务流程。

表1 不同标识体系的特点Table 1 Characteristics of different identification systems

4 基于区块链的农业科学数据溯源应用

本文利用区块链技术为农业科学数据提供溯源方案,包括标识平台、科学数据中心等角色。标识平台为科学数据中心提供标识注册解析、标识管理、关联引用、元数据检索、统计等服务。科学数据中心是农业科学数据溯源联盟链的使用者,利用区块链技术的去中心化,不可篡改及可追溯的特征,基于联盟链记录和更新农业科学数据从产生、处理,再到成果等各个环节的数据信息,保障农业科学数据的高效利用。

4.1 农业科学数据溯源联盟链业务流程

农业科学数据溯源联盟链业务流程包括创建物理链、创建逻辑链、合约安装、上层应用调用4 个步骤,具体如下:

(1)创建链物理

首先确定物理链的成员信息,确定主机节点,同时确定1 个或多个peer 节点。其次需要确定共识类型,同时确定加入本物理链的成员单位,如图3 所示。成功创建物理链后,分别启动标识平台和数据中心各自的CA 及peer 节点,等待创建逻辑链和安装智能合约。

(2)创建逻辑链

具有相同需求的节点可以共同创建一条逻辑链,针对标识及数据溯源信息的访问需求,标识平台和数据中心之间可以共建一条逻辑链。成功创建逻辑链之后,成员和根据应用需求创建智能合约,并进行区块的写入和访问操作。

(3)编写安装合约及实例化

创建逻辑链之后,标识平台或数据中心可以通过授权登录并进行智能合约的编写操作,完成智能合约编写后可以上传到区块链平台。区块链平台的其他管理员根据对数据操作的需求,可以选择合适的智能合约,并安装运行在所属节点上,作为背书候选节点,最后安装了这个智能合约的成员,可以进行实例化合约操作,如图4所示。

(4)调用合约

与区块链账本直接交互的一系列操作过程是通过调用智能合约实现。数据中心和标识平台需要开发相应的应用程序及SDK 来远程调用智能合约进行账本的读写操作。

4.2 农业科学数据溯源上链

农业科学数据溯源是通过数据溯源记录信息来实现追源的目的,但是记录信息本身也是数据,同样存在安全问题,为了防止有人恶意篡改数据溯源记录的相关信息,利用区块链技术有效地防止恶意篡改联盟链中的溯源记录,对农业科学数据对象在生命周期内修改行为的记录按时间先后组成溯源链,通过溯源链记录数据上链、更新等数据全生命周期信息,数据溯源信息账本写入流程如图5所示。

农业科学数据溯源上链步骤:

1.农业科学数据上链数据准备,上链数据包括:数据集标识、版本信息、元数据、数据发布者信息、关联标识、关键字、数据集签名等。

2.数据集标识注册,数据集标识是科学数据的永久唯一标识,可实现科学数据的定位、追溯、引用、统计与评价。数据中心向标识平台注册数据集标识,通过标识解析可以获取数据集的URL和标识信息等。

3.数据集签名,对数据集中每个文件内容进行签名,签名算法包括:MD5、SHA‐256、SM3 等。更新数据集或数据集合时,将跟踪所有上链数据的更改,包括该数据集合中每个文件的签名,从而使用户可以查看该数据集随时间的详细演变历史。

4.调用智能合约写入数据,数据中心通过接口的方式调用智能合约,在验证身份及权限信息之后,才能将准备的上链数据写入账本。

本文是通过使用科学数据存储库(简称Sci‐enceDB)中数据集更新过程记录来进行试验验证,ScienceDB 是一个公共的通用型科学数据存储库,主要面向科研人员、科研项目/团队、科研期刊、科研机构及高校等利益相关者,提供科学数据汇交、长期保存、出版、共享和获取等服务。科学数据溯源上链是基于ScienceDB 中数据集标识信息、元数据、签名信息的上链,当数据集更新或版本变化时,也将这些更新记录上链,最终完成整个科学数据溯源记录上链。

4.3 农业科学数据溯源验证

农业科学数据溯源链可以使研究人员有效地验证数据集的真实性,查看历史数据并验证所有权信息,跟踪来源并安全存储有关农业科学数据的元数据和验证信息,并以可验证的方式跟踪该数据的更改,以安全且可独立验证的方式促进数据重用,这对于农业科学数据研究发展至关重要。

数据溯源验证是检验数据集是否正确,数据中心将农业科学数据集溯源信息存储到区块链上后,其他节点可从区块链上获取溯源对象的溯源信息,进行溯源数据的真实性验证,农业科学数据溯源验证示例如图6所示。

农业科学数据溯源验证步骤:

1.在农业科学数据溯源链上通过标识可以查询到所对应数据集,数据集的验证信息与元数据一起存储在区块链中,其他数据存储在链外。

2.通过数据集标识可以获得原始数据的URL,可以与链上存储的信息进行比对验证。通过比对数据集签名和链上存储的数据集签名验证是否正确。

农业科学数据溯源链并不要求其验证信息存储在区块链中的数据类型和内容。在溯源数据模型中,需要数据集的标识以便快速通过标识解析的具体位置,数据集验证信息和有关发布者的信息作为元数据的强制性部分,未来可以根据反馈和使用情况分析,逐步扩展以包括其他可选的元数据元素。农业科学数据溯源链将为链上存储的信息,如数据标识、发布者信息、数据签名等信息关联在一起。

4.4 农业科学数据溯源查询

通过农业科学数据溯源链可以查询到数据集所有版本记录,可以跟踪到数据集的更新过程。通过数据标识或元数据都可以查询到对应数据集。如图7所示,使用科学数据存储库中的数据集更新记录进行试验验证,数据集更新或版本变化时,计算的数据集签名也相应发生变化,这些记录都存储的溯源链上,通过查询对应数据集,可以获取数据集版本变化的记录过程。因此,农业科学数据溯源链能保证溯源记录不可篡改,同时也能确保溯源记录顺序不会被改变。

5 总结与展望

依据本文所述的方案,通过农业科学数据溯源链,科研人员可以注册自己的数据,溯源链为每个数据集文件计算其签名,然后将数据集的元数据和签名一起存入区块链中,原始数据脱链存储,通过数据集标识可以定位寻址数据集,通过在区块链上的数据集签名进行验证,在数据使用过程中,可以根据溯源链来进行可信的数据溯源。研究人员能够有效地共享和验证科学数据的真实性。在下一步工作中,我们将尝试探索农业科学数据溯源链在更多数据类型的可信共享应用,并将继续探索区块链技术,利用其具有不可篡改、可追溯等特点,为农业科学数据溯源提供了更为完善的解决方案[15]。

猜你喜欢

合约数据中心区块
关于间接蒸发冷机组在数据中心中应用的节能分析
浅析数据中心空调节能发展趋势
《红楼梦》的数字化述评——兼及区块链的启示
区块链助跑财资管理
一场区块链引发的全民狂欢
区块链助力企业创新
2017第十届中国数据中心大会榜单