CN111311386A - 基于区块链的摇珠方法、系统、电子设备及存储介质 - Google Patents
基于区块链的摇珠方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111311386A CN111311386A CN202010061144.3A CN202010061144A CN111311386A CN 111311386 A CN111311386 A CN 111311386A CN 202010061144 A CN202010061144 A CN 202010061144A CN 111311386 A CN111311386 A CN 111311386A
- Authority
- CN
- China
- Prior art keywords
- random number
- participants
- participant
- bead shaking
- shaking
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/08—Auctions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/16—Real estate
-
- 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
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Accounting & Taxation (AREA)
- Computational Mathematics (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于区块链技术领域,涉及一种基于区块链的摇珠方法、摇珠系统、电子设备及计算机可读存储介质。在该摇珠方法中,首先由发布方和参与方分别提供一个随机数,并制作了参与方的顺序表,然后将所述随机数进行异或运算或求和运算,之后将运算结果或者运算结果的哈希值与所述顺序表中参与方的个数进行求余运算,所述求余运算的值即为本轮摇珠选中的参与方的序号。该摇珠方法最终选中的结果由全部的随机数决定,任意一个随机数的变化均会改变最终的选中结果,只有控制全部的随机数才能够指定最终的选中结果,避免了发布方操纵摇珠结果的情况,提升了摇珠的公平性。
Description
技术领域
本公开涉及区块链技术领域,具体的,涉及一种基于区块链的摇珠方法、摇珠系统、电子设备及计算机可读存储介质。
背景技术
在政府或企业的招投标过程中经常采用摇珠的方法来选定代理机构。传统的“摇珠”是将带有号码的珠子放在摇珠机内,摇珠机启动后,若干个带有号码的珠子便在透明的圆形容器里翻滚,现场人员监督摇珠机里被抛出的号码,这一过程叫做“摇珠”。但由于此过程需要消耗较多时间且工作效率低下,因此出现了许多线上摇珠软件,这类摇珠软件通常产生一个随机数来选定一个参与摇珠的参与方,这种中心化系统的软件容易被人劫持或者人为操作结果,使得摇珠过程不够公平公正。
区块链是一种互联网数据库技术,其本质是由多个区块链节点共同参与,通过多方存储与计算的方式来实现数据不可篡改、结果公开可靠的分布式账本技术。
发明内容
本发明提供一种基于区块链的摇珠方法、摇珠系统、电子设备及计算机可读存储介质,以解决现有技术中摇珠软件容易被人劫持或者人为操作结果,使得摇珠过程不够公平公正的问题。
为了实现上述目的,本发明第一方面提供一种基于区块链的摇珠方法,包括:
步骤S1、发布方公示摇珠细则;
步骤S2、发布方和各参与方分别选定一个随机数Ri,i为大于0的自然数,之后将所述随机数Ri的哈希值上传至所述区块链内,根据各参与方上传所述哈希值的时间对各参与方进行排序,生成一个顺序表;
步骤S3、发布方和各参与方将所述随机数Ri上传至区块链内;
步骤S4、对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算,之后将所述异或运算或求和运算的结果或者所述结果的哈希值与所述顺序表中参与方的个数进行求余运算,所述求余运算获得的数值即为本轮摇珠选中的参与方的序号;
步骤S5、将步骤S4中所述选中的参与方从所述顺序表中剔除,并更新所述顺序表,之后重复步骤S4获取新一轮摇珠选中的参与方的序号;
步骤S6、重复步骤S4和步骤S5直至选出所需数量的参与方。
进一步的,所述摇珠细则包含参与摇珠活动的黑名单和白名单以及所需的参与方的数量;在生成所述顺序表前,首先验证所述参与方是否在所述白名单之内,若不在所述白名单之内,则将其剔除,若在所述白名单之内,则验证所述参与方是否在所述黑名单之内,若在所述黑名单之内,则将其剔除,若不在所述黑名单之内,则所述参与方为有效参与方,最后对所有有效参与方按照其上传所述哈希值的时间进行排序。
更进一步的,若所述有效参与方的个数不大于所述摇珠细则中所需的参与方的数量,则终止摇珠;若所述有效参与方的个数大于所述摇珠细则中所需的参与方的数量,则继续进行摇珠。
进一步的,所述发布方和各参与方分别选定一个随机数Ri的具体方法为:首先所述发布方和各参与方分别根据系统时间生成一个系统随机数,之后所述发布方和各参与方在各自的系统随机数的基础上加上一个个人随机数,形成最终的随机数Ri。
更进一步的,在步骤S4中对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算之前,还对所述随机数Ri进行验证,具体验证方法为:计算步骤S3中所述发布方和各参与方上传的所述随机数Ri的哈希值,并与步骤S2中上传的所述随机数Ri的哈希值进行比对,若二者相同则验证通过,若二者不同,则证明随机数Ri已被修改,然后终止摇珠。
进一步的,所述顺序表的序号从数字0开始,并以差值为1进行递增。
更进一步的,步骤S5中更新所述顺序表方法为:首先将步骤S4中所述选中的参与方的序号从所述顺序表中剔除,之后将后续的参与方的序号的值均减1即可获得更新后的顺序表。
为了实现上述目的,本发明第二方面提供一种基于区块链的摇珠系统,包括:
信息发布模块:用于公布待摇珠的项目和摇珠细则,以及公示摇珠过程和结果;
信息录入模块:提供随机数生成程序和哈希运算程序,发布方和参与方通过所述信息录入模块可提交随机数和所述随机数的哈希值;
数据处理模块:依据参与方提交的数据进行排序生成参与方顺序表,并根据摇珠的进程实时更新参与方顺序表;对发布方和参与方提交的数据进行运算以获得选中的参与者,并将运算的过程及结果发送至所述信息发布模块进行公示。
为了实现上述目的,本发明第三方面提供一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:
如上所述的基于区块链的摇珠方法。
为了实现上述目的,本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现:
如上所述的基于区块链的摇珠方法。
根据上面的描述和实践可知,本发明所述的基于区块链的摇珠方法首先由发布方和各参与方分别提供一个随机数,之后制作参与方的顺序表,然后将所述随机数进行异或运算或求和运算,之后将运算结果或者运算结果的哈希值与所述顺序表中参与方的个数进行求余运算,所述求余运算的值即为本轮摇珠选中的参与方的序号。该摇珠方法最终选中的结果由全部的随机数决定,任意一个随机数的变化均会改变最终的选中结果,只有控制全部的随机数才能够指定最终的选中结果,但参与摇珠活动的任何一方不可能知晓全部的随机数,因此避免了操纵摇珠结果的情况,提升了摇珠的公平性。
此外,在该摇珠方法中,在随机数进行运算之前,首先对随机数进行了验证,验证其是否为最初发布者或参与者所提供的随机数,能够避免参与摇珠的任何一方在后台更改随机数。另外,在运算过程中引入了发布方的随机数,而不是单单对参与方的随机数进行运算,能够避免各参与方之间的串通行为,提高摇珠活动的公正性。此外,本摇珠方法中参与方和发布方所提交的随机数Ri均为各自独立提供的,其最终数值不受其他任何一方的影响,不会存在提前指定随机数的情况,使摇珠的过程更加公平公正。
附图说明
图1为本发明的一个实施例中涉及的基于区块链的摇珠方法的流程图。
图2为本发明的一个实施例中涉及的基于区块链的摇珠系统的示意图。
具体实施方式
现在将参考附图更全面地描述示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
需要说明的是,本公开中,用语“包括”、“配置有”、“设置于”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”等仅作为标记使用,不是对其对象数量或次序的限制。
在本公开的示例性实施例中,提供了一种基于区块链技术的摇珠方法,应用于具有一定存储空间、可连接网络和参与区块链的智能终端设备。具体而言,该智能终端设备可以是手机、平板电脑、笔记本电脑、PDA、矿机等各种具有一定存储空间、可连接网络和参与区块链的电子终端设备。
参考图1中所示,该基于区块链的摇珠方法主要包括以下步骤:
步骤S1、发布方公示摇珠细则。该摇珠细则中可包含摇珠活动所代表的项目的内容、该项目所需要的参与方的个数、参与摇珠活动的黑名单和白名单。
所述白名单中包含具有实施该项目所需的资质的参与方的名单,所述黑名单中包含禁止参与该项目的参与方的名单。
步骤S2、发布方和各参与方分别选定一个随机数Ri,i为大于0的自然数,之后将所述随机数Ri的哈希值上传至区块链内,根据各参与方上传所述哈希值的时间对各参与方进行排序,生成一个顺序表。
在该步骤中,发布方和各参与方首先在所述终端设备上进行注册登记,将各自的名称录入其中,并利用该设备生成一个系统随机数,该系统随机数可由该设备按照随机数生成程序和系统的时间自动生成,确保发布方和各参与者的数值均不相同。发布方和各参与方可在该系统随机数的基础上加上一个个人随机数,形成最终的随机数Ri。该随机数Ri可视为由发布方和各参与方独自提供的,其他任何人/机构/设备均不能更改其数值。随机数Ri由系统随机数和个人随机数相加而成,能够避人为修改随机数生成程序使得所生成的随机数是人为指定的随机数。而所述随机数Ri的哈希值可采用MD4或MD5等哈希算法计算得来。
在对各参与方进行排序之前还需要对各个参与方进行验证,看其是否在所述黑名单和所述白名单之内。首先验证所述参与方是否在所述白名单之内,若不在所述白名单之内,则将其剔除,若在所述白名单之内,则验证所述参与方是否在所述黑名单之内,若在所述黑名单之内,则将其剔除,若不在所述黑名单之内,则所述参与方为有效参与方,最后对所有有效参与方按照其上传所述哈希值的时间进行排序。此外,若所述有效参与方的个数不大于所述摇珠细则中所需的参与方的数量,则终止摇珠;若所述有效参与方的个数大于所述摇珠细则中所需的参与方的数量,则继续进行摇珠。
另外,所述顺序表的序号从数字0开始,并以差值为1进行递增。例如最终核实有五个有效的参与方,则该顺序表中的序号依次为0、1、2、3、4。
步骤S3、发布方和各参与方将所述随机数Ri上传至所述区块链内。
步骤S4、对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算,之后将所述异或运算或求和运算的结果或者所述结果的哈希值与所述顺序表中参与方的个数进行求余运算,所述求余运算的获得的数值即为本轮摇珠选中的参与方的序号。
需要注意的是,此步骤中,在对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算之前,还对所述随机数Ri进行验证,具体验证方法为:计算步骤S3中所述发布方和各参与方上传的所述随机数Ri的哈希值,此处采用的哈希算法与步骤S2中的哈希算法相同,之后与步骤S2中上传的所述随机数Ri的哈希值进行比对,若二者相同则验证通过,若二者不同,则证明随机数Ri已被修改,然后终止摇珠。通过该步的验证能够避免发布方和各参与方修改自己的随机数,同时还能避免各方将随机数上传之后系统后台修改随机数的情况。
步骤S5、将步骤S4中所述选中的参与方从所述顺序表中剔除,并更新所述顺序表,之后重复步骤S4选取新一轮摇珠选中的参与方的序号。
具体地说,更新所述顺序表方法为:首先将步骤S4中所述选中的参与方的序号从所述顺序表中剔除,之后将后续的参与方的序号的值均减1即可获得更新后的顺序表。例如,若顺序表中序号为2的参与者选中,则将其从顺序表中剔除,并将原序号为3、4的参与者的序号更新为2、3,此时新的顺序表的序号依次为0、1、2、3。
步骤S6、重复步骤S4和步骤S5直至选出所需数量的参与方。
该摇珠方法中最终选中的参与者是由发布方和各个参与方所提供的随机数经过一系列运算得出的,其运算方法及运算过程均上传至区块链中并进行公示,确保高摇珠过程是公开透明的,不存在暗箱操作。由于最终的结果由所有随机数共同决定,因此发布方若想指定最终的参与者需要获取全部的随机数,并且更改随机数以使某个参与者成为最终摇珠选定的结果。而在该摇珠方法中,在随机数进行运算之前,首先对随机数进行了验证,验证其是否为最初发布者或参与者所提供的随机数,避免参与摇珠的任何一方在后台更改随机数。在步骤S4中的运算过程中引入了发布方的随机数,而不是单单对参与方的随机数进行运算,能够避免各参与方之间的串通行为,提高摇珠活动的公正性。上述摇珠的各个过程产生的数据均上传至区块链内,使得整个摇珠的过程可进行追溯,防止参与摇珠活动的任何一方有作弊的行为。另外,本摇珠方法中参与方和发布方所提交的随机数Ri均为各自独立提供的,其最终数值不受其他任何一方的影响,不会存在提前指定随机数的情况,使摇珠的过程更加公平公正。
下面以某一法院进行招标为例对上述方法进行详细说明。在该示例中,法院需要对某一房产进行评估为此发出了招标公告,共有A、B、C、D、E、F六个评估机构参与了本次招标,而法院最终仅需要两个评估机构来进行评估工作,因此举行了摇珠来从六个评估机构选出两个评估机构。另外为了增加摇珠的公平性,还引入了房产的拥有者G和公证处H,具体的摇珠方法如下:
首先,法院发布摇珠细则,细则中明确出需要两个评估机构,并且公开了具有房产评估资质的白名单,以及被房产评估协会作出惩戒的黑名单,在该示例中所述六个评估机构均在所述白名单之内,所述黑名单中包含评估机构F。
之后,法院、各评估机构、房产的拥有者G和公证处H在具有上述摇珠系统的终端设备上进行注册登记,将各自的名称录入其中,并分别选定一个随机数Ri,i为大于0的自然数。为了使运算过程更加清晰,该示例中的随机数选取了较小的数值,其中R1为法院提供的随机数,R1=100;R2为房产的拥有者G提供的随机数,R2=200;R3为公证处H提供的随机数,R3=300;R4为评估机构A提供的随机数,R4=10;R5为评估机构B提供的随机数,R5=20;R6为评估机构C提供的随机数,R6=30;R7为评估机构D提供的随机数,R7=40;R8为评估机构E提供的随机数,R8=50;R9为评估机构F提供的随机数,R9=60。然后依照MD4的哈希算法计算上述随机数的哈希值,具体如下:
Hash(R1)=ad57366865126e55649ecb23ae1d48887544976efea46a48eb5d85a6eeb4d306;
Hash(R2)=27badc983df1780b60c2b3fa9d3a19a00e46aac798451f0febdca52920faaddf;
Hash(R3)=983bd614bb5afece5ab3b6023f71147cd7b6bc2314f9d27af7422541c6558389;
Hash(R4)=4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5;
Hash(R5)=f5ca38f748a1d6eaf726b8a42fb575c3c71f1864a8143301782de13da2d9202b;
Hash(R6)=624b60c58c9d8bfb6ff1886c2fd605d2adeb6ea4da576068201b6c6958ce93f4;
Hash(R7)=d59eced1ded07f84c145592f65bdf854358e009c5cd705f5215bf18697fed103;
Hash(R8)=1a6562590ef19d1045d06c4055742d38288e9e6dcd71ccde5cee80f1d5a774eb;
Hash(R9)=9ecb23ae11045d06c4055742d38288eaf726b8a42fb575f1d54f1e52642080fe。
然后法院、各评估机构、房产的拥有者G和公证处H分别将各自随机数的哈希值上传至区块链内。之后,核验所述评估机构是否在所述黑名单和所述白名单之内,经查所述评估机构F在所述黑名单之内,将其剔除本次摇珠活动。最终有效地评估机构的数量为5个,大于法院所需的数量2,因此继续摇珠活动。根据各有效的评估机构上传所述哈希值的时间对各参与方进行排序,生成一个顺序表。在该示例中所述顺序表如表1所示。
表1:
| 序号 | 评估机构 |
| 0 | B |
| 1 | A |
| 2 | D |
| 3 | C |
| 4 | E |
之后,法院、房产的拥有者G和公证处H和评估机构A~E将各自的随机数R1~R8上传至所述区块链内。
然后,依照MD4的哈希算法计算法院、房产的拥有者G和公证处H和评估机构A~E所上传的随机数R1~R8的哈希值,并将该计算结果与之前法院、房产的拥有者G和公证处H和评估机构A~E所上传哈希值进行比较,若二者不同,则证明该随机数已被更改,进而终止该摇珠活动,若二者相同则证明随机数未被更改,继续摇珠活动。
之后,对随机数R1~R8进行求和运算,将所述求和运算的结果与所述表1中评估机构的个数进行求余运算,所述求余运算的值即为本轮摇珠选中的参与方的序号。具体运算如下:R1+R2+R3+R4+R5+R6+R7+R8=750;将750和5进行求余运算,其余数为0,则本轮摇珠选中评估机构B。
然后,评估机构B从表1中剔除,并更新表1生成表2:
表2:
| 序号 | 评估机构 |
| 0 | A |
| 1 | D |
| 2 | C |
| 3 | E |
之后,对剩余的随机数进行求和运算,将所述求和运算的结果与所述表2中评估机构的个数进行求余运算,所述求余运算的值即为本轮摇珠选中的参与方的序号。具体运算如下:R1+R2+R3+R4+R6+R7+R8=730;将730和4进行求余运算,其余数为2,则本轮摇珠选中评估机构C。至此已选出法院所需的两个评估机构,他们分别是评估机构B和评估机构C。
此外,在本公开的示例性实施例中,还提供了一种基于区块链的摇珠系统。参照图2所示,该基于区块链的摇珠系统包括:信息发布模块、登录模块和数据处理模块。其中:
信息发布模块:用于公布待摇珠的项目和摇珠细则,以及公示摇珠过程和结果。通过该模块所公布的信息,均通过程序被上传至区块链之中,保证数据不被篡改。
信息录入模块:提供随机数生成程序和哈希运算程序,发布方和参与方通过所述信息录入模块进行注册登记之后可提交各自的随机数和所述随机数的哈希值。所述随机数及其哈希值被发送至数据处理模块进行后续的运算。
数据处理模块:依据参与方提交的数据进行排序生成参与方顺序表,并根据摇珠的进程实时更新参与方顺序表;对发布方和参与方提交的数据进行运算以获得选中的参与者,并将运算的过程及结果发送至所述信息发布模块进行公示。该模块依据有效的参与方所提交哈希值的时间对若干个有效的参与方进行排序从而生成顺序表。
应当注意,尽管在上文详细描述中提及了基于区块链的摇珠系统的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
另外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。该电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。所述电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:至少一个处理单元、至少一个存储单元、连接不同系统组件(包括存储单元和处理单元)的总线、显示单元。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元执行,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以进一步包括只读存储单元(ROM)。
存储单元还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,可以结合该电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
此外,在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
本发明中用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (10)
1.一种基于区块链的摇珠方法,其特征在于,包括:
步骤S1、发布方公示摇珠细则;
步骤S2、发布方和各参与方分别选定一个随机数Ri,i为大于0的自然数,之后将所述随机数Ri的哈希值上传至所述区块链内,根据各参与方上传所述哈希值的时间对各参与方进行排序,生成一个顺序表;
步骤S3、发布方和各参与方将所述随机数Ri上传至区块链内;
步骤S4、对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算,之后将所述异或运算或求和运算的结果或者所述结果的哈希值与所述顺序表中参与方的个数进行求余运算,所述求余运算获得的数值即为本轮摇珠选中的参与方的序号;
步骤S5、将步骤S4中所述选中的参与方从所述顺序表中剔除,并更新所述顺序表,之后重复步骤S4获取新一轮摇珠选中的参与方的序号;
步骤S6、重复步骤S4和步骤S5直至选出所需数量的参与方。
2.如权利要求1所述的基于区块链的摇珠方法,其特征在于,所述摇珠细则包含参与摇珠活动的黑名单和白名单以及所需的参与方的数量;在生成所述顺序表前,首先验证所述参与方是否在所述白名单之内,若不在所述白名单之内,则将其剔除,若在所述白名单之内,则验证所述参与方是否在所述黑名单之内,若在所述黑名单之内,则将其剔除,若不在所述黑名单之内,则所述参与方为有效参与方,最后对所有有效参与方按照其上传所述哈希值的时间进行排序。
3.如权利要求2所述的基于区块链的摇珠方法,其特征在于,若所述有效参与方的个数不大于所述摇珠细则中所需的参与方的数量,则终止摇珠;若所述有效参与方的个数大于所述摇珠细则中所需的参与方的数量,则继续进行摇珠。
4.如权利要求1所述的基于区块链的摇珠方法,其特征在于,所述发布方和各参与方分别选定一个随机数Ri的具体方法为:首先所述发布方和各参与方分别根据系统时间生成一个系统随机数,之后所述发布方和各参与方在各自的系统随机数的基础上加上一个个人随机数,形成最终的随机数Ri。
5.如权利要求4所述的基于区块链的摇珠方法,其特征在于,在步骤S4中对所述顺序表中的参与方和所述发布方提供的随机数Ri进行异或运算或求和运算之前,还对所述随机数Ri进行验证,具体验证方法为:计算步骤S3中所述发布方和各参与方上传的所述随机数Ri的哈希值,并与步骤S2中上传的所述随机数Ri的哈希值进行比对,若二者相同则验证通过,若二者不同,则证明随机数Ri已被修改,然后终止摇珠。
6.如权利要求1所述的基于区块链的摇珠方法,其特征在于,所述顺序表的序号从数字0开始,并以差值为1进行递增。
7.如权利要求6所述的基于区块链的摇珠方法,其特征在于,步骤S5中更新所述顺序表方法为:首先将步骤S4中所述选中的参与方的序号从所述顺序表中剔除,之后将后续的参与方的序号的值均减1即可获得更新后的顺序表。
8.一种基于区块链的摇珠系统,其特征在于,包括:
信息发布模块:用于公布待摇珠的项目和摇珠细则,以及公示摇珠过程和结果;
信息录入模块:提供随机数生成程序和哈希运算程序,发布方和参与方通过所述信息录入模块可提交随机数和所述随机数的哈希值;
数据处理模块:依据参与方提交的数据进行排序生成参与方顺序表,并根据摇珠的进程实时更新参与方顺序表;对发布方和参与方提交的数据进行运算以获得选中的参与者,并将运算的过程及结果发送至所述信息发布模块进行公示。
9.一种电子设备,其特征在于,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:
如权利要求1-7中任意一项所述的基于区块链的摇珠方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现:
如权利要求1-7中任意一项所述的基于区块链的摇珠方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010061144.3A CN111311386A (zh) | 2020-01-19 | 2020-01-19 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
| PCT/CN2020/087662 WO2021142972A1 (zh) | 2020-01-19 | 2020-04-29 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010061144.3A CN111311386A (zh) | 2020-01-19 | 2020-01-19 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111311386A true CN111311386A (zh) | 2020-06-19 |
Family
ID=71146838
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010061144.3A Pending CN111311386A (zh) | 2020-01-19 | 2020-01-19 | 基于区块链的摇珠方法、系统、电子设备及存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111311386A (zh) |
| WO (1) | WO2021142972A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022184137A1 (zh) * | 2021-03-03 | 2022-09-09 | 中国人民银行数字货币研究所 | 区块链中随机数的生成方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109615422A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 基于区块链的竞抽方法、系统以及存储介质 |
| CN110223440A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及设备 |
| CN110365479A (zh) * | 2019-07-11 | 2019-10-22 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
| CN110445603A (zh) * | 2019-06-28 | 2019-11-12 | 成都鹰翔天际科技有限公司 | 一种去中心化随机数生成方法 |
| CN110515591A (zh) * | 2019-08-05 | 2019-11-29 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109360091B (zh) * | 2018-08-30 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的随机对象选取方法和装置 |
| CN110351083A (zh) * | 2019-07-16 | 2019-10-18 | 深圳市网心科技有限公司 | 随机源生成方法、电子设备、系统及介质 |
-
2020
- 2020-01-19 CN CN202010061144.3A patent/CN111311386A/zh active Pending
- 2020-04-29 WO PCT/CN2020/087662 patent/WO2021142972A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109615422A (zh) * | 2018-11-29 | 2019-04-12 | 哈希未来(北京)科技有限公司 | 基于区块链的竞抽方法、系统以及存储介质 |
| CN110223440A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机摇号方法及设备 |
| CN110445603A (zh) * | 2019-06-28 | 2019-11-12 | 成都鹰翔天际科技有限公司 | 一种去中心化随机数生成方法 |
| CN110365479A (zh) * | 2019-07-11 | 2019-10-22 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
| CN110515591A (zh) * | 2019-08-05 | 2019-11-29 | 湖南天河国云科技有限公司 | 基于区块链的随机数生成方法及装置 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022184137A1 (zh) * | 2021-03-03 | 2022-09-09 | 中国人民银行数字货币研究所 | 区块链中随机数的生成方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021142972A1 (zh) | 2021-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Damar et al. | Super AI, generative AI, narrow AI and chatbots: An assessment of artificial intelligence technologies for the public sector and public administration | |
| CN107862782A (zh) | 基于以太坊区块链的抽签方法及装置 | |
| Wang et al. | A variable interval rescheduling strategy for dynamic flexible job shop scheduling problem by improved genetic algorithm | |
| CN112184158B (zh) | 租赁业务审批方法、装置、设备和介质 | |
| Bouzguenda et al. | Examining digital participatory planning: Maturity assessment in a Small Dutch city | |
| CN107341730A (zh) | 一种利用数字汇票申报资金的方法及装置 | |
| Yang et al. | Fictitious commodification of land to solve rural crises?: Lessons from an experiment in rural Chengdu, China | |
| Heeb et al. | The impact of climate engagement: A field experiment | |
| Ameria | The Synergistic Imperative: Integrating Artificial Intelligence with Master Data Management for Enhanced Data Quality and Governance | |
| CN111311386A (zh) | 基于区块链的摇珠方法、系统、电子设备及存储介质 | |
| CN109828783A (zh) | 基于代码的文档自动生成方法、装置、电子设备及介质 | |
| CN113610504A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
| Henderson-Sellers et al. | Creating a process for transitioning to object technology | |
| Lotfian et al. | Auto-filtering validation in citizen science biodiversity monitoring: A case study | |
| CN112734389A (zh) | 人力资源管理的方法、系统、存储介质及电子设备 | |
| US20210264477A1 (en) | Determining a nexus score of physical assets using data analysis | |
| Karpinski et al. | The Potential of Quadratic Voting for Cohousing Communities: A Situated Design Case Study | |
| Papows | Glitch: the hidden impact of faulty software | |
| Omar et al. | A grounded theory of open government data: a case study in the UK | |
| US8826166B2 (en) | Evaluating and comparing the requirements of a task with the capabilities of an entity | |
| Kovalev et al. | Formalization of the software module development using matrix forms | |
| GetrudeMavetera et al. | An investigation of a specific system development methodology for business process reengineering | |
| CN105874501A (zh) | 电子处理验证 | |
| Flanagan | Marketing high tech: lessons for everyone | |
| Kera | Experimental Algorithmic Citizenship in the Sandboxes: An Alternative to Ethical Frameworks and Governance-by-Design Interventions |
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 | ||
| WD01 | Invention patent application deemed withdrawn after publication | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200619 |