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

一种基于区块链的数据处理方法、装置、系统及电子设备

文献发布时间:2023-06-19 10:41:48


一种基于区块链的数据处理方法、装置、系统及电子设备

技术领域

本申请涉及区块链技术领域,特别涉及一种基于区块链的数据处理方法、装置、系统及电子设备。

背景技术

目前,在拍卖平台中,一般会需要第三方信用机构参与,对拍卖进行监督。但是,可能会存在第三方信用机构与参与者串通等情况出现,导致拍卖的可信度不高。

因此,如何保证拍卖平台执行拍卖交易的可信度,成为问题。

发明内容

本申请提供如下技术方案:

本申请一方面提供一种基于区块链的数据处理方法,包括:

一种基于区块链的数据处理方法,包括:

区块链的至少两个节点分别获得一组数值分片组,所述数值分片组包括至少两个数值分片,且所述至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且所述至少两个节点获得的数值分片组相互具有差异;

所述至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,并广播所述第一处理结果,所述第一处理结果隐含有所述至少两个数值分片的大小关系;

所述至少两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果,所述第二处理结果与对多个表征各个所述竞拍者的投标价格的数值进行比较得到的结果相关。

所述至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,包括:

所述至少两个节点分别构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子;

构建一个分享值,并基于所述分享值构建与所述第一算子等价的第二算子;

确定用于计算所述第二算子的最后一位符号位的各个第三算子,并确定各个所述第三算子的数值;

对多个所述第三算子的数值进行异或运算,得到异或运算结果,所述异或运算结果隐含有所述至少两个数值分片的大小关系。

所述至少两个节点分别构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子,包括:

所述至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行相减运算,得到第一代数式;

将所述第一代数式乘以第一系数,得到第二代数式,将所述第二代数式作为第一算子,所述第一系数为偶数。

所述构建一个分享值,并基于所述分享值构建与所述第一算子等价的第二算子,包括:

构建一个分享值及一个变量,构建包含所述变量、所述分享值及所述第二代数式,且所述分享值及所述第二代数式在同一侧的第一等式;

对所述第一等式进行变换,获得与所述第二代数式等价的第三代数式,将所述第三代数式作为第二算子,所述第三代数式包含所述变量及所述分享值。

所述确定用于计算所述第二算子的最后一位符号位的各个第三算子,并确定各个所述第三算子的数值,包括:

利用所述第一等式及恢复算法,对多个所述节点各自确定的变量进行处理,得到第一数据;

将所述第一数据的最后一个比特位、所述分享值的最后一个比特位及包含所述分享值与所述第一数据进行大小比较运算的不等式分别作为不同的第三算子;

从所述第一数据中获取所述第一数据的最后一个比特位的数值,并从所述分享值中获取所述分享值的最后一个比特位的数值;

构建具备确定所述不等式是否成立的能力的第二等式,对所述第二等式进行处理,获得表征所述不等式是否成立的数值。

所述至少两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,包括:

所述至少两个节点分别基于恢复算法,对各自得到的异或运算结果及来自其它节点的异或运算结果进行处理,所述恢复算法与所述数值分片组中至少两个数值分片对应的拆分算法相匹配。

所述区块链的至少两个节点分别获得一组数值分片组之后,还包括:

分别存储获得到的一组数值分片组中的数值分片至本地私有数据库中。

本申请的另一方面提供一种基于区块链的数据处理装置,包括:

获得模块,用于获得一组数值分片组,所述数值分片组包括至少两个数值分片,且所述至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且所述至少两个节点获得的数值分片组不同;

第一处理模块,用于对获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,并广播所述第一处理结果,所述第一处理结果隐含有所述至少两个数值分片的大小关系;

第二处理模块,用于对所述第一处理结果及来自其它数据处理装置的第一处理结果进行第二处理,得到第二处理结果,所述第二处理结果与对多个表征各个所述竞拍者的投标价格的数值进行比较得到的结果相关。

本申请的第三方面提供一种电子设备,包括:

存储器,用于至少存储一组指令集;

处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集实现上述任一项所述的基于区块链的数据处理方法。

本申请的第四方面提供一种基于区块链的数据处理系统,包括:

至少两个节点,所述至少两个节点用于执行如上述任意一项所述的基于区块链的数据处理方法。

与现有技术相比,本申请的有益效果为:

在本申请中,由区块链参与拍卖交易,保证拍卖平台执行拍卖交易的可信度,达到在保证拍卖交易的可信度。

并且,区块链的至少两个节点分别获得一组数值分片组,使区块链的节点只接收到投标价格的部分数据,在此基础上,至少两个节点根据投标价格的部分数值,确定出与对多个表征各个所述竞拍者的投标价格的数值进行比较得到的结果相关的处理结果,实现在保证投标价格的隐私性的基础上,完成投标价格的比较。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例1提供的一种基于区块链的数据处理方法的流程示意图;

图2是本申请提供的区块链的节点与竞拍者客户端交互的一种示意图;

图3是本申请实施例2提供的一种基于区块链的数据处理方法的流程示意图;

图4是本申请实施例3提供的一种基于区块链的数据处理方法的流程示意图;

图5是本申请实施例4提供的一种基于区块链的数据处理方法的流程示意图;

图6是本申请提供的一种基于区块链的数据处理装置的逻辑结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,为本申请实施例1提供的一种基于区块链的数据处理方法的流程示意图,该方法可以应用于区块链中具备数据处理功能的节点,由区块链中具备数据处理功能的节点对多个参与方的数据进行处理,例如,对应在拍卖场景中对多个参与方的数据进行比较的任务,对多个参与方的数据进行处理。如图1所示,该方法可以包括但并不局限于以下步骤:

步骤S101、区块链的至少两个节点分别获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组相互具有差异。

在本实施例中,拍卖创建者通过部署智能合约建立拍卖交易,并通过智能合约与区块链交互。具体地,拍卖创建者会发起拍卖建立请求,其中,拍卖建立请求中可以包含拍卖基本信息(如,拍卖交易的名称、拍卖对象的信息、拍卖的状态)及拍卖启动条件信息(如,拍卖所需的投标总数,和/或,拍卖启动等待时间)。

相应地,区块链节点在接收到来自拍卖创建者的拍卖建立请求后,创建拍卖单元,记录拍卖基本信息及拍卖启动条件信息。并基于拍卖启动条件信息,判断是否启动拍卖交易。

其中,基于拍卖启动条件信息,判断是否启动拍卖交易的过程,可以包括:

S11、获取接入区块链的竞拍者的个数。

S12、判断接入区块链的竞拍者的个数是否达到拍卖所需的投标总数;

若达到拍卖所需的投标总数,则启动拍卖交易。

其中,基于拍卖启动条件信息,判断是否启动拍卖交易的过程,也可以包括:

S13、获取接入区块链的竞拍者的个数。

S14、判断接入区块链的竞拍者的个数是否达到拍卖所需的投标总数。

若达到拍卖所需的投标总数,则执行步骤S13。

S15、判断间隔时长是否在拍卖启动等待时间内,间隔时长为从拍卖者创建拍卖交易的时间到接收到竞拍者接入请求的时间之间的时长。

若在拍卖启动等待时间内,则启动拍卖交易。

本实施例中,竞拍者客户端可以连接到区块链的节点,参与拍卖者创建的拍卖交易。

其中,竞拍者参与拍卖交易时,可以将投标价格输入到区块链中,由区块链对不同竞拍者的投标价格进行比较,来确定拍卖结果。但是,这种方式会泄露竞拍者的投标价格,使竞拍者的投标价格泄露。因此,为了降低竞拍者的投标价格泄露的风险,本实施例中,由竞拍者客户端对竞拍者输入的投标价格进行隐藏处理。隐藏处理的过程,具体可以为:基于拆分算法,对表征竞拍者的投标价格的数值进行拆分,得到至少两个数值分片。

需要说明的是,竞拍者客户端对表征竞拍者的投标价格的数值进行拆分,得到的数值分片的数量与参与拍卖交易的竞拍者的个数相关。如,若参与拍卖交易的竞拍者的个数为10,则每个竞拍者客户端对其接收到的表征竞拍者的投标价格的数值拆分为10个数值分片。

为了保证数据处理的有效性,至少两个竞拍者客户端基于的拆分算法需保持一致。

拆分算法可以为但不局限于:基于拉格朗日插值多项式的拆分算法;或,将数值拆分为多个子数值,多个子数值之和等于数值的拆分算法。

在拆分算法为基于拉格朗日插值多项式的拆分算法的情况下,举例对任意一个竞拍者客户端基于拆分算法,对表征竞拍者的投标价格的数值进行拆分得到数值分片进行说明,例如,有两个竞拍者参与拍卖交易,两个竞拍者分别为a和b,竞拍者a对应竞拍者客户端A,竞拍者b对应竞拍者客户端B,竞拍者客户端A在接收到竞拍者a输入的投标价格后,确定表征竞拍者a输入的投标价格的数值为r

在拆分算法为基于将数值拆分为多个子数值,多个子数值之和等于数值的拆分算法的情况下,具体由竞拍者客户端基于将数值拆分为多个子数值,多个子数值之和等于数值的拆分算法,将表征竞拍者的投标价格的数值拆分为多个数值分片。例如,对参与拍卖交易的竞拍者a和b来说,竞拍者a对应的竞拍者客户端A若接收到竞拍者a输入的投标价格为100,则竞拍者客户端A可以将100拆分为20和80;竞拍者b对应的竞拍者客户端B若接收到竞拍者b输入的投标价格为110,则竞拍者客户端B可以将110拆分为40和70。

需要说明的是,一个竞拍者客户端唯一对应一个竞拍者,保证竞拍者的投标价格仅在其唯一对应的竞拍者客户端中公开,进一步减少竞拍者的投标价格泄露的风险。

每个竞拍者客户端在对其接收到的投标价格进行拆分,得到至少两个数值分片之后,为了避免区块链的同一节点在接收到竞拍者客户端的全部数值分片,造成的数据泄露,每个竞拍者客户端将其得到的至少两个数值分片分别发送给区块链的不同节点。

对于区块链的每个节点来说,每个节点会分别获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组相互具有差异。例如,竞拍者客户端A将表征竞拍者a输入的投标价格的数值r

现以两个竞拍者客户端为例,对区块链的节点与竞拍者客户端进行交互的过程进行说明。例如,如图2所示,两个竞拍者客户端分别为A和B,区块链的与竞拍者客户端的个数相关的两个节点分别为peer1和peer2,竞拍者客户端A对a进行拆分,得到数值分片为[a1]和[a2],竞拍者客户端B对b进行拆分,得到数值分片为[b1]和[b2],竞拍者客户端A将[a1]发送给peer1,将[a2]发送给peer2,竞拍者客户端B将[b1]发送给peer1,将[b2]发送给peer2。peer1获得[a1]和[b1],peer2获得[a2]和[b2]。

在参与拍卖交易的竞拍者的个数为两个时,区块链的两个节点分别获得一组数值分片组,数值分片组包括两个数值分片,且两个数值分片分别属于两个竞拍者中不同竞拍者的投标价格,且两个节点获得的数值分片组相互具有差异。

在参与拍卖交易的竞拍者的个数多于两个时,区块链的多于两个的节点分别获得一组数值分片组,数值分片组包括个数多于两个的数值分片,且多于两个的数值分片分别属于多于两个的竞拍者中不同竞拍者的投标价格,且多于两个的节点获得的数值分片组相互具有差异。

本实施例中,区块链的至少两个节点分别获得一组数值分片组之后,区块链的至少两个节点还可以分别存储获得到的一组数值分片组中的数值分片至本地私有数据库中。

区块链的至少两个节点分别存储获得到的一组数据分片组中的数值分片到本地私有数据库中,而非存储到公共分布式账本中,可以避免其它节点访问到所有的数值分片,进而避免原始的数值被重构,保证原始的数值的隐私性。

步骤S102、至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,并广播第一处理结果,第一处理结果隐含有至少两个数值分片的大小关系。

至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,可以理解为:至少两个节点分别对各自获得的数值分片组中至少两个数值分片,进行用于获得至少两个数值分片的大小关系的处理。

通过对各自获得的数值分片组中至少两个数值分片进行第一处理,得到隐含有至少两个数值分片的大小关系的第一处理结果。

至少两个节点分别得到第一处理结果之后,分别广播第一处理结果,使区块链的其它节点可以获得该第一处理结果。

步骤S103、至少两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果,第二处理结果与对多个表征各个竞拍者的投标价格的数值进行比较得到的结果相关。

由于每个节点得到的第一处理结果隐含有至少两个数值分片的大小关系,且每个节点因相互获得的数值分片组不同,得到的第一处理结果也不同,因此,需要基于多个节点得到的第一处理结果,获得与对多个表征各个竞拍者的投标价格的数值进行比较得到的结果相关的处理结果。具体地,至少两个节点可以分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果。

每个节点可以将得到的第二处理结果输出,使参与拍卖交易的各方均能得到第二处理结果。

本实施例中,对应参与拍卖交易的竞拍者的个数为两个的场景,至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果的过程,可以理解为:两个节点分别对各自获得的数值分片组中两个数值分片进行第一处理,得到第一处理结果。

相应地,至少两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果,可以包括:两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二后处理结果。

对应参与拍卖交易的竞拍者的个数为多于两个的场景,至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,及至少两个节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果的过程,可以包括:

S16、多于两个的节点分别从各自获得的数值分片组中选取两个数值分片,将选取出的两个数值分片分别作为第一待处理数值分片。

S17、对两个第一待处理数值分片进行第一处理,得到第一处理结果,并广播第一处理结果。

S18、多于两个的节点分别对各自得到的第一处理结果及来自其它节点的第一处理结果进行第二处理,得到第二处理结果。

本步骤中第二处理结果,与对表征各个第一待处理数值分片所属竞拍者的投标价格的数值进行比较得到的结果相关。

S19、多于两个的节点分别基于第二处理结果,确定出两个待处理数值分片所属竞拍者的投标价格中的最大者,并从各自获得的数值分片主中选取一个除两个第一待处理数值分片之外的数值分片,将选取的数值分片和数值分片组中最大者对应的数值分片分别作为第一待处理数值分片,并执行步骤S17,直至数值分片组中每个数值分片均已作为第一待处理数值分片,参与处理。

在参与拍卖交易的竞拍者的个数为多于两个的场景中,通过执行步骤S16-S19,实现每次对属于两个竞拍者的投标价格的数值分片进行处理,得到表征两个竞拍者中各个竞拍者的投标价格的数值进行比较得到的结果相关的第二处理结果,并基于第二处理结果,确定出两者比较时的最大者,继续利用最大者对应的数值分片与数值分片组中的剩余数值分片中的一个数值分片进行处理,直至得到与多于两个的竞拍者中,各个竞拍者的投标价格进行比较得到的结果相关的处理结果。

在区块链的框架为Hyperledger Fabric框架的情况下,若至少两个节点分别得到第二处理结果,则后续可以根据Hyperledger fabric中的交易流程,将第二处理结果返回发给竞拍者客户端,竞拍者客户端将包含第二处理结果的交易数据提交给orderer,Orderer接收来自多个竞拍者客户端的交易数据,并对来自多个竞拍者客户端的交易数据(其中,第二处理结果包含在多个交易数据中)进行共识排序,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给提交(Committer)节点;提交(Committer)节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改世界状态。

在本申请中,由区块链参与拍卖交易,保证拍卖平台执行拍卖交易的可信度,达到在保证拍卖交易的可信度。

并且,区块链的至少两个节点分别获得一组数值分片组,使区块链的节点只接收到投标价格的部分数据,在此基础上,至少两个节点根据投标价格的部分数值,确定出与对多个表征各个所述竞拍者的投标价格的数值进行比较得到的结果相关的处理结果,实现在保证投标价格的隐私性的基础上,完成投标价格的比较。

作为本申请另一可选实施例,参照图3,为本申请提供的一种基于区块链的数据处理方法实施例2的流程图,本实施例主要是对上述实施例1描述的基于区块链的数据处理方法的细化方案,如图3所示,该方法可以包括但并不局限于以下步骤:

步骤S201、区块链的至少两个节点分别获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组相互具有差异。

至少两个节点分别获得一组数值分片组,可以理解为至少两个节点分别获得每个竞拍者的投标价格的部分数据。至少两个节点虽然能分别比较出两个数值分片的大小,但是,至少两个节点根据自身确定的两个数值分片的大小关系及其它节点确定的两个数值分片的大小关系,无法准确的确定出表征两个数值分片对应的原始数值之间的大小关系。因此,在不泄露表征投标价格的原始数值的前提下,可以将比较两个数值分片的大小的处理过程转化为获得隐含表征多个竞拍者的投标价格的数值之间大小关系的处理过程,该处理过程具体可以包括以下步骤:

步骤S202、至少两个节点分别构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子。

