基于区块链的科学数据汇交存证模型研究与实现

2023-11-28 10:08徐墨庚姜晓轶童心符昱王漪
海洋信息技术与应用 2023年4期
关键词:哈希合约数据中心

徐墨庚,姜晓轶,童心,符昱,王漪

(1.自然资源部海洋信息技术创新中心,天津 300171;2.国家海洋科学数据中心,天津 300171;3.国家海洋信息中心,天津 300171)

近年来,我国科技计划项目数量迅速增长,产生了大量高价值的科技创新成果和科学研究数据,这些科学数据是国家科技创新和发展的基础性战略资源,更是大数据时代最基本、最活跃的科技资源[1]。及时汇交、管理和共享这些数据资源,既是国家科技投入的直接体现,也是促进科学数据更好地收集保存、共享和利用的重要途径[2]。科学数据汇交作为科学数据获取的重要渠道,其基础性和重要性尤为突出。为此,国务院办公厅、科技部、财政部等相继发布有关数据汇交工作的指导性文件。2018 年,国务院办公厅发布《科学数据管理办法》,明确提出“政府预算资金资助的各级科技计划(专项、基金等)项目产出的科学数据进行汇交”,强制性要求项目产生的科学数据汇交至相关国家科学数据中心,从而有效促进项目产出科学数据的整合、存储、管理和积累,推进科学数据资源向社会开放共享,最大程度地发挥科学数据的价值。

目前,我国已经建成了包括国家海洋科学数据中心在内的20 个国家科学数据中心,这些数据中心相继开展科技计划项目汇交工作并依托其共享服务平台建立了在线项目数据汇交系统,该系统大部分采用“中心化”管理模式。“中心化”模式存在诸多问题:一方面,服务器容易遭受黑客恶意攻击;另一方面,平台内部管理者拥有高数据操作权限,可能违规修改、删除数据。这些内外部攻击使得数据存在易篡改风险,既无法保证汇交过程的透明可信,也无法保证汇交数据在发布共享时与原数据的一致性和完整性,而且一旦发生数据篡改难以追责定责,由此会给数据中心和项目组带来信任危机。信任问题不仅影响数据中心的公信力,也间接导致项目组不愿意汇交数据或者不愿意汇交全部数据,甚至引发数据权属争议,阻碍科技计划项目科学数据的生命周期进程,使之无法发挥最大价值。项目产生的科学数据凝聚了项目负责人和团队的智慧与付出,如何使项目组毫无保留地将研究成果汇交至数据中心,打破信任壁垒,保障汇交各方责任权利成为数据汇交领域面临的关键问题。

区块链技术为数据汇交信任问题提供了解决方案。本文利用区块链分布式去中心化、多方共识、不可篡改、全程留痕等特性,构建了覆盖科技计划项目数据汇交全流程的区块链汇交存证模型,通过将汇交过程中的关键文件上链来保证文件的不可篡改性,实现汇交全流程留痕;赋予汇交形成的数据集唯一的Hash 值并上链,为开放共享数据的一致性和完整性验证提供了可信、可追溯、可证明的保障;建立了基于区块链的海洋科学数据汇交存证系统,以期为其他科学数据汇交工作提供借鉴和参考。

1 国内外研究现状

区块链技术首次出现在中本聪发表的《比特币:一种点对点式的电子现金系统》[3]一文中,自此掀起了全球范围内的电子货币及区块链热潮,进入了区块链1.0比特币时代;以太坊智能合约的出现使区块链进入了2.0 智能合约时代;如今区块链已经发展到了3.0 时代[4],即区块链治理时代。在3.0 时代中,智能合约[5]扩展了区块链的应用场景,由金融领域延伸到医疗、物联网、政务等领域。同时,联盟链生态也全面爆发,逐渐成为当下研究热点并得到产学界的广泛关注。目前比较流行的联盟链平台有国外的超级账本(Hyperledger)和国内的长安链、Fisco Bcos、国信公链、星火链网等。联盟链由多个中心控制,具有交易速度快、数据隐私安全、高兼容性和扩展性、可监管等特点,相比公有链和私有链,联盟链支持更多的应用需求和场景。目前,美国、日本、英国等相继开展了多领域、多场景的应用研究。随着我国将区块链技术作为核心技术自主创新的重要突破口,各地相关政策陆续颁布,大规模区块链应用相继落地。

