CN108390762B - 基于区块链的数据筛选方法和装置 - Google Patents
基于区块链的数据筛选方法和装置 Download PDFInfo
- Publication number
- CN108390762B CN108390762B CN201711483394.0A CN201711483394A CN108390762B CN 108390762 B CN108390762 B CN 108390762B CN 201711483394 A CN201711483394 A CN 201711483394A CN 108390762 B CN108390762 B CN 108390762B
- Authority
- CN
- China
- Prior art keywords
- commitment
- data
- block
- group
- source random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
Abstract
本发明实施例提供一种基于区块链的数据筛选方法和装置,其中,方法包括:接收多个数据提供方提交的数据承诺并按数据承诺中携带的第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中,接收数据承诺中欲提交的源随机数并存储至区块链中;以承诺组为单位,对源随机数进行承诺验证;如果计算得到的承诺组中所有承诺值均与数据承诺中的承诺值对应相同,则接受该承诺组中的源随机数,以作为计算一个随机数所需的源随机数。本发明实施例的方案能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据筛选方法和装置。
背景技术
传统的网络环境中,随机数都由各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性。
随机数本身是一种数据资源,在很多领域都有应用,例如,对于多个主体之间的抽签或者随机分配等机制中的应用。例如,机动车购买的摇号,比赛的分组的抽签、彩票等领域,这些都会使用到随机数。
随机数最重要的特性在于要保证其产生的随机性,不能受到任何人的操控。如果某个节点提供的并不是随机数,而是在获得了一定信息的条件下,生成的有目的性的随机数,那么这个随机数就有可能影响到最终所应用事项的结果。
比如,节点可以通过有限次的实验来生成对其有利结果的随机数,这样也是不公平的。
发明内容
本发明提供了一种基于区块链的数据筛选方法和装置,能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种基于区块链的数据筛选方法,包括:
接收多个数据提供方提交的数据承诺,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中,且每个所述第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
以所述承诺组为单位,对各承诺组中的所述数据提供方提交的所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的所述承诺组中所有承诺值均与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该承诺组中所述数据提供方提交的源随机数,以作为计算一个所述随机数所需的所述源随机数。
第二方面,提供了一种基于区块链的数据筛选装置,包括:
承诺接收模块,用于接收多个数据提供方提交的数据承诺,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
承诺存储模块,用于将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中,且每个所述第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺;
源随机数存储模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
承诺验证模块,用于以所述承诺组为单位,对各承诺组中的所述数据提供方提交的所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的所述承诺组中所有承诺值均与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该承诺组中所述数据提供方提交的源随机数,以作为计算一个所述随机数所需的所述源随机数。
本发明提供的基于区块链的数据筛选方法和装置,以“数据承诺”的方式对数据提供方提交的源随机数进行承诺验证,以防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数计算生成的随机数的随机性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的随机数的生成逻辑示意图;
图2为本发明实施例的筛选用于计算随机数的各源随机数的原理图;
图3为本发明实施例示出的基于区块链的数据筛选方法流程图一;
图4为本发明实施例示出的基于区块链的数据筛选方法流程图二;
图5为本发明实施例示出的基于区块链的数据筛选方法流程图三;
图6为本发明实施例示出的基于区块链的数据筛选装置的结构示意图一;
图7为本发明实施例示出的基于区块链的数据筛选装置的结构示意图二;
图8为本发明实施例示出的基于区块链的数据筛选装置的结构示意图三。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本方案改善了现有技术中,随机数的生成为由数据提供方各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间由于缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性的缺陷。其核心思想是基于各个数据提供方提交的源随机数,对这些源随机数经不可逆算法进行计算从而生成最终的随机数。
如图1所示,为本发明实施例的随机数的生成逻辑示意图。该生成逻辑为从不同的多个数据源获取多个源随机数,每个源随机数本身也可以是随机产生的。然后基于这些随机数经不可逆算法最终得到一个随机数。
在上述生成随机数的方案思想中,原则上只要有一个源随机数是随机产生,那么就可以保证最终得到的随机数具有较好的随机性。因此,筛选用于计算随机数的各源随机数的过程就显得格外很重要。
如图2所示,本实施例示出了筛选用于计算随机数的各源随机数的具体方案,即采用“数据承诺+提交数据”的方式进行源随机数的筛选,并且将该筛选过程与区块链技术相结合。首先,服务器先接收各数据提供方提交的数据承诺,该数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及数据提供方标识的该数据承诺欲被处理的区块的第一区块编号;然后,服务器将各数据承诺按第一区块编号划分形成多个承诺组并存储至区块链中的第一区块编号的区块中;接着,服务器接收多个数据提供方提交的之前数据承诺中欲提交的源随机数,并将源随机数存储至区块链中,基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号(本实施例中区块编号均为按区块链的生成过程顺序编号);最后,以承诺组为单位,对各承诺组中的数据提供方提交的源随机数经不可逆算法进行承诺验证,如果计算得到的所有承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述筛选源随机数的方案思想,如图3所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图一,该方法的执行主为设置在网络中的服务器。如图3所示,该基于区块链的数据筛选方法包括如下步骤:
S310,接收多个数据提供方提交的数据承诺,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及第一区块编号,第一区块编号用于数据提供方标识数据承诺欲被处理的区块;
由于网络延迟等原因,各数据提供方提供源随机数的时间是不同步的,有早有晚。为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此本方案采用一种“数据承诺+提交数据”的方式(简称“数据承诺”)来限定数据提供方提交源随机数,以保证各数据提供方提供的源随机数是事先提供的,而不是在获知了其他数据提供方所提供的源随机数后再提供的。
所谓“数据承诺”方式提交源随机数即指,在各数据提供方提交源随机数之前,先提交针对欲提交的源随机数的数据承诺,该数据承诺的内容包括欲提交的源随机数所对应的承诺值,该承诺值为数据提供方对欲提交的源随机数经上述不可逆算法计算后获得,以用于后续服务器对接收到的该数据提供方提交的源随机数进行承诺验证。
同时,为了很好的利用区块链对数据承诺进行关联处理,在数据承诺中还包括用于数据提供方标识数据承诺欲被处理的区块的区块编号,即第一区块编号。
在实际应用场景中,区块链的生成过程对于全网中各数据提供方都是公开透明的,数据提供方可以根据其掌握的当前区块链中正在生成的区块的区块编号,主动决定其提交的数据承诺所希望在哪个区块里被处理,并在提交的数据承诺中携带相应区块的区块编号。
另外,为了体现数据提供方提交的承诺值与区块之间的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述第一区块编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及第一区块编号所拼接后的字符串经上述不可逆算法计算后获得。该不可逆算法可以为哈希算法,计算得到的承诺值为哈希值。
S320,将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中,且每个第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺。
在计算随机数之前,可以预先指定用于计算得到一个随机数所需要的源随机数的数目。例如,本实施例是在数据提供方提交数据承诺之后,通过对接收的多个数据承诺进行划分,进而预先划分好未来接收到的哪些源随机数可作为一组,用于计算一个随机数。
具体地,在接收到多个数据提供方提交的数据承诺之后,可对这些数据承诺进行划分,形成至少一个承诺组,每个承诺组中均包括指定数目的数据承诺,该指定数目即为计算一个随机数所需要的源随机数的数目。相应的,每个承诺组中的各数据承诺所对应的源随机数可用于产生一个随机数。
基于与区块链相结合的基础上,服务器在接收到数据提供方提交的数据承诺后,可根据数据承诺中携带的第一区块编号,在区块链生成第一区块编号对应的区块时,将该数据承诺存储至该第一区块编号所对应的区块中,同时对该区块中的各数据承诺进行划分,形成至少一个承诺组。每个承诺组中包括指定数目的数据承诺。为了方便操作,在形成承诺组时会将同属一个承诺组的所有数据承诺存储在一个区块中。换言之,区块链中存储的数据承诺均是以承诺组的方式进行存储的。
S330,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中。
各数据提供方在提交完数据承诺后,接着会将该数据承诺中承诺值对应的源随机数提供给服务器。服务器在接收到各数据提供方提交的源随机数后,将原随机数存储至区块链中。基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号。
在实际应用场景中,在一个区块链中除了根区块外,任一区块中既可以存储区块编号指向当前区块的数据承诺,也可以存储区块编号指向当前区块之前的区块的数据承诺所对应的提交数据。但由于数据提供者在提交数据承诺后,一般会马上提交该数据承诺对应的提交数据,因此一般处理提交数据的区块编号不会大于数据承诺所在的区块编号太多(一般延后1-2个区块)。如果提交数据所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。
S340,以承诺组为单位,对各承诺组中的数据提供方提交的源随机数经不可逆算法进行承诺验证。
在服务器接收到上述多少个数据提供方提交的源随机数后,可将这些源随机数,按其各自对应的数据承诺所在的承诺组进行组别划分,并以承诺组为单位,对各承诺组中的数据提供方提交的数据承诺所对应的源随机数进行承诺验证。
具体地,对每个承诺组所对应的所有源随机数分别经上述不可逆算法进行计算得到承诺值,并将该承诺值与之前数据提供方提交的数据承诺中的承诺值进行比较,完成承诺验证。
S350,如果承诺验证后确定:计算得到的承诺组中所有承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
具体地,针对每个承诺组所对应的所有源随机数分别经上述不可逆算法进行计算得到承诺值,且该承诺值与之前数据提供方提交的数据承诺中的承诺值均对应相同,则表明该承诺组中的数据提供方提交的源随机数有效,服务器可接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
当然,在步骤S340之后,还可执行如下步骤:
如果承诺验证后确定:计算得到的承诺组中至少一个承诺值与数据提供方提交的数据承诺中的承诺值对应不同,则拒绝该承诺组中数据提供方提交的源随机数。
具体地,针对每个承诺组所对应的所有源随机数分别经上述不可逆算法进行计算得到承诺值,如果这些承诺值中存在至少一个承诺值与之前数据提供方提交的数据承诺中的承诺值对应不相同,则表明该承诺组中的数据提供方提交的源随机数均无效,服务器可拒绝该承诺组中数据提供方提交的源随机数,这些源随机数不可以作为计算任一个随机数所需的源随机数。
需要说明的是,在针对每个承诺组进行承诺验证时,所谓至少一个承诺值与之前数据提供方提交的数据承诺中的承诺值对应不相同包括:数据提供方提交了该承诺组所包含的所有数据承诺所对应的源随机数,且对这些源随机数经上述不可逆算法计算得到的承诺值中,至少存在一个承诺值与之前数据提供方提交的数据承诺中的承诺值对应不相同;或者,数据提供方未提交该承诺组所包含的所有数据承诺所对应的源随机数(例如在承诺组创建后一定时长内,未接收到数据提供方提交的与该承诺组所包含数据承诺中对应的至少一个源随机数),以上这两种情况均可导致对该承诺组进行承诺验证失败,且服务器可直接拒绝该承诺组对应的源随机数。
本发明实施例提供的基于区块链的数据筛选方法,结合区块链技术,在接收到多个数据提供方提交的数据承诺后,可按数据承诺中携带的第一区块编号,将数据承诺以承诺组的方式存储至第一区块编号;然后对接收的源随机数以承诺组为单位进行承诺验证,筛选用于计算随机数的源随机数。本方案可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性;同时,由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性。
实施例二
如图4所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图二,该方法可视为图3所示方法的具体实现方式,主要对将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的过程进行了细化。如图4所示,该基于区块链的数据筛选方法包括如下步骤:
S410,接收多个数据提供方提交的数据承诺,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及第一区块编号,第一区块编号用于数据提供方标识数据承诺欲被处理的区块。
本步骤S410与上述步骤S310的内容相同。
S420,判断接收的数据承诺中携带的第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同。
服务器在接收到数据提供方提交的数据承诺之后,会结合数据承诺中携带的第一区块编号与当前区块链中正在生成的区块的编号,即第二区块编号进行比较,以决定是否将该数据承诺存储到区块链中。
根据比较结果可择一执行以下三种步骤内容,即:
如果第一区块编号小于第二区块编号,则执行步骤S430,将数据承诺丢弃。
具体地,如果第一区块编号小于第二区块编号,则表明第一区块编号对应的区块已经生产完成,提供该数据承诺的数据提供方的操作存在滞后性。基于区块链的一致性验证要求,不能再对当前正在生成的区块以前的区块进行数据编辑,因此只能将该数据承诺丢弃。
如果第一区块编号大于第二区块编号,则执行步骤S440,将数据承诺缓存,以便在区块链生成第一区块编号对应的区块时存入该区块。
具体地,如果第一区块编号大于第二区块编号,则表明第一区块编号对应的区块还未开始生成,提供该数据承诺的数据提供方的操作存在超前性。为了不浪费资源,可以先将该数据承诺缓存,以便在区块链生成第一区块编号对应的区块时,再将该数据承诺存入至该区块中。
如果第一区块编号与第二区块编号相同,则执行步骤S450。
S450,将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中,且每个第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺。
S460,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中;
S470,以承诺组为单位,对各承诺组中的数据提供方提交的源随机数经不可逆算法进行承诺验证;
S480,如果承诺验证后确定:计算得到的承诺组中所有承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
步骤S450~步骤S480与上述步骤S320~步骤S350的内容对应相同。
本发明实施例提供的基于区块链的数据筛选方法,在图3所示实施例的基础上,通过对数据承诺中携带的第一区块编号与当前区块链中正在生成的区块的第二区块编号进行比较,根据比较结果决定是否将当前数据承诺存储至区块链中。本方案有效保证了当前生成的区块中的数据承诺均是数据提供方近期提交的数据承诺,且符合数据提供方的欲将数据承诺在哪个区块进行处理的意愿,同时增加了数据筛选过程的实时性。
实施例三
如图5所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图二,该方法可视为图3所示方法的具体实现方式,主要对各源随机数进行承诺验证的过程进行了细化。如图5所示,该基于区块链的数据筛选方法包括如下步骤:
S510,接收多个数据提供方提交的数据承诺,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及第一区块编号,第一区块编号用于数据提供方标识数据承诺欲被处理的区块。
S520,将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中,且每个第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺。
步骤S510~步骤S520与上述步骤S310~步骤S320的内容对应相同。
S530,向数据提供方反馈其提交的数据承诺所在承诺组的承诺组索引号。
为了方便管理存储在区块链中的各承诺组,以及标识各承诺组和其对应的数据承诺、源随机数的对应关系,服务器在创建承诺组后,为每个承诺组设置了唯一标识该承诺组的承诺组索引号(该承诺组索引号可以按照承诺组的创建顺序依次标注)。
服务器在创建完成一个承诺组后,会将该承诺组的承诺组索引号反馈给该承诺组中各数据承诺对应的数据提供方,以使得这些数据提供方对其提交的数据承诺所在承诺组进行管控。
S540,接收多个数据提供方提交的数据承诺中欲提交的源随机数,以及源随机数所在承诺组的承诺组索引号,并将源随机数与相应的承诺组索引号一并关联存储至区块链中。
本步骤与上述步骤S330相似,区别在于服务器在接收和存储多个数据提供方提交的源随机数的同时,还接收到各数据提供方提交的该源随机数所对应的数据承诺所在的承诺组的承诺组索引号。服务器将承诺组索引号与源随机数关联存储至区块链中,以方便标识该源随机数与承诺组的关联关系。
S550,根据承诺组索引号,从区块链中查找各承诺组对应的源随机数,并经不可逆算法进行承诺验证。
步骤S550可作为步骤S340的细化。
具体地,在对区块链中存储的各承诺组中的数据承诺对应的源随机数进行承诺验证时,可以根据承诺组的承诺组索引号从区块链中查找各承诺组对应的源随机数,然后对这些源随机数经不可逆算法进行承诺验证。通过承诺组索引号查找数据承诺对应的源随机数更加方便和快捷。
在具体应用场景中,为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此,在根据承诺组索引号,从区块链中查找到各承诺组对应的源随机数之后可先对承诺组所在区块编号与源随机数所在区块编号进行比较。如果承诺组对应包含的至少一个源随机数所在的区块编号大于且超出承诺组所在区块编号预定值,则放弃对该承诺组对应的源随机数的承诺验证。
在实际应用场景中,在一个区块链中除了根区块外,任一区块中既可以存储区块编号指向当前区块的数据承诺,也可以存储区块编号指向当前区块之前的区块的数据承诺所对应的提交数据。但由于数据提供者在提交数据承诺后,一般会马上提交该数据承诺对应的提交数据,因此一般处理提交数据的区块编号不会大于数据承诺所在的区块编号太多(一般延后1-2个区块)。如果提交数据所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。所以,如果承诺组对应包含的至少一个源随机数所在的区块编号大于且超出承诺组中各数据承诺所在区块编号预定值(例如延后3个区块以上),则认为该数据提供方提交的源随机数存在作弊嫌疑,相应的服务器会确定整个承诺组的源随机数无效,并放弃对该承诺组对应的源随机数的承诺验证。
当然,如果经上述对承诺组所在区块编号与源随机数所在区块编号进行比较后确定,没有哪一个源随机数存在作弊可能,则服务器可以承诺组为单位,继续对各承诺组中的数据提供方提交的源随机数经不可逆算法进行承诺验证。
S560,如果承诺验证后确定:计算得到的承诺组中所有承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
本步骤S560与上述步骤S350内容相同。
本发明实施例提供的基于区块链的数据筛选方法,在图3所示实施例的基础上,通过对每个承诺组分配承诺组索引号,并下发至各相应承诺组中的各数据提供方,以使得数据提供方在提交源随机数时携带该承诺组索引号,从而方便服务器识别各源随机数所属的承诺组,快速实现各承诺组对应的源随机数的承诺验证,提高处理效率。
实施例四
如图6所示,其为本发明实施例示出的基于区块链的数据筛选装置的结构示意图一,该装置可以为设置在网络中的服务器,用于执行如图3所示的方法步骤。如图6所示,该基于区块链的数据筛选装置包括:
承诺接收模块610,用于接收多个数据提供方提交的数据承诺,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及第一区块编号,第一区块编号用于数据提供方标识数据承诺欲被处理的区块;
承诺存储模块620,用于将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中,且每个第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺;
源随机数存储模块630,用于接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中;
承诺验证模块640,用于以承诺组为单位,对各承诺组中的数据提供方提交的源随机数经不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺组中所有承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该承诺组中数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
进一步地,如图7所示,在图6所示装置的基础上,还可包括:
区块编号判断模块710,用于判断接收的数据承诺中携带的第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果相同,则触发承诺存储模块620执行将各数据承诺按第一区块编号划分形成承诺组存储至区块链中的第一区块编号的区块中的步骤。
另外,上述区块编号判断模块710,还可用于判断接收的数据承诺中携带的第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果不相同,且,
第一区块编号小于第二区块编号,则触发承诺存储模块620将数据承诺丢弃;
第一区块编号大于第二区块编号,则触发承诺存储模块620将数据承诺缓存,以便在区块链生成第一区块编号对应的区块时存入该区块。
图7所示装置结构可用于执行图4所示方法步骤。
进一步地,如图8所示,在图6所示装置的基础上,还可包括:
索引号反馈模块810,用于向数据提供方反馈其提交的数据承诺所在承诺组的承诺组索引号;
相应地,上述源随机数存储模块630,还用于在接收多个数据提供方提交的数据承诺中欲提交的源随机数的过程中,同步接收数据提供方提交的源随机数所在承诺组的承诺组索引号,并将源随机数与相应的承诺组索引号一并关联存储至区块链中。
进一步地,上述承诺验证模块640,用于根据承诺组索引号,从区块链中查找各承诺组对应的源随机数,并经不可逆算法进行承诺验证。
进一步地,上述区块编号判断模块710,还用于如果承诺组对应包含的至少一个源随机数所在的区块编号大于且超出承诺组所在区块编号预定值,则触发承诺验证模640放弃对该承诺组对应的源随机数的承诺验证。
图8所示装置结构可用于执行图5所示方法步骤。
本发明实施例提供的基于区块链的数据筛选装置,结合区块链技术,在接收到多个数据提供方提交的数据承诺后,可按数据承诺中携带的第一区块编号,将数据承诺以承诺组的方式存储至第一区块编号;然后对接收的源随机数以承诺组为单位进行承诺验证,筛选用于计算随机数的源随机数。本方案可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性;同时,由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性。
进一步地,通过对数据承诺中携带的第一区块编号与当前区块链中正在生成的区块的第二区块编号进行比较,根据比较结果决定是否将当前数据承诺存储至区块链中。本方案有效保证了当前生成的区块中的数据承诺均是数据提供方近期提交的数据承诺,且符合数据提供方的欲将数据承诺在哪个区块进行处理的意愿,同时增加了数据筛选过程的实时性。
进一步地,通过对每个承诺组分配承诺组索引号,并下发至各相应承诺组中的各数据提供方,以使得数据提供方在提交源随机数时携带该承诺组索引号,从而方便服务器识别各源随机数所属的承诺组,快速实现各承诺组对应的源随机数的承诺验证,提高处理效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于区块链的数据筛选方法,其特征在于,包括:
接收多个数据提供方提交的数据承诺,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中,且每个所述第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
以所述承诺组为单位,对各承诺组中的所述数据提供方提交的所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的所述承诺组中所有承诺值均与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该承诺组中所述数据提供方提交的源随机数,以作为计算一个所述随机数所需的所述源随机数,
其中,所述以所述承诺组为单位,对各承诺组中的所述数据提供方提交的所述源随机数经所述不可逆算法进行承诺验证包括:对所述承诺组所在区块编号与所述源随机数所在区块编号进行比较,并且如果所述承诺组对应包含的至少一个源随机数所在的区块编号大于且超出所述承诺组所在区块编号预定值,则放弃对该承诺组对应的源随机数的承诺验证。
2.根据权利要求1所述的方法,其特征在于,所述将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中之前还包括:
判断接收的所述数据承诺中携带的所述第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果相同,则执行所述将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中的步骤。
3.根据权利要求1所述的方法,其特征在于,所述将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中之后还包括:
向所述数据提供方反馈其提交的所述数据承诺所在承诺组的承诺组索引号;
所述在接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数的过程中,同步接收所述数据提供方提交的所述源随机数所在承诺组的承诺组索引号,并将所述源随机数与相应的承诺组索引号一并关联存储至区块链中。
4.根据权利要求3所述的方法,其特征在于,所述以所述承诺组为单位,对各承诺组中的所述数据提供方提交的源随机数经所述不可逆算法进行承诺验证包括:
根据所述承诺组索引号,从所述区块链中查找各所述承诺组对应的所述源随机数,并经所述不可逆算法进行承诺验证。
5.根据权利要求4所述的方法,其特征在于,所述根据所述承诺组索引号,从所述区块链中查找到各承诺组对应的所述源随机数之后还包括:
如果所述承诺组对应包含的至少一个所述源随机数所在的区块编号大于且超出所述承诺组所在区块编号预定值,则放弃对该承诺组对应的所述源随机数的承诺验证。
6.一种基于区块链的数据筛选装置,其特征在于,包括:
承诺接收模块,用于接收多个数据提供方提交的数据承诺,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
承诺存储模块,用于将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中,且每个所述第一区块编号对应至少一个承诺组,每个承诺组中包括指定数目的数据承诺;
源随机数存储模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
承诺验证模块,用于以所述承诺组为单位,对各承诺组中的所述数据提供方提交的所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的所述承诺组中所有承诺值均与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该承诺组中所述数据提供方提交的源随机数,以作为计算一个所述随机数所需的所述源随机数,
其中,所述承诺验证模块进一步用于:对所述承诺组所在区块编号与所述源随机数所在区块编号进行比较,如果所述承诺组对应包含的至少一个源随机数所在的区块编号大于且超出所述承诺组所在区块编号预定值,则放弃对该承诺组对应的源随机数的承诺验证。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
区块编号判断模块,用于判断接收的所述数据承诺中携带的所述第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果相同,则触发所述承诺存储模块执行所述将各所述数据承诺按所述第一区块编号划分形成承诺组存储至区块链中的所述第一区块编号的区块中的步骤。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
索引号反馈模块,用于向所述数据提供方反馈其提交的所述数据承诺所在承诺组的承诺组索引号;
所述源随机数存储模块,还用于在接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数的过程中,同步接收所述数据提供方提交的所述源随机数所在承诺组的承诺组索引号,并将所述源随机数与相应的承诺组索引号一并关联存储至区块链中。
9.根据权利要求8所述的装置,其特征在于,
所述承诺验证模块,用于根据所述承诺组索引号,从所述区块链中查找各所述承诺组对应的所述源随机数,并经所述不可逆算法进行承诺验证。
10.根据权利要求9所述的装置,其特征在于,
所述区块编号判断模块,还用于如果所述承诺组对应包含的至少一个所述源随机数所在的区块编号大于且超出所述承诺组所在区块编号预定值,则触发所述承诺验证模块放弃对该承诺组对应的所述源随机数的承诺验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711483394.0A CN108390762B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711483394.0A CN108390762B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108390762A CN108390762A (zh) | 2018-08-10 |
CN108390762B true CN108390762B (zh) | 2020-07-14 |
Family
ID=63076655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711483394.0A Active CN108390762B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108390762B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111833186A (zh) * | 2018-09-20 | 2020-10-27 | 创新先进技术有限公司 | 基于区块链的交易方法、装置和节点设备 |
CN109583886B (zh) | 2018-09-30 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 基于区块链的交易方法、装置和汇出方设备 |
US11106812B2 (en) | 2019-05-09 | 2021-08-31 | At&T Intellectual Property I, L.P. | Controlling access to datasets described in a cryptographically signed record |
CN110990790B (zh) * | 2019-11-29 | 2022-05-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN115664769A (zh) * | 2022-10-20 | 2023-01-31 | 牛津(海南)区块链研究院有限公司 | 一种基于区块链承诺的数据传输方法、系统、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301785A (zh) * | 2016-08-09 | 2017-01-04 | Tcl集团股份有限公司 | 一种智能家居设备与智能终端的绑定方法及系统 |
CN106650494A (zh) * | 2016-12-16 | 2017-05-10 | 杭州嘉楠耘智信息科技有限公司 | 一种数据处理方法及装置 |
CN107193490A (zh) * | 2017-05-16 | 2017-09-22 | 北京中星仝创科技有限公司 | 一种基于区块链的分布式数据存储系统及方法 |
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
KR101799343B1 (ko) * | 2016-05-16 | 2017-11-22 | 주식회사 코인플러그 | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
CN107276754B (zh) * | 2017-07-10 | 2020-05-05 | 北京云知科技有限公司 | 一种基于区块链大量生成私钥的方法及装置 |
-
2017
- 2017-12-29 CN CN201711483394.0A patent/CN108390762B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301785A (zh) * | 2016-08-09 | 2017-01-04 | Tcl集团股份有限公司 | 一种智能家居设备与智能终端的绑定方法及系统 |
CN106650494A (zh) * | 2016-12-16 | 2017-05-10 | 杭州嘉楠耘智信息科技有限公司 | 一种数据处理方法及装置 |
CN107193490A (zh) * | 2017-05-16 | 2017-09-22 | 北京中星仝创科技有限公司 | 一种基于区块链的分布式数据存储系统及方法 |
CN107392770A (zh) * | 2017-08-09 | 2017-11-24 | 北京云知科技有限公司 | 一种基于区块链的随机数产生方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108390762A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108390762B (zh) | 基于区块链的数据筛选方法和装置 | |
CN110474986B (zh) | 一种基于区块链系统的共识方法、装置及系统 | |
CN108365960B (zh) | 随机数提供方法和装置 | |
CN110619423B (zh) | 多任务预测方法、装置、电子设备及存储介质 | |
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN109034809B (zh) | 区块链的生成方法、装置、区块链节点及存储介质 | |
CN107566124B (zh) | 基于哈希运算的共识建立方法、区块链系统及存储介质 | |
CN108334307B (zh) | 基于区块链的数据筛选方法和装置 | |
CN109508982A (zh) | 基于区块链主链加并行多子链的repb共识 | |
CN110889729A (zh) | 一种基于区块链网络的数据验证方法和装置 | |
CN108334553B (zh) | 基于区块链的数据筛选方法和装置 | |
US20120254173A1 (en) | Grouping data | |
CN108363561B (zh) | 基于区块链的数据筛选方法和装置 | |
CN108170403B (zh) | 数据筛选方法和装置 | |
CN113420323B (zh) | 数据共享方法及终端设备 | |
CN108958925B (zh) | 一种节能的工作量证明方法与系统 | |
CN108415686B (zh) | 随机数提供过程中的分账计算方法和装置 | |
CN111813580B (zh) | 一种基于矩阵表示的分布式模型训练优化方法 | |
CN111144546B (zh) | 评分方法、装置、电子设备及存储介质 | |
CN107274284B (zh) | 双向撮合方法、装置以及交易系统 | |
CN114503143A (zh) | 统一协议共识 | |
CN115037790B (zh) | 异常注册识别方法、装置、设备及存储介质 | |
US9553904B2 (en) | Automatic pre-processing of moderation tasks for moderator-assisted generation of video clips | |
CN115941329A (zh) | 区块链节点共识方法、装置、设备及存储介质 | |
CN114244536A (zh) | 一种区块链的业务处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |