CN115376239B - 一种报名摇号方法、装置、系统、计算机设备及存储介质 - Google Patents
一种报名摇号方法、装置、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115376239B CN115376239B CN202211014020.5A CN202211014020A CN115376239B CN 115376239 B CN115376239 B CN 115376239B CN 202211014020 A CN202211014020 A CN 202211014020A CN 115376239 B CN115376239 B CN 115376239B
- Authority
- CN
- China
- Prior art keywords
- random
- shaking
- registration
- seed
- information
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种报名摇号方法、装置、系统、计算机设备及存储介质,涉及互联网技术领域。所述方法是将包含有摇号影响数据的报名信息添加到区块链中,然后在摇号启动时将区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将两随机种子拼接成第三随机种子,最后使用该随机种子为多个报名用户生成一一对应的多个随机数以及从中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验。
Description
技术领域
本发明属于互联网技术领域,具体涉及一种报名摇号方法、装置、系统、计算机设备及存储介质。
背景技术
摇号系统的应用场景十分广泛,如购房选房摇号、小学入学抽签、车牌指标摇号和现场活动抽奖等。摇号的一般方法是先让摇号申请方报名预约,再在统一的时间内,使用摇号发起方提供的工具参与摇号。由于在现有的摇号系统设计中,摇号全过程由摇号发起方控制,使得其受到来自摇号发起方的人为因素的影响较大,进而存在现有报名摇号系统难以阻止摇号发起方作弊的问题。
发明内容
本发明的目的是提供一种报名摇号方法、装置、系统、计算机设备及计算机可读存储介质,用以解决现有的报名摇号系统存在难以阻止摇号发起方作弊的问题。
为了实现上述目的,本发明采用以下技术方案:
获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;
根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
基于上述发明内容,提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验。
在一个可能的设计中,当所述报名信息还包含有所述报名用户的用户唯一标识时,将所述报名信息添加到区块链中,包括:
遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报名信息;
在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。
在一个可能的设计中,当所述报名信息还包含有所述报名用户的报名资格待审内容时,将所述报名信息添加到所述区块链中,包括:
判断所述报名资格待审内容是否满足预设的报名资格条件;
若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。
在一个可能的设计中,通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,包括:
在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,其中,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数;
汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数。
在一个可能的设计中,所述方法还包括:
在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系;
在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数;
在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果。
第二方面,提供了一种报名摇号装置,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;
所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
所述随机处理模块,用于先通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
第三方面,提供了一种报名摇号系统,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;
所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,M为正整数,所述M次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;
所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
在一个可能的设计中,将报名用户的报名信息上传至所述报名服务器,包括:
采用内容分发网络CDN缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
第四方面,提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
第六方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
上述方案的有益效果:
(1)本发明创造性提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验;
(2)在生成多个随机数及随机选号的过程中,每次使用第三随机种子的主体可为不同的摇号服务器,以便用多个独立的物理服务器级联地进行随机操作,提升摇号随机性,以及实现对参与者进行暗文摇号的目的;
(3)还可具有防止篡改、过程可复现和过程可追溯等特点,便于实际应用和推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的报名摇号方法的流程示意图。
图2为本申请实施例提供的区块链的结构示意图。
图3为本申请实施例提供的在将信息添加到区块链过程中进行防重复报名及资格审核的流程示意图。
图4为本申请实施例提供的进行随机数生成的流程示意图。
图5为本申请实施例提供的报名摇号过程信息的展示举例图。
图6为本申请实施例提供的报名摇号装置的结构示意图。
图7为本申请实施例提供的报名摇号系统的结构示意图。
图8为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
应当理解,尽管本文可能使用术语第一和第二等等来描述各种对象,但是这些对象不应当受到这些术语的限制。这些术语仅用于区分一个对象和另一个对象。例如可以将第一对象称作第二对象,并且类似地可以将第二对象称作第一对象,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、单独存在B或者同时存在A和B等三种情况;又例如,A、B和/或C,可以表示存在A、B和C中的任意一种或他们的任意组合;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A或者同时存在A和B等两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
实施例:
如图1所示,本实施例第一方面提供的所述报名摇号方法,可以但不限于由具有一定计算资源的且通信连接报名终端(例如智能手机、平板电脑或台式电脑等)的计算机设备执行,例如由平台服务器或个人计算机(Personal Computer,PC,指一种大小、价格和性能适用于个人使用的多用途计算机;台式机、笔记本电脑到小型笔记本电脑和平板电脑以及超级本等都属于个人计算机)等电子设备执行。如图1所示,所述报名摇号方法,由服务器侧执行,可以但不限于包括有如下步骤S1~S7。
S1.获取报名用户的报名信息,其中,所述报名信息包含但不限于有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
在所述步骤S1中,所述报名信息可由所述报名用户通过人工操作所述报名终端,在所述报名终端上生成并上传至本地服务器。所述摇号影响数据用于作为所述报名用户的摇号参与因子影响后续的摇号过程,其可以由所述报名用户手动输入得到,也可以通过某种现有随机算法为所述报名用户随机生成得到;为了确保各个报名用户的摇号影响数据具有绝对的同等摇号影响程度,不同报名用户的所述摇号影响数据优选具有相同的数据长度,例如都由8个字符(包括数字、字母和/或其它特殊符号等)组成。除了所述摇号影响数据,所述报名信息还可以但不限于包含有所述报名用户的用户唯一标识(例如身份证号码)以及报名资格待审内容(例如家庭住址、年龄和健康证明等,内容形式可以但不限于是文字、图像或音视频等)等。
S2.将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块。
在所述步骤S2中,所述区块链的结构可如图2所示,其中,所述区块链的首个区块可以为不包含任何信息的空区块。此外,考虑所有的用户唯一标识具有相同长度,而不同的报名资格待审内容具有不同长度,因此为了确保各个报名用户在后续摇号过程中具有绝对的同等摇号影响程度,可在信息上链时,将剔除报名资格待审内容的所述报名信息添加到区块链中。
在所述步骤S2中,当所述报名信息还包含有所述报名用户的用户唯一标识时,优选的,将所述报名信息添加到区块链中,包括但不限于有如下步骤S21~S22:S21.遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报名信息;S22.在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。如图3所示,所述重复报名提醒信息可以通过传送至所述报名终端实现向所述报名用户反馈的目的。通过前述方式,可以实现报名去重目的,避免同一报名用户多次报名参与摇号。
在所述步骤S2中,当所述报名信息还包含有所述报名用户的报名资格待审内容时,优选的,将所述报名信息添加到所述区块链中,包括但不限于有如下步骤S221~S222:S221.判断所述报名资格待审内容是否满足预设的报名资格条件;S222.若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。如图3所示,所述审核不合格提醒信息同样可以通过传送至所述报名终端实现向所述报名用户反馈的目的。通过前述方式,可以确保仅具有摇号资格的报名用户才能参与后续的摇号。此外,在将所述报名信息添加到所述区块链中之后,还可向所述报名用户反馈报名成功信息,也即将所述报名成功信息传送至所述报名终端。
S3.在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子。
在所述步骤S3中,由于所述尾端区块的哈希值是基于所有所述已上链报名信息而得,因此也是所有报名用户的摇号参与因子总和,以便作为所述第一随机种子。所述第二随机种子需要与所述第一随机种子无任何关联,因此可以人工输入的得到(例如由摇号发起方输入得到)或通过某种现有随机算法随机生成得到。
S4.将所述第一随机种子和所述第二随机种子拼接成第三随机种子。
在所述步骤S4中,可以前后依次拼接,也可以间错拼接。
S5.通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户。
在所述步骤S5中,所述第三随机种子的多次使用是为了提升所述多个随机数的随机性,即M数值越大,随机性越高,具体的,如图4所示,通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,包括但不限于有如下步骤S51~S53:S51.在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,其中,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;S52.在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数;S53.汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数。所述第二摇号时刻晚于所述第一摇号时刻。此外,为了使报名用户能够实时监视摇号过程,优选的,在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系(例如包含有所述多个报名用户与所述多个随机序号的一一对应关系以及所述多个随机序号与所述多个随机数的一一对应关系,如图5所示),即将所述多个报名用户与所述多个随机数的一一对应关系传送至所述多个报名用户中各个报名用户的所述报名终端。
S6.再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数。
在所述步骤S6中,具体的随机选出过程可以但不限于有如下方式(A)或方式(B)。
(A)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后针对所述至少一个随机数中的各个随机数,从所述多个随机数中抽出距离最近的一个随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数。例如,若所述多个随机数分别为56、78、92和32,在所述第三摇号时刻生成的所述至少一个随机数有88,则可抽取92作为对应的摇中随机数。此外,若发现所述至少一个随机数中的某个随机数有两个在所述多个随机数中的且距离最近的随机数,则需要重新使用所述第三随机种子和新的时间戳信息作为随机种子来生成对应的新随机数,直到该新随机数仅有一个在所述多个随机数中的且距离最近的随机数,以便重新用于抽取。
(B)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后对所述多个随机数进行轮番检索计数,并针对所述至少一个随机数中的各个随机数,将在轮番检索计算值等于对应随机数时的且在所述多个随机数中的随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数。例如,所述多个随机数依次包括有21、35、9、60、45、77、99、7、11和83,在所述第三摇号时刻生成的所述至少一个随机数有15,则轮番的数21、35、9、60、45、77、99、7、11和83这十个数,并在第一圈数到10后,再重新数21、35、9、60、45、77、99、7、11和83这十个数,当数到45时有轮番检索计算值等于15,则可将45作为与15对应的摇中随机数。
在所述步骤S6中,所述第三摇号时刻晚于所述第二摇号时刻;所述至少一个随机数的生成所需随机算法同样为现有算法。此外,为了使报名用户能够实时监视摇号过程,优选的,在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数,如图5所示。
S7.根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
在所述步骤S7中,为了使报名用户能够实时监视摇号过程,优选的,在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果,以便通过所述报名终端进行如图5所示的信息展示。此外,为了便于历史追溯,可在得到所述摇号结果时记录相关的摇号时间戳(例如与所述第一摇号时刻对应的时间戳信息、与所述第二摇号时刻对应的时间戳信息和与所述第三摇号时刻对应的时间戳信息,等等),并对该摇号时间戳和所述摇号结果进行绑定存储。
由此基于前述步骤S1~S7所描述的报名摇号方法,提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验。此外,还可具有防止篡改、过程可复现和过程可追溯等特点,便于实际应用和推广。
如图6所示,本实施例第二方面提供了一种实现第一方面所述的报名摇号方法的虚拟装置,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;
所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
所述随机处理模块,用于先通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。
如图7所示,本实施例第三方面提供了一种实现第一方面所述的报名摇号方法的实体系统,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;
所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,M为正整数,所述M次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;
所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
在一个可能的设计中,为了避免因多个所述报名终端在同一时间上传报名信息而导致出现通信拥堵问题,优选的,将报名用户的报名信息上传至所述报名服务器,包括但限于有:采用内容分发网络CDN(Content Delivery Network)缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含但不限于有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
本实施例第三方面提供的前述系统的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。此外,在通过M次使用所述第三随机种子为多个报名用户生成一一对应的多个随机数的过程中,每次使用所述第三随机种子的主体可为不同的所述第一摇号服务器,由此在生成多个随机数及随机选号的过程中,每次使用第三随机种子的主体可为不同的摇号服务器,以便用多个独立的物理服务器级联地进行随机操作,提升摇号随机性,以及实现对参与者进行暗文摇号的目的。
如图8所示,本实施例第四方面提供了一种执行如第一方面所述的报名摇号方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面所述的报名摇号方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(FlashMemory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以但不限于采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第四方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。
本实施例第五方面提供了一种存储包含如第一方面所述的报名摇号方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的报名摇号方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等计算机可读存储介质,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
本实施例第五方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见如第一方面所述的报名摇号方法,于此不再赘述。
本实施例第六方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面所述的报名摇号方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种报名摇号方法,其特征在于,由服务器侧执行,包括:
获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,具体包括:先在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,再在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数,最后汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,具体的随机选出过程有如下方式(A)或方式(B):
(A)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后针对所述至少一个随机数中的各个随机数,从所述多个随机数中抽出距离最近的一个随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
(B)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后对所述多个随机数进行轮番检索计数,并针对所述至少一个随机数中的各个随机数,将在轮番检索计算值等于对应随机数时的且在所述多个随机数中的随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
2.如权利要求1所述的报名摇号方法,其特征在于,当所述报名信息还包含有所述报名用户的用户唯一标识时,将所述报名信息添加到区块链中,包括:
遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报名信息;
在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。
3.如权利要求1或2所述的报名摇号方法,其特征在于,当所述报名信息还包含有所述报名用户的报名资格待审内容时,将所述报名信息添加到所述区块链中,包括:
判断所述报名资格待审内容是否满足预设的报名资格条件;
若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。
4.如权利要求1所述的报名摇号方法,其特征在于,所述方法还包括:
在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系;
在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数;
在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果。
5.一种报名摇号装置,其特征在于,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;
所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
所述随机处理模块,用于先通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,M为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,具体包括:先在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,再在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数,最后汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数;
所述再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,具体的随机选出过程有如下方式(A)或方式(B):
(A)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后针对所述至少一个随机数中的各个随机数,从所述多个随机数中抽出距离最近的一个随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
(B)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后对所述多个随机数进行轮番检索计数,并针对所述至少一个随机数中的各个随机数,将在轮番检索计算值等于对应随机数时的且在所述多个随机数中的随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
6.一种报名摇号系统,其特征在于,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;
所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,M为正整数,所述M次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
所述通过M次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,具体包括:先在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,再在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数,最后汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数;
所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,具体的随机选出过程有如下方式(A)或方式(B):
(A)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后针对所述至少一个随机数中的各个随机数,从所述多个随机数中抽出距离最近的一个随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
(B)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后对所述多个随机数进行轮番检索计数,并针对所述至少一个随机数中的各个随机数,将在轮番检索计算值等于对应随机数时的且在所述多个随机数中的随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数;
所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
7.如权利要求6所述的报名摇号系统,其特征在于,将报名用户的报名信息上传至所述报名服务器,包括:
采用内容分发网络CDN缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
8.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~4中任意一项所述的报名摇号方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~4中任意一项所述的报名摇号方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211014020.5A CN115376239B (zh) | 2022-08-23 | 2022-08-23 | 一种报名摇号方法、装置、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211014020.5A CN115376239B (zh) | 2022-08-23 | 2022-08-23 | 一种报名摇号方法、装置、系统、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115376239A CN115376239A (zh) | 2022-11-22 |
CN115376239B true CN115376239B (zh) | 2023-04-21 |
Family
ID=84068485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211014020.5A Active CN115376239B (zh) | 2022-08-23 | 2022-08-23 | 一种报名摇号方法、装置、系统、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115376239B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019109003A1 (en) * | 2017-11-30 | 2019-06-06 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
CN108365960B (zh) * | 2017-12-29 | 2020-11-20 | 北京欧链科技有限公司 | 随机数提供方法和装置 |
CN108648323B (zh) * | 2018-05-10 | 2021-02-19 | 广州市申迪计算机系统有限公司 | 目标信息的选取方法、装置、计算机设备和存储介质 |
CN110164022B (zh) * | 2019-06-13 | 2020-01-17 | 北京艾摩瑞策科技有限公司 | 一种在区块链上的随机摇号方法及其设备 |
CN111599079A (zh) * | 2020-04-21 | 2020-08-28 | 深圳市芯链科技有限公司 | 一种区块链摇号方法、装置、设备和存储介质 |
CN111538479B (zh) * | 2020-04-27 | 2023-11-21 | 国泰新点软件股份有限公司 | 开标过程中的随机参数生成方法及装置 |
CN112712632B (zh) * | 2020-11-17 | 2022-03-15 | 中科扶云(杭州)科技有限公司 | 随机摇号的处理方法、装置、电子装置和存储介质 |
CN113781699A (zh) * | 2021-08-26 | 2021-12-10 | 南京巨公科技有限公司 | 一种摇号的方法 |
-
2022
- 2022-08-23 CN CN202211014020.5A patent/CN115376239B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115376239A (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708565B (zh) | 直播互动方法、装置、服务器及机器可读存储介质 | |
CN109981281B (zh) | 基于区块链提案随机共识确定候选元素的方法及装置 | |
CN108230047B (zh) | 抽奖数据处理方法及装置 | |
CN108460627A (zh) | 营销活动方案推送方法、装置、计算机设备及存储介质 | |
CN107025564A (zh) | 一种针对作品的处理方法、装置及系统 | |
CN109829379A (zh) | 信息处理方法、装置、服务器以及存储介质 | |
US20180032907A1 (en) | Detecting abusive language using character n-gram features | |
CN112733023A (zh) | 资讯推送方法、装置、电子设备及计算机可读存储介质 | |
CN113362095A (zh) | 一种信息投放的方法和装置 | |
CN108335208B (zh) | 用于处理信息的方法和装置 | |
CN109978629A (zh) | 一种广告投放方法、装置、电子设备及存储介质 | |
CN107563798A (zh) | 中奖数据处理方法及装置 | |
CN111797315A (zh) | 一种消息推送方法、装置、服务器及介质 | |
CN108648017B (zh) | 易于扩展的用户需求匹配方法、装置、设备及存储介质 | |
CN112866084A (zh) | 聊天群组的虚拟资源处理方法、设备及计算机可读介质 | |
CN111246230B (zh) | 一种信息处理方法、装置、服务器及存储介质 | |
CN116405712A (zh) | 基于ott视频的多媒体推送方法、装置、设备及存储介质 | |
CN106621332A (zh) | 一种数据请求的检测方法和装置 | |
CN115376239B (zh) | 一种报名摇号方法、装置、系统、计算机设备及存储介质 | |
CN110324364A (zh) | 一种离线抽奖方法及电子终端 | |
CN112199523A (zh) | 一种作品分发方法、装置、计算机设备及存储介质 | |
CN108512745A (zh) | 信息传播方法与系统、服务器及计算机可读存储介质 | |
CN108632387B (zh) | 生成游戏预约消息的方法、装置和终端 | |
CN110852338A (zh) | 用户画像的构建方法及装置 | |
CN110020035B (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 |