国内外联盟链涉及科学数据应用方面的研究主要围绕数据安全、数据确权和数据共享等开展。数据安全方面,Zikratov 等首次具体使用区块链来实现数据完整性[6]。魏银珍等采用区块链技术安全地捕获和验证了数据产生、存储、流通,以提高科学数据的质量,防止数据篡改[7]。数据产权方面,王瑞丹等提出区块链、安全多方计算等新技术的应用有助于促进科学数据共享流通过程中的可追溯、可监控,从而减少了知识产权可能遭遇侵害的风险[8]。范亚慧等提出将区块链技术应用到科学数据产权保护领域,以维护科研人员的合法权益[9]。数据共享方面,王显斌剖析了区块链应用于科学数据共享的优势和适用性,提出了将区块链元素融合科学数据共享的新模式[10]。张连翀等提出构建依托区块链和云计算等技术的行业数据中心和科学数据中心协同技术保障条件,有利于形成良性运行的数据生态系统[11]。科学数据汇交方面的区块链研究还处在理论探索阶段。陶毅等建议在汇交系统的技术支撑方面,可尝试引入区块链技术,凭借其不可篡改、可追溯的特点,强化科学数据保护能力,提升科研人员共享科研数据的意愿[12]。杨雅萍等提出区块链溯源管理模型可应用到数据汇交工作中,以达到保证数据的真实性和可靠性的目的[13]。张思思等提出人类遗传资源组学原始数据归档库(Genome Sequence Archive-Human,GSA-Human)系统可借鉴区块链、云计算、流计算等数据安全管理的特性和理念,建立人类遗传数据共享和使用的新模式[14]。

2 区块链技术原理

区块链是比特币背后的重要技术,采用P2P网络架构进行价值交换,实现去中心化的网络环境而无须集中的第三方[15-16]。区块链使用分布式账本实现系统去中心化,分布式账本是以有序形式包含交易列表的数据结构,能够存储大量数据,并记录所有区块链节点之间发生的交易,以便回溯任何交易活动。与凭借可信第三方来存储交易记录的传统数据库不同,区块链工作在分布式集合的节点上,每个单独的节点都有网络中正在执行的交易信息。区块链网络中每完成一个交易,存储在分布式账本上的交易信息就被复制到所有区块链节点上。本质上,区块链网络由一组名为矿工的节点负责在无信任分布式环境中通过共识机制维护所有交易的可信记录。

2.1 哈希算法

哈希算法(HASH),即哈希函数,设计了一组复杂的数据运算和计算规则,它们将随机长度的输入消息转换为固定长度的摘要。哈希函数的以下特性使得它的输出具有唯一性。

(1)从散列值通过逆向工程重构原始消息几乎是不可能的。

(2)输入的一个位变化可以改变哈希中一半以上的位,从而产生完全不同的输出。

(3)算法有能力将任何冗长的输入压缩到固定大小的输出。

(4)为两个不同的输入消息查找相同的散列在计算机上不可行。

2.2 实用拜占庭容错共识算法

共识机制是区块链系统在不可信的环境中达成一致的重要协议,其中,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT) 共识算法在联盟链中得到了广泛应用。PBFT 算法考虑了区块链网络中的拜占庭将军问题[17]。拜占庭容错假设节点可能出现网络故障、停机和其他非人为行为,不断地寻找网络中漏洞的节点和故障恶意节点并将其排除在外[18]。因此,PBFT 算法的目标是在节点失效的情况下,减少这些恶意节点的影响,并试图通过重复投票在网络上实现全局一致。Lamport等在假设误差的情况下考察了达成这一协议的概率,证明PBFT共识算法只有在至少三分之二的网络节点是诚实的情况下才能抵抗拜占庭错误。因此,假设n代表整个共识节点数量,f代表所有拜占庭节点数量,那么当n≥3f+ 1 时,就能达成共识。PBFT协议流程(图1)如下:

