掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的数据共享方法

文献发布时间:2024-04-18 20:02:40


一种基于区块链的数据共享方法

技术领域

本发明涉及区块链技术领域,尤其涉及一种基于区块链的数据共享方法。

背景技术

在数据数据资源与模型或算法共享过程中,传统的共享流程是数据使用方先从数据提供方处获取原始数据,之后在数据使用方本地对数据提供方的原始数据进行分析计算,获取结果;另一种是原始数据提交到第三方的计算服务提供商,在第三方服务器里面进行分析计算,只返回结果给数据需求方。这两种本质上仍然是基于数据明文的共享模式。当数据提供方的原始数据明文转移出去时,数据提供方实际上就失去了对数据的控制权,就会发生原始数据泄露和滥用的问题。

同态加密是一种加密方式,它可以对密文数据进行计算,生成密文结果,而在解密时所进行的计算与在明文上进行的计算相同。简而言之,同态加密使得计算能够直接作用于加密数据,而不需要先解密数据。同态加密主要分为两种类别,部分同态加密和全同态加密,部分同态可以对加密后的数据执行特定的计算,例如,加法或乘法,而全同态加密允许对加密数据执行任何计算,并且不限制操作次数。

申请号为202111298314.0的专利公开了一种基于同态加密技术的数据共享方法及装置,利用数据共享系统将所有已报备数据分享机构进行组队;利用密钥管理中心为组队后的数据分享机构生成同态加密公钥和同态加密私钥;利用组队后的数据分享机构和同态加密公钥为待共享客户数据进行同态加密,得到客户的密文数据;利用数据统计中心对所有客户的密文数据中相同客户的密文数据进行加法同态计算,得到所有客户的密文数据;利用组队后的数据分享机构和同态加密私钥对所有客户的密文数据进行解密,得到所有待共享客户数据的密文结果;利用组队后的数据分享机构和RSA公钥对密文结果进行解密,得到所有待共享客户数据的明文结果。该专利能够提高数据共享的可靠性,但是将数据共享之后,无法获取之后数据的流转路径,因此无法对数据进行追踪溯源。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于区块链的数据共享方法,实现了数据资源与模型之间的安全共享,只共享最终的计算结果而不共享原始数据,即数据的可用不可见。同时也可以对数据共享的全过程进行追踪溯源。

为解决上述技术问题,本发明提出的技术方案为:

一种基于区块链的数据共享方法,包括以下步骤:

S101)通过指定实体生成同态加密算法的公私钥对,所述指定实体为数据提供方或数据使用方或区块链的智能合约;

S102)数据提供方使用公钥加密本地数据,同时数据使用方使用所述公钥加密本地模型或算法数据,数据提供方和数据使用方将加密后的数据上传至智能合约中,所述智能合约使用同态加密算法对所上传的加密数据进行运算得到运算结果的密文数据;

S103)通过指定实体使用私钥对运算结果的密文数据解密得到运算结果的明文数据。

进一步的,步骤S101之前还包括:数据提供方和数据使用方分别将数据目录信息上传到区块链中。

进一步的,所述指定实体为数据提供方时,步骤S101具体包括:数据提供方生成同态加密方案的公私钥对,然后将公钥发送给数据使用方。

进一步的,步骤S103具体包括:数据提供方获取运算结果的密文数据,使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据,并发送给数据使用方。

进一步的,所述指定实体为数据使用方时,步骤S101具体包括:数据使用方生成同态加密方案的公私钥对,然后将公钥发送给数据提供方。

进一步的,步骤S103具体包括:数据使用方获取运算结果的密文数据,使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据。

进一步的,所述指定实体为区块链的智能合约时,步骤S101具体包括:智能合约生成同态加密方案的公私钥对,然后将公钥发送给数据提供方和数据使用方。

进一步的,步骤S103具体包括:智能合约使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据,并发送给数据使用方。

进一步的,所述智能合约在安全沙箱环境中运行,步骤S103之后还包括:销毁安全沙箱,清除所述加密数据、密文数据、明文数据以及公私钥对。

进一步的,所述同态加密算法为Paillier同态加密算法、整数向量同态加密算法或者全同态加密算法中任意一种。

与现有技术相比,本发明的优点在于:

(1)本发明解决了数据共享过程中存在的隐私泄露问题。数据提供方将加密的数据上传至智能合约中,并利用部署在区块链智能合约中的同态加密算法对密文数据进行计算。使得数据使用方最终获得的是数据的计算结果,而无法获取与数据提供方相关的任何明文数据信息。

(2)本发明解决了数据共享过程中数据不可追溯的问题。基于区块链去中心化、分布式存储等特点,将数据提供方和数据使用方数据共享协同的全过程上链存证形成不可篡改的记录,可以有效实现数据的追踪溯源,确保数据提供方在数据共享过程中的权益得到保护。

(3)本发明解决了不同隐私保护需求下进行数据共享的问题,针对数据提供方和数据使用方对数据,模型或算法的隐私保护需求的不同,分别设计了对应的数据共享方法,可以同时满足不同隐私保护需求下的数据共享协同分析。

附图说明

图1为本发明实施例的实施步骤流程图。

图2为本发明实施例中第一种需求下的流程图。

图3为本发明实施例中第二种需求下的流程图。

图4为本发明实施例中第三种需求下的流程图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

在介绍本发明的具体实施例之前,先对于相关的概念进行说明。

区块链是一种分布式账本技术,其按照时间顺序将交易记录组织成区块,并使用密码学哈希函数将这些区块链接在一起,形成一个不可篡改的链式结构。每个区块包含一系列交易信息和前一个区块的哈希值,以确保数据的完整性和顺序性。智能合约是在区块链上执行的自动化合约,它是部署在区块链中的去中心化程序代码,可以在特定的时间或事件驱动下自动执行特定功能。

安全沙箱技术是一种用于隔离应用程序或进程的安全机制,可以在计算机系统创建一个受限的环境,以防止应用程序或进程对系统造成潜在的安全威胁。在安全沙箱中,应用程序或进程被限制在一个虚拟环境中运行,这个虚拟环境通常称为沙箱。沙箱可以提供一些虚拟的硬件和软件资源,如文件系统、网络、操作系统等,使应用程序或进程可以在这个虚拟环境中运行,而不会对计算机系统产生任何不良影响。

申请号为201711084684.8的专利“一种数据共享方法及服务器”,公开了数据提供方通过设计包含用户信息的多个智能合约,并将智能合约发送到区块链上,在接收到数据使用方发来的查询请求后,可以通过执行智能合约直接获得与查询请求对应的数据。该专利考虑了各个参与方之间如何进行数据的共享,而忽略了共享过程中存在的隐私泄露问题。这种方式虽然使得数据查询和共享更为便捷,但这种直接共享数据方式存在隐私泄露的问题,不适用于隐私数据下的数据共享。

申请号为202111584281.6的专利“一种基于物联网云计算的跨方法数据共享的方法及系统”,公开了终端用户与云服务器方法之间的数据共享。云服务器方法能够存储大量的数据,并可以基于这些数据进行统计分析。终端用户可通过授权实现对云服务器方法上数据的访问也可以将数据上传至云服务器方法上。该专利没有考虑数据溯源的问题,当终端用户上传完数据之后,无法获知之后数据的流转路径。

申请号为202011505923.4的专利“基于联邦学习的区块链工业物联网数据共享方法”,公开了将各个物联网终端设备采集到的数据通过网络传输到本地区块链上,需要共享的数据在本地区块链进行训练无损学习模型,并将结果参数传递到共享区块链,共享区块链上存储相同训练模型并对传入结果进行整合计算,最后将结果反馈给用户使用。该专利中只考虑了用户数据需要进行隐私保护,而训练模型不需要进行隐私保护的情况,没有考虑模型需要进行隐私保护的情况。

实施例

现有数据协同分析过程中,使用区块链进行数据共享时,在区块链上的数据都是公开的,不能保护数据隐私。使用同态加密的数据共享数据使用记录不能追溯。并且目前的方案一般针对特定情况下的数据共享设计方案。为了解决现有数据协同分析过程中存在的问题,本实施例提出一种基于区块链的数据共享方法。考虑使用基于区块链的同态加密方案实现数据的共享,实现不同隐私保护程度下的数据共享,根据参与方不同的需求来进行数据共享。该方法依赖于区块链、数据提供方,数据使用方三种实体,下面对于三种实体进行说明:

区块链,由区块链智能合约的执行环境作为数据处理分析的可信任计算环境,保证在计算过程中无法人为对计算过程进行干预,同时将数据协同分析的全过程记录在区块链中,实现数据的防篡改、可追溯。

数据提供方,数据提供方本地拥有丰富的数据,希望将这些数据进行共享利用,但可能担心将数据共享出去会失去数据的主导权以及存在隐私泄露的问题。

数据使用方,数据使用方拥有模型或者算法,但缺乏数据,需要从数据提供方那里获取数据来挖掘数据的潜在价值。

如图1所示,本实施例的方法包括以下步骤:

步骤1:数据目录上链,即数据提供方和数据使用方分别将数据目录信息上传到区块链中。

本实施例中,数据提供方和数据使用方都需要将自己的拥有的数据资源上链,使得对方根据自身需求进行数据的协同计算。由于区块链节点在数据存储方面的局限性,不适合存储大量的数据,同时将数据资源全部上传到链上存在数据隐私泄露的问题。因此数据提供方和数据使用方只需将数据目录信息上链存储,而将原始数据保留在链下数据库中。链上的数据是可以直接通过区块链网络进行数据流转和调用计算的,链下数据资源是在智能合约控制下利用数据目录信息间接获取数据,进行数据流转和调用计算的。数据提供方的数据目录信息如表1所示。

表1数据目录信息

步骤2:选择隐私保护需求和同态加密算法,包括:

步骤2.1:计算需求选择,数据提供方和数据使用方确定数据协同分析任务的隐私保护需求。本实施例考虑了三种隐私保护需求:

需求一,数据提供方的数据重要程度高需要进行隐私保护,而数据使用方的模型或算法数据重要程度低不需要进行隐私保。

需求二,数据提供方的数据重要程度低不需要进行隐私保护,数据使用方的模型或算法数据重要程度高需要进行隐私保护。

需求三,数据提供方和数据使用方的数据重要程度都较高都需要进行隐私保护。

步骤2.2:同态加密算法选择,数据提供方和数据使用方需要确定任务计算过程中可能涉及到的运算,进而来确定选择哪种同态加密算法进行密文下的计算。如果在双方的数据在协同分析过程中只存在加法操作,则可通过Paillier同态加密算法即可实现,Paillier同态加密属于部分同态机密算法,满足加法同态性,支持任意次的加法同态操作。如果计算过程中涉及到线性变换和权重内积,则可以使用整数向量同态加密算法。如果计算过程中涉及到多种不同的计算操作,包括加法、乘法和其他复杂的运算,可以考虑使用全同态加密算法。将同态加密算法程序写好之后进行封装,部署在智能合约上,当使用时直接进行接口调用。

步骤3:数据协同分析计算,包括以下步骤:

S101)根据隐私保护需求,通过指定实体生成同态加密算法的公私钥对,所述指定实体为数据提供方或数据使用方或区块链的智能合约;

S102)数据提供方使用公钥加密本地数据,同时数据使用方使用所述公钥加密本地模型或算法数据,数据提供方和数据使用方将加密后的数据上传至智能合约中,所述智能合约使用同态加密算法对所上传的加密数据进行运算得到运算结果的密文数据;

S103)通过指定实体使用私钥对运算结果的密文数据解密得到运算结果的明文数据。

根据数据提供方和数据使用方选择的计算需求的不同,进行数据协同分析的方法也不同。下面分别对上述三种隐私保护需求下的数据协同分析进行描述。

需求一:数据提供方的数据重要程度高需要进行隐私保护,而数据使用方的模型或算法数据重要程度低不需要进行隐私保护。这种情况下,所述指定实体为数据提供方,如图2所示,首先由数据提供方生成同态加密的公私钥对(Pk,Sk),并将生成的公钥Pk发送给数据使用方,此时数据提供方使用公钥Pk加密自己的本地数据并上传至智能合约,数据使用方使用公钥Pk加密自己本地的模型或算法数据并上传至智能合约中。智能合约进行数据共享的步骤是根据明文算法来执行的,在同态加密方案下,先进行明文计算然后得到计算结果后再进行同态加密和直接在密文下进行运算得到计算结果再进行解密两种操作得到的最终结果是一样的。因此在智能合约中根据数据提供方和数据使用方双方数据共享时选择的计算任务,使用对应的同态加密算法对数据进行运算。最终将同态加密的运算结果发送给数据提供方,数据提供方使用私钥Sk对运算结果进行解密,并将解密的结果发送给数据使用方。