可以理解的是,两个数值进行相减运算的结果,可以表征两个数值的大小关系。如,在相减运算的结果为负数时,可以表征被减数小于减数;在相减运算的结果为正数时,可以表征被减数大于减数。基于此,本实施例中,至少两个节点可以分别构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子。

步骤S203、构建一个分享值,并基于分享值构建与第一算子等价的第二算子。

本实施例中,可以对第一算子进行隐藏处理,避免基于多个第一算子,确定出表征各个竞拍者的投标价格的数值,造成原始数值泄露。

对第一算子进行隐藏处理的过程,具体可以为:构建一个分享值,并基于分析值构建与第一算子等价的第二算子。

步骤S204、确定用于计算第二算子的最后一位符号位的各个第三算子,并确定各个第三算子的数值。

本实施例中,可以对第一算子进行mod p运算,modp运算的结果为奇数或偶数,由于奇数或偶数能够表征第二算子的正负,而第二算子的正负隐含了两个数值分片的大小关系。又由于p为大素数(大素数为奇数),modp运算结果为的奇偶性能够表征第二算子的正负,因此基于p的奇偶性及mod p运算结果的奇偶性,能够确定在第二算子为负时,第二算子的奇偶性。在基础上,若将奇数或偶数转换为二进制数,则奇数的二进制数的最后一位符号位为1,偶数的二进数的最后一位符号位0,可见,最后一位符号位能够表征第二算子的奇偶性,因此第二算子的最后一位符号位会隐含两个数值分片的大小关系,因此需要确定第二算子的最后一位符号位。

为确定第二算子的最后一位符号位,首先可以确定用于计算第二算子的最后一位符号位的各个第三算子,并确定各个第三算子的数值。

步骤S205、对多个第三算子的数值进行异或运算,得到异或运算结果,并广播异或运算结果,异或运算结果隐含有至少两个数值分片的大小关系。

由于异或运算的结果为0或1,第二算子的最后一位符号位为0或1,因此,可以对多个第三算子的数值进行异或运算,得到异或运算结果,由异或运算结果表征第二算子的最后一位符号位。

步骤S202-S205为实施例1中步骤S102的一种具体实施方式。

步骤S206、至少两个节点分别基于恢复算法,对各自得到的异或运算结果及来自其它节点的异或运算结果进行处理,得到第二处理结果,第二处理结果与对多个表征各个竞拍者的投标价格的数值进行比较得到的结果相关,恢复算法与数值分片组中至少两个数值分片对应的拆分算法相匹配。

由于每个节点各自得到的异或运算结果均隐含了其获得的两个数值分片的大小关系,因此,对多个节点得到的隐含了两个数值分片的大小关系的异或运算结果进行处理,可以得到数值分片对应的原始数值的大小关系。

对应步骤S202-S205的具体过程,至少两个节点分别基于恢复算法,对各自得到的异或运算结果及来自其它节点的异或运算结果进行处理,得到第二处理结果,第二处理结果也为0或1,0或1能够表征多个表征竞拍者的投标价格的数值的大小关系。

本实施例中,将比较两个数值分片的大小的处理过程转化为获得隐含表征多个竞拍者的投标价格的数值之间大小关系的处理过程,实现在不泄露表征投标价格的原始数值的情况下,准确的确定出表征多个竞拍者的投标价格的数值之间的大小关系。

作为本申请另一可选实施例,参照图4,为本申请提供的一种基于区块链的数据处理方法实施例3的流程图,本实施例主要是对上述实施例2描述的基于区块链的数据处理方法的细化方案,如图4所示,该方法可以包括但并不局限于以下步骤:

步骤S301、区块链的至少两个节点分别获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组相互具有差异。

步骤S302、至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行相减运算,得到第一代数式。

本实施例中,至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行相减运算,若相减运算的结果为正,表示作为被减数的数值分片大于作为减数的数值分片,若相减运算的结果为负,表示作为被减数的数值分片小于作为减数的数值分片。基于此,对数值分片组中至少两个数值分片进行相减运算,得到的第一代数式的正负隐含了至少两个数值分片的大小关系。

在节点获得的一组数值分片组中包含两个数值分片的情况下,第一代数式可以表示为[a]-[b],其中,[a]和[b]为节点获得的一组数值分片组中的两个数值分片。