图1 PBFT共识算法流程

(1)共识节点依次担任主节点,主节点负责创建一个新的候选块。

(2)主节点将候选块广播给其他共识节点。

(3)每个接收到块的节点都会验证该记录,并广播一个准备消息。

(4)在收到足够数量的准备消息(消息总数超过整个节点的三分之二)后,计算每个消息的确认消息,并将其广播给所有节点。

(5)如果收到的确认消息数量超过总数的三分之二,则节点对提议的块达成一致。

2.3 智能合约

智能合约由尼科萨伯于上个世纪末提出,其思想是将法律条文写成可执行代码,是根据协定自动化执行代码的计算机协议。但由于早期计算条件并未成熟,应用场景相对狭窄,因此智能合约技术一直没能实现。直到区块链技术的出现才重新定义了智能合约,区块链借助智能合约的可编程特点实现复杂的逻辑功能,智能合约借助区块链的去中心化特点得以真正实现其价值功能。因此区块链成了智能合约应用最有效且最广泛的场景。

本质上,智能合约是一段运行在区块链上的代码,由区块链的矿工节点执行,在触发条件发生时将自动执行并被全网节点共识。智能合约部署后被编译为二进制代码,并存储在区块链的特定地址上,一旦部署到链上,任何人都无法不留痕迹地修改智能合约。智能合约的另一个关键优势是,它可以在没有人工干预的情况下运行,被触发后可以在每个节点上独立自动执行一个函数。假设区块链的基本共识算法是安全的,则智能合约可以被认为是一个由可信的全局机器执行的程序,它将忠实地执行每条指令。智能合约执行机制如图2所示。

图2 智能合约原型

3 基于区块链的科学数据汇交存证模型

3.1 科技计划项目数据汇交业务流程

《科技计划项目科学数据汇交工作方案(试行)》对科技计划项目数据汇交流程进行了明确规定。科技计划项目数据汇交流程分为汇交方案编制、实体数据汇交和数据汇交验收三个阶段(图3)。在数据汇交方案编制阶段,由项目组按照任务书和项目实际执行情况编制《项目基本信息表》《科学数据汇交方案》和元数据表,提交到相应的国家科学数据中心进行专家审核,通过后进入实体数据汇交阶段,项目组依据《科学数据汇交方案》准备科学数据实体,编制说明文档,连同软件工具一起提交至数据中心进行审核,专家对提交的实体文件的完整性、规范性、一致性和数据质量进行审核。审核通过后进入汇交验收阶段,数据中心依据实际汇交内容和数据量开具数据汇交验收证明。

图3 科技计划项目数据汇交业务流程

3.2 汇交存证模型设计

基于联盟链的优势,本文提出一种结合联盟链、智能合约、密码学技术的数据汇交存证模型,该模型的主体是由数据中心节点和分中心节点构成的多主体联盟链(图4)。其中,数据中心作为联盟链的主节点,负责联盟链的运行和维护工作,包括节点的准入退出与认证、执行共识算法、设计与部署智能合约、区块链运行监管等,在业务上负责科技计划项目的数据汇交与管理的总体工作。分节点是数据中心的共建单位,如科研院所、高校和企业,主要协助主节点管理运行联盟链,在业务功能方面,参与数据汇交的收集、整合和处理工作。科技计划项目数据汇交存证模型以网络结构为基础进行数据的存证过程,需要实现数据上链、数据一致性验证、汇交流程历史追溯等功能,其中数据上链是将数据实体存储到本地数据库,数据摘要与详细信息存储到区块链的过程;数据一致性验证需要对本地数据库存储的数据与区块链上的数字摘要进行对比验证;汇交流程历史追溯包括汇交关键文件历史版本的追溯。模型从业务流程设计、底层数据结构、智能合约和安全防护机制四个方面描述,包括汇交存证流程设计、数据存储结构设计、智能合约设计和安全机制四个主要模块。

