1.本发明属于数据共享技术领域,具体涉及一种基于区块链的数据共享与挖掘方法。
背景技术:2.数据挖掘技术要在某个专业领域取得较精确的计算结果,需要适合该领域问题的计算模型以及大量的相关数据。但往往算法的拥有者以及数据所有者,并非是同一个公司或组织,甚至符合某一个计算模型的数据,分布在多个数据拥有者手中。出于对数据安全及核心技术秘密保护等考虑,数据拥有者和算法拥有者都不愿意将自己的核心资产公开给对方,这就极大的阻碍了数据挖掘技术的应用。
3.现有的基于区块链的数据交易系统,通过检查数据访问权限的方式,可以较好的让低保密等级数据在联盟链中流动,但是不能解决数据获取方获取数据后在区块链之外转移数据,也不能解决高保密数据的上链和流通。现有联邦学习方法,可以在数据保密的条件下整合多方数据,挖掘数据价值。但仅限于神经网络和随机森林少数方法。现在不存在一种很好的方法,可以解除数据所有者和算法研发者之间的不信任,同时还能适用于各类算法模型。
技术实现要素:4.本发明的目的是根据上述现有技术的不足之处,提供一种基于区块链的数据共享与挖掘方法,该方法以区块链为基础,通过引入多方共同信任的计算节点,计算节点收到算法模型和数据后进行计算,各企业的数据不对其余企业暴露,且在数据交易过程中引入区块链,使得交易的每个步骤都不可修改且便于溯源,提高了交易安全性。
5.本发明目的实现由以下技术方案完成:一种基于区块链的数据共享与挖掘方法,其特征在于所述数据共享与挖掘方法包括以下步骤:(1)搭建联盟链,使所述联盟链包含有若干企业节点以及一个计算节点,其中,各所述企业节点分别由所属的企业运营;所述计算节点中具有各类算法的基础运行环境和控制流程,所述计算节点内算法和基础运行环境的修改操作需要各所述企业节点的审核授权;(2)在所述联盟链内进行数据交易:2.1)拥有算法的企业节点作为交易发起方,将算法的代码发送至所述计算节点中,并在所述联盟链的网络中进行数据交易的广播;2.2)拥有数据的企业节点收到数据交易的广播,审核权限后将数据发送至所述计算节点,并在所述联盟链中广播数据已发送;2.3)所述计算节点收到数据后,执行所述算法的代码;2.4)处理完成后保存计算结果,并删除所述算法以及所收到的数据,之后将所述
计算结果返回给各个提供数据的所述企业节点进行结果审核,所述计算节点向所述联盟链的网络中广播本次计算结束;2.5)各个提供数据的所述企业节点审核完所述计算结果后,将审核结果向所述联盟链的网络进行广播;2.6)所述计算节点在收到所有提供数据的所述企业节点的广播,当所有提供数据的所述企业节点通过审核时,将所述计算结果发送给所述交易发起方,并在所述联盟链的网络中广播本次数据交易结束。
6.所述联盟链中的各所述企业节点分别具有一个可以访问所述计算节点的只读账号,所述只读账号用以查看和审核所述计算节点中的算法和基础运行环境。
7.所述控制流程包括收到所述联盟链中其它的所述企业节点的广播信息后将操作信息存储入数据库中,收到算法的代码和数据后自动执行算法的代码,计算完成后删除算法的代码和数据。
8.所述企业节点在所述联盟链中公示自己所拥有的数据信息,所述数据信息包括数据字典、调用接口以及交易价格。
9.所述联盟链中的记账节点为所述企业节点、所述计算节点中的一种或两种组合。
10.步骤2.1中,广播的内容包括算法需要的数据、提供数据的企业节点、算法解决的问题以及计算结果表示的含义。
11.步骤2.1中,所述计算节点在收到算法的代码后对代码进行审核,审核内容包括代码中是否存在恶意攻击或者泄露数据的逻辑。
12.步骤2.5中,所述企业节点在对所述计算结果审核时,包括审核所述计算结果是否包含原始数据。
13.本发明的优点是:所提出的数据共享与挖掘系统,以区块链为基础,引入了多方共同信任的计算节点,计算节点收到计算模型和数据进行计算,各企业的核心资产不对其余企业暴露。在数据的交易过程中,引入区块链,使得交易的每个步骤都不可修改并且方便溯源,增加了交易过程中的安全性。
附图说明
14.图1为本发明中基于区块链的数据共享与挖掘方法的示意图。
具体实施方式
15.以下结合附图通过实施例对本发明的特征及其它相关特征作进一步详细说明,以便于同行业技术人员的理解:实施例:如图1所示,本实施例具体涉及一种基于区块链的数据共享与挖掘方法,包括以下步骤:【1】搭建联盟链:针对特定领域,联合多家企业形成联盟链,每家企业在联盟链中作为一个企业节点;使联盟链包含有若干家企业节点以及一个计算节点,其中,各个企业节点分别由所属的企业运营,计算节点中具有各类算法的基础运行环境(例如python代码的运行环境以及python常用的第三方库)和控制流程,利用linux操作系统的用户读写权限分离的机制,联
盟链中的各个企业节点各自拥有一个代码文件只读的账号,从而可以查看和审核计算节点中的基础运行环境和算法代码,仅当联盟链中的所有企业节点都通过时,计算节点中内的基础运行环境和算法代码才可以修改,以确保计算节点被各家企业信任。而所提到的控制流程,包括收到联盟链其余企业节点广播信息后将操作信息存入数据库,收到算法代码和数据后自动执行算法代码,计算完成后删除算法代码和数据。
16.此外,每家企业节点在联盟链中,公示自己所拥有的数据信息,包括数据字典、调用接口、交易价格等信息。联盟链中,区块链的记账节点可以仅为企业节点,或者为计算节点和企业节点都可以记账,记账节点的选择,包括pow、pos、dpos等方式。
17.本实施例以岩土勘察领域为例,如图1所示,联盟链中具有若干企业,包括企业a、企业b以及其余相关企业,各家企业在联盟链中展示自己所拥有的数据资源类型,并标明数据获取方式及条件。
18.企业a拥有上海十万个勘察孔数据,包括每个钻探孔的位置信息,各个钻探孔中土的厚度以及物理力学性质。企业b负责上海地铁的运营,拥有上海所有地铁的线路数据。企业b在业务场景中,希望知道隧道管片渗漏水和管片处于砂性土的相关性。为此企业b开发了算法代码,代码接收地铁管片的位置数据、渗漏水数据、所处地层数据,最终输出相关性。但企业b没有相关的地层数据,需要对算法代码进行数据补齐。
19.【2】在联盟链内进行数据交易:2.1)拥有算法的企业节点作为交易发起方,将算法的代码发送至计算节点中,并在联盟链的网络中进行数据交易的广播;计算节点在收到算法代码后对代码进行审核,保证代码不存在恶意攻击或者泄露数据的逻辑。
20.在本实施例中,企业节点b将其所开发的算法代码和部分数据发送至计算节点中,并向联盟链内其余的企业节点广播向企业节点a索取地层数据,本次交易开始,即图1中表示的过程
①
。
21.2.2)拥有数据的企业节点收到数据交易的广播,审核权限后将数据发送至计算节点,并在联盟链中广播数据已发送;在本实施例中,企业节点a收到数据交易的广播,企业节点a在审核过企业节点b的令牌及权限后,将数据发送至计算节点,并向联盟链其余企业节点广播,即图1中表示的过程
②
。
22.2.3)计算节点执行算法代码,并根据算法的逻辑处理收到的数据;在本实施例中,计算节点收到企业节点b的算法代码以及企业节点a的数据,之后根据算法代码的逻辑进行计算处理所收到的数据。
23.2.4)计算节点处理完成后保存计算结果,并删除算法代码以及所收到的数据,之后将计算结果返回给各个提供数据的企业节点进行结果审核,计算节点向联盟链的网络中广播本次计算结束;在本实施例中,计算节点在处理完成后保存计算结果,将计算结果发送给企业节点a,并将“计算结果已发送”这条信息进行广播,即图1中所示的步骤
③
。
24.2.5)各个提供数据的企业节点审核完计算结果后,将审核结果向联盟链的网络进行广播;此步骤可以检查计算结果是否包含原始数据;在本实施例中,企业节点a在收到计算节点所发送的计算结果后进行审核,并向全
网广播审核结果,即图1中所示的步骤
④
。
25.2.6)计算节点在收到所有提供数据的企业节点的广播,当所有提供数据的企业节点通过审核时,将计算结果发送给交易发起方,并在联盟链的网络中广播本次数据交易结束;在本实施例中,计算结果收到广播的审核结果,如果审核通过,则将计算结果发送给企业节点b,本次交易结束,即图1中表示的过程
⑤
。
26.本实施例的有益效果在于:能够解决现有数据共享挖掘系统难以共享高保密等级数据和算法适用性差的问题。为数据挖掘技术提供有效的技术支持。以区块链为基础,引入了多方共同信任的计算节点,计算节点收到计算模型和数据进行计算,各企业的核心资产不对其余企业暴露。在数据的交易过程中,引入区块链,使得交易的每个步骤都不可修改并且方便溯源,增加了交易过程中的安全性。