基于区块链的商业数据共享模型

2021-05-20 06:50陈丽燕吕光金芮廷先
计算机工程与设计 2021年5期
关键词:星际合约数据中心

陈丽燕,吕光金,芮廷先

(上海财经大学浙江学院 经济与信息管理系,浙江 金华 321013)

0 引 言

为了让商业数据尽到最大化的效益,结合当下热点大数据、数据挖掘、区块链多方面挖掘商业数据的价值成为近年的研究热点[1,2]。现有的商业数据管理系统依托于商业信息管理系统[3],虽然较传统的商业数据管理具有便利性,但是依然存在一些问题。商业数据在使用过程中,如对数据的管理、传输等过程容易被修改;对于每个商业中心来说所有的商业数据就是一个信息孤岛,每个商业中心之间无法有效共享彼此的数据,无法将数据价值最大化;现有的商业数据安全措施借助于数字签名和水印等技术,在遇到数据被破坏、篡改等极端情况时无法恢复。

商业数据的真实性无法保障,如果商业中心的数据遭到入侵,或者相关人员动手脚,商业数据的真实性和安全性都将遭到威胁。

区块链是目前流行的基于共识机制的公共账本技术,具有去中心化无需可信第三方[4];任何人想改变数据都需要付出巨大成本,导致实现困难,具有防篡改性;还具有可追溯性等特点。区块链的这些优质特性让区块链在各个领域的研究成为热门,尤其是将区块链应用到隐私保护方面[5],如将区块链应用到个人征信系统保护[6]、档案数据保护[7]、医疗数据的隐私保护[8,9]、个人隐私等方面。区块链技术在数据安全保护方面的应用不仅仅只是理论的研究,而被许多企业应用到现实场景中,比如百度将区块链应用到对百度百科数据的保护[10];蚂蚁金服将区块链应用到对捐款数据的跟踪[11];腾讯也在打造区块链生态圈[12]。对于本文来说区块链这些特性有助于解决目前商业数据管理中存在的安全性差以及无法有效共享等问题。本文正是基于区块链、密码学和星际文件系统(inter planetary file system,IPFS)[13]等技术提出了商业数据共享模型。从以下几个方面来提出解决方案:

(1)在商业数据中心之间构建联盟链,在这个基础上共同维护系统的运行,商业数据副本与公有链挂钩,能够降低数据维护成本又保障了数据的安全;

(2)通过私有星际文件集群系统以加密的形式存储原始数据,结合区块链智能合约技术,存储数据的摘要信息,包括存储数据的唯一指纹序,以此实现对商业数据的安全管理;

(3)借助区块链技术和星际文件系统,能够做到对历史数据的追溯,因此解决了商业数据无法恢复的问题。

1 预备知识

本节将介绍本文所提方案中会用到的基础知识,包括区块链相关技术和星际文件系统的相关知识两部分。

1.1 区块链技术相关知识

区块链是以数据区块为单位存储数据,实际上是一个无中心的数据库、结合了共识算法、密码学技术[14]让每个数据块包含了比特网中的交易信息,能够防伪和生成新的区块。根据区块链的开放权限,又将区块链分为公有链、联盟链和私有链。公有链[15]是指区块链完全开放,任何节点都可以参与共识;联盟链[16]是联盟节点才能参与,并且共识机制需要所有联盟节点共同决策;私有链[17]是组织内部使用,访问权限不开放。

1.1.1 共识机制

共识机制[18]是为了解决区块链所有节点共识问题。如何认定节点数据的有效性,所有节点都共用同一标准,保证了公平性也保障了数据的安全性,节点数据不是个人可以随意篡改的。区块链的共识机制要求所有节点均平等,且要求少数服从多数,只有这样才能保证数据的安全性。这里的少数服从多数并不一定指的是节点个数,可能是工作量、计算能力、时间等等,根据不同的依据,提出了多种的共识机制,如Proof of Work[19]算法、Proof of Stake[20]算法、Proof of Space[21]算法、Proof of Luck[22]算法、Proof of Elapsed Time[23]算法、Delegated Proof of Stake[24]算法、Proof of Useful Work[25]算法、联盟链Quorum[26]等。