图4 基于区块链的科技计划项目数据汇交存证模型

3.3 汇交存证流程设计

汇交存证模型在传统的汇交系统基础上引入区块链技术,具体汇交存证流程如图5所示。

图5 基于区块链的科技计划项目数据汇交流程

(1)用户上传科技计划项目数据汇交所需的关键文件/数据集,其中关键文件是指项目组提交的《项目基本信息表》和《项目汇交方案》及审核工作组反馈的《审核意见表》和《验收证明》,数据集是指项目所产生的科学数据集。

(2)生成存证内容摘要。使用哈希算法将随机长度的输入消息转换为固定长度的摘要输出,首先对消息进行补位处理,使得最终长度是512的倍数,之后以512 为单位将消息分块为M( 1) ,M( 2 ),…,M(N),最终分解成N个消息模块,然后按照映射方式进行N次迭代,得到H(N),即256 位消息摘要。哈希算法通过计算数据内容摘要,得到一个固定长度的字符串,相同的数据经过相同的哈希计算能得到相同的摘要,所以可以在只存储摘要的情况下,验证原始数据的完整性。同时,在没有找到碰撞的情况下,哈希计算是一个不可逆的过程,公开和存储摘要并不会泄露原始数据的内容。

(3)对摘要进行数字签名。使用用户私钥sk对哈希计算后的摘要进行加密计算得到数字签名DS,作为签名者对存证数据内容确认的凭证,签名私钥由签名者自己保管,只有自己才能进行加密。

(4)打包区块并上链。签名后的存证信息以发布交易的形式发送给联盟链网络的每个节点,矿工接收到之后,通过用户之前提供的公钥对交易进行签名确认,将所有数据打包进区块,完成数据上链存证。

3.4 数据存储结构设计

考虑到区块链区块大小限制及数据量大的特点,如果数据实体上链,会导致区块链运行载荷过大,无法保证系统的效率。因此,模型将数据实体存储在本地数据库,使用SHA256 算法将输入的数据实体映射为256 位的固定长度输出,并生成交易信息,以两个交易为一组,分别计算出哈希值再合成新的哈希值,以此类推,最终计算出唯一哈希值,存储到区块链中。这种方式一方面以较低的时间和计算成本将不同类型和大小的数据转化为256 位的摘要,大大减小了链上所占空间;另一方面在降低系统网络负荷的同时,也能使系统更加安全和高效。区块链可以维护不可篡改的和不断增长的数据块,这些数据块通过密码技术进行了关联和验证。图6 给出了链上区块的数据结构,区块包括区块头和区块体两部分,区块头存储着区块的头信息,包括上一个区块的哈希值、当前区块的哈希值、时间戳和默克尔树(Merkle Tree)的根(Merkle Root)等信息。区块体是一棵存储交易记录的默克尔树,默克尔树的叶子节点存储的是交易,交易存储的是数据摘要和数据信息,并附上了签名和时间戳,而非叶子节点存储的是其子节点的散列值,直到在树的顶部只构建一个根节点,即Merkle Root。整个交易记录的散列值构成了区块的主要组成部分,数据的任何变化都会改变它的散列值,从而可以发现数据被篡改,由此保证了数据的可验证性。

图6 区块存储结构

3.5 智能合约设计

基于提出的汇交存证模型,本节给出了汇交存证过程中的三个智能合约结构和作用,包括汇交流程管理合约(Handover Contract,HC)、数据存证合约(Store Contract,SC)和数据校验合约(Verify Contract,VC)。