因此,针对需求一,本实施例的步骤S101具体包括:数据提供方生成同态加密方案的公私钥对,然后将公钥发送给数据使用方。相对应的,针对需求一,本实施例的步骤S103具体包括:数据提供方获取运算结果的密文数据,使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据,并发送给数据使用方。

需求二:数据提供方的数据重要程度低不需要进行隐私保护,数据使用方的模型或算法数据重要程度高需要进行隐私保护。这种情况下,所述指定实体为数据使用方,如图3所示,需求二和需求一下的数据协同分析流程大体相同,区别在于由数据使用方生成同态加密的公私钥对(Pk,Sk)。首先由数据使用方生成同态加密的公私钥对(Pk,Sk),并将生成的公钥Pk发送给数据提供方,此时数据提供方使用公钥Pk加密自己的本地数据并上传至智能合约,数据使用方使用公钥Pk加密自己本地的模型或算法数据并上传至智能合约中。智能合约根据双方的计算任务,使用同态加密算法对数据进行运算。最终将同态加密的运算结果发送给数据使用方,数据使用方使用私钥Sk对运算结果进行解密,即可得到最终的结果。

因此,针对需求二,本实施例的步骤S101具体包括:数据使用方生成同态加密方案的公私钥对,然后将公钥发送给数据提供方。相对应的,针对需求二,本实施例的步骤S103具体包括:数据使用方获取运算结果的密文数据,使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据。

需求三:数据提供方和数据使用方的数据重要程度都较高都需要进行隐私保护。这种情况下,所述指定实体为区块链的智能合约,如图4所示,在需求三的场景中,智能合约自动在隔离的安全沙箱环境中运行。由智能合约生成同态加密方案的公私钥对(Pk,Sk),并将公钥Pk发送给数据拥有着和数据使用方,两方都使用公钥Pk对本地的数据或模型进行加密,智能合约在安全沙箱中进行同态加密运算。得到计算结果密文后,智能合约在安全沙箱内部使用私钥Sk进行解密。然后将解密的明文结果发送给数据使用方。最后销毁安全沙箱,清除参与计算的数据密文,结果密文,结果明文以及同态加密算法的公私钥对(Pk,Sk),从而保证数据的安全。

因此,针对需求三,本实施例的步骤S101具体包括:智能合约生成同态加密方案的公私钥对,然后将公钥发送给数据提供方和数据使用方。相对应的,针对需求三,本实施例的步骤S103具体包括:智能合约使用私钥对运算结果的密文数据进行解密,得到运算结果的明文数据,并发送给数据使用方。步骤S103之后还包括:销毁安全沙箱,清除所述加密数据、密文数据、明文数据以及公私钥对。

综上所述,针对数据资源与模型或算法共享过程中存在的资源分散大、安全要求高、确权定责难的问题,本发明基于区块链和同态加密技术,利提供了一种只共享数据的运算结果而不共享原始数据的方法,将同态加密算法部署在智能合约里,而数据在智能合约的可信任执行环境中完成隐私计算,最终只返回计算结果。这种方法既实现了对数据的安全保护,又不影响数据协同分析结果的计算,从而避免了数据隐私泄露的问题。

本发明涉及数据的共享协同分析,可以实现各组织、机构或部门之间数据资源与模型的安全共享,并且可以对数据共享过程进行追踪溯源。本发明基于区块链技术将数据共享的全过程进行上链存证。不仅可以降低数据需求方的计算服务信任成本,同时可以实现对数据资源与数据共享记录的追踪溯源。从而解决了无法对数据进行追踪溯源的问题。

本发明提供了定制化的计算服务,可以满足不同场景下数据提供方和数据使用方的隐私保护需求。针对数据提供方和数据使用方隐私保护的不同的需求,本发明也分别提供了相应的数据共享方法,并确保了算法最终只共享计算结果,而不共享原始数据。从而保证了数据分享的可行性。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

相关技术
  • 一种基于区块链的数据共享系统及数据共享方法
  • 一种基于区块链的数据共享平台及其实现方法
  • 一种基于区块链的数据共享方法及数据共享系统
  • 一种基于区块链的数据共享系统及数据共享方法
技术分类

06120116586447