步骤S303、将第一代数式乘以第一系数,得到第二代数式,将第二代数式作为第一算子,第一系数为偶数。

由于第一代数式为对数值分片组中至少两个数值分片进行相减运算得到的,在至少两个数值分片的奇偶性不确定的情况下,第一代数式的奇偶性也是不确定的,在第一代数式的奇偶性不确定的情况下,将第一代数式的数值进行mod p运算后,mod p运算的结果的奇偶性也不确定,因此在mod p运算的结果的奇偶性不确定的情况下,无法根据mod p运算的结果的奇偶性,来确定至少两个数值分片的大小关系。

因此,本实施例中,将第一代数式乘以第一系数,其中第一系数为偶数,实现第二代数式恒为偶数,在第二代数式为偶数的情况下,对第二代数式进行mod p运算,mod p运算的结果为偶数,所以mod p运算的结果的奇偶性是确定的。因此,在mod p运算的结果的奇偶性确定的情况下,可以根据mod p运算的结果的奇偶性准确的确定至少两个数值分片的大小关系。

其中,对应第一代数式为负的情况,第二代数式为负偶数,负偶数mod p的结果为奇数。

第一系数可以根据需要进行设置,在本申请中不做限制。如,第一系数可以设置为但不局限于:2。

在第一系数为2时,第二代数式可以表示为2([a]-[b])。

步骤S302-S303为实施例2中步骤S202的一种具体实施方式。

步骤S304、构建一个分享值及一个变量,构建包含变量、分享值及第二代数式,且分享值及第二代数式在同一侧的第一等式。

本实施例中,可以对第二代数式进行隐藏处理,避免基于多个第二代数式,确定出表征各个竞拍者的投标价格的数值,造成原始数值泄露。

对第二代数式进行隐藏处理,首先需要构建一个分享值及一个变量,并构建包含变量、分享值及第二代数式,且分享值及第二代数式在同一侧的第一等式。

本实施例中,分享值可以表示为[r]

步骤S305、对第一等式进行变换,获得与第二代数式等价的第三代数式,将第三代数式作为第二算子,第三代数式包含变量及分享值。

对第一等式进行变换,获得与第二代数式等价的第三代数式,完成对第二代数式的隐藏处理。

可以理解的是,在步骤S303确定出对应第一代数式为负的情况,第二代数式为负偶数,负偶数mod p的结果为奇数的基础上,在获得与第二代数式等价的第三代数式后,第三代数式为奇数时,表征第一代数式为负。

其中,在第三代数式为二进制数时,第三代数式的最后一位符号位能够表征第三代数式的奇偶性。如,第三代数式的最后一位符号位为1时,表征第三代数式为奇数。因此,将比较数值分片组中至少两个数值分片的大小关系,可以转换为确定第三代数式的最后一位符号位是1还是0。

对应第一等式为[c]=2([a]-[b])+[r]

步骤S304-S305为实施例2中步骤S203的一种具体实施方式。

在确定出通过确定第三代数式的最后一位符号位是1还是0,来确定数值分片组中至少两个数值分片的大小关系的基础上,需要确定第三代数式的最后一位符号位。具体地,确定第三代数式的最后一位符号位的过程,具体可以参见如下步骤:

步骤S306、利用第一等式及恢复算法,对多个节点各自确定的变量进行处理,得到第一数据。

本实施例中,可以确定变量的最后一个比特位及分享值的最后一个比特位,通过变量的最后一个比特位及分享值的最后一个比特位,确定第三代数式的最后一位符号位。但是,若要确定变量的最后一个比特位,会泄露额外的信息,如数据分片组中至少两个数值分片进行相减运算的结果,因此,为了避免泄露额外的信息,可以将确定变量的最后一个比特位转换为确定利用恢复算法对变量进行处理,得到的数据的最后一个比特位,因为变量的最后一个比特位,与利用恢复算法对变量进行处理,得到的数据的最后一个比特位等价。

其中,利用恢复算法对变量进行处理的过程,具体可以为:利用第一等式及恢复算法,对多个节点各自确定的变量进行处理,得到第一数据。

本实施例中,对应第一等式为[c]=2([a]-[b])+[r]

步骤S307、将第一数据的最后一个比特位及分享值的最后一个比特位分别作为不同的第三算子。

在第一数据为c时,第一数据的最后一个比特位可以表示为c