汇交流程管理合约作为联盟链中的全局合约,由存证方事前约定,存储存证的生成条件包括合法的用户地址、汇交终止时间及汇交详细内容信息,合约用于控制汇交的流程并管理汇交数据存证的生成,汇交的时间节点由智能合约控制,保证每个阶段的操作都按合约执行,没有人为干预,以此来保障数据汇交流程的规范性。

HC伪代码如下所示。

算法1:

数据存证合约由数据存证管理合约生成,实现汇交流程中文件、数据集和验收证明三种文件的上链,存储内容包含存证id,type,Hash 值和签名等字段,每次存证均需生成一个合约。

SC伪代码如下所示。

算法2:

数据校验合约用于验证链上链下数据的一致性,输入文件验证的请求,获取待核验数据的链上地址,查询出链上存储的信息。比对存证系统中的数据和链上获取得到数据是否一致,并输出文件验证结果。

VC伪代码如下所示。

算法3:

3.6 安全机制

区块链网络中数据篡改可能发生在数据传输以及账本存储两个阶段。在数据传输过程中数据包由数据明文+数字签名形式组成,节点接收到数据包后可根据数字签名对数据明文进行验证,以达到防篡改功能。

在传统系统中,数据库攻击/泄露是攻击者主要的攻击方式,攻击者通过修改数据库数据达到攻击目的。在本系统中,需要保证区块链账本存储数据完整性及真实性,恶意节点会通过修改本地账本数据进行数据篡改,本系统采用PBFT共识机制,假如节点总数为n,故障节点数为f,当n>3f时才能达成拜占庭协定,即算法在失效节点数量f

4 汇交存证系统设计

4.1 架构设计

基于区块链的科学数据汇交存证系统架构如图7 所示,联盟链作为底层基础设施,通过接口层及智能合约与现有科学数据中心汇交业务系统进行连接,为用户层提供业务服务。

图7 基于区块链的科学数据汇交存证系统架构

(1)用户层

用户层主要涉及四类用户角色:科技计划项目数据汇交组、审核专家、普通用户和系统管理员角色,用户角色定义如下。

科技计划项目数据汇交组是汇交业务的关键主体,进行材料撰写、上传、修改和数据上传等操作,可以通过查看链上汇交流程关键文件存证信息追溯汇交全流程,通过对比链上数据集Hash值验证数据的完整性和一致性。

审核专家负责根据数据中心的工作分配进行材料和数据盲审,并将审核结果上链。

普通用户是科学数据的申请者和使用者,通过对比链上数据集Hash 值验证共享得到的数据的完整性和一致性。

系统管理员对汇交全过程进行流程控制,负责数据的上链操作、区块链系统的运行、管理和维护。

(2)应用层

汇交存证系统融合了存证系统和原有的汇交平台,包括用户界面及特定的汇交业务功能,也包括与底层区块链基础平台相关的数据上链、查询、验证等功能。业务系统通过触发接口层的智能合约调用,与区块链基础平台交互。

(3)区块链层

区块链基础平台是该架构的核心组件,由多个节点的P2P 网络组成,提供共识机制、分布式存储、智能合约、加密体系、节点管理、运维监控等网络管理服务。区块链服务层中,基于共识机制,各节点按照严格的PBFT 算法规则更新区块信息,以区块为单位按时间顺序将汇交信息及数据资源以交易的形式进行链式存储,每条交易都包含时间戳、交易内容和数字签名,支持实时验证与追溯,从而达成信息共享、多方决策一致,保证了数据的可信性和节点的一致性。区块链服务层可以将区块链服务封装成一系列数据接口,接收到调用命令后,平台将采用虚拟化技术启动、运行合约代码,响应数据上链和区块记录查询功能。

4.2 系统功能设计

汇交存证平台链接系统各模块与底层区块链网络及数据库,存证服务是功能核心,包括数据上链、数据查询、数据验证的实现,该功能需要对接FISCO BCOS区块链网络及节点,利用智能合约服务实现数据数字摘要存证、分布式存储以及查询与验证。

