CN108334553A - 基于区块链的数据筛选方法和装置 - Google Patents
基于区块链的数据筛选方法和装置 Download PDFInfo
- Publication number
- CN108334553A CN108334553A CN201711479226.4A CN201711479226A CN108334553A CN 108334553 A CN108334553 A CN 108334553A CN 201711479226 A CN201711479226 A CN 201711479226A CN 108334553 A CN108334553 A CN 108334553A
- Authority
- CN
- China
- Prior art keywords
- data
- random number
- undertake
- block
- source
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种基于区块链的数据筛选方法和装置,其中,方法包括:接收多个数据提供方提交的数据承诺并按数据承诺和数据承诺中欲提交的源随机数,并存储至区块链中;对源随机数经不可逆算法进行承诺验证;如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数;对已接受的源随机数的数目进行统计和数进行划分形成至少一个数据组,以作为计算一个随机数所需的源随机数。本发明实施例的方案能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据筛选方法和装置。
背景技术
传统的网络环境中,随机数都由各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性。
随机数本身是一种数据资源,在很多领域都有应用,例如,对于多个主体之间的抽签或者随机分配等机制中的应用。例如,机动车购买的摇号,比赛的分组的抽签、彩票等领域,这些都会使用到随机数。
随机数最重要的特性在于要保证其产生的随机性,不能受到任何人的操控。如果某个节点提供的并不是随机数,而是在获得了一定信息的条件下,生成的有目的性的随机数,那么这个随机数就有可能影响到最终所应用事项的结果。
比如,节点可以通过有限次的实验来生成对其有利结果的随机数,这样也是不公平的。
发明内容
本发明提供了一种基于区块链的数据筛选方法和装置,能够防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数生成的随机数的随机性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种基于区块链的数据筛选方法,包括:
接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及数据标识,每个所述数据标识用于唯一标识所述数据提供方提交的一个所述数据承诺;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
按照各所述数据承诺在区块链中的存储顺序,在所述区块链中依次查找所述数据承诺中欲提交的所述源随机数,并对所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该源随机数;
对已接受的所述源随机数的数目进行统计,并根据用于计算所述随机数所需的所述源随机数的指定数目,对已接受的所述源随机数进行划分,形成至少一个数据组,每个数据组中包括所述指定数目的所述源随机数,以作为计算一个所述随机数所需的所述源随机数。
第二方面,提供了一种基于区块链的数据筛选装置,包括:
承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及数据标识,每个所述数据标识用于唯一标识所述数据提供方提交的一个所述数据承诺;
源随机数存储模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
承诺验证模块,用于按照各所述数据承诺在区块链中的存储顺序,在所述区块链中依次查找所述数据承诺中欲提交的所述源随机数,并对所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该源随机数;
源随机数统计模块,用于对已接受的所述源随机数的数目进行统计,并根据用于计算所述随机数所需的所述源随机数的指定数目,对已接受的所述源随机数进行划分,形成至少一个数据组,每个数据组中包括所述指定数目的所述源随机数,以作为计算一个所述随机数所需的所述源随机数。
本发明提供的基于区块链的数据筛选方法和装置,以“数据承诺”的方式对数据提供方提交的源随机数进行承诺验证,以防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而确保基于源随机数计算生成的随机数的随机性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例的随机数的生成逻辑示意图;
图2为本发明实施例的筛选用于计算随机数的各源随机数的原理图;
图3为本发明实施例示出的基于区块链的数据筛选方法流程图一;
图4为本发明实施例示出的基于区块链的数据筛选方法流程图二;
图5为本发明实施例示出的基于区块链的数据筛选方法流程图三;
图6为本发明实施例示出的基于区块链的数据筛选装置的结构示意图一;
图7为本发明实施例示出的基于区块链的数据筛选装置的结构示意图二;
图8为本发明实施例示出的基于区块链的数据筛选装置的结构示意图三。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本方案改善了现有技术中,随机数的生成为由数据提供方各自的硬件环境生成,但是在区块链环境中,各个节点、账户之间由于缺少信任机制,因此均不可能信任任意一个节点、账户提供的随机数的随机性的缺陷。其核心思想是基于各个数据提供方提交的源随机数,对这些源随机数经不可逆算法进行计算从而生成最终的随机数。
如图1所示,为本发明实施例的随机数的生成逻辑示意图。该生成逻辑为从不同的多个数据源获取多个源随机数,每个源随机数本身也可以是随机产生的。然后基于这些随机数经不可逆算法最终得到一个随机数。
在上述生成随机数的方案思想中,原则上只要有一个源随机数是随机产生,那么就可以保证最终得到的随机数具有较好的随机性。因此,筛选用于计算随机数的各源随机数的过程就显得格外很重要。
如图2所示,本实施例给出了筛选用于计算随机数的各源随机数的具体方案,即采用“数据承诺+提交数据”的方式进行源随机数的筛选,并且将该筛选过程与区块链技术相结合。首先,服务器先接收各数据提供方提交的数据承诺,该数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及用于唯一标识所述数据提供方提交的一个数据承诺的数据标识;然后,服务器接收多个数据提供方提交的之前数据承诺中欲提交的源随机数,并将源随机数存储至区块链中,基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号(本实施例中区块编号均为按区块链的生成过程顺序编号);接着,对各数据承诺中指定的源随机数经不可逆算法进行承诺验证,如果计算得到的承诺值均与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数;最后,对已接受的源随机数进行统计,顺序提取指定数目的源随机数,作为计算一个随机数所需的源随机数。由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性。
下面通过多个实施例来进一步说明本申请的技术方案。
实施例一
基于上述筛选源随机数的方案思想,如图3所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图一,该方法的执行主为设置在网络中的服务器。如图3所示,该基于区块链的数据筛选方法包括如下步骤:
S310,接收多个数据提供方提交的数据承诺并存储至区块链中,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及数据标识,每个数据标识用于唯一标识数据提供方提交的一个数据承诺。
由于网络延迟等原因,各数据提供方提供源随机数的时间是不同步的,有早有晚。为了防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,因此本方案采用一种“数据承诺+提交数据”的方式(简称“数据承诺”)来限定数据提供方提交源随机数,以保证各数据提供方提供的源随机数是事先提供的,而不是在获知了其他数据提供方所提供的源随机数后再提供的。
所谓“数据承诺”方式提交源随机数即指,在各数据提供方提交源随机数之前,先提交针对欲提交的源随机数的数据承诺,该数据承诺的内容包括欲提交的源随机数所对应的承诺值,该承诺值为数据提供方对欲提交的源随机数经上述不可逆算法计算后获得,以用于后续服务器对接收到的该数据提供方提交的源随机数进行承诺验证。
同时,为了很好的区分各数据提供方自己提交的所有源随机数,在数据承诺中还包括用于唯一标识数据提供方提交的一个数据承诺的数据标识,该数据标识可以是数据提供方依据自己提交的源随机数的特征以及自身的身份ID标注的。这里需要说明的是,不同数据提供方可根据身份ID进行识别,所以数据承诺中的数据标识只要能够区分该数据提供方提交的各数据承诺即可。
在实际应用场景中,区块链的生成过程对于全网中各数据提供方都是公开透明的,数据提供方可以根据其掌握的当前区块链中正在生成的区块中存储的数据承诺以及源随机数的情况,主动提交数据承诺,以希望在后续生成的区块中能够处理其提供的数据承诺。
另外,为了体现数据提供方提交的承诺值与随机数的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述数据标识和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及数据标识所拼接后的字符串经上述不可逆算法计算后获得。该不可逆算法可以为哈希算法,计算得到的承诺值为哈希值。
S320,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中。
各数据提供方在提交完数据承诺后,接着会将该数据承诺中承诺值对应的源随机数提供给服务器。服务器在接收到各数据提供方提交的源随机数后,将原随机数存储至区块链中。基于接收数据承诺及其相应的提交数据(包含源随机数)的先后顺序,一般处理提交数据的区块编号要大于数据承诺所在的区块编号。
在实际应用场景中,在一个区块链中除了根区块外,任一区块中既可以存储区块编号指向当前区块的数据承诺,也可以存储区块编号指向当前区块之前的区块的数据承诺所对应的提交数据。但由于数据提供者在提交数据承诺后,一般会马上提交该数据承诺对应的提交数据,因此一般处理提交数据的区块编号不会大于数据承诺所在的区块编号太多(一般延后1-2个区块)。如果提交数据所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。
S330,按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数,并对源随机数经不可逆算法进行承诺验证。
在服务器接收到上述多少个数据提供方提交的源随机数后,可对这些源随机数,按其各自对应的数据承诺在区块链中的存储顺序,依次进行承诺验证。
具体地,对每个源随机数分别经上述不可逆算法进行计算得到承诺值,并将该承诺值与之前数据提供方提交的数据承诺中的承诺值进行比较,完成承诺验证。
在具体应用场景中,在按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数之后,如果数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值,则放弃对该源随机数的承诺验证。
具体地,如果提交数据(包含源随机数)所在区块编号大于数据承诺所在的区块编号太多,那么提交该提交数据的数据提供方很可能是监听到了其他数据提供方提交的源随机数后,再上传的提交数据,存在较大的作弊嫌疑。所以,如果数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值(例如延后3个区块以上),则认为该数据提供方提交的源随机数存在作弊嫌疑,相应的服务器会确定该源随机数无效,并放弃对该源随机数的承诺验证。
当然,如果经上述对承诺组所在区块编号与源随机数所在区块编号进行比较后确定,该源随机数没有存在作弊可能,则服务器可以继续对数据提供方提交的源随机数经不可逆算法进行承诺验证。
S340,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数。
具体地,针对每个源随机数分别经上述不可逆算法进行计算得到承诺值,且该承诺值与之前数据提供方提交的数据承诺中的承诺值对应相同,则表明该数据提供方提交的该源随机数有效,服务器可接受该数据提供方提交的源随机数,以作为计算一个随机数所需的源随机数。
当然,在步骤S330之后,还可执行如下步骤:
如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应不相同,则拒绝该数据提供方提交的源随机数。
具体地,针对每个源随机数分别经上述不可逆算法进行计算得到承诺值,如果某个承诺值与之前数据提供方提交的数据承诺中的承诺值对应不相同,则表明该数据提供方提交的源随机数无效,服务器可拒绝该数据提供方提交的源随机数,该源随机数不可以作为计算任一个随机数所需的源随机数。
S350,对已接受的源随机数的数目进行统计,并根据用于计算随机数所需的源随机数的指定数目,对已接受的源随机数进行划分,形成至少一个数据组,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。
在计算随机数之前,可以预先指定用于计算得到一个随机数所需要的源随机数的数目。例如,本实施例是在数据提供方提交源随机数之后,通过对已接受的多个源随机数进行划分,以确定用于计算一个随机数所需的源随机数。
具体地,在接收到多个数据提供方提交的源随机数之后,可先对这些源随机数进行如上所述的承诺验证,并保留接受验证成功的源随机数;然后,对已接受的源随机数的数目进行统计,并根据用于计算随机数所需的源随机数的指定数目,对已接受的源随机数进行划分,形成至少一个数据组,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。
其中,在对已接受的源随机数进行划分,形成至少一个数据组时,可根据每个源随机数验证成功的接受顺序,依次形成每个数据组。
本发明实施例提供的基于区块链的数据筛选方法,结合区块链技术,在顺序接收到多个数据提供方提交的数据承诺以及数据承诺中欲提交的源随机数之后,先对各源随机数进行承诺验证,并接受保留承诺验证成功的源随机数;然后对接受的源随机数的进行数据组划分,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。本方案可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性;同时,由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性;并且该方案可有效提高各源随机数的利用率。
实施例二
如图4所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图二,该方法可视为图3所示方法的具体实现方式,主要针对数据标识包含第一区块编号时,将各数据承诺存储至区块链中的过程进行了细化。如图4所示,该基于区块链的数据筛选方法包括如下步骤:
S410,接收多个数据提供方提交的数据承诺,并按数据承诺中携带的第一区块编号对应存储至区块链中的第一区块编号的区块中;数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及第一区块编号,该第一区块编号用于数据提供方标识数据承诺欲被处理的区块。
本步骤S410可作为上述步骤S310的细化。
具体地,为了很好的利用区块链对数据承诺进行关联处理,在数据承诺中上述数据标识可包括用于数据提供方标识数据承诺欲被处理的区块的区块编号,即第一区块编号。
在实际应用场景中,区块链的生成过程对于全网中各数据提供方都是公开透明的,数据提供方可以根据其掌握的当前区块链中正在生成的区块的区块编号,主动决定其提交的数据承诺所希望在哪个区块里被处理,并在提交的数据承诺中携带相应区块的区块编号。
另外,为了体现数据提供方提交的承诺值与区块之间的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述第一区块编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及第一区块编号所拼接后的字符串经上述不可逆算法计算后获得。
服务器可以在接收多个数据提供方提交的数据承诺后,按数据承诺中携带的第一区块编号对应存储至区块链中的第一区块编号的区块中。
例如,服务器在接收到多个数据提供方提交的数据承诺后,可先判断接收的数据承诺中携带的第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果相同,则将数据承诺存储至该数据承诺中包含的第一区块编号所对应的区块链的区块中。
服务器在接收到数据提供方提交的数据承诺之后,会结合数据承诺中携带的第一区块编号与当前区块链中正在生成的区块的编号,即第二区块编号进行比较,以决定是否将该数据承诺存储到区块链中。
根据比较结果可择一执行以下三种步骤内容,即:
如果第一区块编号小于第二区块编号,则将数据承诺丢弃。
具体地,如果第一区块编号小于第二区块编号,则表明第一区块编号对应的区块已经生产完成,提供该数据承诺的数据提供方的操作存在滞后性。基于区块链的一致性验证要求,不能再对当前正在生成的区块以前的区块进行数据编辑,因此只能将该数据承诺丢弃。
如果第一区块编号大于第二区块编号,则将数据承诺缓存,以便在区块链生成第一区块编号对应的区块时存入该区块。
具体地,如果第一区块编号大于第二区块编号,则表明第一区块编号对应的区块还未开始生成,提供该数据承诺的数据提供方的操作存在超前性。为了不浪费资源,可以先将该数据承诺缓存,以便在区块链生成第一区块编号对应的区块时,再将该数据承诺存入至该区块中。
如果第一区块编号与第二区块编号相同,则将数据承诺存储至该数据承诺中包含的第一区块编号所对应的区块链的区块中。
S420,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中。
S430,按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数,并对源随机数经不可逆算法进行承诺验证。
S440,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数。
S450,对已接受的源随机数的数目进行统计,并根据用于计算随机数所需的源随机数的指定数目,对已接受的源随机数进行划分,形成至少一个数据组,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。
步骤S420~步骤S450与上述步骤S320~步骤S350的内容对应相同。
本发明实施例提供的基于区块链的数据筛选方法,在图3所示实施例的基础上,通过将数据标识具体限定包含用于数据提供方标识数据承诺欲被处理的区块的第一区块编号,从而将数据承诺存储至指定的区块中,增加了数据提供方对区块链处理数据的参与程度,也方便服务器对数据承诺进行管理。
实施例三
如图5所示,其为本发明实施例示出的基于区块链的数据筛选方法流程图二,该方法可视为图3所示方法的具体实现方式,主要针对数据标识包括随机数编号时,将各数据承诺存储至区块链中的过程进行了细化。如图5所示,该基于区块链的数据筛选方法包括如下步骤:
S510,接收多个数据提供方提交的数据承诺并存储至区块链中,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及随机数编号,随机数编号用于标识基于源随机数所待生成的不同随机数。
本步骤S510可作为上述步骤S310的细化。
具体地,为了很好的标识各源随机数与其对应生成的随机数之间的关联关系,在数据承诺中上述数据标识可包括用于标识基于源随机数所待生成的不同随机数的随机数编号,该随机数编号可以是顺序标注的。
在实际应用场景中,区块链的生成过程对于全网中各数据提供方都是公开透明的,数据提供方可以根据其掌握的当前区块链中正在生成的区块中存储的随机数编号,主动决定其提交的数据承诺中对应的源随机数所希望被计算而得到的随机数,并在提交的数据承诺中携带相应随机数的随机数编号。
另外,为了体现数据提供方提交的承诺值与随机数的关联关系,在数据承诺中可同时包含该数据提供方的身份ID、上述随机数编号和承诺值,并且该承诺值不仅可以为上述数据提供方对欲提交的源随机数直接经上述不可逆算法计算后获得,还可以是对欲提交的源随机数、数据提供方的身份ID以及随机数编号所拼接后的字符串经上述不可逆算法计算后获得。
服务器可以在接收多个数据提供方提交的数据承诺后,将数据承诺存储至区块链中。
具体地,服务器在接收到数据提供方提交的数据承诺之后,可以先判断区块链中已存储的与当前接收的数据承诺具有相同随机数编号的数据承诺是否已达到指定数目;如果未达到指定数目,则将当前数据提供方提交的数据承诺存储至区块链中。该步骤可以节省区块链的存储资源,避免对不必要的数据承诺及其对应的源随机数进行维护。
S520,接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中。
S530,按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数,并对源随机数经不可逆算法进行承诺验证。
S540,如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数。
步骤S520~步骤S540与上述步骤S320~步骤S340的内容对应相同。
S550,对已接受的源随机数进行统计,顺序提取对应同一随机数编号的指定数目的源随机数,作为计算与该随机数编号对应的随机数所需的源随机数。
本步骤S550可作为上述步骤S350的细化。
具体地,由于在数据承诺中已经标识了该数据承诺对应的源随机数经计算所产生的随机数的随机数编号,因此在提取源随机数计算随机数时,可以提取对应同一随机数编号的指定数目的源随机数,以作为计算与该随机数编号对应的随机数所需的源随机数。
本发明实施例提供的基于区块链的数据筛选方法,在图3所示实施例的基础上,通过将数据标识具体限定为包含用于标识基于所述源随机数所待生成的不同随机数的随机数编号,从而在提取用于计算随机数的源随机数时,可以提取对应同一随机数编号的指定数目的源随机数,以作为计算与该随机数编号对应的随机数所需的源随机数,从而增加了数据提供方对区块链处理数据的参与程度,也方便服务器对数据承诺进行管理。
实施例四
如图6所示,其为本发明实施例示出的基于区块链的数据筛选装置的结构示意图一,该装置可以为设置在网络中的服务器,用于执行如图3所示的方法步骤。如图6所示,该基于区块链的数据筛选装置包括:
承诺存储模块610,用于接收多个数据提供方提交的数据承诺并存储至区块链中,数据承诺中携带数据提供方欲提交的源随机数所对应的源随机数经不可逆算法计算得到的承诺值以及数据标识,每个数据标识用于唯一标识数据提供方提交的一个数据承诺;
源随机数存储模块620,用于接收多个数据提供方提交的数据承诺中欲提交的源随机数,并将源随机数存储至区块链中;
承诺验证模块630,用于按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数,并对源随机数经不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与数据提供方提交的数据承诺中的承诺值对应相同,则接受该源随机数;
源随机数统计模块640,用于对已接受的源随机数的数目进行统计,并根据用于计算随机数所需的源随机数的指定数目,对已接受的源随机数进行划分,形成至少一个数据组,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。
进一步地,上述数据标识可包括第一区块编号,第一区块编号用于数据提供方标识数据承诺欲被处理的区块;
相应的,承诺存储模块610,用于接收多个数据提供方提交的数据承诺,并按数据承诺中携带的第一区块编号对应存储至区块链中的第一区块编号的区块中。
进一步地,如图7所示,在图6所示装置的基础上,上述承诺存储模块610可具体包括:
第一区块编号判断单元710,用于判断接收的数据承诺中携带的第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
第一承诺存储单元720,用于如果相同,则将数据承诺存储至该数据承诺中包含的第一区块编号所对应的区块链的区块中。
图7所示装置结构可用于执行图4所示方法步骤。
进一步地,上述数据标识可包括随机数编号,随机数编号用于标识基于源随机数所待生成的不同随机数;
相应的,源随机数统计模块640,可用于对已接受的源随机数进行统计,顺序提取对应同一随机数编号的指定数目的源随机数,作为计算与该随机数编号对应的随机数所需的源随机数。
进一步地,如图8所示,在图6所示装置的基础上,上述承诺存储模块610可具体包括:
第二区块编号判断单元810,用于接收数据提供方提交的数据承诺,并判断区块链中已存储的与当前接收的数据承诺具有相同随机数编号的数据承诺是否已达到指定数目;
第二承诺存储单元820,用于如果未达到指定数目,则将当前数据提供方提交的数据承诺存储至区块链中。
图8所示装置结构可用于执行图5所示方法步骤。
进一步地,在上述所有装置结构中还可包括:区块编号判断模块,用于在承诺验证模块630按照各数据承诺在区块链中的存储顺序,在区块链中依次查找数据承诺中欲提交的源随机数之后,如果判定数据承诺对应的源随机数所在的区块编号大于且超出数据承诺所在区块编号预定值,则触发承诺验证模块630放弃对该源随机数的承诺验证。
本发明实施例提供的基于区块链的数据筛选装置,结合区块链技术,在顺序接收到多个数据提供方提交的数据承诺以及数据承诺中欲提交的源随机数之后,先对各源随机数进行承诺验证,并接受保留承诺验证成功的源随机数;然后对接受的源随机数的进行数据组划分,每个数据组中包括指定数目的源随机数,以作为计算一个随机数所需的源随机数。本方案可防止个别数据提供方所提交的源随机数是监测到其他数据提供方上传的源随机数之后提交的,存在作弊的可能,从而提高生成随机数产生结果的随机性;同时,由于在筛选随机数的过程中,通过区块链对数据承诺以及源随机数进行存储,保证了这些数据的不可篡改性,从而保证了最终筛选出的源随机数的真实性;并且该方案可有效提高各源随机数的利用率。
进一步地,通过将数据标识具体限定包含用于数据提供方标识数据承诺欲被处理的区块的第一区块编号,从而将数据承诺存储至指定的区块中,增加了数据提供方对区块链处理数据的参与程度,也方便服务器对数据承诺进行管理。
进一步地,通过将数据标识具体限定为包含用于标识基于所述源随机数所待生成的不同随机数的随机数编号,从而在提取用于计算随机数的源随机数时,可以提取对应同一随机数编号的指定数目的源随机数,以作为计算与该随机数编号对应的随机数所需的源随机数,从而增加了数据提供方对区块链处理数据的参与程度,也方便服务器对数据承诺进行管理。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于区块链的数据筛选方法,其特征在于,包括:
接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及数据标识,每个所述数据标识用于唯一标识所述数据提供方提交的一个所述数据承诺;
接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
按照各所述数据承诺在区块链中的存储顺序,在所述区块链中依次查找所述数据承诺中欲提交的所述源随机数,并对所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该源随机数;
对已接受的所述源随机数的数目进行统计,并根据用于计算所述随机数所需的所述源随机数的指定数目,对已接受的所述源随机数进行划分,形成至少一个数据组,每个数据组中包括所述指定数目的所述源随机数,以作为计算一个所述随机数所需的所述源随机数。
2.根据权利要求1所述的方法,其特征在于,所述数据标识包括第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
所述接收多个数据提供方提交的数据承诺并存储至区块链中包括:
接收多个数据提供方提交的数据承诺,并按所述数据承诺中携带的所述第一区块编号对应存储至区块链中的所述第一区块编号的区块中。
3.根据权利要求2所述的方法,其特征在于,所述接收多个数据提供方提交的数据承诺,并按所述数据承诺中携带的所述第一区块编号对应存储至区块链中的所述第一区块编号的区块中包括:
判断接收的所述数据承诺中携带的所述第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
如果相同,则将所述数据承诺存储至该数据承诺中包含的所述第一区块编号所对应的区块链的区块中。
4.根据权利要求1所述的方法,其特征在于,所述数据标识包括随机数编号,所述随机数编号用于标识基于所述源随机数所待生成的不同随机数;
所述对已接受的所述源随机数的数目进行统计,并根据用于计算所述随机数所需的所述源随机数的指定数目,对已接受的所述源随机数进行划分,形成至少一个数据组包括:
对已接受的所述源随机数进行统计,顺序提取对应同一所述随机数编号的所述指定数目的所述源随机数,作为计算与该随机数编号对应的所述随机数所需的所述源随机数。
5.根据权利要求4所述的方法,其特征在于,所述接收多个数据提供方提交的数据承诺并存储至区块链中包括:
接收所述数据提供方提交的所述数据承诺,并判断所述区块链中已存储的与当前接收的数据承诺具有相同所述随机数编号的数据承诺是否已达到指定数目;
如果未达到所述指定数目,则将当前所述数据提供方提交的所述数据承诺存储至区块链中。
6.一种基于区块链的数据筛选装置,其特征在于,包括:
承诺存储模块,用于接收多个数据提供方提交的数据承诺并存储至区块链中,所述数据承诺中携带所述数据提供方欲提交的源随机数所对应的所述源随机数经不可逆算法计算得到的承诺值以及数据标识,每个所述数据标识用于唯一标识所述数据提供方提交的一个所述数据承诺;
源随机数存储模块,用于接收所述多个数据提供方提交的所述数据承诺中欲提交的源随机数,并将所述源随机数存储至区块链中;
承诺验证模块,用于按照各所述数据承诺在区块链中的存储顺序,在所述区块链中依次查找所述数据承诺中欲提交的所述源随机数,并对所述源随机数经所述不可逆算法进行承诺验证;
如果承诺验证后确定:计算得到的承诺值与所述数据提供方提交的所述数据承诺中的承诺值对应相同,则接受该源随机数;
源随机数统计模块,用于对已接受的所述源随机数的数目进行统计,并根据用于计算所述随机数所需的所述源随机数的指定数目,对已接受的所述源随机数进行划分,形成至少一个数据组,每个数据组中包括所述指定数目的所述源随机数,以作为计算一个所述随机数所需的所述源随机数。
7.根据权利要求6所述的装置,其特征在于,所述数据标识包括第一区块编号,所述第一区块编号用于所述数据提供方标识所述数据承诺欲被处理的区块;
所述承诺存储模块,用于接收多个数据提供方提交的数据承诺,并按所述数据承诺中携带的所述第一区块编号对应存储至区块链中的所述第一区块编号的区块中。
8.根据权利要求7所述的装置,其特征在于,所述承诺存储模块包括:
第一区块编号判断单元,用于判断接收的所述数据承诺中携带的所述第一区块编号是否与当前区块链中正在生成的区块的第二区块编号相同;
第一承诺存储单元,用于如果相同,则将所述数据承诺存储至该数据承诺中包含的所述第一区块编号所对应的区块链的区块中。
9.根据权利要求6所述的装置,其特征在于,所述数据标识包括随机数编号,所述随机数编号用于标识基于所述源随机数所待生成的不同随机数;
所述源随机数统计模块,用于对已接受的所述源随机数进行统计,顺序提取对应同一所述随机数编号的所述指定数目的所述源随机数,作为计算与该随机数编号对应的所述随机数所需的所述源随机数。
10.根据权利要求9所述的装置,其特征在于,所述承诺存储模块包括:
第二区块编号判断单元,用于接收所述数据提供方提交的所述数据承诺,并判断所述区块链中已存储的与当前接收的数据承诺具有相同所述随机数编号的数据承诺是否已达到指定数目;
第二承诺存储单元,用于如果未达到所述指定数目,则将当前所述数据提供方提交的所述数据承诺存储至区块链中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479226.4A CN108334553B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711479226.4A CN108334553B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334553A true CN108334553A (zh) | 2018-07-27 |
CN108334553B CN108334553B (zh) | 2020-07-10 |
Family
ID=62924573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711479226.4A Active CN108334553B (zh) | 2017-12-29 | 2017-12-29 | 基于区块链的数据筛选方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334553B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990790A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN111565101A (zh) * | 2020-04-28 | 2020-08-21 | 上海物融智能科技有限公司 | 一种计算任务的处理方法及装置 |
CN114338006A (zh) * | 2021-12-24 | 2022-04-12 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106100847A (zh) * | 2016-06-14 | 2016-11-09 | 惠众商务顾问(北京)有限公司 | 非对称加密区块链身份信息验证方法及装置 |
US20170149819A1 (en) * | 2015-11-25 | 2017-05-25 | International Business Machines Corporation | Resisting replay attacks efficiently in a permissioned and privacy- preserving blockchain network |
CN107193490A (zh) * | 2017-05-16 | 2017-09-22 | 北京中星仝创科技有限公司 | 一种基于区块链的分布式数据存储系统及方法 |
CN107294729A (zh) * | 2017-07-25 | 2017-10-24 | 中国联合网络通信集团有限公司 | 区块链中不同节点之间的通信方法及装置 |
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
-
2017
- 2017-12-29 CN CN201711479226.4A patent/CN108334553B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170149819A1 (en) * | 2015-11-25 | 2017-05-25 | International Business Machines Corporation | Resisting replay attacks efficiently in a permissioned and privacy- preserving blockchain network |
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106100847A (zh) * | 2016-06-14 | 2016-11-09 | 惠众商务顾问(北京)有限公司 | 非对称加密区块链身份信息验证方法及装置 |
CN107193490A (zh) * | 2017-05-16 | 2017-09-22 | 北京中星仝创科技有限公司 | 一种基于区块链的分布式数据存储系统及方法 |
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
CN107294729A (zh) * | 2017-07-25 | 2017-10-24 | 中国联合网络通信集团有限公司 | 区块链中不同节点之间的通信方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990790A (zh) * | 2019-11-29 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN110990790B (zh) * | 2019-11-29 | 2022-05-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及设备 |
CN111565101A (zh) * | 2020-04-28 | 2020-08-21 | 上海物融智能科技有限公司 | 一种计算任务的处理方法及装置 |
CN114338006A (zh) * | 2021-12-24 | 2022-04-12 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
CN114338006B (zh) * | 2021-12-24 | 2023-01-24 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
WO2023115602A1 (zh) * | 2021-12-24 | 2023-06-29 | 浙江大学 | 基于半可信硬件的互相关伪随机数的远程获取方法及装置 |
US11947930B1 (en) | 2021-12-24 | 2024-04-02 | Zhejiang University | Method and device for remote acquisition of correlated pseudo-random numbers based on semi-trusted hardware |
Also Published As
Publication number | Publication date |
---|---|
CN108334553B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388421A (zh) | 随机数的生成方法和装置 | |
CN108365960A (zh) | 随机数提供方法和装置 | |
CN106991573A (zh) | 基于区块链技术的艺术品保真方法和服务器 | |
CN107528882A (zh) | 区块链共识网络中处理共识请求的方法、装置和电子设备 | |
CN107103097A (zh) | 基于区块链技术的抽签方法和终端设备 | |
CN108182581A (zh) | 一种区块链的记账方法及装置 | |
CN108334553A (zh) | 基于区块链的数据筛选方法和装置 | |
CN106446067A (zh) | 一种获取交易数据的方法和装置 | |
CN108390762A (zh) | 基于区块链的数据筛选方法和装置 | |
CN107274159A (zh) | 一种基于区块并发执行算法的记账系统及方法 | |
CN103198087B (zh) | 用于分析建议请求的关联存储器技术 | |
CN112001797B (zh) | 对区块链中的交易进行分组的方法和装置 | |
CN111985930B (zh) | 客户号生成方法及装置 | |
CN108334307A (zh) | 基于区块链的数据筛选方法和装置 | |
CN106650496A (zh) | 一种数据处理方法及装置 | |
CN109918444A (zh) | 模型结果的训练/验证/管理方法/系统、介质及设备 | |
CN113570387A (zh) | 基于区块链的艺术品溯源方法及电子设备 | |
Prager et al. | Per-instance configuration of the modularized CMA-ES by means of classifier chains and exploratory landscape analysis | |
CN107577943A (zh) | 基于机器学习的样本预测方法、装置及服务器 | |
KR102178895B1 (ko) | PoP 기반 블록체인 보상 방법 및 장치 | |
CN111881147B (zh) | 计算任务的处理方法和装置、存储介质及处理器 | |
CN108170403A (zh) | 数据筛选方法和装置 | |
CN108415686A (zh) | 随机数提供过程中的分账计算方法和装置 | |
CN116822623B (zh) | 一种生成对抗网络联合训练方法、装置、设备及存储介质 | |
CN108363561A (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 |