1.1.2 智能合约

智能合约[27]是区块链去中心化的一些特殊的协议,满足不同的需求,包含了所有的约定条款,只有满足所有协议,才能够生效,能够保证公正性,排除了人为操作的可能性。支持智能合约的区块链以以太坊为代表,可以在这个基础上开发智能合约。

1.2 星际文件系统相关知识

星际文件系统(inter planetary file system,IPFS),是一个分布式存储和文件共享的网络传输协议[28]。系统上的每个文件和数据块都有唯一的加密散列称之为指纹,具有版本跟踪、可寻址、不可篡改、去中心化等特点。IPFS系统是基于内容寻址[29],所有的内容具有唯一指纹,根据加入网络的不同权限又分为公有集群系统和私有集群系统:公有集群系统是任何节点都可以加入自由加入星际文件系统;私有集群是有权限的节点或机构才能加入系统。

2 本文模型

这部分将介绍基于区块链的商业数据共享模型的整体架构。

2.1 系统模型

如图1所示,本文提出的商业数据共享模型由商业数据中心、服务中心、联盟中心、公有区块链、私有星际文件集群系统这5个模块组成。

图1 系统模型

5个部分介绍如下:

商业数据中心作为商业数据共享模型的重要节点直接参与联盟区块链中心,具备数据保护、验证、共享等功能;

服务中心自身不存储数据,是去中心化的结构,以接口的形式为商业数据共享模型提供智能合约和星际文件系统接口;

联盟中心实际上是以太坊联盟链,通过智能合约存储商业数据中心的数据信息,包括商业数据中心的数字身份标识和摘要信息,用于实现商业数据中心身份标识的注册、恢复、保护、共享等操作,定期与公有链交互,以此来保障数据的安全;

公有区块链是以太坊区块链,定期存储联盟中心的数据库副本镜像,以保证联盟中心数据的真实性;

私有星际文件集群系统存储了商业数据的原始信息,在分布式哈希表和块交换等技术的支持下,实现了节点的身份认证,保障数据的安全性。

以上各部分的消息流如图2所示。

图2 消息流

2.2 合约架构

本文模型涉及到的智能合约主要用于对商业数据中心的身份标识进行管理也就是对这些节点的身份确认,此外还对商业数据进行管理。涉及到智能合约的模块主要有公有区块链模块和联盟中心模块。公有区块链中有联盟数据保护合约,主要用于保障联盟中心数据的真实性。联盟中心模块中的智能合约主要完成对商业数据中心节点的身份认证和商业数据管理两大任务。联盟中心的智能合约包括节点信息存储合约(node information storage contract,NISC)、节点信息管理合约(node information manage contract,NIMC)、商业数据管理合约(commercial data manage contract,CDMC)等。如图3所示。

图3 联盟中心合约架构

节点信息存储合约主要用于存放模型中涉及到的节点身份标识信息,用于身份辨认,因此,该合约中记录了联盟中心所有商业数据中心的身份标识(data center identity,dcID)、公钥、该节点对应的节点信息管理合约和商业数据管理合约。

节点信息管理合约以民主投票技术为基础实现了商业数据中心节点的内部自治,由节点新建合约和节点重置合约组成。其中节点新建合约通过投票方式对新加入的商业数据中心节点创建dcID;节点重置合约为防范商业数据中心私钥泄露风险,用于重置商业数据中心的密钥。

商业数据管理合约主要用于管理商业数据,包括对商业数据的验证、恢复、共享和保护等,由商业数据信息存储合约、商业数据权限控制合约和商业数据共享管理合约等组成。商业数据管理合约结构如图4所示。

图4 商业数据管理合约架构

商业数据信息存储合约(commercial data information storage contract,CDSC)主要记录商业数据中心的数字摘要信息,包括商业数据对象的星际文件系统地址、编号、哈希值、创建时间、修改时间等等。

商业数据权限控制合约(commercial data control contract,CDCC)主要用于控制商业数据中心的权限。

