CN108831001A - 基于区块链的节点随机选取方法、***、节点、电子设备 - Google Patents
基于区块链的节点随机选取方法、***、节点、电子设备 Download PDFInfo
- Publication number
- CN108831001A CN108831001A CN201810663208.XA CN201810663208A CN108831001A CN 108831001 A CN108831001 A CN 108831001A CN 201810663208 A CN201810663208 A CN 201810663208A CN 108831001 A CN108831001 A CN 108831001A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- block chain
- trusted
- random train
- 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
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C15/00—Generating random numbers; Lottery apparatus
- G07C15/006—Generating random numbers; Lottery apparatus electronically
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种基于区块链的节点随机选取方法、节点、***、电子设备。该方法包括:向区块链中的任一节点发送第一交易地址,该第一交易地址用于接收各个节点发送的第一交易;当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,该第二交易地址用于接收各个节点发送的第二交易;根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点;根据各个可信节点对应的随机串确定选中节点;向区块链中的任一节点发送确定选中节点的消息。本申请实施例让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时通过区块链技术记录整个节点随机选取过程中的数据,保证任何一个节点都无法操控最终的选取结果。
Description
技术领域
本申请涉及区块链技术领域,具体而言,本申请涉及一种基于区块链的节点随机选取方法、***、节点、电子设备。
背景技术
在进行资源(例如,车牌、房屋、学位等)分配时,通过“摇号”的方式可以保证公平和公正。“摇号”方式一般包括:线下摇号和线上摇号。
线下摇号方式,一般采用摇号箱抽取,或利用计算机进行现场抽取等获取摇号结果。线上摇号方式,一般是根据设定好的摇号规则,通过计算机对参与摇号者进行抽取获取摇号结果。
相关技术中的摇号方式,由于摇号规则的设置、摇号结果的公布等都不能做到公开透明,因此,不能做到摇号的公平公正。
发明内容
本申请提供了一种基于区块链的节点随机选取方法、装置、电子设备及计算机可读存储介质,可以解决随机选取过程无法做到公平公正公开的问题。所述技术方案如下:
第一方面,本申请提供了一种基于区块链的节点随机选取方法,该方法包括:
向区块链中的任一节点发送第一交易地址,第一交易地址用于接收各个节点发送的第一交易,第一交易包括节点生成的随机串对应的密文;
当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,第二交易地址用于接收各个节点发送的第二交易,第二交易包括节点生成的随机串;
根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,根据各个可信节点对应的随机串确定选中节点;
向区块链中的任一节点发送确定选中节点的消息。
可选地,预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送第一交易到第一交易地址。
可选地,根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,包括:
从第二交易地址中获取第二交易中的随机串,并从第一交易地址中获取与第二交易对应的节点发送的第一交易中的密文;
根据第二交易中的随机串得到第一密文;
将第一密文与从第一交易中的密文进行比对,若相同,则确定第二交易对应的节点为可信节点。
可选地,根据各个可信节点对应的随机串确定选中节点,包括:
给各个可信节点编号;
对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定融合随机串的哈希值;
对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
可选地,给各个可信节点编号,包括:
根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号;
或,
根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
可选地,对各个可信节点对应的随机串进行融合处理,得到融合随机串,包括:
按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串。
可选地,该方法还包括:
向中选者发送指定地址;
从指定地址中获取中选者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则中选者对应的节点为选中节点。
可选地,该方法还包括:向选中节点的地址发送虚拟激励标识。
第二方面,本申请提供了一种基于区块链的节点随机选取***,该***包括多个节点,其中,
主持节点用于向区块链中的任一节点发送第一交易地址;
各个节点用于生成随机串以及随机串对应的密文,并发送包括密文的第一交易到第一交易地址;
主持节点用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址;
各个节点用于发送包括随机串的第二交易到第二交易地址;
主持节点用于根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,根据各个可信节点对应的随机串确定选中节点,向区块链中的任一节点发送确定选中节点的消息。
可选地,预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送交易到第一交易地址。
可选地,主持节点具体用于:
从第二交易地址中获取第二交易中的随机串,并从第一交易地址中获取与第二交易对应的节点发送的第一交易中的密文;
根据第二交易中的随机串得到第一密文;
将第一密文与从第一交易中的密文进行比对,若相同,则确定第二交易对应的节点为可信节点。
可选地,主持节点具体用于:
给各个可信节点编号;
对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定融合随机串的哈希值;
对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
可选地,主持节点具体用于:
根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号;
或,
根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
可选地,主持节点具体用于:按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串。
可选地,主持节点还用于:
向中选者发送指定地址,从指定地址中获取中选者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则中选者对应的节点为选中节点。
可选地,主持节点还用于向选中节点的地址发送虚拟激励标识。
第三方面,本申请提供了一种用于实现区块链中的节点随机选取的主持节点,该主持节点包括:
第一发送模块,用于向区块链中的任一节点发送第一交易地址,第一交易地址用于接收各个节点发送的第一交易,第一交易包括节点生成的随机串对应的密文;
第二发送模块,用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,第二交易地址用于接收各个节点发送的第二交易,第二交易包括节点生成的随机串;
可信节点确定模块,用于根据第一交易中的密文和第二交易中的随机串确定可信节点;
节点随机选取模块,用于根据各个可信节点对应的随机串确定选中节点;
选中消息发送模块,用于向区块链中的任一节点发送确定选中节点的消息。
第四方面,本申请提供了一种电子设备,该电子设备包括:一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于:执行本申请第一方面所示的基于区块链的节点随机选取方法。
第五方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的基于区块链的节点随机选取方法。
本申请实施例提供的技术方案带来的有益效果是:让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种基于区块链的节点随机选取方法的流程示意图;
图2为本申请实施例提供的一种用于实现基于区块链的节点随机选取的主持节点的结构示意图;
图3为本申请实施例提供的另一种用于实现基于区块链的节点随机选取的主持节点的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
实施例一
本申请实施例提供了一种基于区块链的节点随机选取方法,如图1所示,该方法包括:
步骤S101、向区块链中的任一节点发送第一交易地址,该第一交易地址用于接收各个节点发送的第一交易,该第一交易包括节点生成的随机串对应的密文;
步骤S102、当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,该第二交易地址用于接收各个节点发送的第二交易,该第二交易包括节点生成的随机串;
步骤S103、根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点;
步骤S104、根据各个可信节点对应的随机串确定选中节点;
步骤S105、向区块链中的任一节点发送确定选中节点的消息。
其中,需要预先确定好一个主持节点,由主持节点执行步骤S101-步骤S105。该主持节点可以是区块链中的任一节点,也可是预先确定的某个特殊节点,亦或是区块链中所有节点公选出的一个节点,对于主持节点的选取方式,在此不做限定。
其中,可信节点是指在满足预设截止条件前向第一交易地址发送随机串对应的密文,且向第二交易地址发送随机串的节点。但凡在满足预设截止条件后,才向第一交易地址发送密文的节点,都不能作为可信节点。
首先,由主持节点向区块链中的任一节点发送第一交易地址。区块链中各个节点收到该第一交易地址后,各个节点生成随机串R,并利用预设算法生成该随机串对应的密文r,向第一交易地址发送包含密文r的第一交易。当满足预设截止条件时,主持节点向区块链中的任一节点发送第二交易地址。各个节点收到第二交易地址后,应停止向第一交易地址发送第一交易,转而向第二交易地址发送包含随机串R的第二交易。随后,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点。接着,由主持节点根据各个可信节点对应的随机串,通过预设算法确定选中节点。最后,主持节点向区块链中的任一节点发送确定选中节点的消息。
本实施例的方法根据各个节点提供的随机串确定选中节点,因此,任何一个节点的随机串稍有变化,都会导致最终的选中节点千差万别,保证了最终选取结果的随机性。并且,各个节点的随机串是由各个节点随机生成的,在向第二交易地址发送随机串之前,没有一个节点能够预测最终的选中节点,而各个节点又必须提前将随机串对应的密文发送至第一交易地址,因此,各个节点无法修改其向第二交易地址发送的随机串。因为,一旦某个节点修改了其向第二交易地址发送的随机串,主持节点能够发现修改后的随机串与该节点发送到第一交易地址中的密文不匹配,则该节点不会被确定为可信节点,也就无法参与最终的选取,保证任何一个节点都无法操控最终的选取结果。
此外,由于整个节点随机选取过程均在区块链中实现,即节点整个随机选取过程中的数据,如发送到第一交易地址、第二交易地址中的交易数据以及最终的节点选取结果,均通过区块的方式记录在区块链中,因此,区块链中的任意一个节点都可以从区块链中获取记录,以复盘整个节点随机选取过程,实现了全链所有节点共同监督随机选取过程,防止任何一方作弊。因此,虽然主持节点负责整个随机选取过程,但是,主持节点的每一操作步骤都受到全链所有节点的监督。
需要说明的是,本实施例中的主持节点也可以生成随机数,并参与节点的选取。
因此,本实施例的基于区块链的节点随机选取方法,让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证包括主持节点在内的任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
实施例二
本申请实施例提供了另一种可能的实现方式,在实施例一的基础上,还包括实施例二所示的方法。
其中,预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送第一交易到第一交易地址。
可选地,步骤S102具体包括:当达到预设的第一截止时间时,主持节点向区块链中的任一节点发送第二交易地址。
达到第一截止时间后,才将随机串对应的密文发送到第一交易地址的节点,均不会被确定为可信节点,即不会参与随机选取。
可选地,步骤S102具体包括:当各个节点都已发送第一交易到第一交易地址时,主持节点向区块链中的任一节点发送第二交易地址。
其中,该预设截止条件适用于以下情况:事先确定了各个节点都会且必须参与节点随机选取。
节点随机选取过程也可以仅针对区块链中的部分节点进行,例如,预先确定好参与随机抽取的节点,仅对这些参与的节点发送第一交易地址和第二交易地址。
其中,还可预设第二截止条件,第二截止条件可以包括:达到预设的第二截止时间,或,各个节点都已发送第二交易到第二交易地址。当满足预设的第二截止条件时,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取满足第二截止条件前收到的第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点。
可选地,步骤S103具体包括:
步骤S1031、从第二交易地址中获取第二交易中的随机串,并从第一交易地址中获取与第二交易对应的节点发送的第一交易中的密文;
步骤S1032、根据第二交易中的随机串得到第一密文;
步骤S1033、将第一密文与从第一交易中的密文进行比对,若相同,则确定第二交易对应的节点为可信节点。
其中,各个节点均采用预先规定的算法生成随机串对应的密文,主持节点也采用预先规定的算法生成第二交易中的随机串对应的第一密文。可采用摘要算法生成随机串对应的密文,例如哈希算法,以保证任何节点拿到密文后,都无法破解密文对应的随机串。
其中,只有当节点满足以下所有要求时,这个节点才是可信节点:(1)该节点在满足预设截止条件前,向第一交易地址发送了该节点生成的随机串;(2)该节点向第二交易地址发送了密文;(3)根据该节点向第一交易地址发送的随机串得到的第一密文与该节点向第二交易地址发送的密文相同。
可选地,步骤S104具体包括:
步骤S1041、给各个可信节点编号;
步骤S1042、对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定融合随机串的哈希值;
步骤S1043、对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
其中,步骤S1042具体包括:按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串。
例如,主持节点一共确定了K个可信节点,由主持节点对所有可信节点进行编号,每个可信节点分配到唯一的一个序号,序号为从0到K-1。按可信节点的序号顺序,连接所有可信节点的随机串得到融合随机串L=R0R1……RK-1,计算L的哈希值H=hash(L),对H进行取模运算,取模结果re=H mod K,序号与取模结果re相同的可信节点即为选中节点,例如,re=1,则序号为1的可信节点为选中节点。
上述确定选中节点的方法,根据所有可信节点提供的随机串确定选中节点,使得所有的可信节点都参与到确定选中节点的过程中,防止任何一方作弊。
进一步地,步骤S1041具体包括:根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号。
进一步地,步骤S1041具体包括:根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
其中,节点的地址是该节点在区块链中的身份标识,具有唯一性,例如,比特币区块链中的钱包地址。
进一步地,通过上述步骤S1043的方法,一次只能确定一个选中节点,当需要一次确定多个选中节点时,可基于取模运算结果衍生出多个选中节点。例如,假设取模结果为a,是a的整数倍的序号对应的节点均为选中节点,即序号为a、2a、3a、……na的节点均为选中节点,通过设定n,还可以控制选中节点的数量。
可选地,本实施例的方法还包括以下步骤:向中选者发送指定地址;从指定地址中获取中选者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则中选者对应的节点为选中节点。
例如,当选中节点对应的中选者需要领取相应的实物时,实物发放方可要求中选者发送一笔交易到指定地址,当该笔交易对应的地址与选中节点的地址相同时,确定该中选者为选中节点对应的用户,将相应的实物发放给该中选者。通过节点的地址验证中选者的身份,防止出现冒领的情况。
可选地,本实施例的方法还包括以下步骤:向选中节点的地址发送虚拟激励标识。
其中,虚拟激励标识可以虚拟币、电子券等。例如,当需要向选中节点发放相应的虚拟奖励(如虚拟币)时,可以直接向选中节点的地址发送虚拟奖励。
本实施例提供的基于区块链的节点随机选取方法,能够应用到任何需要实现随机选取的场景中。
例如,在进行资源(例如,车牌、房屋、学位等)分配时,采取“摇号”的方式对资源进行随机分配。下面简单阐述结合本实施例的方法的“摇号”过程。
在开始“摇号”前,由分配资源的主办方提供依托区块链技术实现的“摇号”***,各个申请“摇号”的用户预先在“摇号”***中完成注册并获取到一个唯一的地址,每个用户端对应一个节点。在这个应用场景中,主持节点可以是分配资源的主办方提供的一个特殊节点。“摇号”实际上就是从区块链的所有节点中随机选取出一个或多个节点。
开始“摇号”后,主持节点向区块链中的任一节点发送第一交易地址。区块链中的各个节点在收到第一交易地址后,生成随机串R以及随机串对应的密文r,并发送包括密文r的第一交易到第一交易地址。当满足预设截止条件时,主持节点向区块链中的任一节点发送第二交易地址。各个节点在收到第二交易地址后,发送包括随机串R的第二交易到第二交易地址。在满足预设的第二截止条件后,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取满足预设的第二截止条件前收到的第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点,根据各个可信节点对应的随机串R确定选中节点,向区块链中的任一节点发送确定选中节点的消息。
整个“摇号”过程中的数据都会记录在区块链中,各个节点在收到确定选中节点的消息后,从区块链中获取本次“摇号”的数据,根据这些数据验证选“摇号”结果以及过程是否可信。
产生“摇号”结果后,主办方向选中节点的地址发送相应的中选凭证,选中节点对应的用户可通过中选凭证办理相关手续,以获得如车牌、房屋等实物。
当需要选中节点对应的用户现场领取分配的资源时,主办方可以要求领取者向指定地址发送一笔验证交易,主办方从该指定地址中获取领取者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则该领取者对应的节点为选中节点。此时,可以向该领取者发放相应的资源。
通过上述方法,保证任何人都无法操控最终的“摇号”结果,真正实现了公平、公正、公开的“摇号”,同时防止发生冒领情况。
又例如,传统的抽奖方式容易存在暗箱操作,而通过本实施例的方法实现的抽奖过程,能够保证抽奖结果的随机性,同时保证任何人都无法操控最终的中奖结果。具体实现方式如下:
在开始“抽奖”前,由“抽奖”活动的主办方在区块链中确定一个主持节点,或者由区块链中的各个节点选举出一个主持节点。“抽奖”实际上就是从区块链的所有节点中随机选取出一个或多个节点。
开始“抽奖”后,主持节点向区块链中的任一节点发送第一交易地址。区块链中的各个节点在收到第一交易地址后,生成随机串R以及随机串对应的密文r,并发送包括密文r的第一交易到第一交易地址。当满足预设截止条件时,主持节点向区块链中的任一节点发送第二交易地址。各个节点在收到第二交易地址后,发送包括随机串R的第二交易到第二交易地址。在满足预设的第二截止条件后,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取满足预设的第二截止条件前收到的第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点,根据各个可信节点对应的随机串R确定选中节点,向区块链中的任一节点发送确定选中节点的消息。
整个“抽奖”过程中的数据都会记录在区块链中,各个节点在收到确定选中节点的消息后,从区块链中获取本次“抽奖”的数据,根据这些数据验证选“抽奖”结果以及过程是否可信。
当奖品是实物时,选中节点对应的中选者达到领奖现场后,实物发放方可要求中选者发送一笔交易到指定地址,当该笔交易对应的地址与选中节点的地址相同时,确定该中选者为选中节点对应的用户,将相应的实物发放给该中选择。通过节点的地址验证中选者的身份,防止出现冒领的情况。
当奖品是虚拟奖励(如虚拟币、电子券)时,可以直接向选中节点的地址发送虚拟奖励。
再例如,本实施例的方法可应用到区块链的记账人选举中。具体实现方法如下:
主持节点向区块链中的任一节点发送第一交易地址。区块链中的各个节点在收到第一交易地址后,生成随机串R以及随机串对应的密文r,并发送包括密文r的第一交易到第一交易地址。当满足预设截止条件时,主持节点向区块链中的任一节点发送第二交易地址。各个节点在收到第二交易地址后,发送包括随机串R的第二交易到第二交易地址。在满足预设的第二截止条件后,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取满足预设的第二截止条件前收到的第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点,根据各个可信节点对应的随机串R确定选中节点,向区块链中的任一节点发送确定选中节点的消息。各个节点对随机选取过程进行验证,当所有节点完成验证并确认选中结果无误后,该选中节点即可确定为记账人。
其中,主持节点可以是区块链中的任一节点。
现有的记账人选举方式,是随机选择交易***中的多个节点作为记账人,然而,随机选择的方式是通过随机数选定的,而计算机中的随机数是伪随机数,是由可确定的函数(例如,线性同余)通过一个种子(例如***时间),来产生的伪随机数。因此,当知道了种子,或者已经产生的随机数,都可能获得接下来的随机数序列的信息。因此,现有技术所选择的记账人容易假冒,并不可靠。
本实施例的方法,让所有节点都参与到选举记账人过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证任何一个节点都无法操控最终的选取结果,保证了选举过程的公平、公正、公开。
实施例三
基于与实施例一、二相同的发明构思,本实施例提供了一种基于区块链的节点随机选取***,该***包括多个节点。
其中,主持节点用于向区块链中的任一节点发送第一交易地址。
各个节点用于生成随机串以及随机串对应的密文,并发送包括密文的第一交易到第一交易地址;
主持节点用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址。
各个节点用于发送包括随机串的第二交易到第二交易地址。
主持节点用于根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,根据各个可信节点对应的随机串确定选中节点,向区块链中的任一节点发送确定选中节点的消息。
其中,需要预先确定好一个主持节点,该主持节点可以是区块链中的任一节点,也可是预先确定的某个特殊节点,亦或是区块链中所有节点公选出的一个节点,对于支持节点的具体选取方式,在此不做限定。
其中,可信节点为在满足预设截止条件前向第一交易地址发送随机串对应的密文,且向第二交易地址发送随机串的节点。但凡在满足预设截止条件后,才向第一交易地址发送密文的节点,都不能作为可信节点。
首先,由主持节点向区块链中的任一节点发送第一交易地址。区块链中各个节点收到该第一交易地址后,各个节点生成随机串R,并利用预设算法生成该随机串对应的密文r,向第一交易地址发送包含密文r的第一交易。当满足预设截止条件时,主持节点向区块链中的任一节点发送第二交易地址。各个节点收到第二交易地址后,应停止向第一交易地址发送第一交易,转而向第二交易地址发送包含随机串R的第二交易。随后,主持节点从第一交易地址中提取满足预设截止条件前收到的第一交易,从第二交易地址中提取第二交易,根据各个节点发送的第一交易中的密文r和第二交易中的随机串R确定可信节点。接着,由主持节点根据各个可信节点对应的随机串,通过预设算法确定选中节点。最后,主持节点向区块链中的任一节点发送确定选中节点的消息。
本实施例的基于区块链的节点随机选取***,让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证包括主持节点在内的任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
其中,预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送交易到第一交易地址。
可选地,主持节点具体用于:从第二交易地址中获取第二交易中的随机串,并从第一交易地址中获取与第二交易对应的节点发送的第一交易中的密文;根据第二交易中的随机串得到第一密文;将第一密文与从第一交易中的密文进行比对,若相同,则确定第二交易对应的节点为可信节点。
可选地,主持节点具体用于:给各个可信节点编号;对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定融合随机串的哈希值;对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
其中,主持节点具体用于:给各个可信节点编号;按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串,并确定融合随机串的哈希值;对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
可选地,主持节点具体用于:根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号。
可选地,主持节点具体用于:根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
可选地,主持节点还用于:向中选者发送指定地址,从指定地址中获取中选者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则中选者对应的节点为选中节点。
可选地,主持节点还用于向选中节点的地址发送虚拟激励标识。
本实施例提供的基于区块链的节点随机选取***,采用了与实施例一、二相同的发明构思,能够取得相同的有益效果,在此不再赘述。
实施例四
本申请实施例提供了一种用于实现区块链中的节点随机选取的主持节点,如图2所示,该主持节点20可以包括:第一发送模块201、第二发送模块202、可信节点确定模块203、节点随机选取模块204以及选中消息发送模块205。
其中,第一发送模块201,用于向区块链中的任一节点发送第一交易地址,第一交易地址用于接收各个节点发送的第一交易,第一交易包括节点生成的随机串对应的密文。
其中,第二发送模块202用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,第二交易地址用于接收各个节点发送的第二交易,第二交易包括节点生成的随机串。
其中,可信节点确定模块203用于根据第一交易中的密文和第二交易中的随机串确定可信节点。
其中,节点随机选取模块204用于根据各个可信节点对应的随机串确定选中节点。
其中,选中消息发送模块205用于向区块链中的任一节点发送确定选中节点的消息。
本实施例的用于实现区块链中的节点随机选取的主持节点,让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证包括主持节点在内的任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
需要说明的是,本实施例中的主持节点可以是区块链中的任一节点。
其中,预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送第一交易到第一交易地址。
可选地,如图3所示,可信节点确定模块203具体包括:获取单元2031、加密单元2032以及比对单元2033。
其中,获取单元2031用于从第二交易地址中获取第二交易中的随机串,并从第一交易地址中获取与第二交易对应的节点发送的第一交易中的密文。
其中,加密单元2032用于根据第二交易中的随机串得到第一密文。
其中,比对单元2033用于将第一密文与从第一交易中的密文进行比对,若相同,则确定第二交易对应的节点为可信节点。
可选地,节点随机选取模块204具体包括:编号单元2041、融合单元2042以及取模运算单元2043。
其中,编号单元2041用于给各个可信节点编号。
其中,融合单元2042用于对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定融合随机串的哈希值。
其中,取模运算单元2043用于对融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
可选地,编号单元2041具体用于:根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号。
可选地,编号单元2041具体用于:根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
可选地,融合单元2042具体用于:按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串,并确定融合随机串的哈希值。
可选地,本实施例的主持节点20还包括中选节点验证模块,该中选节点验证模块用于:向中选者发送指定地址,从指定地址中获取中选者对应的节点发送的验证交易,比较验证交易对应的地址与选中节点的地址是否相同,若相同,则中选者对应的节点为选中节点。
可选地,本实施例的主持节点20还包括激励发放模块,该激励发放模块用于:向选中节点的地址发送虚拟激励标识。
本实施例提供的用于实现区块链中的节点随机选取的主持节点,采用了与实施例一、二相同的发明构思,能够取得相同的有益效果,在此不再赘述。
实施例五
本申请实施例提供了一种电子设备,如图4所示,图4所示的电子设备40包括:处理器401和存储器402。其中,处理器401和存储器402相连,如通过总线403相连。可选地,电子设备40还可以包括收发器404。需要说明的是,实际应用中收发器404不限于一个,该电子设备40的结构并不构成对本申请实施例的限定。
其中,处理器401应用于本申请实施例中,用于实现图2所示的第一发送模块201、第二发送模块202、可信节点确定模块203、节点随机选取模块204以及选中消息发送模块205的功能。收发器404包括接收机和发射机。
处理器401可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器401也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线403可包括一通路,在上述组件之间传送信息。总线403可以是PCI总线或EISA总线等。总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器402可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选地,存储器402用于存储执行本申请方案的应用程序代码,并由处理器401来控制执行。处理器401用于执行存储器402中存储的应用程序代码,以实现图2所示实施例提供的主持节点20的动作。
与现有技术相比,本申请实施例提供的电子设备,让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证包括主持节点在内的任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
可选地,处理器401用于执行存储器402中存储的应用程序代码,以实现图3所示实施例提供的主持节点20的动作,在此不再赘述。
实施例六
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一所示的基于区块链的节点随机选取方法。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,让所有节点都参与到随机选取过程中,保证了随机选取结果的随机性,同时,通过区块链技术记录整个节点随机选取过程中的数据,使得任何一个节点都能够利用记录的数据复盘随机选取过程,保证包括主持节点在内的任何一个节点都无法操控最终的选取结果,真正实现了公平、公正、公开的随机选取。
可选地,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例二所示的基于区块链的节点随机选取方法,在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于区块链的节点随机选取方法,其特征在于,包括:
向区块链中的任一节点发送第一交易地址,所述第一交易地址用于接收各个节点发送的第一交易,所述第一交易包括所述节点生成的随机串对应的密文;
当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,所述第二交易地址用于接收各个节点发送的第二交易,所述第二交易包括所述节点生成的随机串;
根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点;
根据各个可信节点对应的随机串确定选中节点;
向区块链中的任一节点发送确定选中节点的消息。
2.根据权利要求1所述的方法,其特征在于,所述预设截止条件包括:达到预设的第一截止时间,或,各个节点都已发送第一交易到所述第一交易地址。
3.根据权利要求1所述的方法,其特征在于,所述根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,包括:
从所述第二交易地址中获取第二交易中的随机串,并从所述第一交易地址中获取与所述第二交易对应的节点发送的第一交易中的密文;
根据所述第二交易中的随机串得到第一密文;
将所述第一密文与从所述第一交易中的密文进行比对,若相同,则确定所述第二交易对应的节点为可信节点。
4.根据权利要求1所述的方法,其特征在于,所述根据各个可信节点对应的随机串确定选中节点,包括:
给各个可信节点编号;
对各个可信节点对应的随机串进行融合处理,得到融合随机串,并确定所述融合随机串的哈希值;
对所述融合随机串的哈希值进行取模运算,确定与取模运算结果相匹配的序号对应的可信节点为选中节点,其中,取模运算中的除数等于可信节点的数量。
5.根据权利要求4所述的方法,其特征在于,所述给各个可信节点编号,包括:
根据各个可信节点的交易记录的时间戳顺序,给所有可信节点编号;
或,
根据各个可信节点对应的地址的大小顺序,给所有可信节点编号。
6.根据权利要求4所述的方法,其特征在于,所述对各个可信节点对应的随机串进行融合处理,得到融合随机串,包括:
按各个可信节点的序号顺序,连接所有可信节点的随机串,得到融合随机串。
7.一种基于区块链的节点随机选取***,其特征在于,所述***包括多个节点,其中,
主持节点用于向区块链中的任一节点发送第一交易地址;
各个节点用于生成随机串以及所述随机串对应的密文,并发送包括所述密文的第一交易到所述第一交易地址;
所述主持节点用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址;
各个节点用于发送包括所述随机串的第二交易到所述第二交易地址;
所述主持节点用于根据各个节点发送的第一交易中的密文和第二交易中的随机串确定可信节点,根据各个可信节点对应的随机串确定选中节点,向区块链中的任一节点发送确定选中节点的消息。
8.一种用于实现区块链中的节点随机选取的主持节点,其特征在于,所述主持节点包括:
第一发送模块,用于向区块链中的任一节点发送第一交易地址,所述第一交易地址用于接收各个节点发送的第一交易,所述第一交易包括所述节点生成的随机串对应的密文;
第二发送模块,用于当满足预设截止条件时,向区块链中的任一节点发送第二交易地址,所述第二交易地址用于接收各个节点发送的第二交易,所述第二交易包括所述节点生成的随机串;
可信节点确定模块,用于根据所述第一交易中的密文和所述第二交易中的随机串确定可信节点;
节点随机选取模块,用于根据各个可信节点对应的随机串确定选中节点;
选中消息发送模块,用于向区块链中的任一节点发送确定选中节点的消息。
9.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于:执行根据权利要求1至6中任一项所述的基于区块链的节点随机选取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1至6中任一项所述的基于区块链的节点随机选取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810663208.XA CN108831001B (zh) | 2018-06-25 | 2018-06-25 | 基于区块链的节点随机选取方法、***、节点、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810663208.XA CN108831001B (zh) | 2018-06-25 | 2018-06-25 | 基于区块链的节点随机选取方法、***、节点、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108831001A true CN108831001A (zh) | 2018-11-16 |
CN108831001B CN108831001B (zh) | 2021-06-18 |
Family
ID=64138570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810663208.XA Active CN108831001B (zh) | 2018-06-25 | 2018-06-25 | 基于区块链的节点随机选取方法、***、节点、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108831001B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818837A (zh) * | 2018-12-13 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 智能家居控制方法、装置、计算机设备及存储介质 |
CN110189465A (zh) * | 2019-06-13 | 2019-08-30 | 北京艾摩瑞策科技有限公司 | 一种借助于区块链的随机抽奖方法及其设备 |
CN110223440A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及设备 |
CN110223439A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及装置 |
CN111223227A (zh) * | 2018-11-26 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 一种目标用户筛选方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493173A (zh) * | 2017-08-30 | 2017-12-19 | 北京知金链网络技术有限公司 | 区块链随机数共识推举方法 |
KR20180014534A (ko) * | 2016-08-01 | 2018-02-09 | 서강대학교산학협력단 | 블록체인 기반 트랜잭션 검증 시스템 및 그 방법 |
CN107820690A (zh) * | 2017-08-21 | 2018-03-20 | 达闼科技成都有限公司 | 信息选取方法、装置、电子设备及计算机可读存储介质 |
CN108038954A (zh) * | 2017-12-01 | 2018-05-15 | 中国联合网络通信集团有限公司 | 基于区块链的交易运行方法及挖矿节点 |
CN108124505A (zh) * | 2017-12-19 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 获取可信节点的方法、装置、存储介质及区块链节点 |
-
2018
- 2018-06-25 CN CN201810663208.XA patent/CN108831001B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180014534A (ko) * | 2016-08-01 | 2018-02-09 | 서강대학교산학협력단 | 블록체인 기반 트랜잭션 검증 시스템 및 그 방법 |
CN107820690A (zh) * | 2017-08-21 | 2018-03-20 | 达闼科技成都有限公司 | 信息选取方法、装置、电子设备及计算机可读存储介质 |
CN107493173A (zh) * | 2017-08-30 | 2017-12-19 | 北京知金链网络技术有限公司 | 区块链随机数共识推举方法 |
CN108038954A (zh) * | 2017-12-01 | 2018-05-15 | 中国联合网络通信集团有限公司 | 基于区块链的交易运行方法及挖矿节点 |
CN108124505A (zh) * | 2017-12-19 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 获取可信节点的方法、装置、存储介质及区块链节点 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111223227A (zh) * | 2018-11-26 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 一种目标用户筛选方法及装置 |
CN111223227B (zh) * | 2018-11-26 | 2022-03-22 | 腾讯科技(深圳)有限公司 | 一种目标用户筛选方法及装置 |
CN109818837A (zh) * | 2018-12-13 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 智能家居控制方法、装置、计算机设备及存储介质 |
CN109818837B (zh) * | 2018-12-13 | 2022-04-12 | 深圳壹账通智能科技有限公司 | 智能家居控制方法、装置、计算机设备及存储介质 |
CN110189465A (zh) * | 2019-06-13 | 2019-08-30 | 北京艾摩瑞策科技有限公司 | 一种借助于区块链的随机抽奖方法及其设备 |
CN110223440A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及设备 |
CN110223439A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108831001B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108831001A (zh) | 基于区块链的节点随机选取方法、***、节点、电子设备 | |
CN109523683B (zh) | 一种基于区块链技术的不记名电子投票方法 | |
Lenstra et al. | A random zoo: sloth, unicorn, and trx | |
Ziegeldorf et al. | Coinparty: Secure multi-party mixing of bitcoins | |
KR102409819B1 (ko) | 분산 거래 전파 및 검증 시스템 | |
US20190371106A1 (en) | Voting system and method | |
US8862879B2 (en) | Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network | |
WO2018234922A1 (en) | COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR TEMPORAL RELEASE ENCRYPTION ON A BLOCK CHAINS NETWORK | |
KR102187294B1 (ko) | 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 | |
CN112257095A (zh) | 一种联盟链共识节点的选择方法 | |
CN111723387A (zh) | 一种基于区块链的数据解密的方法及装置 | |
US20220410017A1 (en) | Provably fair games using a blockchain | |
CN115918030A (zh) | 使用区块链的可证明公平的游戏 | |
Venugopalan et al. | Always on voting: A framework for repetitive voting on the blockchain | |
WO2023180042A1 (en) | Set shuffling | |
JP2021507629A (ja) | 高速且つ分割耐性を有するブロックチェーン | |
Grontas et al. | Blockchain, consensus, and cryptography in electronic voting | |
CN112863040B (zh) | 投票结果的生成、统计与获取方法、装置及电子设备 | |
EP1563881A1 (en) | Method of obtaining an impartial result of a game via a communication network, and related protocols and programs | |
US20200351079A1 (en) | Computer-implemented method of replacing a data string | |
Wu | Apollo: End-to-end Verifiable Internet Voting with Recovery from Vote Manipulation | |
Khaleel et al. | Developing e-voting Tasks Using Quantum Key Distribution | |
Lee et al. | Non-iterative privacy preservation for online lotteries | |
WO2023180000A1 (en) | Set shuffling | |
CN116886258A (zh) | 基于Paillier算法的时控性同态加密电子投票方法及*** |
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 |