(1)数据上链

数据上链功能是用户将汇交流程产生的信息存储至区块链网络,具体流程如图8 所示。用户在登录系统后,上传待存证的汇交数据、文件与项目信息,系统调用SHA256 算法计算数据数字摘要,之后对摘要进行签名,调用区块链的交易处理接口,进行存证合约的调用,实现存证数据哈希上链。最后,将链上信息和合约地址返回给用户。

图8 数据上链流程图

(2)数据验证

数据一致性验证用于在上传汇交数据后,提供该数据的存证信息,同时证明该数据的真实性和完整性。一致性验证流程如图9 所示,用户登录系统后选择要进行一致性验证的数据,获取其上链地址,根据合约地址调用查询交易发送接口,查询出链上存储的上链信息,对比本地数据库中的数据摘要与链上获取到的数据摘要是否一致,如一致,即验证通过,否则,则表明本地数据被篡改,验证失败。

图9 数据验证流程图

5 应用实例

基于区块链的海洋科学数据汇交平台已在国家海洋科学数据中心部署并对外服务。平台采用微服务架构、模块化技术封装研发,可独立或作为集成插件运行。如图10 所示,基于该平台,海洋科学数据中心已部署4 个节点,完成15 个科技计划项目236 个数据集的上链,通过验证31 次,每个完成汇交的项目都有唯一的链上验收证明Hash 值,可以用来验证验收证明的合法性,若验证不一致,则证明验收证明信息被篡改或该项目并没有完成验收。

图10 基于区块链的海洋科学数据汇交平台页面

科技计划项目的每个数据集都有唯一的链上Hash值,图11为数据集的链上存证详情信息,该交易记录了项目的基本信息、数据集的Hash 值和交易时间。交易一旦上链就不会发生改变,项目的基本信息确定了该数据集的生产者,避免了权属争议问题;数据集的Hash 值用来验证本地数据集是否被篡改,时间戳则记录了该数据集的上链时间。

图11 链上存证信息详情

6 总结与展望

随着科技计划项目数据汇交工作的不断推进,相关科技成果和科学数据的服务管理愈发重要。本文利用区块链技术,设计了一个适用于海洋科学数据的汇交存证模型,基于Fisco bcos 框架研发了区块链汇交存证服务平台,实现了涉海科技计划项目汇交数据上链、数据一致性校验及汇交流程追溯等功能,不仅有效地解决了项目组与数据中心之间的信任问题,而且加强了传统汇交平台的安全性,为科学数据的开放共享服务提供了更加可信的数据,为解决科技计划项目数据汇交过程中的数据确权、版本管理、可信共享和溯源验证等问题提供了区块链服务新模式。

本文构建的海洋科学数据汇交存证平台是区块链技术应用于科学数据的初步探索,科学数据开放共享是数据汇交的最终目的和结果,目前数据孤岛的存在严重制约海洋信息化发展及“智慧海洋”工程建设,后续将继续开展海洋数据安全可信共享服务研究。随着数据成为五大生产要素之一,必须要解决数据自身的确权、流通、隐私保护问题,区块链技术作为多主体协同治理的技术突破路径,适于解决数据共享与流通、数据交易中的互信、隐私数据保护、产权确认等问题,因此,区块链相关技术背景下的多主体海洋数据共享、数据交易将是后续的研究重点。

猜你喜欢
哈希合约数据中心
酒泉云计算大数据中心
民航绿色云数据中心PUE控制
基于OpenCV与均值哈希算法的人脸相似识别系统
基于维度分解的哈希多维快速流分类算法
基于云计算的交通运输数据中心实现与应用
基于同态哈希函数的云数据完整性验证算法
Overlay Network技术在云计算数据中心中的应用
一种基于Bigram二级哈希的中文索引结构
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望