商业数据共享管理合约(commercial data sharing manage contract,CDMC)主要记录商业数据中心共享的数据信息,包括数据编号、所属商业数据中心身份标识、共享时间等等。一个数据编号可以共享给多个商业数据中心访问。当数据编号对应的商业数据中心身份标识为-1时,表示该数据完全开放,所有用户都可以直接获取信息;如果标识为0,则表示该数据有条件的开放,联盟中心所有成员均可访问;如果标识不小于1,则表示该数据私有,只有指定权限的数据中心才可以访问。

2.3 方法设计

2.3.1 商业数据中心身份标识的注册与找回

商业数据中心节点并不是直接参与联盟中心,仅仅以身份标识替代。因此,身份标识对商业数据中心来说非常重要,需要投票多数通过才可以授权注册。其操作如算法1所示:

算法1:商业数据中心身份标识的注册

输入:商业数据中心请求

输出:生成商业数据中心身份标识

需要加入联盟中心的商业数据中心基于某种加密算法生成密钥对, 如本文模型采取椭圆曲线算法[15],私钥自己妥善保管;

将公钥Kpub和基本信息公开给联盟中心,基本信息包括商业数据中心地址,同时随机委托一个节点创建投票合约,联盟中心的节点参与投票;

如果票数过半,商业数据信息存储合约保存该商业数据中心的公钥信息,然后为其生成商业数据中心的身份标识dcID并创建商业数据信息存储合约和商业数据权限控制合约,以三元组表示 (dcID,CDSC,CDCC)。

由于私钥由商业数据中心自行保存,存在内部人员窃取的情况,也存在被盗的风险,一旦被盗,取得私钥者就可以伪造该商业数据中心的身份标识对数据进行操作。因此,商业数据管理中心需要妥善保管私钥,此外,本文设计了密钥重置合约,一旦发现密钥泄露,即可启动dcID重置合约,重置密钥,具体操作如算法2:

算法2:重置密钥

输入:重置请求

输出:产生新的公钥

商业数据中心再生成一对密钥 , 私钥Kprinew自行保存;

将新的公钥公开给联盟中心,重置秘钥,商业数据中心身份标识已经注册,因此同时附带商业数据中心身份标识,并随机委托节点创建重置投票合约;

联盟中心全体重新投票,如果票数过半,则节点信息管理合约重置该商业数据中心的公钥,将 替换为

由于考虑到商业数据中心私钥存在的安全隐患,通过对节点身份标识的一致性认可,解除了操作对公钥的依赖性。由于以上设计的商业数据的操作都是基于节点身份标识,即使dcID重置合约重置了商业数据中心的公钥,只要节点身份标识一致,依然可以验证商业数据中心的身份。

2.3.2 商业数据的保护与验证

商业数据的保护是指新增和更新商业数据对象的时候对数据进行的保护,技术上基于星际文件系统私有集群技术,将数据存储在区块链上,配合联盟中心和公有区块链上的智能合约来保护数据,防止数据被破坏,支持验证和恢复等基本操作。

新增数据对象是将商业数据对象保存在私有星际文件集群系统中,将数据对象编号保存在商业数据信息存储合约中;更新数据对象则是在每次更新数据对象时对对象和数据进行保护。

商业数据对象(commercial data object,本文JSON形式表示该对象,因此简写为cdJSON)结构如图5所示,包括对象编号、版本号、创建时间、操作者和摘要等信息。

图5 商业数据对象结构

新增数据对象操作步骤:

(1)商业数据中心生成一对随机的密钥randkey(Kpubr,Kprir), 该密钥主要用于对商业数据摘要和商业数据对象的加密;

(2)用私钥Kprir对商业数据摘要进行加密,加密后保存到星际文件集群系统,并将哈希值、加密附件的序列号和加密商业数据对象的序列号等信息进行签名,通过服务中心发送到智能合约中等待后续处理;

(3)商业数据信息存储合约收到新增数据对象请求,调用商业数据权限控制合约从签名中恢复公钥,将恢复的公钥与节点信息存储合约中的密钥进行对比,如果验证通过,就在合约中添加商业数据对象编号和摘要等信息的镜像。

新增对象的流程如图6所示。

图6 新增对象流程

