基于区块链的企业数据共享模式研究
2021-01-19文必龙陈友良
文必龙,陈友良
(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)
0 引 言
随着大数据时代的到来,企业信息化程度不断加深,数据逐渐成为企业的重要战略资源。对于企业中单一的组织部门而言,往往靠自身的数据积累难以挖掘出其中蕴含的有效价值。只有通过开放共享和数据跨域流通才能完成整个企业版图的绘制。目前企业在推进信息化建设的过程中,普遍以建立数据中心的方式连接不同职能的信息系统,各部门通过数据中心直接或间接地获取数据,但数据中心的数据共享方式仍会面临一些问题。首先,由于数据交换不同于传统的普通商品交易,数据作为被交易的对象时缺少传统商品所有权的概念。因此数据汇聚到数据中心之后,基础部门的数据权属变得不清晰,同时也不利于出现问题时责任的正确匹配。其次,中心化结构特有的数据安全、信息泄露等问题。由于数据具有可复制和易传播的特性,会导致数据脱离数据中心的控制,数据所有者或管理者无法及时准确控制未经授权的数据进行二次流动,存在数据泄露、越权使用的风险。并且会出现数据被篡改、被破坏的数据完整性问题,同时隐私数据的使用安全也无法保证。区块链技术的出现无疑为解决企业数据共享中的数据安全问题提供了新的思路和解决方案。
该文在传统的企业数据共享模式中引入区块链技术,利用区块链的技术机制,构建安全可信的数据共享环境,使数据在共享过程中可管控,加速数据流转,提高数据到价值的转化率。
1 相关工作
企业现有的跨部门数据协同、联合数据分析等应用场景,都是建立在数据开放共享基础上,尽管各种应用场景不尽相同,但多面临数据脱离控制使用的问题。而数据存在的目的就是为了使用,不能抛开数据使用前提而只谈数据安全[1]。对于数据使用安全问题,企业数据中心的主要方式是追溯审计等监管手段,追溯审计能够有效监控用户对数据的操作。但即使在可信有效的追溯审计基础上,这种静态监管机制依然无法解决动态监控数据使用过程中面临的二次流动与被越权使用等安全问题。因此企业仍需要从数据自身保护的角度解决数据使用安全问题。
近些年来,随着密码学的不断发展,同态加密与安全多方计算[2]在数据使用安全与隐私保护方面取得了充分的研究与发展。同态加密技术通过将数据加密之后进行计算,保证了数据使用的安全性,使用户在数据加密的情况下仍能对特定的加密数据进行分析、计算和检索[3]。安全多方计算是解决敏感数据计算的方法,它是指数据在不离开本地、参与方不接触数据源的基础上,完成与另一方或多方数据源的协同计算。但存在由于某些节点出现恶意破坏的行为而导致计算可信、公平性方面的问题[4]。并且以上两种方法普遍存在计算复杂、通用性不强与效率低的问题,在推进企业级应用落地的过程中还存在很多挑战。目前,区块链技术由于具有去中心化、时序数据、不可篡改、公开透明、可追溯、集体维护等特点[5-6],有效解决了数据在流通共享过程中作为一种特殊的商品带来的数据权益、真实可信,追溯审计、管理监控等问题。因此,基于区块链的数据应用模式受到了广泛的关注,区块链在解决数据安全问题的优势体现在很多方面。在数据存储安全方面,Lvan等人提出了一个基于区块链安全存储病人医疗记录的方法[7]。在真实可信、降低成本方面,薛腾飞等人提出基于区块链的医疗数据共享模型,解决了数据校验费时费力所导致数据共享难的问题[8]。Banerjee将区块链与供应链相结合,降低了供应链中存在的信用成本[9]。在数据确权与溯源、交易透明方面,全立新等人利用区块链构建一种开放、自我管理的数字教育资源流通模式[10]。Ricardo等利用智能合约记录数据来源,将数据使用流转过程记录到区块链中,实现数据确权与溯源[11]。陈晋川等人以同样的思路提出了一个去中心的数据交易方案,利用区块链不可篡改的性质,保护数据所有者的权益[12]。在可信数据管理方面,董祥千等人利用区块链的诚实可信基础,提出了一种计算迁移、安全高效的去中心化数据共享模型[13]。区块链凭借其独特的优势在解决数据流通共享过程中涉及的存储安全、真实可信、授权存证以及在流动过程中管控等问题上发挥了一定的优势。
现阶段企业内仍是以数据中心为主、其他办公系统辅助的信息共享方式,更多的数据应用场景需要数据库中原始数据提供支撑。目前以区块链技术实现的链上数据、API等共享模式不足以满足各部门协同合作的发展需求,依靠对链上数据交易使用记录的追溯审计,不能及时准确发现数据使用过程中引发的数据安全问题。因此,该文以区块链技术如何赋能企业数据安全的开放与共享为切入点,研究区块链在企业数据共享中的应用模式。目的是解决企业数据流通共享过程中的确权混乱、使用记录不清晰透明,数据被越权使用的问题,利用链下计算、链上记录的数据应用模式,避免数据二次流动,降低隐私数据使用风险。
2 面向企业数据共享的区块链应用模式
2.1 区块链保障企业数据安全共享
目前大部分企业以数据中心的模式构建企业数据交换平台,在一定程度上解决了由于数据异构、相互独立而带来的“数据孤岛”问题。如图1所示,企业各部门通过数据中心对数据进行集散,实现企业内部不同部门间的数据共享、数据管理和数据传递。数据中心作为一种中介机构为各部门提供数据协作的能力,并不断地优化企业的业务流程。但数据中心的数据安全机制在保证数据完整性、可用性方面还有许多不足。区块链作为多种技术的集成创新应用,在增强数据完整性、保证数据可用性方面有着天然的优势。
图1 企业数据中心共享模式
区块链以块链式结构存储数据,区块作为数据的载体,对于每个交易结果都会完整地记录在区块中,利用哈希算法给予每个区块一个哈希标识,保证区块不被篡改。因此,区块链的价值就体现在对数据构造出了某种程度的“唯一性”。在企业数据共享过程中,通过将数据归集和使用的整个过程记录上链,利用区块链改善授权鉴权的流程,避免传统模式的缺陷。一方面解决了企业各部门的数据在归集后产生数据权益不清晰的问题;另一方面,将带有唯一标识的数据依附于区块链上进行交易[14],通过区块链中所有参与计算的节点共同维护数据交易记录,由于链上数据记录具有不可篡改的特性,很自然地解决了数据难以溯源和被篡改、被破坏的问题,同时还为监管部门提供了真实可信的日志审计。
企业日常生产活动中更多的业务场景是对数据使用的需求,仅靠链上的追溯审计不能及时有效地监控数据二次流动。智能合约作为区块链技术的特性之一,它以代码的形式嵌入区块链系统,由链上事务驱动。合约双方无需彼此信任,只要满足相应的触发条件,合约会自动执行,外界无法干预。因此,通过事先拟定的合约内容和触发机制,利用智能合约构建自动、高效的执行环境,让数据在安全封闭的环境下进行数据处理,外界无法获取参与计算的原始数据,以减少数据流动与隐私泄露的风险。
利用区块链技术,与企业当前的数据共享模式相结合,形成一个透明、高效、安全的控制架构。控制数据应用共享的过程,记录数据的归集和被交换数据的流向及应用信息,保障企业数据安全共享。
2.2 区块链企业数据共享架构及方案
通过上述分析,区块链在推进企业数据安全共享的问题上起到积极的作用。结合区块链技术实现企业数据共享,系统整合架构如图2所示。
图2 基于区块链的企业数据共享架构
区块链企业数据共享架构由三层组成:
(1)数据资源层。为区块链上的数据交换共享事务提供基础数据支撑与数据交换平台,链上的数据通过区块链网络共享,而链下数据通过数据交换平台在区块链控制下进行数据交换。其中数据源包括企业的数据中心主库,企业或所属部门自建的信息系统,由设备采集的实时数据库以及文件、项目数据库等。
(2)区块链技术层。基于企业组织结构的特点,区块链技术选择以联盟链[15]的形式实现。各部门或机构通过审核后加入区块链网络,节点之间通过P2P网络协议进行数据传播与验证;相比较公有链基于证明的共识机制,这里选择低延迟、无分叉、基于投票的PBFT或Raft共识机制。将智能合约以代码的形式嵌入系统,通过智能合约自动处理相关的事务。
(3)应用服务层。通过区块链技术层的API和SDK接口为用户与系统之间提供直接的信息交互载体。其中包括为企业各部门用户、管理员和监管机构提供的基础、管理和监管服务。并在此基础上构建各种与企业业务相关的应用,为企业各部门提供业务活动、数据共享的服务。
基于区块链的企业数据共享架构,通过在企业内各业务部门、职能部门、监管部门等多个机构部署区块链节点完成整个区块链网络的共同管理和维护。如图3所示,各部门通过相应的节点接入区块链网络,区块链上的节点将数据或数据索引信息上传到打包排序节点。经过打包节点排序后,返回各节点验证其提交事务的有效性,节点间共识验证通过后会将相关数据记录存储在区块链上。
区块链服务提供相关的认证管理、追溯审计和以智能合约方式实现的各种业务逻辑功能。用户可以通过客户端与区块链网络进行交互,具体包括注册数据源、查询数据、申请权限等操作。针对企业中跨部门数据查询、联合数据分析等一些常见的应用场景,为确保链上共识的总体性能,减少区块链上一些计算资源节点的负担,该文将传统的基于链上的数据处理或计算环节放在链下执行,提出一种利用智能合约等技术控制的链上链下协作的数据应用共享方式。关于数据应用的操作记录通过智能合约记录在区块链上,便于后期的追溯审计。
图3 基于区块链的企业数据共享方案
监管部门作为特殊的机构不参与一般的数据交换业务,主要负责监管区块链记录的正确性以及处理链上数据交换共享的问题。其目的是保证链上数据真实有效、索引信息正确可用,同时负责对链上的交易信息、授权信息等记录进行安全审计,使违规侵权行为及时被发现并处理,并保证责任的正确匹配。
3 面向区块的数据资源描述模型
在企业数据共享过程中,数据作为在区块链上被交易的对象时,区块链中的区块负责记录数据交易、授权、应用以及数据资源描述等信息。由于企业内部一些常见的数据应用场景需要原生数据提供支撑,所以区块链上需采用完整数据或数据索引两种存储方式。对于不同数据资源信息的描述,利用构建不同的区块数据结构来区分两种存储方式,其中,数据资源描述信息不仅需要能够表达出不同的数据存储方式,而且需要解决不同部门不同用户之间对数据信息描述不一致以及数据权限、策略相关的问题。因此提出数据资源描述模型DRDM(Data Resource Description Model)指导区块数据结构构建,通过区块的数据结构直接反映上层事务的逻辑结构。数据资源描述模型可用五元组表示DRDM={B,DR,DI,P,O}。
其中,B(Basic):表示描述数据资源的基本信息,旨在说明数据资源的类型与用途。具体包括数据资源代码,区分不同数据资源的标识;数据资源分类,按照不同领域或用途将其归类;数据资源摘要,对此数据资源的简单应用描述;关键词以及数据资源格式等信息。
DR(Data Resource):表示存储数据资源信息。数据共享的内容直接存储在区块中,数据资源聚集于区块链上。用户可以直接在区块链中查询得到相关的数据内容。这种方式适合存储数据内容较少的情况,或者是分享对方所需要、加工之后的数据结果。
DI(Data Index):表示存储数据资源索引信息。数据共享的内容不直接存储在区块中,区块中仅存储数据资源的索引信息,用户可以通过数据索引信息找到具体的数据内容。此种方式适合数据内容较多且类型多样的情况,具体包括数据库、文件、API等方式。
P(Policy):表示数据访问策略。描述数据资源的自身和权限变动情况,具体包括数据资源的更新周期、共享类型、共享规则以及共享方式等内容。
O(Owner):表示数据确权信息。即数据资源提供者的相关信息,具体包括数据提供者ID与姓名,所属的部门ID与名称以及数字签名等信息,以确保数据的真实可靠性及数据的确权问题。
描述数据资源信息的区块结构如图4所示。其中,当DI内容为Null时,数据资源描述模型变成DRDM={B,DI,P,O}的形式,即图4(a)数据资源链的数据存储方式,在描述数据资源信息的同时定义数据内容。当DR内容为Null时,数据资源描述模型变成DRDM={B,DR,P,O}的形式,即图4(b)数据资源索引链的数据共享方式。
(a)数据资源链存储方式
(b)数据资源索引链存储方式
4 区块链驱动的数据应用共享
由于数据具有易复制性,复制具有完全无差别性,以至于数据在应用上也没有差异。这些因素导致企业在常见的跨部门数据协同、联合数据分析等应用场景中所涉及的核心、机密及隐私数据不能有效地在共享过程中受到保护,直接影响了企业的经营发展、风险管控与战略决策,使企业信息化受到了严重的制约。因此利用区块链与智能合约[16]等技术使数据在一定安全可靠的范围内使用,实现对一些特殊数据的“可用但不可见”策略,保证数据在使用时不会出现被篡改、泄露的风险。其中,智能合约是指合约参与方可以执行的一套以数字形式定义承诺的协议,简单理解是一个能够自动执行协议的计算机程序。智能合约由于前期缺乏可信的执行环境以及能够支持可编程合约的数字系统和技术,导致关于它的工作理论迟迟没有实现[17]。区块链的出现为智能合约提供了很好的运行基础[18],区块链以自身独特的优势,为智能合约提供了去中心化、去信任化的执行环境。以区块链为主要技术手段驱动的数据共享,使数据在不同的企业应用共享场景中保证使用安全的前提下发挥出最大价值。
4.1 基于智能合约的数据应用共享流程控制
将智能合约以数字化的形式写入区块链,借助区块链技术,不仅发挥了智能合约在成本效率方面的优势,而且避免了作恶行为对合约执行的干扰,保障合约公开透明、不可篡改可追踪的公平执行。智能合约不仅代表区块链上所有组织或用户共同认可的一种协议,更重要的是它不受某一中心机构的控制,只要满足预定的执行条件,系统随即触发相应的协议自动执行。利用智能合约公开透明、自动执行且无法干预的特点和容器技术来保证在需求方不完全接触数据源的基础上,完成数据应用的任务。该文提出一种基于智能合约的数据应用共享模式,通过智能合约控制整个计算过程,完成链上、链下与不同应用之间的数据流动。其计算过程在链下安全的容器中运行,有效避免某些计算资源有限的节点由于过多参与链上计算而影响链上共识的总体性能,数据应用共享流程如图5所示。
图5 数据应用共享流程
基于智能合约的数据应用共享流程如下。
(1)访问权限审核。用户通过客户端生成查询请求或选择计算函数以及参与计算的数据源,并向区块链节点发送请求。区块链网络中相应的节点在收到客户端发送的请求后,利用智能合约提取用户证书的属性以验证用户提交的请求是否符合数据访问权限规则。如果用户所拥有的属性不符合数据权访问限规则,则返回相关提示信息。
(2)数据条件检查。访问权限审核通过后,数据条件检查合约会根据数据提供方对数据源所设置的数据策略与用户所发送请求中所选择的数据输入条件进行规则匹配检查。当输入条件满足相应的数据策略后,系统会将相关的数据源发现参数与计算参数一并发送给计算控制合约。
(3)启动节点容器。计算控制合约将收到的参数与容器启动的命令一同发给计算节点,计算节点会按照指令启动相对应的容器。容器会根据数据源发现参数将计算所需数据安全的读取到容器中,容器运行期间相当于一个黑盒沙箱,参与计算的数据源不会被外部访问。
(4)输出合规性检查。等待容器计算任务完成后,会将计算结果返回给链上节点。节点上安装的输出合规检查合约会对返回的计算结果作合规性检查,包括计算结果是否包含原始数据,计算结果的数据结构与预期结果是否相符等。输出合规检查通过后,区块链节点会将结果返回给客户端。
(5)销毁容器,记录上链。由用户发起的计算事务完成后,由计算控制合约控制启动的节点容器会自动销毁,所有的原始、中间、结果数据都不会保留。最后将计算过程使用的数据源、计算函数、任务发起方等相关信息通过智能合约记录在区块链上,以保证后期对数据使用记录追溯审核。
4.2 数据应用共享过程安全控制
企业数据应用共享过程中,有两个常见的应用场景,分别是数据安全查询和联合数据分析。其中,数据安全查询是指用户仅得到查询受控范围内的结果,但对数据库其他记录信息不可知。同时,拥有数据库的一方,也无法得知用户具体的查询请求;联合数据分析是指多个部门之间协同计算一个约定函数,且计算过程中各部门不能获得其他部门的输入信息,保证输入独立性与计算安全性。通过基于智能合约的数据应用共享流程控制保证了数据计算过程中的数据隔离、隐蔽计算,但是在数据应用共享过程中,不仅需要考虑计算过程中的安全,还需要满足数据共享规则。包括相应的访问权限和控制数据共享范围的设置,以及对数据应用共享计算结果的合规性检查,避免限定条件之外的数据流出。因此,从以下三个方面描述数据共享规则。
(1)数据访问权限。
区块链具有公开透明的性质,区块链上共享的数据可以被任意用户访问,如此情况不满足企业对于数据保密的相关要求。在实际企业内部数据管理过程中,不仅仅只有高层的机密数据,还有不同部门的敏感数据,并且每个部门相互之间存在一些利益矛盾。因此对于不同级别的用户需要赋予不同的访问权限,基于企业数据应用共享中两个常见的应用场景考虑,将访问权限分成以下三种类型。
①公开:可以获得原始数据,没有条件限制。
②检索:可以获得部分原始数据,允许检索满足V(数据表的某一个具体属性值的集合)=v(v指用户输入的属性值)的数据记录,如果没有符合的数据则返回Null。
③计算:不可以获得原始数据,但是允许数据参与计算,获取计算结果。
由于联盟链采用基于证书而不是传统的用户名和密码形式的身份认证,因此利用数字证书中的扩展域属性,将主体的相关信息写入数字证书中,通过智能合约提取数字证书中主体的相关属性完成对不同数据访问权限的控制。
(2)数据条件规则。
数据条件规则是指数据表中具体字段的约束条件,数据提供方在注册数据源时,由于相关规定或者其他原因并不能共享某字段下的全部数据,因此在注册数据源时必须明确相关字段的约束条件,以便于数据需求方查看使用。具体关于数据字段的约束条件实际上等同于sql语句中的where条件,where条件有的复杂有的简单,所以约束条件有的作用在单一字段上,有的作用在多个字段上。例如,单一字段上的约束条件,允许查询2019上半年的销售业绩,销售表中的时间字段约束条件设置为:Time<2019;或者多个字段上的约束条件,允许查询2019上半年东北地区的销售业绩,销售表中的相关字段约束条件设置为:(Time<2019 and area=‘东北地区’)。
利用正则表达式解析由用户需求生成的sql语句,以智能合约的方式实现数据提供方设置的字段约束条件与需求方生成的sql语句中所包含的过滤条件之间的规则匹配,满足约束条件的请求成功执行之后将结果返回,将交易记录在区块链上,不满足约束条件则返回提示信息。
(3)数据输出合规性。
为保证数据安全查询与计算结果的安全可控,对于数据输出的结果,系统需对其进行合规性检查,避免不符合约束条件的数据流出。针对上面检索、计算两种情况的输出进行检查,检索的输出可以表示为一个关系,计算的输出可以表示为一个计算结果,因此转换成对关系和计算结果的合规性检查。
对于关系的检查,主要是对最后输出关系属性V的值进行过滤,判断是否出现除v值以外的其他属性值,其次对比生成关系属性与查询的关系属性结构是否一致。
对于计算结果的检查,智能合约会根据用户选择的输入数据类型,自动生成相同类型的测试数据输入。生成的测试数据和真正的输入数据分别执行相同的计算函数,并得到相应的计算结果,计算结果检查主要包含以下三个部分。第一,预期计算结果检查:数据需求方在发起计算的时候,要对预期的输出结果进行描述(或者由所选择的计算函数可知),将预期结果与输出结果进行对比。第二,原始数据检查:检查测试输出结果是否存在生成数据集的原始数据,间接判断计算函数是否包含原始数据的输出。第三,输出计算结果检查:对比测试数据生成的计算结果属性与实际数据生成的计算结果属性是否一致。
5 结束语
数据作为企业日常经营和决策的越来越重要的战略共享资源,由于它自身的可复制性和易传播性,使其流通和共享过程受到了严重制约。该文以区块链去中心化、不可篡改、可追溯与可信任等特点为基础,提出一种基于区块链的企业数据共享模式,给出了企业数据共享架构与方案,通过DRDM模型完善数据资源描述信息区块结构,保证了数据规范描述与权属清晰。利用区块链构建安全可信的数据计算环境,结合智能合约实现数据共享过程的可监测、可管控和可追溯,采用一种数据可用不可见的应用共享形式,减少数据二次流动和隐私数据应用的风险,提高了数据到价值的转化率。为企业信息化过程中解决数据可信、安全共享以及构建企业数据共享生态圈提供了一种新的思路。