一种基于区块链的分布式数据融合平台的制作方法

文档序号:26308015发布日期:2021-08-17 13:48阅读:130来源:国知局
一种基于区块链的分布式数据融合平台的制作方法
本发明涉及区块链
技术领域
,具体涉及一种基于区块链的分布式数据融合平台。
背景技术
:随着信息技术的发展,人们的生活越来越离不开信息的指引。同时人们在日常生活中,也产生越来越多的数据。这些数据在诸如网络购物平台、银行、兴趣网站、app、政府机构等产生并存储。由于利益和隐私保护问题,这些数据分散在各个机构及企业中,形成了一个个的信息孤岛。随着大数据技术的兴起和发展,数据的价值得以越来越多的挖掘和使用。基于大数据技术的应用,能够为人们带来巨大的利益和方便,降低社会运行成本,提高生活体验。如交通规划、商品推荐、兴趣推介、语音识别及人工智能等。目前阻碍大数据技术发展的瓶颈是数据不全和数据量不足,制约了相关技术的进步和发展。因而打通信息孤岛,实现数据的共通共享的呼声越来越高。破除信息孤岛不仅要解决数据收益问题、保护数据的隐私问题,同时还要解决数据不同构的问题。中国专利cn108549709b,公开了一种区块链内外多源异构数据基于广度学习算法的融合方法,其公开日为2019年2月22日,包括步骤s1:将多种类型的数据包括用户视角的数据和行为视角的数据,映射到高维非线性的潜在空间中的多源数据;步骤s2:使用词嵌入技术将多源数据转化为低维空间中的向量,得到多源数据简单的,初步的分布式表示xp和xu,xp和xu分别为行为视角的数据分布式表示和用户视角的数据分布式表示,将其作为卷积神经网络模型的输入;步骤s3:将xp和xu通过卷积神经网络模型进行卷积操作,得到卷积操作提取的用户视角up抽象特征c和行为视角抽象特征c;步骤s4:对于行为视角抽象特征cp,继续作为lstm模块的输入,可以得到lstm模块的最后时刻隐藏层输出ht,并将最后时刻隐藏的输出ht作为行为视角的最终特征;步骤s5:通过趋势预测层联合优化用户视角抽象特征cu和行为视角的最终特征ht,并预设整个模型架构的最小化误差值。其记载内容提供了一种融合不同构造的数据的方法,但其不能解决多源数据融合过程中涉及的收益问题和隐私问题,导致数据源方分享数据的动力不足。技术实现要素:本发明要解决的技术问题是:目前缺乏解决数据融合过程中的收益和隐私保护问题的技术方案的问题。提出了一种基于区块链的分布式数据融合平台,本数据融合平台能够确保数据源方收益,同时保证数据源方数据的隐私和安全。为解决上述技术问题,本发明所采取的技术方案为:一种基于区块链的分布式数据融合平台,包括:若干个数据存储站,分别与多个数据源方连接,接收数据源方提交的原始数据,将原始数据关联数据源方标识后加密存储,提取原始数据的哈希值,关联数据源方标识后上传区块链存储;摘要服务器,与数据源方和数据需求方连接,数据源方将所拥有的数据生成描述摘要和示例数据,将描述摘要和示例数据提交给摘要服务器公开,数据需求方查看摘要服务器公开的描述摘要,找到所需的数据源方的数据;模型服务器,与数据需求方和数据存储站连接,根据对应的示例数据制作数据处理模型,将数据处理模型提交模型服务器,所述模型服务器使用示例数据验证数据处理模型后,将数据处理模型登记上线;交易服务器,与数据源方、数据需求方、模型服务器和数据存储站连接,展示数据源方的数据行总数和单行数据定价,数据需求方选择所需要的数据行,将数据行对应的代币转账到指定账户,所述交易服务器通知模型服务器发送给对应数据源方的数据存储站,并将数据需求方选取的数据行发送给所述数据存储站,所述数据存储站调取数据行对应的数据,并代入所述数据模型执行,将执行结果发送给交易服务器,所述交易服务器将执行结果发送给数据需求方,同时将相应代币转账到数据源方的账户。作为优选,所述数据存储站包括若干个数据存储节点和数据分发节点,所述数据存储节点仅与数据分发节点连接,所述数据分发节点与若干个数据源方、区块链、模型服务器和交易服务器连接,所述数据分发节点接收数据源方提交的数据,并检验数据的完整性,检验通过后为收到的数据分配索引编号作为数据行,将索引编号关联数据源方反馈给交易服务器,所述数据分发节点将数据行发送给若干个数据存储节点存储;所述数据存储节点提取收到的每个数据行的哈希值,将全部数据行的哈希值一起再次提取哈希值作为二次哈希值,将二次哈希值通过所述数据分发节点上传区块链,数据存储节点将收到的数据行加密存储;所述数据分发节点接收模型服务器发送的数据处理模型和所需要处理的数据行的索引编号,将数据处理模型及索引编号发送给若干个数据存储节点,所述数据存储节点调取并解密索引编号对应的数据行,代入数据处理模型,将结果关联索引编号反馈给所述数据分发节点,所述数据分发节点收到全部反馈的结果后,将结果提交给所述交易服务器。作为优选,所述数据存储节点执行数据处理模型时,列举数据处理模型的输出量,将每个输出量涉及的数据处理语句抽出,获得仅输出一个输出量的子模型,提取子模型的哈希值,作为子模型哈希值并关联时间戳存储,将存储的子模型哈希值互相对比,统计相同子模型哈希值出现的频率,若所述的频率超过预设的阈值,则相应子模型哈希值的子模型调出,将每个数据行代入所述子模型,将子模型的输出量关联数据行存储,再次收到存在相同子模型的数据处理模型时,直接读取出输出量,不再执行对应子模型。作为优选,数据存储节点将收到的数据行加密存储时,生成数字秘钥,所述数字秘钥的长度不小于数据行包括的字段数k,从数字秘钥中选取前k位,将选取的k位数字与数据行的字段对齐,将字段循环纵向移位,纵向移位量为k位数中对应的数值,使用数字秘钥加密本次收到的全部数据行,解密时使用数字秘钥解密,而后使用数字秘钥的前k位反向循环纵向移位相应字段,获得原始的数据行。作为优选,所述模型服务器对收到的数据处理模型进行审核,所述审核包括标签审核和计算审核,所述标签审核查询数据处理模型的输出量,若输出量为标签,所述标签表示原始数据中某个数据量的取值区间,则将对应输出量审核通过,所述计算审核查询数据处理模型的输出量,若输出量为数值,则判断所述数值输出量计算式所需要的输入量,若输入量不少于2个,则将对应的数值输出量审核通过,所述模型服务器判断所述数据处理模型中的输出量是否均被审核通过,若存在未被审核通过的输出量,则审核不通过,通知数据需求方修改数据处理模型。作为优选,所述数据分发节点将每个数据行都分发给若干个数据存储节点,分发时,所述数据分发节点将数据行中的数值型字段的值,拆分成与数据存储节点数量匹配的若干个加数,将若干个加数分别分配给一个数据存储节点作为对应数值型字段的值,若干个所述数据存储节点执行数据处理模型时,建立安全多方计算,获得数据处理模型的输出量。作为优选,所述数据分发节点将每个数据行都分发给若干个数据存储节点时,所述数据分发节点将数据行中的数值型字段的值分别求2次方值至n次方值,分别为0次方值至n次方值在数据行中建立新字段,数值型字段的0次方值至n次方值分别拆分成与数据存储节点数量匹配的若干个加数,将若干个加数分别分配给一个数据存储节点作为相应字段的值;所述数据存储节点执行数据处理模型,建立安全多方计算前,判断欲建立安全多方计算的数值输出量计算式是否能够进行泰勒展开,若能够进行泰勒展开且展开后仅包含数值型字段值的0次方至n次方的加权和,则若干个所述数据存储节点各自将数值输出量计算式进行泰勒展开,将所存储的0次方值至n次方值代入泰勒展开后的计算式,将计算式结果签名后在若干个所述数据存储节点之间广播,当某个数据存储节点收到附带全部数据存储节点签名的广播值时,将广播值求和,将和作为输出量的值。作为优选,所述数据分发节点将数据处理模型下发数据存储节点时,判断数据处理模型中包含的数值输出量计算式是否能够进行泰勒展开,若能够进行泰勒展开,则将数值输出量计算式替换为相应泰勒展开后,发送给数据存储节点。作为优选,所述数据分发节点将数据处理模型下发数据存储节点时,判断数据处理模型中包含的数值输出量计算式是否能够进行泰勒展开,若能够进行泰勒展开且展开后仅包含数值型字段值的0次方至n次方的加权和,则使用示例数据代入泰勒展开的前n项,获得使用泰勒展开计算的误差,误差以百分比表示,若误差超过设定阈值,则通知所述数据存储节点通过建立安全多方计算的方式计算对应的输出量。本发明的实质性效果是:1)数据需求方通过查阅描述摘要和示例数据,找到所需数据,而后在区块链上预先支付代币,数据源方提供数据服务后,由交易服务器自动转账到数据源方账户,保证了数据源方获得合理的收益;2)数据源方将数据提供到本平台中的数据存储站中加密存储,即保证了数据的安全,也避免数据源方不提供数据或者提供数据不对应,消除了数据需求方的顾虑;3)采用数据需求方提供数据处理模型,由数据存储站执行后,将执行结果提供给数据需求方,数据源方的数据不需要离开数据存储站,也不会将隐私内容提供给数据需求方,但数据需求方能够获得其所需要的信息,因而能够有效保护数据的安全和隐私。附图说明图1为实施例一分布式数据融合平台结构示意图。图2为实施例一数据存储站结构示意图。图3为实施例一数据存储站存储数据行过程示意图。图4为实施例一子模型示意图。图5为实施例一模型服务器审核数据处理模型示意图。图6为实施例一数据存储节点加密数据行示意图。图7为实施例二数据处理模型执行过程示意图。其中:10、数据源方,20、数据存储站,21、数据存储节点,22、数据分发节点,30、模型服务器,31、数据处理模型,40、交易服务器,50、摘要服务器,60、数据需求方,70、区块链,71、代币,210、哈希值,211、数据行,212、二次哈希值,213、数字秘钥,311、子模型,312、输出量。具体实施方式下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。实施例一:一种基于区块链70的分布式数据融合平台,请参阅附图1,包括:若干个数据存储站20,分别与多个数据源方10连接,接收数据源方10提交的原始数据,将原始数据关联数据源方10标识后加密存储,提取原始数据的哈希值210,关联数据源方10标识后上传区块链70存储;摘要服务器50,与数据源方10和数据需求方60连接,数据源方10将所拥有的数据生成描述摘要和示例数据,将描述摘要和示例数据提交给摘要服务器50公开,数据需求方60查看摘要服务器50公开的描述摘要,找到所需的数据源方10的数据;模型服务器30,与数据需求方60和数据存储站20连接,根据对应的示例数据制作数据处理模型31,将数据处理模型31提交模型服务器30,模型服务器30使用示例数据验证数据处理模型31后,将数据处理模型31登记上线;交易服务器40,与数据源方10、数据需求方60、模型服务器30和数据存储站20连接,展示数据源方10的数据行211总数和单行数据定价,数据需求方60选择所需要的数据行211,将数据行211对应的代币71转账到指定账户,交易服务器40通知模型服务器30发送给对应数据源方10的数据存储站20,并将数据需求方60选取的数据行211发送给数据存储站20,数据存储站20调取数据行211对应的数据,并代入数据模型执行,将执行结果发送给交易服务器40,交易服务器40将执行结果发送给数据需求方60,同时将相应代币71转账到数据源方10的账户。如表1所示,使用本实施例产生的描述摘要记载了数据的来源、字段、产生数据的群体描述、数据产生的时间、数据量、完整程度以及准确程度。表1银行提供的某数据的描述摘要xx银行甲支行本支行普通用户账户近两年用卡数据数据量:5万行数据介绍:数据由本支行普通账户类型用户的用卡流水数据,经过简单的初步统计产生。本支行位于xx市xx区xx路,用户主要为附近8公里内的居民及附近的公司职员用作工资发放卡。筛除了账户使用频次极低的用户,频次极低指每年流水不足10条且流水金额总和少于1千。数据完整无缺漏,用卡数据真实。数据字段包括姓名、年龄、存款余额、近两年每月收入、近两年每年收入、近两年每月消费和近两年每年消费。其中,消费是指资金流向商品、服务提供主体的资金支出,用户卡间转账、信用卡还款及购买理财产品不计入月消费和年消费。根据表1的描述摘要,数据需求方60能够清晰的知道所要出售的数据,是在什么时间段产生的,产生数据对应人群是哪些,数据中是否包含大量无用的数据,数据完整程度和准确程度如何。比如一些超市办理的会员卡,其中的姓名、年龄、生日、住址等信息,由于超市无法核实用户是否填写了错误的信息,因而无法保证数据的真实性。而表1中银行提供的数据,经过了银行对用户身份信息的核实操作,因而其用卡数据真实可信。通过数据中包含的字段,数据需求方60能够判断该数据能够提供所需要的信息。表1中的描述摘要表示数据主要为每月的收入、支出情况,能够掌握用户的财富情况。当然,准确全面的掌握用户的财富情况,需要多家银行的数据。仅凭借一家银行,只能证明用户的财务在某种水平之上。因而本实施例最佳的实施方式是接入多家银行,如图4中所示,综合卡a和卡b来计算用户的月收入、月支出情况。不过在仅购买一家银行的数据的情况下,筛选出月收入大于某个值,也至少表面该用户的收入水平至少在该值之上。月支出大于某个设定值,则也能够但凭借一个银行的数据,证明该用户的消费水平在某个标准之上,如月消费金额大于1万为高消费。在a银行提供的数据中,用户甲的月消费的平均值达到1万4千,则能够明确判断用户甲属于高消费人群。如表2所示,为银行甲支行提供的若干条示例数据。示例数据主要是用于表明数据的格式,能够清楚的展示数据采用的具体格式,方便数据需求方60制作数据处理模型31。如表2中,存款用带有半角逗号的资金格式,末尾带有小数点,并带有两位小数。其中记载了1月至12月的每月银行卡的收入,用户张迪的月收入均为30,000,张迪为银行填入的化名,其金额30,000也是银行模仿其用户的真实数据,填入的类似真实的数据的示例性数据,并非原始真实数据。可以推测该卡为张迪的工资卡,也同时可以看出用户张迪的消费较高,属于高消费人群。用户王恺的年龄较小,同时也能够通收入看出该卡为王恺的工资卡,用户王恺为低收入低消费人群。用户何昱的年龄较大,每月该卡的收入不定,且金额不大,但该卡的余额较多,每月的支出也较大。可见该卡并非用户何昱的工资卡,其主要收入可能在其他银行的账户中有所体现,其消费较高,属于中高消费的人群,且财富属于中上水平。由示例数据,数据需求方60可以清晰的看到其能够获得什么样的数据,分析出什么样的信息,若该信息对自身业务有用,则数据需求方60就会考虑支付数据源方10开出的价格,购买该数据,为数据源方10带来收益,同时为数据需求方60提供有用的信息。示例数据中,若字段具有边界值,则应在示例数据中有取边界值的数据行。从而借助本实施例技术方案,实现了数据的流动,产生价值。表2银行提供的示例数据索引编号姓名年龄存款1月收入…1月消费…23511241张迪39590,158.4130,000.00…16,200.05...23511242王恺2312,360.505,000.00…2,683.00…23511243何昱45951,354.602,500.00…8,690.00…比如,汽车销售商,购买了某市银行的数据,根据银行提供的数据,其分析出当前尚未购买第一辆车的已工作年轻群体的存款余额主要分布区间、收入水平主要分布区间、支出主要分布区间,就可以根据分析出的数据,推算出年轻群体实际能够用于购买汽车的资金,以及车贷的承受能力。根据该区间,设计生产售价在该区间内的针对年轻群体的车型,使得年轻群体有能力立即购买。从而实现汽车销售的营收增加,同时方便了年轻群体的出行。同样的,政府部门对于城市道路的承载能力,也可以通过分析汽车厂商的车型销量数据、售价数据,结合本市年轻群体数量和主要财富区间,预估汽车保有量的增加或减少趋势。用于道路建设或者限行措施的辅助参考信息。数据源方10将描述摘要和示例数据提交给摘要服务器50后,将数据总量、索引编号起止值和单价提交给交易服务器40。交易服务器40进行展示,并允许数据需求方60选择索引编号起止值,进行数据购买。数据需求方60查看描述摘要和示例数据后,根据数据行211单价,决定购买量,并具体勾选索引编号起止值,提交给交易服务器40。数据需求方60同时将欲执行的数据处理模型31提交给交易服务器40。交易服务器40生成订单,订单记录数据源方10、索引编号起止值、数据需求方60、数据处理模型31标识以及订单金额。订单创建后,进入待支付状态。数据需求方60根据订单金额,支付相应的代币71到指定账户。本实施例采用的代币71为稳定币,稳定币即与法定货比的兑换比例为固定不变的一种代币71。同时区块链70中接入银行节点,用于进行代币71的兑换和兑现服务。使用代币71进行支付,不仅能够借助区块链70实现交易过程的不可篡改。同时也方便交易服务器40处理交易的状态和执行转账操作。数据需求方60支付后,订单进入待执行状态。此时数据源方10是没有机会反悔的,数据需求方60将数据处理模型31提交给模型服务器30,并审核通过后,会自动下发到数据存储站20执行,并将执行结果,也即数据处理模型31的输出量312,反馈给交易服务器40,交易服务器40将执行结果发送给数据需求方60指定地址后,就将代币71自动转入数据源方10的账户,并将订单状态修改为已完成。数据源方10收到代币71后,可以选择到区块链70接入的银行兑现为现金,也可以暂存在区块链70上的账户上,用于购买其他人提供的数据。本实施例中,交易服务器40还按比例收取订单一定的手续费。本实施例单独设置了摘要服务器50和交易服务器40。是因为交易服务器40需要更为安全的环境,且处理交易信息也需要较宽的网络。相对的,摘要服务器50不需要高度安全的环境,其对网络通畅程度要求也较低,因而在平台接入业务量较大时,采用单独设置摘要服务器50和交易服务器40的实施方式,若业务量较少,将摘要服务器50和交易服务器40合并亦可。数据需求方60通过查阅描述摘要和示例数据,找到所需数据,而后在区块链70上预先支付代币71,数据源方10提供数据服务后,由交易服务器40自动转账到数据源方10账户,保证了数据源方10获得合理的收益,避免数据源方10提供数据后,数据需求方60不支付、少支付或者晚支付收益,降低了数据源方10面临的风险。数据源方10将数据提交给数据存储站20,为提高数据存储站20的安全性,本实施例中数据存储站20包括若干个数据存储节点21和数据分发节点22,数据存储节点21仅与数据分发节点22连接,数据分发节点22与若干个数据源方10、区块链70、模型服务器30和交易服务器40连接。数据存储节点21仅与数据分发节点22连接,可以通过设置网络访问白名单的方式,限定网络访问,从而大幅提高数据存储节点21的安全性。数据分发节点22建立的连接较多,但由于数据分发完成后,数据分发节点22不再保留任何数据,因而也具体较高的安全性。进一步,数据分发节点22在接收到完整的数据后,在讲数据分发完成前,可以暂时断网,分发完成后再次连接网络。多个数据源方10要提供数据时,可以先查询数据分发节点22是否可用,排队等到数据分发节点22可用后,才连接数据分发节点22进行数据的传输。为减少等待时间,数据分发节点22可以采用预约的方式进行数据的接收。虽然会带来一定的麻烦,但保证数据的安全和隐私,事关数据源方10的重要利益,因而有必要施行。请参阅附图2,数据分发节点22接收数据源方10提交的数据,并检验数据的完整性,检验通过后为收到的数据分配索引编号作为数据行211,将索引编号关联数据源方10反馈给交易服务器40,数据分发节点22将数据行211发送给若干个数据存储节点21存储。数据源方10将数据提供到本平台中的数据存储站20中加密存储,即保证了数据的安全,也避免数据源方10不提供数据或者提供数据不对应,消除了数据需求方60的顾虑。数据分发节点22检查收到的数据行211中,是否存在某些字段值为空。计算字段值为空的数量占整个数据的比例。即分母为数据行211数量乘以每行数据的数据列数,分子为全部取值为空的数据值的数量。作为机算空值率,将机算空值率提供给摘要服务器50,并在描述摘要中显示。请参阅附图3,数据存储节点21提取收到的每个数据行211的哈希值210,将全部数据行211的哈希值210一起再次提取哈希值210作为二次哈希值212,将二次哈希值212通过数据分发节点22上传区块链70,数据存储节点21将收到的数据行211加密存储;数据分发节点22接收模型服务器30发送的数据处理模型31和所需要处理的数据行211的索引编号,将数据处理模型31及索引编号发送给若干个数据存储节点21,数据存储节点21调取并解密索引编号对应的数据行211,代入数据处理模型31,将结果关联索引编号反馈给数据分发节点22,数据分发节点22收到全部反馈的结果后,将结果提交给交易服务器40。索引编号为全局唯一编号,能准确指定到任何一行数据行211,方便数据的管理。通过提取数据行211的哈希值210,并将一次收到的全部数据的数据行211的哈希值210再次提取哈希值210,作为二次哈希值212,上传区块链70存储,能够验证数据行211在存储后,是否被修改过,证实数据的真实性。若出现数据行211的哈希值210大量相同,则表示数据源方10提供了与他人相同的数据。由于无法仅从数据相同,就判断某个数据源方10存在违规行为,因而本实施例采用仅存储接收到的数据,但不予在摘要服务器50和交易服务器40上展示,同时提示数据相同两个数据源方10提供数据权属证明。若同一个数据源方10两次提交了相同的数据,则后提交的仅做存储,不在在摘要服务器50和交易服务器40上展示,同时提醒数据源方10提交了重复的数据。数据存储节点21执行数据处理模型31时,列举数据处理模型31的输出量312,将每个输出量312涉及的数据处理语句抽出,获得仅输出一个输出量312的子模型311,请参阅附图4。提取出子模型311的哈希值210,作为子模型311哈希值210并关联时间戳存储,将存储的子模型311哈希值210互相对比,统计相同子模型311哈希值210出现的频率,若的频率超过预设的阈值,则相应子模型311哈希值210的子模型311调出,将每个数据行211代入子模型311,将子模型311的输出量312关联数据行211存储,再次收到存在相同子模型311的数据处理模型31时,直接读取出输出量312,不再执行对应子模型311。比如表2所示的示例数据中,数据处理模型31高频率的出现计算月均收入额、月均消费额、月均消费额与存款的比值这3个量。因而数据存储节点21在数据行211末尾新建月均收入额、月均消费额、月均消费额与存款的比值这3个字段,将每行数据行211计算出相应值,填入并存储。下次执行的数据处理模型31,进行同样的计算时,可以直接读取所存储的结果,不需要再进行具体的计算。通过比对子模型311的哈希值210就可以准确判断子模型311是否相同。对于比较复杂的子模型311而言,能够大幅加快数据处理模型31的执行效率。子模型311的获得,是通过从数据处理模型31的输出量312向前寻找计算式、中间量,并最终找到涉及到的原始数据字段,输出量312涉及到的计算式、中间量和原始数据字段,构成了一个子模型311。如图4所示,输出量312为高收入/中等收入/低收入,就涉及到同一个用户在银行a和银行b的两张银行卡中的存款-卡a字段、存款-卡b字段、年收入-卡a字段和年收入-卡b字段,4个字段进行计算获得最终的收入划分等级。本实施例提供了一个计算划分的方式示例,具体如下:现有收入=存款-卡a+存款-卡b;现有收入指数=(现有收入/常数c1)的平方;收入增长潜力=年收入-卡a+年收入-卡b;收入增长潜力指数=e的(收入增长潜力/常数c2)次方;收入指数=现有收入指数+收入增长潜力指数;划分区间:(0,w1),(w1,w2),(w2,+∞),中间量-收入指数按划分区间,得出收入等级。w1和w2的值由银行根据其储户存款的分布情况,自行确定。常数c1取当地平均存款,常数c2取当地最低工资标准对应的年收入。(0,w1),(w1,w2),(w2,+∞)分别对应高收入/中等收入/低收入。请参阅附图5,模型服务器30对收到的数据处理模型31进行审核,包括步骤a1)模型服务器30对收到的数据处理模型31进行审核,审核包括包括标签审核和计算审核;步骤a2)标签审核查询数据处理模型31的输出量312,若输出量312为标签,标签表示原始数据中某个数据量的取值区间,则将对应输出量312审核通过;步骤a3)计算审核查询数据处理模型31的输出量312,若输出量312为数值,则判断数值输出量312计算式所需要的输入量,若输入量不少于2个,则将对应的数值输出量312审核通过;步骤a4)进行下一个输出量的审核,直到全部输出量被审核,进入步骤a5);步骤a5)模型服务器30判断数据处理模型31中的输出量312是否均被审核通过;步骤a6)若存在未被审核通过的输出量312,则审核不通过,通知数据需求方60修改数据处理模型31。审核的目的是为了避免能够从数据处理模型31执行结果,能够准确的反推出原始数据的值。如直接读取原始数据的值,不做任何处理,就作为数据处理模型31的输出量312,这样是审核不通过的。将原始数据的值求平方后,作为输出量312,也能够得出原始数据,因而也无法通过审核。但将原始数据中的数值量,按照预设的划分区间划分,每个划分区间对应一个标签,标签作为输出,则能够有效隐藏原始数据,因而可以直接审核通过。若对原始数据进行统计总值或均值,则可直接审核通过。若涉及到计算,则判断计算涉及到的原始数据字段是否不小于2,若不小于2,则可以通过,因通过两个量进行计算后,无法反推出原始数据的取值。然而计算总和或者取均值计算,均会涉及到不止2个原始数据,因而通过判断计算涉及到的原始数据字段是否不小于2即可。数据存储节点21将收到的数据行211加密存储时,生成数字秘钥213,请参阅附图6,数字秘钥213的长度不小于数据行211包括的字段数k,从数字秘钥213中选取前k位,将选取的k位数字与数据行211的字段对齐,将字段循环纵向移位,纵向移位量为k位数中对应的数值,使用数字秘钥213加密本次收到的全部数据行211,解密时使用数字秘钥213解密,而后使用数字秘钥213的前k位反向循环纵向移位相应字段,获得原始的数据行211。本实施例中,数字秘钥213采用十六进制。数据源方10一次提供的数据通常上千行万行,使用十六进制秘钥会使数据循环纵向移位移动0至15位。如表3所示,为表2中的示例数据,进行循环纵向移位后的数据。由于本实施例中示例数据仅有3行,因而以前k位取值0,1,2作为例子。表3示例数据循环纵向移位结果数字秘钥位值0221…1...索引编号姓名年龄存款1月收入…1月消费...23511241张迪2312,360.502,500.00…16,200.05...23511242王恺45951,354.6030,000.00…2,683.00...23511243何昱39590,158.415,000.00…8,690.00...由表3可见,经过循环纵向移位后,姓名张迪的用户,存款仅1万2千元,收入也仅2千多,但月消费却高达1万6千以上,完全不具有合理性。可见,经过循环纵向移位后,改变了数据的真实性。在数据加密的基础上,进一步形成了对数据价值的保护。即使数据因秘钥泄露,但若窃取方不知道如何复原循环纵向移位,根据该数据进行分析,将会得到错误信息。有效保护了数据的隐私性。进一步的,用于循环纵向移位的指定位是中间的指定k位,或者前2k位,两两求和作为循环纵向移位量,或者从第一位开始寻找下一位偶数并丢弃奇数作为循环纵向移位量等规则。这些规则每个数据存储节点21均不一样。仅由数据存储节点21自身保存和使用,不对外公开。因而具有高度的保密性,且难以被泄露。进一步的,每个数据存储节点21建立循环纵向移位的规则表,按表中的顺序依次使用。复原时,查阅历史存储数据的次数,数据源方10提交一次原始数据作为一次,根据历史次数,找到对应的循环纵向移位规则,从而复原出原始数据。本实施例采用数据需求方60提供数据处理模型31,由数据存储站20执行后,将执行结果提供给数据需求方60,数据源方10的数据不需要离开数据存储站20,也不会将隐私内容提供给数据需求方60,但数据需求方60能够获得其所需要的信息,因而能够有效保护数据的安全和隐私。由于数据需求方60并没有直接得到任何原始数据,因而不会出现原始数据在出售几次后,即遭泄露,不仅导致隐私泄露,也导致后续原始数据不再具有价值。实施例二:一种基于区块链70的分布式数据融合平台,本实施例在实施例一的基础上,对数据存储节点21执行数据处理模型31的方式进行了进一步的改进,以提高对数据隐私的保护。数据分发节点22将每个数据行211都分发给若干个数据存储节点21,分发时,数据分发节点22将数据行211中的数值型字段的值,拆分成与数据存储节点21数量匹配的若干个加数,将若干个加数分别分配给一个数据存储节点21作为对应数值型字段的值,若干个数据存储节点21执行数据处理模型31时,建立安全多方计算,获得数据处理模型31的输出量312。更进一步的,本实施例中,数据分发节点22将每个数据行211都分发给若干个数据存储节点21时,包括步骤:步骤b1)数据分发节点22将数据行211中的数值型字段的值分别求2次方值至n次方值;步骤b2)分别为0次方值至n次方值在数据行211中建立新字段;步骤b3)数值型字段的0次方值至n次方值分别拆分成与数据存储节点21数量匹配的若干个加数,将若干个加数分别分配给一个数据存储节点21作为相应字段的值;数据存储节点21执行数据处理模型31,建立安全多方计算前,步骤b4)判断欲建立安全多方计算的数值输出量312计算式是否能够进行泰勒展开,若能够进行泰勒展开且展开后仅包含数值型字段值的0次方至n次方的加权和,反之,进入步骤b7);步骤b5)则若干个数据存储节点21各自将数值输出量312计算式进行泰勒展开,将所存储的0次方值至n次方值代入泰勒展开后的计算式;步骤b6)将计算式结果签名后在若干个数据存储节点21之间广播,当某个数据存储节点21收到附带全部数据存储节点21签名的广播值时,将广播值求和,将和作为输出量312的值。步骤b7)建立安全多方计算求解输出量的值。首先数值型字段的原值拆分为若干个加数,进行数据处理模型31的计算。如表2中是示例数据,假设用户张迪每个月的收入均为30,000.00,那么计算月均收入时,也将得到月均3万的结果。若数据分发节点22收到此数据行211时,将每月收入中的数值30,000.00,拆分成3个加数,30,000.00=20,000.00+50,000.00-40,000.00。为方便起见,假设数据分发节点22将1至12月的月收入均拆分成这3个数。则按照本实施例的技术方案,数据存储节点21一计算出的月均收入是20,000.00,数据存储节点21二计算出的月均收入是50,000.00,数据存储节点21三计算出的月均收入是-40,000.00,三个数据存储节点21各自将计算获得的月均收入签名广播,当某个数据存储节点21收到三个数据存储节点21签名的月均收入时,将这三个月均收入求和,即可得到正确的月均收入。对于需要进行较为复杂的数学运算的子模型311,如附图4所示的商超会员卡中的数据,获得消费划分区间的计算式为:消费频次指数=e的(消费频次)次方,年消费额指数=ln(年消费额),消费指数=消费频次指数+年消费额指数,划分区间:(0,b1),(b1,b2),(b2,+∞),根据消费指数落入的区间,获得最终数据行211对应用户的消费能力标签。计算式中,消费频次占据主要的比重,年消费额则显示了消费的能力,对消费能力也有一定的贡献。频繁进行消费的用户消费积极性较高,通常生活较为宽裕,因而具有较多的时间进行消费。而那些消费次数不多,但年消费额较大的用户,虽然其购买力较强,但其消费积极性太低,商业价值反而不大,因而进行取对数处理。本实施例中的消费频次指月平均消费次数,消费至使用一次商超卡进行付费,且一日内多次使用仅记为一次频次。因而消费频次的取值范围为[0,31]。自然对数的指数函数进行泰勒展开后,仅包含x的1次方至n次方的加权和。具体为:数据分发节点22收到数据行211后,计算消费频次的2次方至n次方,本实施例中n取值9,而后将消费频次的1次方至n次方的值分别拆分为3个加数,将3个加数分配给3个数据存储节点21。即:,,,,,…将a01、a11、a21、a31、a41…分配给数据存储节点211存储,将a02、a12、a22、a32、a42…分配给数据存储节点212存储,将a03、a13、a23、a33、a43…分配给数据存储节点213存储。当执行数据处理模型31时,数据存储节点21判断可以使用泰勒展开进行计算。因而不在构建安全多方计算,复原消费频次的值。而是直接从已存储的数据中,读取各自分配到的消费频次0次方值a01乘以系数1,分配到的消费频次1次方值a11乘以系数1,分配到的消费频次2次方值a21乘以系数1/2!,分配到的消费频次3次方值a31乘以系数1/3!,分配到的消费频次4次方值a41乘以系数1/4!,直到分配到的消费频次9次方值a91乘以系数1/9!,而后求和,再加上泰勒展开的常数项1,将结果签名后通过数据分发节点22进行广播,广播范围仅限3个数据存储节点21和数据分发节点22之间。3个数据存储节点21广播的和再求和,结果就是e的(消费频次)次方。由于仅计算到消费频次的9次方,因而存在误差,但误差已足够小,不影响最终的消费划分区间。由此,本实施例提供了一种不同于安全多方计算的,同样能够实现隐私计算的方式,本实施例提供的方式具有更高的执行效率。本实施例具有可行性的证明如下:sum1、sum2、sum3分别表示数据存储节点211至3广播的和,签名广播后再求和,当用户每月消费频次为3时,最后一项的值相对于前两项的和4来讲,后续项的值已经足够小,精度已足够。若要提高精度,则进一步提高n的值即可。且提高n的值,对于本方法而言,其计算复杂度并不会大幅增加,是完全可以接受的。由于函数ln(x)的泰勒展开后,不是仅包含x的1次方至n次方的加权和,而是包含(x-1)/(x+1)的奇数次方的加权和,因而需要采用安全多方计算,将年消费额拆分的加数,复原会原来的年消费额的值,再进行年消费额指数的计算。数据分发节点22将数据处理模型31下发数据存储节点21时,判断数据处理模型31中包含的数值输出量312计算式是否能够进行泰勒展开,若能够进行泰勒展开且展开后仅包含数值型字段值的0次方至n次方的加权和,则将数值输出量312计算式替换为相应泰勒展开后,发送给数据存储节点21。数据分发节点22将数据处理模型31下发数据存储节点21时,判断数据处理模型31中包含的数值输出量312计算式是否能够进行泰勒展开,若能够进行泰勒展开,则使用示例数据代入泰勒展开的前n项,获得使用泰勒展开计算的误差,误差以百分比表示,若误差超过设定阈值,则通知数据存储节点21通过建立安全多方计算的方式计算对应的输出量312。相对于实施例一,本实施例将原始数据中的数值型数据,进一步加工后,再发送到数据存储节点21存储,使得每个数据节点存储的数据均不是正确的原始数据,进一步提升了原始数据的安全,降低数据源方10的顾虑。同时本实施例提供的计算方案,避免建立安全多方计算,仅通过简单的加权求和,就可以获得准确度满足需要的计算结果,能够大幅加快数据处理模型31的执行效率,同时也避免直接存储原始数值,进一步提高了数据的安全性。以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1