更新数据对象操作与新增数据对象类似,只是商业数据中心不会生成密钥对,而是直接使用原有的密钥对;商业数据中心会根据商业数据对象编号从商业数据信息存储合约和星际文件系统中提取商业数据对象信息,接着按照更新商业数据信息生成新的商业数据对象,加密以后保存回商业数据信息存储合约和星际文件系统中,也就对原来的信息进行了更新。

商业数据对象的验证包括公有区块链对联盟中心区块链上的数据验证、联盟中心对星际文件系统中数据的验证、商业数据对象对商业数据中心的数据验证。具体验证过程见以下算法:

算法3:公有区块链对联盟中心区块链的数据验证

输入:数据验证请求

输出:验证结果

商业数据中心对dcID、 数据编号签名后得到sign(dcID,dataID), 将结果发送到服务中心;

服务中心收到消息后,从公有区块链中的联盟数据保护合约中得到最新的联盟数据块副本映像;

通过和联盟中心中的区块信息进行对比验证;如果验证通过,就将签名发送给智能合约,进行下一步操作;如果验证失败,即返回联盟中心数据异常。

算法4:联盟中心对星际文件系统中数据的验证

输入:数据验证请求

输出:验证结果

商业数据信息存储合约收到验证请求,通过商业数据权限控制合约对商业数据中心身份进行确认,根据数据编号dataID从合约中查找对应数据的摘要信息;

商业数据中心从商业数据信息存储合约得到所需信息后,根据所取得数据对象从星际文件系统中获取集群中的数据对象;

验证所取得的哈希值是否和前者一样,如果验证通过,则进行下一步操作;如果验证失败,则返回星际文件系统数据异常。

商业数据对象对商业数据中心的数据验证:获取数据对象信息方法同上,只是最后将数据对象信息与商业数据中心的数据对象信息进行对比验证,验证通过,则正常进入下一步操作,否则,返回商业数据中心数据异常。

针对以上产生的异常,本文提出以下恢复方法:

联盟中心数据异常:发现异常后可以回溯,将联盟区块信息与之前的区块信息进行对比,找出异常区块的位置,在这基础上新创建的区块;

星际文件系统数据异常:商业数据信息存储合约中存储了数据区块的各个历史版本,如果发现异常,可以恢复前期的正确版本;

商业数据中心数据异常:可以根据联盟链上的历史记录,重置商业数据中心被篡改的数据信息。

2.3.3 商业数据的共享

商业数据的共享是指在联盟中心节点之间以及与外界节点间的数据共享,在智能合约、星际文件系统和混合加密机制等技术支持下,保障数据的安全共享。下面以商业数据中心A要向商业数据中心B共享商业数据为例介绍本文方案数据共享过程,其中商业数据中心A的商业数据中心身份标识记为dcIDA, 商业数据中心B的商业数据中心身份标识记为dcIDB, 其具体见算法5:

算法5:商业数据的共享

输入:数据共享请求

输出:共享数据或者失败提示

商业数字中心A使用私钥AKprir对需要共享的数据对象编号dataID、dcIDA进行签名得到signa(dataID,dcIDA), 之后通过服务中心将signa(dataID,dcIDA) 发送到商业数据共享管理合约。商业数据共享管理合约收到请求后,先调用商业数据权限控制合约对dcIDA进行查验,查验通过后将其写入合约数据对象dataID的分享序列中;

商业数据中心B使用私钥BKprir对dataID、dcIDB进行签名得到signb(dataID,dcIDB), 之后通过服务中心将signb(dataID,dcIDB) 发送到商业数据共享管理合约。商业数据共享管理合约收到请求后,先调用商业数据权限控制合约对商业数据中心B的权限进行查验,查验通过意味着B具有对数据对象的读取权限,读取对应数据对象的哈希值和数据对象指纹;

商业数据中心B根据得到的数据对象指纹,从星际文件集群系统中获取加密的数据对象,同时将dataID和dcIDB发送给商业数据中心A,来获取数据对象的解密密钥;

