CN111008863B - 一种基于区块链的抽奖方法及*** - Google Patents
一种基于区块链的抽奖方法及*** Download PDFInfo
- Publication number
- CN111008863B CN111008863B CN201911191570.2A CN201911191570A CN111008863B CN 111008863 B CN111008863 B CN 111008863B CN 201911191570 A CN201911191570 A CN 201911191570A CN 111008863 B CN111008863 B CN 111008863B
- Authority
- CN
- China
- Prior art keywords
- hash value
- intelligent contract
- lottery
- private key
- blockchain
- 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
Classifications
-
- 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0212—Chance discounts or incentives
-
- 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/602—Providing cryptographic facilities or services
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种基于区块链的抽奖方法及***,所述方法包括:根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新;使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。通过本发明实施例,能够基于区块链提高抽奖的随机性及公平性。
Description
技术领域
本发明属于区块链技术领域,具体是涉及到一种基于区块链的抽奖方法、***、终端设备及计算机可读介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
目前,抽奖平台基本采用中心化的方式来进行抽奖,抽奖数据保存在***后端,具有可篡改性,而用户对于抽奖的过程无法知晓,对于结果也无从验证。因此,现有方法对公平性、真实性难以保证,如何基于区块链不可篡改的特性,使用区块链技术来进行抽奖活动,成为亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种基于区块链的抽奖方法、***、终端设备及计算机可读介质,能够基于区块链提高抽奖的随机性及公平性。
本发明实施例的第一方面提供了一种基于区块链的抽奖方法,包括:
根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改;
对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新;
使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。。
本发明实施例的第二方面提供了一种基于区块链的抽奖***,包括:
生成模块,用于根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改;
参与模块,用于对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新;
确定模块,用于使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的抽奖方法的步骤。
本发明实施例的第四方面提供了一种计算机可读介质,所述计算机可读介质存储有计算机程序,所述计算机程序被处理执行时实现上述基于区块链的抽奖方法的步骤。
本发明实施例提供的基于区块链的随机数生成方法,可根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值,对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新,最后使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号,从而可通过使所有抽奖用户均参与加密抽奖信息,且利用随机私钥加密抽奖信息的方法,保证抽奖具有足够的随机性和公平性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于区块链的抽奖方法的流程图;
图2是本发明实施例提供的基于区块链的抽奖方法中对抽奖活动的各个参与者上传的随机字符串进行加密和哈希运算、并以所述运算的结果对所述智能合约中的哈希值进行更新的流程示意图;
图3是本发明实施例提供的一种基于区块链的抽奖***的结构示意图;
图4是图3中的参与模块的一个实施例提供的细化结构示意图;
图5是图3中的参与模块的另一个实施例提供的细化结构示意图;
图6是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,图1是本发明实施例提供的一种基于区块链的抽奖方法。如图1所示,本实施例的基于区块链的抽奖方法包括以下步骤:
S101:根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值。
在本发明实施例中,可根据与抽奖活动对应的智能合约生成一对公钥pk和私钥sk,并在区块链上公开所述公钥pk,初始化所述智能合约中的哈希值。所述智能合约与抽奖活动对应,用于实现本发明实施例提供的基于区块链的抽奖方法,并保证所述抽奖方法的不可篡改。此外,在生成所述公钥pk和私钥sk之前,还可发起抽奖活动,并设定所述抽奖活动的参与者的数量m。
S102:对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新。
在本发明的一个实施例中,可按照所述参与者参与所述抽奖活动的时间顺序,先使用第一个参与者上传到所述区块链的随机字符串S1加密所述智能合约中的初始化后的哈希值,得到第一密文P1,将所述第一密文P1进行哈希运算,并以对所述第一密文P1进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的第一更新哈希值;再可使用第i个参与者上传到所述区块链的随机字符串Si加密第i-1更新哈希值,得到第i密文Pi,将所述第i密文Pi进行哈希运算,并以对所述第i密文Pi进行哈希运算后得到的运算结果替换所述智能合约中的第i-1更新哈希值,得到第i更新哈希值;其中,1<i<m,m为参与所述抽奖活动的总人数。例如,使用第二个参与者上传到所述区块链的随机字符串S2加密所述第一更新哈希值,得到第二密文P2,将所述第二密文P2进行哈希运算,并以对所述第二密文P2进行哈希运算后得到的运算结果替换所述智能合约中的第一更新哈希值,得到第二更新哈希值;依次类推,一直到,使用最后一个参与者(即第m 个参与者)上传到所述区块链的随机字符串Sm加密第m-1更新哈希值,得到第m密文Pm,将所述第m密文Pm进行哈希运算,并以对所述第m密文Pm进行哈希运算后得到的运算结果替换所述智能合约中的第m-1更新哈希值,得到第m更新哈希值。如图2所示,S1021 中,第i位参与者可传入其自定义字符串(即自定义的随机字符串)Si到所述区块链上; S1022中,可通过Si对寄存器H中的哈希值(即所述智能合约中的哈希值的第i-1次更新值,或称为第i-1更新哈希值)进行加密得到第i密文Pi;S1023中,对Pi进行哈希运算得到新的哈希值并存入寄存器H,以替换第i-1更新哈希值;S1024中,判断i是否小于所述抽奖活动的设定的参与者数量m,若小于,则通过第i+1为参与者传入的随机字符串重复执行S1021~S1024,一直循环,直到通过第m位参与者传入的随机字符串得到第m更新哈希值。
在本发明的另一个实施例中,可将所述抽奖活动的所有参与者上传到所述区块链的随机字符串拼接在一起,使用拼接后的随机字符串加密所述智能合约中的初始化后的哈希值,得到密文P,再可将将所述密文P进行哈希运算,并以对所述密文P进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的更新哈希值。可以理解的是,这种方式可以减少一定的计算量,但是需要更多的存储空间。
S103:使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
在本发明实施例中,可用所述私钥sk加密所述智能合约中的更新后的哈希值,得到私钥加密密文D(即用私钥加密的密文D);再可对所述私钥加密密文D进行哈希运算,利用对所述私钥加密密文D进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值(即利用对所述私钥加密密文D进行哈希运算而得到的结果替换所述更新后的哈希值,从而进一步更新所述智能合约中的哈希值);最后可将所述智能合约中的进一步更新的哈希值转换成256位无符号整型K,通过所述无符号整型K对所述抽奖活动的参与者的数量m取模得出中奖参与者的编号。此外,所述哈希运算,可以是,例如,采用SHA2函数进行的哈希运算。需要指出的是,所述区块链上的用户可使用所述公钥pk、所述智能合约中的各个阶段的哈希值以及所述私钥加密密文D验证所述私钥sk是否被篡改。
在本发明实施例提供的基于区块链的抽奖方法,利用每一个抽奖活动的参与者的在区块链上的传入值进行加密运算和哈希运算,所有参与者都能参与到抽奖活动的流程当中,并对抽奖的结果产生影响。再者,公私钥对预先生成,公开公钥,并采用私钥在后续过程中进行加密运算,不具备篡改的可能性,可保证抽奖结果的公平性和真正的随机性。此外,整个抽奖方法流程上链,过程和结果公开可验证,可确保结果的真实、随机和可信。
请参阅图3,图3是本发明实施例提供的一种基于区块链的抽奖***的结构框图。如图 3所示,本实施例的基于区块链的抽奖***30包括生成模块301、参与模块302和确定模块303。生成模块301、参与模块302和确定模块303分别用于执行图1中的S101、S102 和S103中的具体方法,详情可参见图1的相关介绍,在此仅作简单描述:
生成模块301,用于根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改。
参与模块302,用于对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新。
确定模块303,用于使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
进一步地,在本发明的一个实施例中,可参见图4,参与模块302可具体包括第一参与单元3021、第i参与单元3022和第m参与单元3023:
第一参与单元3021,用于按照所述参与者参与所述抽奖活动的时间顺序,使用第一个参与者上传到所述区块链的随机字符串S1加密所述智能合约中的初始化后的哈希值,得到第一密文P1,将所述第一密文P1进行哈希运算,并以对所述第一密文P1进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的第一更新哈希值。
第i参与单元3022,用于使用第i个参与者上传到所述区块链的随机字符串Si加密第 i-1更新哈希值,得到第i密文Pi,将所述第i密文Pi进行哈希运算,并以对所述第i密文Pi进行哈希运算后得到的运算结果替换所述智能合约中的第i-1更新哈希值,得到第i更新哈希值;其中,1<i<m,m为参与所述抽奖活动的总人数。
第m参与单元3023,用于以此类推,使用第m个参与者上传到所述区块链的随机字符串Sm加密第m-1更新哈希值,得到第m密文Pm,将所述第m密文Pm进行哈希运算,并以对所述第m密文Pm进行哈希运算后得到的运算结果替换所述智能合约中的第m-1更新哈希值,得到第m更新哈希值。
进一步地,在本发明的另一个实施例中,可参见图5,参与模块302可具体包括拼接加密单元3024和更新单元3025:
拼接加密单元3024,用于将所述抽奖活动的所有参与者上传到所述区块链的随机字符串拼接,使用拼接后的随机字符串加密所述智能合约中的初始化后的哈希值,得到密文P。
更新单元3025,用于将所述密文P进行哈希运算,并以对所述密文P进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的更新哈希值。
图3提供的基于区块链的抽奖***,可利用每一个抽奖活动的参与者的在区块链上的传入值进行加密运算和哈希运算,所有参与者都能参与到抽奖活动的流程当中,并对抽奖的结果产生影响。再者,公私钥对预先生成,公开公钥,并采用私钥在后续过程中进行加密运算,不具备篡改的可能性,可保证抽奖结果的公平性和真正的随机性。此外,整个抽奖方法流程上链,过程和结果公开可验证,可确保结果的真实、随机和可信。
图6是本发明一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6 包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62,例如进行基于区块链的抽奖方法的程序。所述处理器60执行所述计算机程序 62时实现上述方法实施例中的步骤,例如,图1所示的S101至S103。或者,所述处理器 60执行所述计算机程序62时实现上述各***实施例中各模块/单元的功能,例如图3所示模块301至303的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在终端设备6中的执行过程。例如,所述计算机程序62可以被分割成生成模块301、参与模块302和确定模块303。(虚拟***中的模块),各模块具体功能如下:
生成模块301,用于根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改。
参与模块302,用于对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新。
确定模块303,用于使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6 仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及终端设备6所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述***的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的***/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的***/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于区块链的抽奖方法,其特征在于,包括:
根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改;
对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新;包括:将所述抽奖活动的所有参与者上传到所述区块链的随机字符串拼接,使用拼接后的随机字符串加密所述智能合约中的初始化后的哈希值,得到密文P;
将所述密文P进行哈希运算,并以对所述密文P进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的更新哈希值;
使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
2.根据权利要求1所述的基于区块链的抽奖方法,其特征在于,所述根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值之前,还包括:
发起抽奖活动,并设定所述抽奖活动的参与者的数量。
3.根据权利要求1-2中任一项所述的基于区块链的抽奖方法,其特征在于,所述使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文D进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号,包括:
用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文;
对所述私钥加密密文进行哈希运算,以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值;
将所述智能合约中的进一步更新的哈希值转换成256位无符号整型K,通过所述无符号整型K对所述抽奖活动的参与者的数量m取模得出中奖参与者的编号。
4.一种基于区块链的抽奖***,其特征在于,包括:
生成模块,用于根据智能合约随机生成一对公钥和私钥,并在区块链上公开所述公钥,初始化所述智能合约中的哈希值;其中,所述智能合约与抽奖活动对应,用于保证所述抽奖方法的不可篡改;
参与模块,用于对所述抽奖活动的各个参与者上传到所述区块链的随机字符串进行加密和哈希运算,并以所述运算的结果对所述智能合约中的哈希值进行更新;所述参与模块包括:
拼接加密单元,用于将所述抽奖活动的所有参与者上传到所述区块链的随机字符串拼接,使用拼接后的随机字符串加密所述智能合约中的初始化后的哈希值,得到密文P;
更新单元,用于将所述密文P进行哈希运算,并以对所述密文P进行哈希运算后得到的运算结果替换所述智能合约中的初始化后的哈希值,得到所述智能合约中的更新哈希值;
确定模块,用于使用所述私钥加密所述智能合约中的更新后的哈希值,得到私钥加密密文,并以对所述私钥加密密文进行哈希运算而得到的结果进一步更新所述智能合约中的哈希值,通过所述智能合约中的进一步更新的哈希值确定中奖参与者的编号。
5.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3中任一项所述方法的步骤。
6.一种计算机可读介质,所述计算机可读介质存储有计算机程序,其特征在于,所述计算机程序被处理执行时实现如权利要求1-3中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911191570.2A CN111008863B (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
CN202310866168.XA CN116739660A (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911191570.2A CN111008863B (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310866168.XA Division CN116739660A (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008863A CN111008863A (zh) | 2020-04-14 |
CN111008863B true CN111008863B (zh) | 2023-09-05 |
Family
ID=70112332
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911191570.2A Active CN111008863B (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
CN202310866168.XA Pending CN116739660A (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310866168.XA Pending CN116739660A (zh) | 2019-11-28 | 2019-11-28 | 一种基于区块链的抽奖方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111008863B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761586A (zh) * | 2020-06-28 | 2021-12-07 | 北京同邦卓益科技有限公司 | 基于区块链的物品随机抽检的方法和装置 |
CN111884807B (zh) * | 2020-07-13 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 基于区块链的物品预约方法、装置、设备以及介质 |
CN111865587B (zh) * | 2020-08-07 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、区块链节点设备、电子设备及计算机程序 |
CN112118107B (zh) * | 2020-08-12 | 2021-08-27 | 北京大学 | 一种实现数据可信的自适应执行方法 |
CN112712632B (zh) * | 2020-11-17 | 2022-03-15 | 中科扶云(杭州)科技有限公司 | 随机摇号的处理方法、装置、电子装置和存储介质 |
CN112527244A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于可验证延迟函数的分布式抽签***和方法 |
CN113269570B (zh) * | 2021-06-11 | 2024-04-09 | 深圳番多拉信息科技有限公司 | 一种抽取结果验证方法以及相关装置 |
CN114726534A (zh) * | 2022-03-28 | 2022-07-08 | 海南格子山网络科技有限公司 | 一种基于Solana区块链技术实现智能合约抽签的方法 |
CN115206018B (zh) * | 2022-06-16 | 2024-07-02 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
CN115953199B (zh) * | 2023-03-10 | 2023-05-23 | 青岛网信信息科技有限公司 | 一种用户封装奖品的营销活动方法、介质及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018104728A1 (en) * | 2016-12-05 | 2018-06-14 | Quanta Technology Ltd | Random number generation |
CN109360091A (zh) * | 2018-08-30 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的随机对象选取方法和装置 |
CN109389399A (zh) * | 2018-10-18 | 2019-02-26 | 深圳前海乐寻坊区块链科技有限公司 | 基于区块链的***方法、装置、计算机设备及存储介质 |
CN109767271A (zh) * | 2019-01-18 | 2019-05-17 | 众安信息技术服务有限公司 | 基于区块链的抽奖方法和设备 |
CN109847365A (zh) * | 2019-01-24 | 2019-06-07 | 湖南天河国云科技有限公司 | 一种面向区块链应用的防作弊方法及*** |
CN110164021A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机抽奖方法及设备 |
CN110445603A (zh) * | 2019-06-28 | 2019-11-12 | 成都鹰翔天际科技有限公司 | 一种去中心化随机数生成方法 |
CN110445616A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190057572A1 (en) * | 2018-10-20 | 2019-02-21 | R. Jay Carpenter | Method of selecting a contest winner |
-
2019
- 2019-11-28 CN CN201911191570.2A patent/CN111008863B/zh active Active
- 2019-11-28 CN CN202310866168.XA patent/CN116739660A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018104728A1 (en) * | 2016-12-05 | 2018-06-14 | Quanta Technology Ltd | Random number generation |
CN109360091A (zh) * | 2018-08-30 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的随机对象选取方法和装置 |
CN109389399A (zh) * | 2018-10-18 | 2019-02-26 | 深圳前海乐寻坊区块链科技有限公司 | 基于区块链的***方法、装置、计算机设备及存储介质 |
CN109767271A (zh) * | 2019-01-18 | 2019-05-17 | 众安信息技术服务有限公司 | 基于区块链的抽奖方法和设备 |
CN109847365A (zh) * | 2019-01-24 | 2019-06-07 | 湖南天河国云科技有限公司 | 一种面向区块链应用的防作弊方法及*** |
CN110164021A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机抽奖方法及设备 |
CN110445603A (zh) * | 2019-06-28 | 2019-11-12 | 成都鹰翔天际科技有限公司 | 一种去中心化随机数生成方法 |
CN110445616A (zh) * | 2019-07-15 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
斯雪明 ; 徐蜜雪 ; 苑超 ; .区块链安全研究综述.密码学报.2018,(第05期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111008863A (zh) | 2020-04-14 |
CN116739660A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008863B (zh) | 一种基于区块链的抽奖方法及*** | |
JP2024073535A (ja) | ブロックチェーンを用いる論理ゲート機能の実装 | |
WO2021046668A1 (zh) | 区块链***及信息传输方法、***、装置、计算机介质 | |
WO2019137566A2 (en) | Methods and devices for validating transaction in blockchain system | |
CN111566649A (zh) | 使用公有侧链验证存储在联盟区块链中的数据的完整性 | |
CN112152794A (zh) | 具有基于签名加入协议和无限签名的有效后量子匿名证明 | |
US20210344500A1 (en) | Computer-implemented system and method for transferring access to digital resource | |
CN109547218B (zh) | 一种改进bip协议的联盟链节点秘钥分配及备份*** | |
CN110224984A (zh) | 一种基于区块链技术的多方授权方法及装置 | |
CN111488134B (zh) | 基于区块链的公开随机数生成方法及设备 | |
CN112101944A (zh) | 一种高效隐私支付实现方法、装置、计算机设备及存储介质 | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
CN111950032A (zh) | 基于区块链的数据存储方法、终端设备和存储介质 | |
CN111538479A (zh) | 开标过程中的随机参数生成方法及装置 | |
CN110210591A (zh) | 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质 | |
CN115203749A (zh) | 一种基于区块链的数据交易方法和*** | |
CN113420886A (zh) | 纵向联邦学习模型的训练方法、装置、设备及存储介质 | |
CN112100144A (zh) | 区块链文件共享方法、装置、存储介质及电子设备 | |
US11784822B2 (en) | System and method for transmitting a notification to a network | |
CN110515591B (zh) | 基于区块链的随机数生成方法及装置 | |
CN112487464A (zh) | 一种基于区块链的加密数据分享方法及装置 | |
CN111949737A (zh) | 基于区块链的数据完整性验证方法、终端设备和存储介质 | |
WO2013153628A1 (ja) | 演算処理システムおよび演算結果認証方法 | |
CN116232583A (zh) | 基于kms***的秘钥管理方法、装置、设备及存储介质 | |
CN114640463A (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 |