步骤S308、从第一数据中获取第一数据的最后一个比特位的数值,并从分享值中获取分享值的最后一个比特位的数值。

步骤S309、对第一数据的最后一个比特位的数值及分享值的最后一个比特位的数值进行异或运算,得到异或运算结果,异或运算结果隐含有至少两个数值分片的大小关系。

将第三代数式中变量与分享值的运算(如,相减运算)转换为异或运算,进而对第一数据的最后一个比特位的数值及分享值的最后一个比特位的数值进行异或运算,得到异或运算结果。异或运算的关系式具体可以表示为:

步骤S310、至少两个节点分别基于恢复算法,对各自得到的异或运算结果及来自其它节点的异或运算结果进行处理,恢复算法与数值分片组中至少两个数值分片对应的拆分算法相匹配。

步骤S310的详细过程可以参见实施例2中步骤S206的相关介绍,在此不再赘述。

作为本申请另一可选实施例,参照图5,为本申请提供的一种基于区块链的数据处理方法实施例4的流程图,本实施例主要是对上述实施例2描述的基于区块链的数据处理方法的细化方案,如图5所示,该方法可以包括但并不局限于以下步骤:

步骤S401、区块链的至少两个节点分别获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组相互具有差异。

步骤S402、至少两个节点分别对各自获得的数值分片组中至少两个数值分片进行相减运算,得到第一代数式。

步骤S403、将第一代数式乘以第一系数,得到第二代数式,将第二代数式作为第一算子,第一系数为偶数。

步骤S404、构建一个分享值及一个变量,构建包含变量、分享值及第二代数式,且分享值及第二代数式在同一侧的第一等式。

步骤S405、对第一等式进行变换,获得与第二代数式等价的第三代数式,将第三代数式作为第二算子,第三代数式包含变量及分享值。

步骤S406、利用第一等式及恢复算法,对多个节点各自确定的变量进行处理,得到第一数据。

步骤S401-S406的详细过程可以参见实施例3中步骤S301-S306的相关介绍,在此不再赘述。

步骤S407、将第一数据的最后一个比特位、分享值的最后一个比特位及包含分享值与第一数据进行大小比较运算的不等式分别作为不同的第三算子。

本实施例中,在仅根据第一数据的最后一个比特位及分享值的最后一个比特位,确定第三代数式的最后一位符号位时,可能会存在模P溢出的问题,为了解决该问题,可以增加包含分享值与第一数据进行大小比较运算的不等式作为其中一个第三算子。

包含分享值与第一数据进行大小比较运算的不等式可以为但不局限于:分享值>第一数据,具体可以表示为[r]

步骤S408、从第一数据中获取第一数据的最后一个比特位的数值,并从分享值中获取分享值的最后一个比特位的数值。

步骤S409、构建具备确定不等式是否成立的能力的第二等式,对第二等式进行处理,获得表征不等式是否成立的数值。

本实施例中,可以通过比较第一数据对应的二进制数与分享值对应的二进制数的最高位,确定不等式是否成立。具体地,可以构建具备确定不等式是否成立的能力的第二等式,第二等式可以为但不局限于:

其中,[x]表示秘密共享值,[r

基于第二等式

在提取最低有效位[x

首先,创建按位秘密共享随机变量[s]

其中,[d]=[s]

在得到

步骤S410、对第一数据的最后一个比特位、分享值的最后一个比特位的数值及表征不等式是否成立的数值进行异或运算,得到异或运算结果,异或运算结果隐含有至少两个数值分片的大小关系。

对第一数据的最后一个比特位、分享值的最后一个比特位的数值及表征不等式是否成立的数值进行异或运算的关系式可以表示为:

步骤S411、至少两个节点分别基于恢复算法,对各自得到的异或运算结果及来自其它节点的异或运算结果进行处理,得到第二处理结果,第二处理结果与对多个表征各个竞拍者的投标价格的数值进行比较得到的结果相关,恢复算法与数值分片组中至少两个数值分片对应的拆分算法相匹配。

本实施例中,通过将第一数据的最后一个比特位、分享值的最后一个比特位及包含分享值与第一数据进行大小比较运算的不等式分别作为不同的第三算子,可以解决模p运算溢出的问题,提高对第一数据的最后一个比特位、分享值的最后一个比特位的数值及表征不等式是否成立的数值进行异或运算,得到的异或运算结果的准确性,进而提高第二处理结果的准确性,保证对多个表征各个竞拍者的投标价格的数值进行比较的准确性。

接下来对本申请提供的基于区块链的数据处理装置进行介绍,下文介绍的基于区块链的数据处理装置与上文介绍的基于区块链的数据处理方法可相互对应参照。

请参见图6,基于区块链的数据处理装置包括:获取模块100、第一处理模块200和第二处理模块300。

获得模块,用于获得一组数值分片组,数值分片组包括至少两个数值分片,且至少两个数值分片分别属于至少两个竞拍者中不同竞拍者的投标价格,且至少两个节点获得的数值分片组不同。

第一处理模块,用于对获得的数值分片组中至少两个数值分片进行第一处理,得到第一处理结果,并广播第一处理结果,第一处理结果隐含有至少两个数值分片的大小关系。

第二处理模块,用于对第一处理结果及来自其它数据处理装置的第一处理结果进行第二处理,得到第二处理结果,第二处理结果与对多个表征各个竞拍者的投标价格的数值进行比较得到的结果相关。

本实施例中,第一处理模块,具体可以用于:

分别构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子;

构建一个分享值,并基于分享值构建与所述第一算子等价的第二算子;

确定用于计算第二算子的最后一位符号位的各个第三算子,并确定各个所述第三算子的数值;

对多个第三算子的数值进行异或运算,得到异或运算结果,异或运算结果隐含有至少两个数值分片的大小关系。

其中,第一处理模块构建包含各自获得的数值分片组中至少两个数值分片进行相减运算的第一算子的过程,可以包括:

对获得的数值分片组中至少两个数值分片进行相减运算,得到第一代数式;

将第一代数式乘以第一系数,得到第二代数式,将第二代数式作为第一算子,第一系数为偶数。

本实施例中,第一处理模块构建一个分享值,并基于所述分享值构建与所述第一算子等价的第二算子的过程,具体可以包括:

构建一个分享值及一个变量,构建包含变量、分享值及第二代数式,且分享值及第二代数式在同一侧的第一等式;

对第一等式进行变换,获得与第二代数式等价的第三代数式,将第三代数式作为第二算子,第三代数式包含变量及分享值。

本实施例中,第一处理模块确定用于计算所述第二算子的最后一位符号位的各个第三算子,并确定各个所述第三算子的数值的过程,具体可以包括:

利用第一等式及恢复算法,对多个节点各自确定的变量进行处理,得到第一数据;

将第一数据的最后一个比特位、分享值的最后一个比特位及包含分享值与第一数据进行大小比较运算的不等式分别作为不同的第三算子;

从第一数据中获取第一数据的最后一个比特位的数值,并从分享值中获取分享值的最后一个比特位的数值;

构建具备确定不等式是否成立的能力的第二等式,对第二等式进行处理,获得表征不等式是否成立的数值。

本实施例中,第二处理模块具体可以用于:

基于恢复算法,对得到的异或运算结果及来自其它节点的异或运算结果进行处理,恢复算法与数值分片组中至少两个数值分片对应的拆分算法相匹配。

本实施例中,基于区块链的数据处理装置还可以包括:

存储获得到的一组数值分片组中的数值分片至本地私有数据库中。

在本申请的另一个实施例中,提供一种电子设备,包括:存储器,用于至少存储一组指令集;

处理器,用于调用并执行存储器中的指令集,通过执行指令集实现方法实施例1-4中任意一个实施例所介绍的基于区块链的数据处理方法。

在本申请的另一个实施例中,提供一种基于区块链的数据处理系统,包括:至少两个节点,至少两个节点用于执行如方法实施例1-4任意一个实施例所介绍的基于区块链的数据处理方法。

与上述本申请提供的一种基于区块链的数据处理方法实施例相对应的,本申请还提供了一种存储介质的实施例。

本实施例中,存储介质存储有实现如前述任意一个实施例所介绍的基于区块链的数据处理方法的计算机程序,计算机程序被处理器执行,实现如前述任意一个实施例所介绍的基于区块链的数据处理方法的各步骤。

需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种基于区块链的数据处理方法、装置、系统及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种基于区块链的数据处理方法、装置、系统及电子设备
  • 一种基于区块链的数据处理方法、装置、系统及电子设备
技术分类

06120112639620