CN112712632B - 随机摇号的处理方法、装置、电子装置和存储介质 - Google Patents
随机摇号的处理方法、装置、电子装置和存储介质 Download PDFInfo
- Publication number
- CN112712632B CN112712632B CN202011419235.6A CN202011419235A CN112712632B CN 112712632 B CN112712632 B CN 112712632B CN 202011419235 A CN202011419235 A CN 202011419235A CN 112712632 B CN112712632 B CN 112712632B
- Authority
- CN
- China
- Prior art keywords
- random
- value
- participant
- calculating
- preset
- 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
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种随机摇号的处理方法、装置、电子装置和存储介质,其中,该处理方法包括:获取随机种子的初始输入值;利用预设的可验证随机函数,根据多个参与者的公私钥对,以及该初始输入值计算得到多个第一随机值;其中,该第一随机值和该参与者相匹配;通过区块链上部署的智能合约,对该第一随机值计算得到一个该随机种子,并利用该随机种子对该第一随机值进行计算,以得到多个参与者哈希值;其中,该参与者哈希值和该参与者相匹配;利用预设选取规则,根据该参与者哈希值选取预设抽取数量的该参与者。通过本申请,解决了随机摇号处理安全性低的问题,实现了基于区块链的可验证随机摇号方法。
Description
技术领域
本申请涉及随机摇号技术领域,特别是涉及随机摇号的处理方法、装置、电子装置和存储介质。
背景技术
摇号系统,又称为抽奖系统,在先登记所有参与者、再执行随机摇号的场景下,要产生公平可信、可验证的结果,需要一个可信的执行环境、一个可信的随机函数产生随机数。在相关技术中,很难找到一个可信执行环境,通常的做法是,依靠一个权威机构(如公证处)提供的专用设备作为执行环境。随机数由随机函数生成,其随机种子由系统设备提供或者由多方输入提供。其问题是,执行环境不是可信执行环境,随机数生成过程无法验证,因此其公平性存在缺陷,进而导致随机摇号处理的安全性较低。
目前针对相关技术中随机摇号处理安全性低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种随机摇号的处理方法、装置、电子装置和存储介质,以至少解决相关技术中随机摇号处理安全性低的问题。
第一方面,本申请实施例提供了一种随机摇号的处理方法,所述方法包括:
获取随机种子的初始输入值;
利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值;其中,所述第一随机值和所述参与者相匹配;
通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子,并利用所述随机种子对所述第一随机值进行计算,以得到多个参与者哈希值;其中,所述参与者哈希值和所述参与者相匹配;
利用预设选取规则,根据所述参与者哈希值选取预设抽取数量的所述参与者。
在其中一些实施例中,所述获取随机种子的初始输入值包括:
通过所述智能合约获取发起者的第一交易以开启摇号,并获取所述智能合约返回的所述初始输入值;其中,所述初始输入值为所述第一交易的交易哈希值,或者所述初始输入值为所述智能合约根据预设算法生成的哈希值。
在其中一些实施例中,所述利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值包括:
利用所述可验证随机函数计算得到所述第一随机值和第一零知识证明;
通过所述参与者向所述智能合约发送第二交易;其中,所述第二交易包括:所述参与者的公钥地址、所述第一随机值和所述第一零知识证明;
通过所述智能合约,利用预设的可验证随机函数验证算法对所述第一随机值和所述第一零知识证明进行验证,并在验证通过的情况下存储所述第一随机值和所述第一零知识证明。
在其中一些实施例中,所述计算得到多个第一随机值之后,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子之前,所述方法还包括:
利用所述可验证随机函数,根据见证者的公私钥对,以及所述初始输入值计算得到第二随机值和第二零知识证明。
在其中一些实施例中,所述计算得到第二随机值和第二零知识证明之后,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子之前,所述方法还包括:
通过所述见证者向所述智能合约发送第三交易;其中,所述第三交易包括:所述见证者的公钥地址、所述第二随机值和所述第二零知识证明;
通过所述智能合约,利用可验证随机函数验证算法对所述第二随机值和所述第二零知识证明进行验证,并在验证通过的情况下存储所述第二随机值和所述第二零知识证明。
在其中一些实施例中,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子包括:
在所述第三交易发送完毕的情况下,通过所述智能合约,对所述第一随机值和所述第二随机值进行计算得到所述随机种子。
在其中一些实施例中,所述根据所述参与者哈希值选取预设抽取数量的所述参与者包括:
在所述参与者的数量少于所述预设抽取数量的情况下,选取所有参与者;
成功选取所述参与者后,获取与选取到的所述参与者对应的公钥地址。
第二方面,本申请实施例提供了一种随机摇号的处理装置,所述装置包括:初始模块、第一随机值模块、合约模块和选取模块;
所述初始模块,用于获取随机种子的初始输入值;
所述第一随机值模块,用于利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值;其中,所述第一随机值和所述参与者相匹配;
所述合约模块,用于通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子,并利用所述随机种子对所述第一随机值进行计算,以得到多个参与者哈希值;其中,所述参与者哈希值和所述参与者相匹配;
所述选取模块,用于利用预设选取规则,根据所述参与者哈希值选取预设抽取数量的所述参与者。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的随机摇号的处理方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的随机摇号的处理方法。
相比于相关技术,本申请实施例提供的随机摇号的处理方法、装置、电子装置和存储介质,通过获取随机种子的初始输入值;利用预设的可验证随机函数,根据多个参与者的公私钥对,以及该初始输入值计算得到多个第一随机值;其中,该第一随机值和该参与者相匹配;通过区块链上部署的智能合约,对该第一随机值计算得到一个该随机种子,并利用该随机种子对该第一随机值进行计算,以得到多个参与者哈希值;其中,该参与者哈希值和该参与者相匹配;利用预设选取规则,根据该参与者哈希值选取预设抽取数量的该参与者,解决了随机摇号处理安全性低的问题,实现了基于区块链的可验证随机摇号方法。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种随机摇号处理应用场景的示意图;
图2是根据本申请实施例的一种随机摇号处理方法的流程图;
图3是根据本申请实施例的另一种随机摇号处理方法的流程图;
图4是根据本申请实施例的又一种随机摇号处理方法的流程图;
图5A为根据本申请优选实施例的一种随机摇号处理系统的结构图;
图5B为根据本申请优选实施例的一种随机摇号处理方法的流程图;
图6是根据本申请实施例的一种随机摇号处理装置的结构框图;
图7是根据本申请实施例的另一种随机摇号处理装置的结构框图;
图8是根据本申请实施例的一种计算机设备内部的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在本实施例中,提供了一种随机摇号处理的应用场景,图1是根据本申请实施例的一种随机摇号处理应用场景的示意图,如图1所示,区块链网络102和服务器104过网络进行通信,网络可以包括局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合,并连接至网站、用户设备(例如计算设备)和后端系统。服务器104通过利用预设的可验证随机函数,根据获取到的初始输入值计算得到多个参与者对应的多个第一随机值,通过该区块链网络102上部署的智能合约,对该第一随机值计算得到多个参与者哈希值,进而根据该参与者哈希值进行选取以实现随机摇号处理。可选地,服务器104可以是云计算系统的节点(图中未显示),或者每个服务器104可以是单独的云计算系统,包括由网络互连并作为分布式处理系统工作的多台计算机。服务器104可以运行任何适当的计算系统,使其能够作为区块链网络102中的节点。
在本实施例中,提供了一种随机摇号的处理方法,图2是根据本申请实施例的一种随机摇号处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取随机种子的初始输入值。
其中,可以通过该智能合约获取发起者的第一交易以开启摇号,并获取该智能合约返回的该初始输入值;该初始输入值为所述第一交易的交易哈希值,或者该初始输入值为该智能合约根据预设算法生成的哈希值。
具体地,发起者向该智能合约发送一条第一交易,提供相关参数,其中,该相关参数包括但不限于:开始时间、结束时间、抽取数量、见证者公钥地址列表等。智能合约记录上述参数,开启新的摇号活动,返回随机种子的初始输入值,该初始输入值可以取上述交易的交易哈希值,也可以由智能合约根据预设的算法生成的哈希值。
步骤S204,利用预设的可验证随机函数,根据多个参与者的公私钥对,以及该初始输入值计算得到多个第一随机值;其中,该第一随机值和该参与者相匹配。
其中,在摇号活动开始时间至结束时间的范围内,每一个参与者使用自己的数字身份公私钥对,利用预设的可验证随机函数,根据初始输入值计算得到第一随机值。需要说明的是,上述可验证随机函数是一种将输入映射为可验证的伪随机数输出的加密方案。对于相同的公私钥对(该公私钥对可以用PK和SK表示)以及初始输入值X输入,该可验证随机函数只会产生唯一的伪随机数Y和零知识证明ρ。该可验证随机函数如公式1所示:
f(X,SK)→(Y,ρ) 公式1
因此,将每个参与者的公私钥对依次和初始输入值一起代入上述公式1,即可分别得到每个参与者的该第一随机值;对于特定的初始输入值,输出的第一随机值是唯一的,且具有不可伪造或抵赖性。
步骤S206,通过区块链上部署的智能合约,对该第一随机值计算得到一个该随机种子,并利用该随机种子对该第一随机值进行计算,以得到多个参与者哈希值;其中,该参与者哈希值和该参与者相匹配。
具体地,该智能合约根据预设的算法,对所有参与者的第一随机值进行计算,得到一个随机种子;该智能合约再根据另一预设的算法,利用该随机种子,对每个参与者的第一随机值进行计算,得到对应每个参与者的参与者哈希值,并根据预设的排序规则,对所有参与者哈希值进行排序。
步骤S208,利用预设选取规则,根据该参与者哈希值选取预设抽取数量的该参与者。
其中,该预设选取规则可以由用户预先进行设置,例如将该预设选取规则设置为:对上述已排序的参与者哈希值从上到下进行选取。该预设抽取数量可以根据实际情况进行设置,例如将该预设抽取数量设置为三个,即可以根据该预设选取规则选取到三个参与者。需要说明的是,在该参与者的数量少于该预设抽取数量的情况下,选取所有参与者。成功选取该参与者后,获取与选取到的该参与者对应的公钥地址。
相关技术中的的随机摇号系统,基于某权威机构的服务器系统运行,缺乏可信执行环境,无法从技术上保障其系统运行时被攻击或者干扰,且相关技术随机摇号产生的结果,事后不可验证、不可审计,无法客观地复原,其可信度只能依赖于第三方证明。
相比于相关技术,本申请实施例通过上述步骤S202至步骤S208,通过预设的可验证随机函数,根据初始输入值计算得到多个第一随机值,进而获取多个参与者哈希值,并根据所有参与者哈希值选取参与者,从而基于区块链部署智能合约实现了不依赖与任何独立第三方运行的随机摇号处理系统,是一个可信执行环境。同时,由于该可验证随机函数在得到随机值之前是不可预算结果的,可以视为结果是随机的;对于特定的初始输入值,其结果又是唯一确定的,因此可以验证结果,事后可客观复原结果,从而解决了随机摇号处理安全性低的问题,实现了基于区块链的可验证随机摇号方法。
在其中一些实施例中,提供了一种随机摇号的处理方法,图3是根据本申请实施例的另一种随机摇号处理方法的流程图,如图3所示,该流程包括图2所示的步骤S202、步骤S206和步骤S208,此外还包括如下步骤:
步骤S302,利用该可验证随机函数计算得到该第一随机值和第一零知识证明。
其中,将参与者的公私钥对以及初始初入值代入上述公式1中,可以输出得到第一随机值和第一零知识证明。需要说明的是,由于输出的第一随机值是伪随机的,因此对于不知道第一零知识证明的第三方来说它看起来就是随机的、不可预测的。如果给出第一零知识证明,可以验证第一随机值是否合法;给出第一初始输入值、公钥和第一零知识证明,可以验证该第一随机值与该第一初始输是否匹配。
步骤S304,通过该参与者向该智能合约发送第二交易;其中,该第二交易包括:该参与者的公钥地址、该第一随机值和该第一零知识证明。
其中,每个参与者向智能合约发送一条第二交易,提供本参与者公钥地址、第一随机值和第一零知识证明等参数。
步骤S306,通过该智能合约,利用预设的可验证随机函数验证算法对该第一随机值和该第一零知识证明进行验证,并在验证通过的情况下存储该第一随机值和该第一零知识证明。
其中,智能合约根据预设的可验证随机函数验证方法,对第一随机值和第一零知识证明,如果验证通过则记录存储上述第一随机值和第一零知识证明参数。需要说明的是,该预设的可验证随机函数可以选择一个简单的算法:使用数字身份的公私钥对,对随机种子的初始输入值进行数字签名,得到签名值。第一随机值取该签名值,第一零知识证明也取该签名值。
通过上述步骤S302至步骤S306,通过可验证随机函数计算得到第一随机值和第一零知识证明,并通过预设的可验证随机函数对该第一随机值和该第一零知识证明,从而提高了随机摇号处理的安全性。
在其中一些实施例中,提供了一种随机摇号的处理方法,图4是根据本申请实施例的又一种随机摇号处理方法的流程图,如图4所示,该流程包括图2所示的所有步骤,此外还包括如下步骤:
步骤S402,利用该可验证随机函数,根据见证者的公私钥对,以及该初始输入值计算得到第二随机值和第二零知识证明。
其中,在所有参与者均发送第二交易提交数据完毕,或者当前时间已经超过摇号活动结束时间的情况下,每一个见证者者使用自己的数字身份公私钥对,利用预设的可验证随机函数,根据初始输入值计算得到与各见证者对应的第二随机值以及第二零知识证明。
步骤S404,通过该见证者向该智能合约发送第三交易;其中,该第三交易包括:该见证者的公钥地址、该第二随机值和该第二零知识证明。
其中,见证者向区块链系统智能合约发送一条第三交易,提供本见证者公钥地址、第二随机值和第二零知识证明。
步骤S406,通过该智能合约,利用可验证随机函数验证算法对该第二随机值和该第二零知识证明进行验证,并在验证通过的情况下存储该第二随机值和该第二零知识证明。
其中,智能合约根据预设的可验证随机函数验证方法,对第二随机值和第二零知识证明进行验证,如果验证通过则记录并存储上述该第二随机值和该第二零知识证明等参数。
通过上述步骤S402至步骤S406,通过预设的可验证随机函数计算得到见证者的第二随机值和第二零知识证明,并通过可验证随机函数验证算法对该第二随机值和该第二零知识证明进行验证,且所有算法预先公开,提高了随机结果的公平性,从而进一步提高了随机摇号处理方法的安全性。
在其中一些实施例中,通过区块链上部署的智能合约,对该第一随机值计算得到该随机种子这一流程还包括如下步骤:在该第三交易发送完毕的情况下,通过该智能合约,对该第一随机值和该第二随机值进行计算得到该随机种子。具体地,在所有见证者均发送第二交易提交数据完毕的情况下,该智能合约根据预设的算法,对所有参与者的第一随机值,以及所有见证者的第二随机值进行计算,以得到该随机种子。
相关技术中的随机摇号系统可能被运行环境、系统参数和外部插件影响,导致随机结果被干预。而本申请通过上述实施例,通过智能合约,利用第一随机值和第二随机值进行计算以得到随机种子,因此随机种子受所有参与者和见证者经可验证随机函数计算得到的随机值的影响,任何一方均不可预测其他一方的随机值,但任何一方只有一个随机值且不能修改,有效防止了区块链产生随机种子过程的“矿工攻击”和“最后参与者攻击”等问题,从而进一步提高了随机结果的公平性,以及随机摇号处理方法的安全性。
下面结合实际应用场景对本申请的实施例进行详细说明,图5A为根据本申请优选实施例的一种随机摇号处理系统的结构图,如图5A所示,该处理系统包括:区块链网络、智能合约、发起操作模块、见证操作模块和参与操作模块。
其中,区块链网络可以接入使用公共区块链系统,也可以接入联盟许可式区块链系统;本处理系统的管理者将智能合约部署在该区块链网络上,由该智能合约对随机摇号活动进行数据记录、计算以及产生随机结果。发起操作模块:由发起者发起一个摇号活动,登记见证者。见证操作模块:由所有见证者输入相关数据并产生随机结果。参与操作模块:由所有参与者登记并输入相关数据。
图5B为根据本申请优选实施例的一种随机摇号处理方法的流程图,该随机摇号处理方法的具体实施步骤如图5B所示。
步骤S502,发起摇号活动:发起者开启摇号活动,登记见证者公钥地址,得到随机种子的初始输入值。
步骤S504,参与者登记及输入数据:参与者通过可验证随机函数得到第一随机值、第一零知识证明,并向区块链智能合约发送交易以登记到对应的摇号活动。
步骤S506,见证者输入数据:见证者通过可验证随机函数得到第二随机值、第二零知识证明,并向区块链智能合约发送交易以登记到对应的摇号活动。
步骤S508,计算得到随机种子:在区块链智能合约中,使用预设的算法,对所有参与者的第一随机值,以及所有见证者的第二随机值进行计算,得到随机种子。
步骤S510,根据随机种子排序:根据另一预设的算法,利用随机种子,对每个参与者的第一随机值进行计算,得到对应于每个参与者的参与者哈希值,并对其进行排序。
步骤S512,得到随机抽取结果:根据预设选取规则,得到选中的参与者哈希值,进而得到对应的参与者公钥地址。
应该理解的是,虽然图2至图4以及图5B的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图4以及图5B中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本实施例中,提供了一种随机摇号的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的一种随机摇号处理装置的结构框图,如图6所示,该装置包括:初始模块62、第一随机值模块64、合约模块66和选取模块68。
该初始模块62,用于获取随机种子的初始输入值;该第一随机值模块64,用于利用预设的可验证随机函数,根据多个参与者的公私钥对,以及该初始输入值计算得到多个第一随机值;其中,该第一随机值和该参与者相匹配;该合约模块66,用于通过区块链上部署的智能合约,对该第一随机值计算得到一个该随机种子,并利用该随机种子对该第一随机值进行计算,以得到多个参与者哈希值;其中,该参与者哈希值和该参与者相匹配;该选取模块68,用于利用预设选取规则,根据该参与者哈希值选取预设抽取数量的该参与者。
通过上述实施例,第一随机值模块64利用预设的可验证随机函数,根据初始输入值计算得到第一随机值,进而通过合约模块66获取参与者哈希值,并通过选取模块68根据该参与者哈希值选取参与者,从而基于区块链部署智能合约实现了不依赖与任何独立第三方运行的随机摇号处理系统,是一个可信执行环境。由于该可验证随机函数在得到随机值之前是不可预算结果的,可以视为结果是随机的;对于特定的初始输入值,其结果又是唯一确定的,因此可以验证结果,事后可客观复原结果,从而解决了随机摇号处理安全性低的问题,实现了基于区块链的可验证随机摇号方法。
在其中一些实施例中,该初始模块62还用于通过该智能合约获取发起者的第一交易以开启摇号,并获取该智能合约返回的该初始输入值;其中,该初始输入值为该第一交易的交易哈希值,或者该初始输入值为该智能合约根据预设算法生成的哈希值。
在其中一些实施例中,该第一随机值模块64还用于利用该可验证随机函数计算得到该第一随机值和第一零知识证明;该第一随机值模块64通过该参与者向该智能合约发送第二交易;其中,该第二交易包括:该参与者的公钥地址、该第一随机值和该第一零知识证明;该第一随机值模块64通过该智能合约,利用预设的可验证随机函数验证算法对该第一随机值和该第一零知识证明进行验证,并在验证通过的情况下存储该第一随机值和该第一零知识证明。
在其中一些实施例中,提供了一种随机摇号的处理装置,图7是根据本申请实施例的另一种随机摇号处理装置的结构框图,如图7所示,该装置包括图6所示的所有模块,此外还包括:第二随机值模块72。该第二随机值模块72,用于利用该可验证随机函数,根据见证者的公私钥对,以及该初始输入值计算得到第二随机值和第二零知识证明。
在其中一些实施例中,该第二随机值模块72还用于通过该见证者向该智能合约发送第三交易;其中,该第三交易包括:该见证者的公钥地址、该第二随机值和该第二零知识证明;该第二随机值模块72通过该智能合约,利用可验证随机函数验证算法对该第二随机值和该第二零知识证明进行验证,并在验证通过的情况下存储该第二随机值和该第二零知识证明。
在其中一些实施例中,该合约模块66还用于在该第三交易发送完毕的情况下,通过该智能合约,对该第一随机值和该第二随机值进行计算得到该随机种子。
在其中一些实施例中,该选取模块68还用于在该参与者的数量少于该预设抽取数量的情况下,选取所有参与者;该选取模块68成功选取该参与者后,获取与选取到的该参与者对应的公钥地址。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中,提供了一种计算机设备,该计算机设备可以是服务器,图8是根据本申请实施例的一种计算机设备内部的结构图,如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储可验证随机函数。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述随机摇号的处理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取随机种子的初始输入值。
S2,利用预设的可验证随机函数,根据多个参与者的公私钥对,以及该初始输入值计算得到多个第一随机值;其中,该第一随机值和该参与者相匹配。
S3,通过区块链上部署的智能合约,对该第一随机值计算得到一个该随机种子,并利用该随机种子对该第一随机值进行计算,以得到多个参与者哈希值;其中,该参与者哈希值和该参与者相匹配。
S4,利用预设选取规则,根据该参与者哈希值选取预设抽取数量的该参与者。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的随机摇号的处理方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种随机摇号的处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种随机摇号的处理方法,其特征在于,所述方法包括:
获取随机种子的初始输入值;
利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值;其中,所述第一随机值和所述参与者相匹配;
通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子,并利用所述随机种子对所述第一随机值进行计算,以得到多个参与者哈希值;其中,所述参与者哈希值和所述参与者相匹配;
利用预设选取规则,根据所述参与者哈希值选取预设抽取数量的所述参与者。
2.根据权利要求1所述的处理方法,其特征在于,所述获取随机种子的初始输入值包括:
通过所述智能合约获取发起者的第一交易以开启摇号,并获取所述智能合约返回的所述初始输入值;其中,所述初始输入值为所述第一交易的交易哈希值,或者所述初始输入值为所述智能合约根据预设算法生成的哈希值。
3.根据权利要求1或2所述的处理方法,其特征在于,所述利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值包括:
利用所述可验证随机函数计算得到所述第一随机值和第一零知识证明;
通过所述参与者向所述智能合约发送第二交易;其中,所述第二交易包括:所述参与者的公钥地址、所述第一随机值和所述第一零知识证明;
通过所述智能合约,利用预设的可验证随机函数验证算法对所述第一随机值和所述第一零知识证明进行验证,并在验证通过的情况下存储所述第一随机值和所述第一零知识证明。
4.根据权利要求1所述的处理方法,其特征在于,所述计算得到多个第一随机值之后,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子之前,所述方法还包括:
利用所述可验证随机函数,根据见证者的公私钥对,以及所述初始输入值计算得到第二随机值和第二零知识证明。
5.根据权利要求4所述的处理方法,其特征在于,所述计算得到第二随机值和第二零知识证明之后,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子之前,所述方法还包括:
通过所述见证者向所述智能合约发送第三交易;其中,所述第三交易包括:所述见证者的公钥地址、所述第二随机值和所述第二零知识证明;
通过所述智能合约,利用可验证随机函数验证算法对所述第二随机值和所述第二零知识证明进行验证,并在验证通过的情况下存储所述第二随机值和所述第二零知识证明。
6.根据权利要求5所述的处理方法,其特征在于,所述通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子包括:
在所述第三交易发送完毕的情况下,通过所述智能合约,对所述第一随机值和所述第二随机值进行计算得到所述随机种子。
7.根据权利要求1所述的处理方法,其特征在于,所述根据所述参与者哈希值选取预设抽取数量的所述参与者包括:
在所述参与者的数量少于所述预设抽取数量的情况下,选取所有参与者;
成功选取所述参与者后,获取与选取到的所述参与者对应的公钥地址。
8.一种随机摇号的处理装置,其特征在于,所述装置包括:初始模块、第一随机值、合约模块和选取模块;
所述初始模块,用于获取随机种子的初始输入值;
所述第一随机值模块,用于利用预设的可验证随机函数,根据多个参与者的公私钥对,以及所述初始输入值计算得到多个第一随机值;其中,所述第一随机值和所述参与者相匹配;
所述合约模块,用于通过区块链上部署的智能合约,对所述第一随机值计算得到一个所述随机种子,并利用所述随机种子对所述第一随机值进行计算,以得到多个参与者哈希值;其中,所述参与者哈希值和所述参与者相匹配;
所述选取模块,用于利用预设选取规则,根据所述参与者哈希值选取预设抽取数量的所述参与者。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的随机摇号的处理方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项所述的随机摇号的处理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020112827491 | 2020-11-17 | ||
CN202011282749 | 2020-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712632A CN112712632A (zh) | 2021-04-27 |
CN112712632B true CN112712632B (zh) | 2022-03-15 |
Family
ID=75542588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011419235.6A Active CN112712632B (zh) | 2020-11-17 | 2020-12-07 | 随机摇号的处理方法、装置、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712632B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407593A (zh) * | 2021-06-15 | 2021-09-17 | 北京天行汇通信息技术有限公司 | 数据抽检方法、装置、电子设备和可读存储介质 |
CN113658371B (zh) * | 2021-07-01 | 2023-08-18 | 折折朋比(武汉)互联网服务有限公司 | 一种基于抽牌模式的在线实时抽奖系统与方法 |
CN113489584B (zh) * | 2021-07-02 | 2024-04-05 | 北京泛融科技有限公司 | 一种区块链中随机数的处理方法、装置和电子设备 |
CN114726534A (zh) * | 2022-03-28 | 2022-07-08 | 海南格子山网络科技有限公司 | 一种基于Solana区块链技术实现智能合约抽签的方法 |
CN115376239B (zh) * | 2022-08-23 | 2023-04-21 | 北京女娲补天科技信息技术有限公司 | 一种报名摇号方法、装置、系统、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110164022A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种在区块链上的随机摇号方法及其设备 |
CN110941418A (zh) * | 2019-11-26 | 2020-03-31 | 杭州浮云网络科技有限公司 | 一种随机数生成的方法、装置、设备及可读存储介质 |
CN111008863A (zh) * | 2019-11-28 | 2020-04-14 | 湖南天河国云科技有限公司 | 一种基于区块链的抽奖方法及系统 |
CN111599079A (zh) * | 2020-04-21 | 2020-08-28 | 深圳市芯链科技有限公司 | 一种区块链摇号方法、装置、设备和存储介质 |
CN111901104A (zh) * | 2020-07-10 | 2020-11-06 | 张亮 | 一种基于区块链的车牌抽选方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997125B2 (en) * | 2017-11-29 | 2021-05-04 | Technion Research & Development Foundation Limited | Proof of lottery (PoL) blockchain |
WO2019109003A1 (en) * | 2017-11-30 | 2019-06-06 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
-
2020
- 2020-12-07 CN CN202011419235.6A patent/CN112712632B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110164022A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种在区块链上的随机摇号方法及其设备 |
CN110941418A (zh) * | 2019-11-26 | 2020-03-31 | 杭州浮云网络科技有限公司 | 一种随机数生成的方法、装置、设备及可读存储介质 |
CN111008863A (zh) * | 2019-11-28 | 2020-04-14 | 湖南天河国云科技有限公司 | 一种基于区块链的抽奖方法及系统 |
CN111599079A (zh) * | 2020-04-21 | 2020-08-28 | 深圳市芯链科技有限公司 | 一种区块链摇号方法、装置、设备和存储介质 |
CN111901104A (zh) * | 2020-07-10 | 2020-11-06 | 张亮 | 一种基于区块链的车牌抽选方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112712632A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112712632B (zh) | 随机摇号的处理方法、装置、电子装置和存储介质 | |
CN109756338B (zh) | 认证装置、验证装置的计算机实现方法和计算机可读介质 | |
Shayan et al. | Biscotti: A ledger for private and secure peer-to-peer machine learning | |
JP2023109981A (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
Aman et al. | A light-weight mutual authentication protocol for IoT systems | |
JP2022033913A (ja) | ブロックチェーンにより実装される方法及びシステム | |
CN111865587B (zh) | 数据处理方法、区块链节点设备、电子设备及计算机程序 | |
CN106576046B (zh) | 将元数据与硬件固有属性绑定的系统和设备 | |
WO2022217807A1 (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
CN108831001B (zh) | 基于区块链的节点随机选取方法、系统、节点、电子设备 | |
CN111800262B (zh) | 数字资产的处理方法、装置和电子设备 | |
JP2007529935A (ja) | 匿名認証方法 | |
Singh et al. | Optimized public auditing and data dynamics for data storage security in cloud computing | |
US10630471B1 (en) | System and method for enforcement of correctness for key derivation | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN108337092A (zh) | 用于在通信网络中执行集体认证的方法和系统 | |
CN112910632A (zh) | 一种新型面向多数据用户、保护用户隐私的云端数据完整性验证协议 | |
CN112272088A (zh) | 一种基于安全多方的可审计签名方法及相关组件 | |
JP7073800B2 (ja) | アップデート可能なランダム関数 | |
CN113872990A (zh) | 基于ssl协议的vpn网络证书认证方法、装置和计算机设备 | |
Andre et al. | Smartor: Smarter tor with smart contracts: Improving resilience of topology distribution in the tor network | |
JP2021521748A (ja) | 物理的複製困難関数を使用して暗号鍵をオンボードで生成するための方法 | |
Birnstill et al. | Introducing remote attestation and hardware-based cryptography to OPC UA | |
CN116170144B (zh) | 智能电网匿名认证方法、电子设备及存储介质 | |
CN107070869B (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 |