基于区块链技术的生态观测数据存储与共享模式
2020-08-04彭长辉杨铭霞刘智豪周晓路
侯 玥 彭长辉,2* 杨铭霞 刘智豪 周晓路
(1.西北农林科技大学林学院生态预测与全球变化研究中心,杨凌 712100;2.魁北克大学蒙特利尔分校环境科学研究所,蒙特利尔加拿大C3H3P8)
1 引言
生态环境问题随着人类活动的增加与经济社会的发展而日益严重,相应地,生态学领域调研与研究也亟需以更加广阔的研究视角与更高效的研究速度持续推进,而这种研究趋势对生态数据的数量与规模需求达到了空前高度[1]。信息化已经成为生态学领域的一大发展特征。更加现代化的数据采集和传递方式的数据密集型研究在全球气候变化响应、全球和区域生态网络观测、环境污染防控、生态环境评估以及生态系统管理等方面已经得以体现[2]。与此同时,随着传感器、射频识别(Radio Frequency Identifica‐tion)、卫星遥感、雷达和视频感知等技术的发展,数据来源多维化的趋势也日益增强,然而以往研究中虽然搜集整理了大量生态数据,但其类型多样、结构复杂,在统计口径与标准上存在高度异质性,难以被有效管理。如何利用和管理海量生态数据,尤其是对数据安全的管理成为当前生态学研究领域面临的突出难题。有关资料表明,世界气象中心截止当前累积数据以达到数百TB 的规模[3],而中国现有生态与环境相关数据也高达PB 规模[4],其中涵盖交通、环保、气象、林业等诸多领域,并且还在持续增长。海量且碎片化的生态环境数据不仅给当前全球生态环境问题的监测、分析与处理带来了难以估量的工作难度[5],也隐含着巨大的安全风险,因此相关数据处理技术和安全的应用迫在眉睫。
得益于信息技术领域的快速发展,近年来兴起的大数据技术正在成为我们解决生态环境领域数据的储存与处理问题的新工具。对这些技术的应用也是自上世纪后半叶国外学者在国际地球物理年和国际生物学计划(IBP)[6]以及美国长期生态研究计划(LTER)等研究的延续和发展[7‐8]。国内相关的研究虽然起步相对较晚,但也先后开展了森林生态系统半定位观测研究(1960 年代)并最终发展形成中国森林生态系统定位观测研究网络(CFERN)[9]。近年来国内建立的大型野外科研平台,中国生态系统研究网络(CERN)[2],实质上也是通过采集大量生态数据来支撑生态系统的研究。在各类生态与环境数据中,野外观测数据具有特殊的重要性。它是生态系统科学研究的基础,对研究结果有着决定性的影响。因此生态系统观测数据的安全性和可靠性对于生态学领域中的研究质量而言,一直是至关重要的[10]。但在当前互联网技术快速发展的格局下,生态大数据在数据安全存储和共享方面却面临着诸多阻碍。一方面海量的生态环境数据需要庞大的存储空间,并且要为不断增长的数据留下余地。另一方面,在数据垃圾增加,数据修改不规范,网络劫持频发的现实背景下,安全高效地共享可信赖的生态与环境数据成为生态学领域中所面临的一个关键问题。
作为一种与大数据融合发展的新技术,近年来区块链技术由于其在安全性和可信性方面的独特优势被众多学者和科技企业所重视。大数据与区块链技术共同具有分布式运作的结构特征,而区块链系统的共识机制又可以为解决大数据处理中的安全问题提供一条新的技术途径。比如构建分布式数据管理、形成具有加密算法的共享机制、实现点对点识别功能等新型的数据存储模式。从这个角度考量可认为区块链技术有可能重构大数据系统中的安全机制,这也为生态大数据应用的安全需求提供了有力的技术依据。不过从我国生态观测数据的采集和管理实践来看,目前还没有形成系统化的生态大数据安全体系,因而鲜有相关实践应用案例。虽然区块链技术在我国一些政府及金融部门得到高度重视,但在生态学科学研究领域,对于构建生态大数据安全体系还处于探索阶段。着眼于未来对安全性和可信性方面的需求趋势,探索生态学+区块链应用的相关问题是为生态数据存储与共享寻找新的方法与途径,这对于生态学海量数据处理具有极其重要的理论与现实意义。因而,本文的主要目的是介绍“生态系统观测数据安全保障系统”的主要方法和基本技术,将大数据技术以及相关的区块链技术引入生态及环境科学应用领域,提高原始数据存储管理的安全性,并在此基础上对生态环境数据进行有效集成和管理。这一技术可以为生态学研究和全球环境保护的数据基础构建提供新的思路。
2 区块链技术
2.1 概念
区块链作为一种去中心化分布式数据库,具有点对点的传输方式、多主体共享机制和加密算法等多个典型特征。其工作原理为,用户首先利用块链式数据结构来进行身份验证与数据存储,其次利用分布式节点共识算法来生成数据或更新数据,这一过程中会利用密码学方式来保证数据传输与访问的安全性,并且程序利用自动化脚本代码组合形成的智能合约来编码与操作数据,从而保证数据的安全性与一致性[11]。
2.2 区块链的基础模型与关键技术
区块链技术的基础架构模型普遍是六层,由数据层、网络层、共识层、激励层、合约层和应用层组成[12]。其中,数据层封装了底层数据区块以及相关的数据加密、时间戳和Merkel 树等技术;网络层则包括分布式组制、数据传播机制和数据验证机制等;共识层主要为封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。由于激励层大多出现于公有链架构体系中,应用层开发平台多样化且与区块链核心技术无紧密关联,故下文仅对数据层、网络层、共识层、合约层共四层结构展开论述。
2.2.1 数据层
数据层是系统的最底层,可以存储区块的数据等。区块链通常并不直接保存原始数据或交易记录,而是保存其哈希函数值,即将原始数据编码为特定长度的由数字和字母组成的字符串后记入区块链。由于哈希函数的显著特点之一单向性,其特别适合于存储区块数据。在区块链中,一段时间内生成的交易信息会进行哈希函数算法加密,获得一个由64 个不同数字和字母组成的代码,将此信息加密后的哈希值打包到一个区块上[13]。区块同时包含之前块的哈希,盖上时间戳按照一定顺序进行排列,即可在区块间建立起具有时间顺序的链式数据结构[14]。Merkle 树是区块链的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性。此外,数据层还封装了一项重要技术,称为非对称加密技术。非对称加密是为满足安全性需求和所有权验证需求而集成到区块链中的加密技术,常见算法包括RSA、ECC等。
2.2.2 网络层
网络层封装了区块链系统的组网方式、消息传播协议和数据验证机制等要素。在区块链系统中,节点一般具有分布式、自治性、开放可自由进出等特性,因而一般采用对等式网络(Peer‐to‐peer network,P2P 网络) 来组织散布全球的参与数据验证和记账的节点[15]。P2P 网络中的每个节点均地位对等且以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点和层级结构,每个节点均会承担网络路由、验证区块数据、传播区块数据、发现新节点等功能。
2.2.3 共识层
共识机制是区块链去中心化的关键。共识层是作为区块链架构系统重要的一层,封装了数种共识机制[16]。当前主流的是工作量证明(Proof of Work,PoW)。在区块链网络中,每增加一个区块都需要所有区块的认同才可以被接纳,工作量证明就是为了验证一个节点消耗了大量的算力找到了合理的随机数(Nonce),并在验证成功后接受该区块,使其成为区块链的一部分。
2.2.4 合约层
区块链技术的智能合约是一组情景——应对型的程序化规则和逻辑,是部署在区块链上的去中心化、可信息共享的程序代码。智能合约具有自治、去中心化等特点,一旦启动软件系统就会自动运行与认定,不需要任何合约签署方的干预。智能合约封装预定义的若干状态、转换规则、触发条件以及对应操作等。经过各方签署后,以程序代码的形式附着在区块链数据上,经过区块链网络的传播和验证后被记入各个节点的分布式账本中。区块链可以实时监控整个智能合约的状态,在确认满足特定的触发条件后激活并执行合约。智能合约对区块链有重要的意义,它赋予了区块链底层数据可编程性,为区块链2.0 和区块链3.0奠定了基础[17]。
3 区块链应用场景
目前,各领域不再局限于对区块链技术的深入研究,同时对其应用场景也不断探索。除了最初给予区块链技术“生命”的比特币外,基于区块链本身属性及技术特点,其在产业层面、企业层面、全民参与的应用场景掀起风暴[18]。
产业层面应用场景,金融服务领域[19],R3CEV(联盟成员:美国银行、摩根大通、平安银行、招商银行等40 余家国内外知名银行),在探索以分布式总账简化银行间的信用确证过程,使得交易成本最小化的同时,有效保障了交易的安全。物联网服务方面[20],Fil‐ament(工业物联网公司),它提供不同形式的软、硬件集成传感器,利用智能合约技术将传感器与用户设备相整合,使机器与机器的交互更为便利。供应链服务平台[21],Wuchain(国内供应链管理平台),就是利用基于区块链不可篡改性和时间戳存在性证明,根除供应链内产品流转过程中的假冒伪劣问题。
企业层面应用场景,数据管理方面[22],Factom 公司利用区块链不可篡改和时间戳特性构建分布式数据层,用户可根据实际需求开发针对不同行业的应用程序,如审计系统、财务系统。版权保护方面,柯达公司利用区块链技术去中心化和智能合约技术,推出照片所有权管理平台KODAKOne,旨在保护摄影师所有权益。电子合同方面[23],DocuSign 公司利用哈希算法不可还原性以及电子签名技术,旨在解决电子合同中存在的身份验证问题。商品溯源方面[24],Everleder是一个区块链在钻石领域的应用平台,利用其去中心化、不可篡改的特点解决钻石开采、生产、销售过程的溯源问题。
全民参与应用场景,社交网络方面[25],以色列公司Synereo致力利用去中心化的特点打造无中心化社交网络平台,以保护用户个人资料、交易记录。电子商务方面[26],现有的电子商务平台阿里、京东、苏宁等都是中心化运营模式,OpenBazaar作为一个网络开源平台,尝试打造去中心化市场,引入信誉评估体系使得用户间可舍去第三方实现直接交易。数据分享[27],随着网络技术的发展,数据挖掘与处理问题迎刃而解,但是数据共享与保护成为大数据发展的“瓶颈”,尤其是医疗数据等具有的敏感性。瑞士公司Healthbank,基于公有区块链建立了全球健康数据处理平台,利用非对称加密技术,保护个人全部信息。
从以上三类应用场景可以看出,目前区块链的应用集中在金融与数据安全管理领域,在医疗领域也正在开展很多探索和应用,而在数据安全管理领域主要集中于商业数据。但是,在科学技术高度发展的今天,科学研究数据占据着举足轻重的位置,这也就引发了区块链技术在科学研究领域应用模式的探索。当下,我们面临“生态学+大数据”环境下数据存储与共享的现实挑战,这恰能通过企业应用层面的数据管理+全民参与场景下的数据共享来探索创建“区块链+生态大数据”的应用场景,填补区块链技术在生态科学研究领域的空白。
4 系统设计
4.1 系统总体架构设计
4.1.1 系统结构
常见的网络结构模式分为B/S(Browser/Server)模式与C/S(Client/Server)模式。B/S 模式是一种以Web 技术为基础的网络管理信息系统平台。浏览器即客户端向Web 服务器发出服务请求;Web 服务器接收请求后与数据库进行链接,并向数据库服务器提出数据处理请求;在接收到数据处理请求之后,数据库服务器会把数据处理结果传递给Web 服务器;再由Web 服务器传送给客户端[28]。C/S 模式中客户端负责管理用户接口、数据处理和发送请求;服务器负责操作共享数据库、接收并响应客户端的请求等。其工作模式如图1所示:
设计搭建的系统,采用(C/S)模式结构,主要考虑到以下两个因素。第一,时效性。客户机和服务器是C/S 模式的两大核心构成要素,由于该模式具有数据通信量小且速度快的特点,有助于处理大量数据并保证数据处理的速度。第二,安全性。点对点结构模式使得C/S 模式在适用于局域网的同时,具有十分可靠的安全性。
4.1.2 系统工作模式
在客户端,用户将实时观测数据通过用户界面发送于服务端,中间经过哈希函数加密后存储于充当服务端角色的数据库,同时服务端将最新区块的相关信息发送给全体用户。在用户有查询操作时,服务端接收到查询指令,将依据实时请求对用户做出回应。其工作模式如图2所示。
4.1.3 系统功能
生态观测数据安全保障系统的功能主要体现于添加区块,查询区块、验证区块以及存储区块四大功能。用户运行程序后可选择相应的指令实现相关操作,添加区块时,会提示输入数据信息以及备注数据所属类型,输入完成后系统自动向每一用户发布新增区块信息同时存储于指定附加文档,这就实现了添加区块及区块存储功能。当用户有实际查询需求时,EODSS 提供了四种查询模式:区块高度检索、时间检索、数据类型检索,以及数据检索。系统接收到查询指令后可将数据返还到用户界面同时存储于附加指定文档,用户可利用自己查询的信息与实时发布信息比对,实现了查询区块、验证区块信息两大功能。
4.2 系统模块设计
4.2.1 服务端模块设计与实现
(1) 数据库单元
在数据存储问题上,当用户完成野外观测数据输入后,第一层处理是将原始数据加盖有效的时间戳,之后连同上一区块信息经由哈希加密后生成新的区块信息。
在数据检索问题上,我们定义了四种检索方式,分别是以数据为检索条件、以区块高度为检索条件、以数据类型为检索条件和以时间为检索条件。这四种检索条件结构相同,利用同一语法实现检索问题。
(2) 服务单元
服务单元的一个重要角色就是充当“发报机”,这就需要在数据库中创建一个数据游标,每次自动查询到最新区块内容,筛选出最新一条数据信息,拆包后可将信息有选择性的发送出去。同时,开发者可依据实际需求以及数据量规模对发布时长做出定义,图3为程序流程图。
4.2.2 客户端模块设计与实现
(1) 用户单元
独立的用户脚本无法正常运行,在完成系统设计过程中,首先将用户界面与数据库关联起来,搭建关系,形成可操作的用户脚本文件。之后,与远程字典服务(Redis,Remote Dictionary Server)关联起来,形成一个用户监听服务端的体系,可自动接收服务端的信息变动。用户界面的设计力求遵循页面简洁,操作简单。
(2) 操作单元
用户单元的界面与数据库、远程字典服务关联完成后,进一步需要完成用户相关操作,系统的用户操作主要体现于两个方面添加区块以及查询区块。这就需要在用户与数据库间添加一个操作单元,添加区块根据时间序列及区块高度依次有序排列,查询区块利用检索条件关联于数据库中的特定“指针”,图4 为此模块程序流程图。
5 运行与管理
5.1 运行实例
图5 所示为“生态系统观测数据安全保障系统”(Ecosystem observation data security system,EODSS)运行界面图,当前版本为1.0。在界面中间部分介绍了此系统开发的主要技术、环境以及开发单位。此系统主要技术为区块链相关技术和Mysql数据库,开发的平台基于windows 系统,利用python 环境和Mysql平台共同搭建。在页面中下方,有“点击进入用户界面”、“联系我们”选项,用户可根据实际需要选择相应的操作。
下面是以一组实际观测数据为例,展示数据安全保障系统的储存区块功能。图6 左侧所示为森林生态系统国家野外科学观测研究站‐湖南会同站,坐落于湖南省怀化市会同县(109°45′E,26°50′N),主要植被类型为杉木林。图6 右侧所示为监测探头,采用LI‐COR 公司提供的7700 探头(观测甲烷通量)和7500 探头(观测水气和二氧化碳通量)实时收集数据,收集间隔为每三十分钟一次。
运行系统后,可以点击进入用户界面选项,展示的用户主界面如图7所示。
在界面中有五个操作指令,归于两大类功能,一类是新增区块功能,一类是查询区块功能。现在以会同观测站实测二氧化碳数据为例介绍该系统的新增区块功能以及检索区块功能能。选择操作指令1“增加区块”,输入观测点实测数据,标注区块数据类型为“二氧化碳观测数据”,运行后得到新型区块发布内容,其详细内容包括“区块高度、区块创建时间、前一区块哈希数以及当前区块哈希数”,操作详情如图8所示,输入数据后,得到发布区块的内容有“区块id(区块高度):45;发布时间:2019‐07‐07 14:17:09;前一区块高度哈希数:f9a718250197805679fe920e1b9cd8ff 090206ea6e4a2503edb0add00255e6e;当前区块哈希数:804763361f50e742d128002229df95e995b2e1be846 fe1a03079b97ae01d572;数据类型:二氧化碳观测数据”。随后可进行区块信息检索,由于区块数据类型、区块产生时间与区块信息非一一对应的关系,而区块高度有且仅有唯一的区块信息与之匹配,故我们选择以区块高度为检索条件。上一步骤中,形成的区块高度为45,操作“2,按ID查询区块”,运行后得到区块高度为45的区块信息全部内容,详情如图9所示。以会同观测点实测数据为基础,EODSS 可以形成一条完备的生态数据区块链,生成信息如图10所示。
5.2 系统性能分析
良好的系统性能表现是一个完备系统的必要条件,从系统的性能表现主要通过易用性、可扩展性、安全性、响应时间等方面进行判断[29]。
5.2.1 易用性指标分析
基于区块链技术的陆地生态观测数据安全保障系统的设计目的在于解决生态观测数据管理与共享问题,规范数据操作流程,该系统贴近实际的应用流程,对于普通用户而言,与中心化系统的操作大同小异,符合他们的操作习惯。用户只需具备基本计算机操作水平,使用起来没有困难,满足系统易用性要求。
5.2.2 可扩展性指标分析
基于区块链技术的陆地生态观测数据安全保障系统的设计是以当前需求为目标的,由于生态观测数据数量庞大且处于不断更新中,为适应系统变化,系统需要具备良好的可扩展性。P2P 网络架构本身就具有良好的可扩展性,即便日后增加新模块也不会对原有系统架构和功能模块造成太大的影响,系统功能能够依据用户所需功能进行扩展。
5.2.3 安全性指标分析
数据安全保障系统中存储大量的生态观测数据,所以系统需要具备完善的安全机制。鉴于区块链技术综合运用时间戳技术与加密算法技术,在信息不对等的情况下,可以有效保障系统进行数据存储与传输过程中的安全性[30]。同时,区块链技术中的透明性和不可篡改性进一步为系统安全性提供了有效保障。
5.2.4 响应时间
响应时间是指软件系统为用户服务所花费的总时长。从用户个体感知角度而言,响应时间是用户从进入系统到完成其所需服务的总时间,包括系统在后台经过一系列处理工作所花费的时间[31]。根据“管辖区域不同,响应时间可以细分为:
a.服务器响应时间度量服务器的处理能力,即从交易请求到服务器请求交易完成的时间。
b.网络响应时间是网络硬件传输交易请求,以及交易结果所耗费的时间。
c.客户端响应时间是客户端在构建请求和展现交易结果时所耗费的时间。
响应时间=服务器响应时间(A2)+网络响应时间(N1+N2+N3+N4)+客户端响应时间(A1+A3)
根据实际测试,对于开发的生态数据安全保障系统,在目前的网络带宽条件下,服务器响应时间为0.3s,网络响应时间为0.3s,客户端响应时间为0.5s,整个系统响应时间约为1.1s。
5.2.5 吞吐量
吞吐量是指系统单位时间内处理请求的处理能力,其中,吞是指用户或客户端发出的请求,而吐则是系统执行的结果。换而言之,吞吐量反映软件系统在处理数据过程中能够执行处理与处理完成的数据量[32‐33]。吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T 表示性能测试所用的时间。假设系统中虚拟用户个数为5000,每个用户发出50 个请求,测试时间为2 小时(7200 秒),可得出系统吞吐量为3.5/s。
5.3 系统如何解决生态观测数据安全问题
搭建此系统,旨在解决生态观测数据存储以及共享过程存在的问题。在设计过程中,我们利用了区块链的部分技术,主要体现在哈希函数加密和时间戳技术。哈希函数利用sha256 算法,对原始观测数据加密,并形成唯一的不可还原的64 位“哈希码”作为数据唯一的“身份证”,一是64 位固定长度的哈系数便于保存,二是哈希码不可还原的特性保护了数据的安全,这就解决了生态观测数据存储安全的问题。
生态观测数据还要面临一个不可回避的问题是共享。在生态学研究者们数据交流的过程中,通常的可以电子版和纸质版文件在线上线下不同的渠道传输,由于各种主客观因素可能会使得数据失去准确性和完整性,但根据区块连技术的时间戳概念就可以使数据安全地传递。其主要原理是利用时间戳给每一条数据加盖证明封装起来形成区块,汇总起来成为一个具有时间证明的“电子数据账本”。这样每一条数据可以实现溯源,找到最初的记录。同时,基于区块链技术中区块头+区块体的特殊结构,保证了每一区块都包含上一区块的内容,这样的链式数据结构下,如果某一区块数据被篡改,则全部区块的链接信息被打乱同时系统将最新信息同步给所有用户,这就保证了数据不被篡改,能够实现安全共享。
5.4 系统技术优势
实现本系统的开发平台为Python 和Mysql。系统的主要硬件设备可以基于普通个人计算机来实现,开发成本低。整个系统的易复制性较强,容易普及。现有系统结构简单但具有较大的灵活性。体现在试运行周期短,投入应用速度快等方面。且系统无论在客户端还是服务器端都很容易操作,有基本计算机操作能力的人员即能够使用,甚至担任管理员角色。在数据存储方面,虽然现有系统的数据库存储量是有限的,但也可以根据具体情况,制定科学管理海量生态观测数据的策略。如可以依据数据观测量制定合适的时间周期,定期开一条块链。在数据安全需求方面,我们在系统中选择的Redis主从同步机制,能够及时高效的将信息同步至全网用户,篡改数据易被察觉,这基本上能够满足野外生态观测站对数据安全的要求。
6 结语
作为一种新兴的互联网技术,区块链基于“互联网+”正在进入各个行业。区块链技术可以在很多行业和领域得到广泛的应用,只要是与数据采集、处理、存储和共享有关的领域,都存在很好的应用前景。在生态学研究,特别是在系统生态学和全球变化与响应的相关研究中,日常所处理的海量基础数据和区块链技术特点有着天然的亲和性,可以结合在一起发展出更多应用模式,更好地满足生态学研究与应用的不同需求。由于生态与环境数据的形式多样性和结构复杂性,区块链技术实现形式也将是多种多样的。未来生态数据系统中的区块链应用模式应该是由不同功能、不同形式、不同场景的多条区块链共同形成的综合体系。
本文所介绍的区块链在生态学科学领域的应用模式,作为初步的探索,提供了一个可以继续深入开发的基础框架。在这个过程中,还存在很多待解决的问题。主要在以下三个层次还需要改进:(1)系统安全性。目前系统尚未完全解决去中心化问题,管理员角色单一且唯一,第一步应考虑构建小型组网,实现分布式存储,从而解决当前系统中心化问题;第二步应考虑共识层的搭建,共识机制作为区块链去中心化的关键,无论是在公有链、联盟链、还是私有链中,都承担着重要角色。现有区块链系统中,区块数据仅形成了私有链,应着手考虑完善系统的同时,将当前的私有链实现上联盟链,有效的提高私有链防篡改特性,进一步提高系统的安全性。(2)系统易用性。在多重因素影响下,区块链系统运行的网络局限性尚未改善,应着手考虑在低成本、安全性、时效性的前提下解决运行网络局限性;现有系统在用户管理和用户权限方面还存在效率问题,应考虑高效科学的系统管理;现有区块链系统运行模式单一,从用户易用性角度出发,可以探索c/s 与b/s 模式并行(3)系统完整性。生态观测数据采集是生态观测数据安全存储与共享的关键要素,数据采集让数据存储共享成为可能,二者密不可分。为使系统功能应丰富多元化,应探索在生态学应用场景中添加物联网服务,实现计算机与传感器的集成,形成自动采集生态观测数据存储成链的一体化工作模式。