A收到B的请求后,商业数据共享管理合约根据所接受的信息查验商业数据的共享记录,如果共享记录有误,则返回共享失败;否则共享真实无误,则从节点信息管理合约中获取dcIDB对应的公钥BKpubr, 对解密密钥进行非对称加密后发送给B;

B使用私钥BKprir对收到的消息进行解密,得到原始解密密钥,利用解密密钥对加密的数据对象进行解密,得到数据对象原始信息。

3 方案分析

3.1 安全性能分析

由于联盟链数据块的副本镜像映射在公有链中,彼此高度不可能一样的,必然存在高度差,这里将高度差记为h。 如果有黑客要攻击,那么攻击过程就需要重新计算公有链当前区块高度的所有内容,并通过全网验证。假设节点算力为每秒ahash,黑客算力为每秒bhash,不会遇到异常情况,如大量节点加入攻击,新区块的计算难度一般相差不大,这里假设没有异常情况,普通节点每秒钟产生新区块的概率为p,黑客节点产生新区块的概率为q。那么每秒钟高度差h的变化存在3种情况,分别是变大、变小和不变,每种概率表示为P1,P2,P3。 那么在t秒中,就有t次变化,用n标识其中变大的次数,m是变小的次数,那么不变的次数就是t-n-m次,其中高度差的变化满足多项分布。如果在t秒内,黑客攻击节点成功需要满足m∈[0,(t-h-1)/2],n=m+h+c, 其中1≤c≤t-2m-h, 发生的概率如下公式

其中,P1=q(1-p) 是高度差变大的概率,P2=p(1-q) 是高度差变小的概率,P3=1-P1-P3是高度差没变化的概率。

黑客攻击节点的算力如果小于普通节点的算力,成功的概率更小,因此,这里就讨论算力相当的情况,根据以上公式得到黑客攻击成功的概率分布如图7所示,其中y轴是黑客攻击成功的概率P,x轴是时间T,单位是算力的单位时间。

图7 攻击成功概率分布

从图7,我们可以看出黑客能够攻击成功并且篡改数据的概率随着高度差的增大而减小。以高度h=20计算,在长时间攻击下,成功概率也是15%。而在实际应用中,区块的高度差将会是千万数量级的,那么在这样的情况下,攻击篡改成功的概率几乎为零。况且以太坊是存在激励机制的,如果有这么大的算力,还不如作为普通节点,奖励也远远大于攻击篡改的收益。因此,通过分析,本模型在安全方面是可靠的,具有不可篡改性。

3.2 经济成本分析

本模型主要用于商业数据的共享与保护,假设每天需要进行的保护次数为m, 共享次数为n, 身份信息管理次数为l, 则以太坊上公有区块链上部署智能合约的成本Cost1=mCost2+nCost3+lCost4, 其中Cost1为以太坊成本,Cost2为保护操作成本,Cost3为共享操作的成本,Cost4为身份信息管理的成本。

3.3 对比分析

本文是通过联盟链与公有链相结合的方式建立模型对商业数据进行保护和分享,结合星际文件系统,实现了对商业数据的安全分享、保护和恢复等功能,和单独使用联盟链、单独使用公有链的性能对比见表1,本文所提出的模型安全性高于联盟链,和公有链安全性相当,但是成本要低于公有链;在扩展性方面,本文的模型要高于两者。由此可见本文模型更优。

表1 性能对比

4 结束语

本文结合区块链相关技术、星际文件系统设计了一种基于区块链的商业数据共享模型。本模型实现了对商业数据的安全共享和对商业数据的保护等基本操作,能够在较低的经济成本下保证商业数据的安全共享。相对现有的模型在安全性、扩展性和成本上方面都更有优势。本模型考虑了商业数据的共享和保护的基本操作,但是在对商业数据其它方面的应用没有做过多的涉猎,在今后的工作中,能够将模型拓展到更多领域,包含更多功能,将对商业数据管理的区块链共识机制方面进行更加深入的研究。

猜你喜欢
星际合约数据中心
酒泉云计算大数据中心
浅析数据中心空调节能发展趋势
星际打劫案
“穿越星际”去上课
基于云计算的交通运输数据中心实现与应用
Overlay Network技术在云计算数据中心中的应用
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望