CN112464288A - 基于区块链的具有隐私保护功能的公平彩票发行方法 - Google Patents
基于区块链的具有隐私保护功能的公平彩票发行方法 Download PDFInfo
- Publication number
- CN112464288A CN112464288A CN202011452657.3A CN202011452657A CN112464288A CN 112464288 A CN112464288 A CN 112464288A CN 202011452657 A CN202011452657 A CN 202011452657A CN 112464288 A CN112464288 A CN 112464288A
- Authority
- CN
- China
- Prior art keywords
- lottery
- user
- contract
- winning
- block chain
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000008520 organization Effects 0.000 claims description 33
- 238000012795 verification Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 14
- 235000006679 Mentha X verticillata Nutrition 0.000 claims description 6
- 235000002899 Mentha suaveolens Nutrition 0.000 claims description 6
- 235000001636 Mentha x rotundifolia Nutrition 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 206010011878 Deafness Diseases 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/34—Betting or bookmaking, e.g. Internet betting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本发明公开了一种基于区块链的具有隐私保护功能的公平彩票发行方法,方法包括用户端和彩票机构发行端,以及链上智能合约。本发明通过混币技术和零知识证明技术隐藏用户的购买金额,并切断购彩人与中奖人的联系;通过非对称加密隐藏用户的兑奖号码;通过有限域上拉格朗日插值多项式和可验证随机函数,所有用户的彩票信息公平地参与开奖结果的产生过程,并且结果公开可验证;通过对称加密在区块链上隐藏中奖人的奖金信息。本发明在没有可信第三方的情况下保证彩票发行的公平性、可验证性、隐私性和鲁棒性,并且可以抵抗伪造攻击和仿冒攻击。中奖结果与用户购买次序无关,最后一名购彩用户也无法利用已有的彩票信息提前预测或控制中奖结果。
Description
【技术领域】
本发明涉及区块链与彩票发行技术领域,具体涉及基于区块链的具有隐私保护功能的公平彩票发行方法。
【背景技术】
2019年中国彩票销售总额达4220.5亿元[1]。在各种类型的彩票中,乐透数字型彩票在彩票市场中占据较大份额,其规则为用户选择一组数字作为彩票兑奖号码,开奖时彩票机构发行端随机抽取若干数字作为中奖序号。
但传统彩票活动存在一些弊端。首先,彩票机构发行端是集中化系统,彩票活动的公平性主要依靠彩票机构发行端是否依照规则举办活动,这就导致彩票活动通常做不到完全公开透明,存在许多漏洞,用户也无法追踪彩票活动的运行情况。中奖号码的选择是由彩票机构发行端执行,其随机性并不能被验证,且彩票奖金的去向也不为公众所知。其次,彩票活动以中心化多层次的模式运行,这就需要涉及大量人力物力,额外投入大。为了简化彩票流程,发行和购买门槛较低的网络电子彩票应运而生。但由于网络环境的复杂性,很难对网络彩票活动进行有效监管,非法彩票的出现极大扰乱了彩票行业的运行,且不利于彩票事业的发展。
区块链技术具有去中心化、信息公开透明且不可篡改等特点,给出了解决以上问题的新思路。利用区块链简化彩票活动流程,只保留其核心步骤,用户可以在不依赖可信第三方的情况下直接与链上进行交互,省去了许多中间环节。智能合约是存储在区块链上、可以被触发执行的一段程序代码。合约可以根据预设的规则做到自动执行彩票流程,执行结果在链上公开且无法改变,用户可以随时在链上查看活动进展和执行结果,消除了彩票机构作弊的可能性,保证了彩票活动的公平性,提高彩民的信任度和参与度,有利于进一步推动彩票事业的发展。
近年来,已经提出了几个基于区块链的彩票方案。Andrew等人提出了一种基于比特币和以太坊的彩票方案[2],利用树结构以淘汰赛的形式两两进行比较直到产生一个获胜者,但该方案效率低下,不适合于大规模的彩票活动。DeLottery是基于区块链和智能合约的分布式彩票方案[3]。用户以Commit-Reveal方式结合Randao来产生中奖结果,避免了利用区块信息产生随机数可能发生的节点攻击问题。但此方案用户需要额外投入押金,提高了参与彩票活动的门槛。Hawk是一个区块链智能合约框架[4],它提供了交易隐私功能,利用承诺和零知识证明在链上隐藏交易数据和交易金额。但方案中的管理员还是一个中心化的角色,难以保证他不会泄露用户的隐私且诚实的进行计算。此外Hawk并不能隐藏交易的发送者和接收者。BanFEL方案利用拉格朗日插值多项式,实现了公平可验证的抽奖过程[5]。吉建勋等人提出了一种应用区块链的彩票随机出号方法,通过对彩票客户端的转账请求、区块数和区块信息进行一系列哈希运算得到彩票出号数[6]。但由于区块链上的信息都是公开透明的,购彩人的个人信息和彩票信息公布在链上,所有人都可以看到,这就产生信息泄露的可能性。因此,需要一种基于区块链的、能够保证公平的且具有隐私保护功能的彩票发行系统。
参考文献
[1]https://www.qianzhan.com/analyst/detail/220/200408-e9933a9a.html
[2]Andrew Miller,Iddo Bentov:Zero-Collateral Lotteries in Bitcoin andEthereum.EuroS&P Workshops 2017:4-13.
[3]Zhifeng Jia,Rui Chen,Jie Li:DeLottery:A Novel DecentralizedLottery System Based on Blockchain Technology.CoRR abs/1911.02392(2019)
[4]Ahmed E.Kosba,Andrew Miller,Elaine Shi,Zikai Wen,CharalamposPapamanthou:Hawk:The Blockchain Model of Cryptography and Privacy-PreservingSmart Contracts.IEEE Symposium on Security and Privacy 2016:839-858.
[5]Jiasheng Li,Zijian Zhang,Meng Li:BanFEL:A Blockchain Based SmartContract for Fair and Efficient Lottery Scheme.DSC 2019:1-8.
[6]吉建勋,杨慧,田翔.一种应用区块链的彩票随机出号方法及其设备:中国,201910509124.5[P].2020.10.02.
【发明内容】
本发明的目的是解决如下的关键技术问题:
1、提出一种彩票购买方法,可以隐藏用户的购买金额和兑奖号码,其他用户和彩票机构不能看到用户的彩票信息,保护用户隐私、防止他人作弊。
2、提出一种公平可验证的中奖号码产生方式,不依靠可信第三方,保证所有用户都能平等地参与到中奖结果的生成中,参与彩票活动的用户或区块链上其他用户均可检验结果的正确性。且中奖结果与用户购买次序无关,使最后一名购彩用户无法根据之前用户的信息提前预测或控制中奖结果。
3、提出一种彩票兑奖方法,可以切断购彩用户与中奖用户的联系,保护中奖用户的隐私,且他人无法冒充中奖者兑奖。
4、彩票发行方法中,用户和彩票机构无法在购彩阶段和开奖阶段作弊,使用户不能在看到中奖结果后伪造中奖彩票。
本发明的技术方案
基于区块链的具有隐私保护功能的公平彩票发行方法,该方法包括用户端和彩票机构发行端,以及链上智能合约,链上智能合约包括Mixer合约和Lottery合约;发行过程分为初始化阶段、销售阶段、开奖阶段和兑奖阶段;具体操作步骤是:
第1、初始化阶段,主要包括三个步骤:
(1)彩票机构发行端通过密钥生成算法在本地生成一对非对称密钥对(LA.pk,LA.sk),并根据zk-SNARKs生成零知识证明密钥NIZK.pkLA、验证密钥NIZK.vkLA。
(2)彩票机构发行端调用Lottery合约的Init方法,在区块链上公开公钥LA.pk、素数p、素数q、有限域的生成元g、NIZK.vkLA、彩票购买截止时间Tpurchase、兑奖截止时间Tverify。
(3)用户端通过密钥生成算法在本地生成一对公私钥对κi=(κi.public,κi.private),并根据zk-SNARKs生成零知识证明密钥NIZK.pki、验证密钥NIZK.vki。
第2、销售阶段,主要包括三个步骤:
(1)用户端调用区块链上Mixer合约的Mint方法将购买金额vali转入混币公开地址Mixaddress。Mixer合约将vali按照默克尔树每个叶子所代表的金额unit_val分成若干份,为每一份unit_val计算承诺值Comm(unit_val)。Mixer合约用所有的承诺值作为叶子构建一棵默克尔树MT,在区块链上公开默克尔树的根节点MT.root,将用户端所拥有的叶子的值以及叶子到根节点的路径MT.pathi返回给用户端。用户端在本地用NIZK.pki生成混币零知识证明πcoin=NIZK.Prove(MT.pathi,unit_val,MT.root,NIZK.pki),其中MT.root为公开输入,MT.pathi和unit_val为私有输入,πcoin能够证明MT中某个叶子所代表的金额属于用户端。
(2)用户端选取一串数字作为兑奖号码beti以及随机数ri,并在本地用随机数发生器生成随机数作为会话密钥keyi。用户端用自己的公钥κi.public加密(ri||beti,keyi)得到cti,其他用户端和彩票机构发行端不能通过cti观察到用户端的兑奖号码,保护用户的隐私。用户端用彩票机构发行端的公钥LA.pk加密({πcoin},NIZK.vki)得到ct′i,利用零知识证明和非对称加密隐藏了用户端的购买金额。在Tpurchase前用户端调用Lottery合约的Purchase方法,将(cti,ct′i)发送至区块链。
(3)Lottery合约验证彩票提交时间未超时后,按照接受顺序添加彩票编号lotto_numi和当前时间戳ti,同时计算
在区块链上公开(xi,yi),用户端在区块链上查询到自己的(xi,yi)点对即代表彩票购买成功。
第3、开奖阶段,主要包括四个步骤:
(1)彩票机构发行端从Lottery合约中获取购买彩票总人数N以及所有用户端的有效点对(x0,y0),(x1,y1),...,(xN-1,yN-1)。彩票机构发行端用自己私钥LA.sk解密ct′i获得{πcoin}和NIZK.vki,调用Mixer合约的Pour方法,Mixer合约进行零知识证明验证b=Verify({πcoin},{NIZK.vki}),若b=true则验证通过,彩票机构发行端可从混币公开地址提取用户端存入的购彩金额,但彩票机构发行端并不能判别出πcoin所对应的默克尔树叶子是哪个,即不能判别出是哪个用户端存入的金额。
(3)彩票机构发行端计算k=F(a0,a1,…,aN-1),中奖序号种子seed=gk mod q。将seed和LA.sk作为可验证随机函数VRF的输入,计算最终中奖序号lotto_result和中奖序号的证明proof。
(4)彩票机构发行端调用Lottery合约的Open方法,将lotto_result、proof、seed和发送至区块链进行公开。用户端可通过将自己的(xi,yi)点对带入拉格朗日插值多项式中来验证自己的兑奖号码是否参与到中奖序号的生成过程中,上的离散对数问题和VRF中的DDH假设保证了用户端和彩票机构发行端不能预测或操控中奖结果。用户端还可通过VRF的验证函数,将seed、proof和LA.pk作为输入来验证中奖序号是否由彩票机构发行端生成且结果是否正确。
第4、兑奖阶段,主要包括五个步骤:
(1)用户端在区块链上查询公布的中奖序号,若lottoresult=beti,在Tverify之前调用Lottery合约的Verify方法,将用户端私钥κi.private和购彩时选择的随机数ri发送至区块链。
(2)彩票机构发行端从Lottery合约获取所有的(κi.private,ri),用用户端私钥κi.private解密cti得到(beti,keyi),验证lottoresult=beti,若验证通过则确认此用户端为中奖用户。
(3)Tverify时间后,彩票机构发行端记录中奖人数Nwin,计算每个中奖用户的奖金金额
(4)彩票机构发行端调用Mixer合约的Mint方法,将奖金金额bonusi转入混币公开地址Mixaddress。Mixer合约将bonusi按照默克尔树每个叶子所代表的金额unit_val分成若干份,为每一份unit_val计算承诺值Comm(unit_val)。Mixer合约将所有的承诺值作为叶子加入到混币默克尔树MT中,并更新路径的哈希值,在区块链上公开默克尔树的根节点MT.root,将中奖用户端所拥有的叶子的值以及叶子到根节点的路径MT.pathi返回给彩票机构发行端。彩票机构发行端在本地用NIZK.pkLA生成混币零知识证明πbonus=NIZK.Prove(MT.pathi,unit_val,MT.root,NIZK.pkLA),其中MT.root为公开输入,MT.pathi和unit_val为私有输入,πbonus能够证明MT中某个叶子所代表的金额属于中奖用户。彩票机构发行端用中奖用户端的会话密钥keyi加密{πbonus}得到winner_msg,调用Lottery合约的SetBonus方法,将winner_msg发送至区块链。
(5)中奖用户端用keyi解密winner_msg获得{πbonus},因为只有中奖用户拥有对应的会话密钥keyi,因此他人无法冒充领奖。中奖用户端调用Mixer合约的Pour方法,Mixer合约进行零知识证明验证b=Verify({πbonus},{NIZK.vkLA}),若b=true则验证通过,中奖用户可从混币公开地址提取彩票机构发行端存入的奖金。但其他用户端和彩票机构发行端并不能判别出πbonus所对应的默克尔树叶子是否是彩票机构发行端存入的奖金金额,即切断了购彩者与中奖者的联系,保护中奖者的隐私。
本发明的优点和有益效果:
1、利用区块链去中心化、信息公开透明的特点,简化了彩票活动流程,彩票机构发行端在生成中奖号码的过程中只作为计算资源而不再作为可信第三方,消除了信任瓶颈。区块链提供的时间戳机制,根据每阶段设置的时间界限,智能合约可自动执行和检测交易请求,抵抗各种攻击,防止协议出现错误,确保彩票活动运行时的鲁棒性。
2、利用非对称加密技术隐藏用户的兑奖号码,开奖前只有用户自己知道自己的兑奖号码,防止其他用户购买彩票时和彩票机构开奖时作弊。
3、利用哈希函数的单向性和离散对数假设,用户无法在选取兑奖号码时作弊,且最后一名购彩用户不能在彩票活动中获得优势,无法利用已有的彩票信息提前预测或控制中奖结果,抵抗伪造攻击。
4、利用用户提交到区块链的加密信息来计算中奖号码,所有用户平等地参与到中奖结果的生成中,拉格朗日插值多项式和可验证随机函数保证中奖结果的随机性,且用户可以对结果进行验证,确保彩票活动的公平性和可验证性。
5、运用混币和零知识证明技术实现了隐私交易,隐藏用户的购买金额和兑奖号码,切断购彩用户地址和中奖用户地址之间的联系,保护用户交易信息的隐私性。
6、利用对称加密技术,只有真正的中奖用户才可解密奖金加密信息,防止他人冒领奖金,抵抗仿冒攻击。
【附图说明】
图1.给出了本发明实施例的软件架构图;
图2.给出了本发明实施例的系统模型图;
图3.给出了本发明实施例中使用到的符号说明;
图4.给出了本发明实施例的彩票活动初始化阶段的流程示意图;
图5.给出了本发明实施例的彩票活动销售阶段的流程示意图;
图6.给出了本发明实施例的彩票活动开奖阶段的流程示意图;
图7.给出了本发明实施例的彩票活动兑奖阶段的流程示意图;
图8中(A)给出了Mixer合约实例的伪代码,(B)给出了Lottery合约实例的伪代码。
【具体实施方式】
下面将结合附图介绍本发明的具体实施方式。
图1给出了本发明实施例的软件架构图。数据层包含了区块链、共识协议、角色、交易和隐私。在数据层的上方是智能合约。在智能合约层的上方是应用层,包含Web应用、手机APP、桌面程序、混币服务、彩票服务和应用服务。
图2给出了本发明实施例的系统模型图,本发明包含用户端和彩票机构发行端两种实体,以及包含Mixer和Lottery两种链上智能合约。本发明发行过程分为初始化、销售、开奖和兑奖四个阶段。
本发明实施例中使用到的符号含义说明可见图3。本发明实施例使用的椭圆曲线采用SM2中使用的素数域256位椭圆曲线,椭圆曲线参数:
p=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFFFFFFFFFF
a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFFFFFFFFFC
b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD414D940E93
n=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF40939D54123
Gx=32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589334C74C7
Gy=BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E52139F0A0
本发明实施例链上部分基于以太坊进行实现,智能合约使用solidity语言编写,零知识证明使用snarkjs进行实现,snarkjs采用的zk-SNARKs算法为groth16,但本发明实施时并不局限于具体实施例中所选的方法:采用同样的设计流程还可以支持其他的区块链系统、智能合约语言、以及类似的零知识证明协议。
本发明实施例采用的彩票规则为购彩用户选择一串数字作为兑奖号码,开奖时彩票机构发行端随机生成一串数字作为中奖序号并在区块链上公开,若兑奖号码与中奖序号一致则为中奖用户,最后根据中奖情况分配奖金。
1、初始化阶段
图4给出了本发明实施例的彩票活动初始化阶段的流程示意图,过程从步骤S401开始,具体步骤如下:
步骤S401:彩票机构发行端用随机数发生器生成256位的随机数作为私钥LA.sk=941F9BE2 D2692D19 8E55791D 37B1D71C CED713D9 9D9ABE97 10C80766 30DC1E6D,计算公钥LA.pk=[LA.sk]G=1BD37463 B1B091D8 BCAA2D6E 7FA3E6E7 65F446F7 7439397ED128B44C 58203689 0D316230 F7E67 ABB 95245327 90A28D1C 6478EFDA A6E0F1E815FEE86A 1A6214F6。
步骤S402:彩票机构发行端根据zk-SNARKs生成零知识证明密钥NIZK.pkLA、验证密钥NIZK.vkLA。
步骤S403:彩票机构发行端调用Lottery合约的Init方法,在区块链上公开公钥LA.pk、素数p=251、素数q=C2237BF4 6343E8D7 4F483B84 2B00B45D 619CC55F 58996D69553A22FF F9DEAAF1 E4F9CA86 B3F9AB3B 026D6734 29CCB4E9 61FED946 6CD2BE5AE36A22E1 50E6031B、有限域的生成元g=3、NIZK.vkLA、彩票购买截止时间Tpurchase=200、兑奖截止时间Tverify=100,其中Tpurchase=200的含义为用户端需要在彩票活动开始后生成200个区块的时间内完成购买,Tverify=100的含义为中奖的用户端需要在彩票机构发行端公布中奖号码后生成100个区块的时间内调用Lottery合约的Verify方法。
步骤S404:用户端用随机数发生器生成256位的随机数作为私钥κi.private,计算公钥κi.public=[κi.private]G,本发明实施例中使用3个用户端:
κ1.private=39CC5967 520627CA 06A426A4 38A8E01B 27B1A459 E28AD8EF8651EA3A D8D83160
κ1.public=F734AACB 9D322137 E92D9A13 18ED3A0B 1D597DD0 49D0654A461BFE86 58DE168C F0510A02 73C919E1 BDBDBCAE 8544D3D9 DC45F353 A7DD212AFAA0D947 8ED3873C
κ2.private=353ACD1E FBA4A66B 06593E99 07A28DBE 71D7C00E 5EA7E667716718A3 E2B7B821
κ2.public=F0702356 CD3F7AA9 3DBF9AB8 8BDA2F7E 67251BCC CF623FBFF9A54D4880C53D83 776D993E 2FAB6C22 C5BDFA63 87A2B871 857D0493 32F8DF507FB43206 6DAB8668
κ3.private=CC7C8709 01F7C313 33C9689B 5D42F769 F4D10051 99677168E94F3B38 F1F6F49B
κ3.public=453F25F178ED7AB2 B9865771DF91661DCB7DDFB050778192506A3B1CB5DB6B9B 5031D9B4 2040F215 7E3AF19D 2E7AE9DCAB6C4EE955016E33FB2DCE7D 9C3FBC8F
步骤S405:用户端根据zk-SNARKs生成零知识证明密钥NIZK.pki、验证密钥NIZK.vki。
2、销售阶段
图5给出了本发明实施例的彩票活动销售阶段的流程示意图,过程从步骤S501开始,具体步骤如下:
步骤S501:用户端调用区块链上Mixer合约的Mint方法将购买金额vali=1ETH,i=1,2,3转入混币公开地址Mixaddress=C400AE53D7D27103E4E552791E4275D0C428C3C9。
步骤S502:因为选取的购买金额与unitval相等,为防止承诺值出现相同的情况,本发明实施例中选取随机数randomNum1=123,randomNum2=456,randomNum3=789,Mixer合约通过Comm(randomNumi),i=1,2,3计算承诺值,其中Comm(·)采用MIMC hash,也可选择Pedersen commitment或其他承诺方案。Mixer合约用所有的承诺值作为叶子构建一棵默克尔树MT(树高为10),在区块链上公开默克尔树的根节点
MT.root=2AAED90C 98D2E654 D20A3E0E E79BAF19 5F232A43 F81B157BFD3C81B9 15540921。
步骤S503:Mixer合约将用户端的叶子到根节点的路径MT.pathi返回给用户端。
MT.path1:
0,
19EF1644E8E5E6A0 D7DB0046 D76324D7 052EB1DC D7802EF5 845F93CFEAA02179,147121C7 47207FA3 95265858 13386448 743D585C D937A2C1 D199FAA00AE42FE2,08AA78FE 67715ED0 DEA3DDE5 F693252C 1BB3D32F 1E62E742 D486C94B1076FBEF,1A3D4F6B 82975E3A D8C779AB 49B1EE6C F357EFA7 CFB31E0C 53965843B3691EE3,2695ACC3 A0D36110 270DCDEA 2B3AAB81 983B9EEA 322CE84B 12C98E1BB16FDC2D,0B9D8808 CC60E3CE CA370B03 0A052E79 41F74D01 C41B682F 8BCA4D368DF03E17,15319944 CECDFCC0 26581887 55119C8E 0CFC2748 657ABB45 1619437F660A53F4,216CEF25 CF7B35EB 9BA90F2E 0819BAC2 11AE04DD F784736F 371749C8297729A7,12904F9F E4A1AF88 4199C60A A34A73A1 093BE6FA 90778B98 1AC6ECF6BFE5C918
MT.path2:
1F7CB09B 84B1F1C9 54AD21BE EF326EF0 70B11A34 B72A6162 E7074E9A976A1568,19EF1644 E8E5E6A0 D7DB0046 D76324D7 052EB1DC D7802EF5 845F93CFEAA02179,147121C7 47207FA3 95265858 13386448 743D585C D937A2C1 D199FAA00AE42FE2,08AA78FE 67715ED0 DEA3DDE5 F693252C 1BB3D32F 1E62E742 D486C94B1076FBEF,1A3D4F6B 82975E3A D8C779AB 49B1EE6C F357EFA7 CFB31E0C 53965843B3691EE3,2695ACC3 A0D36110 270DCDEA 2B3AAB81 983B9EEA 322CE84B 12C98E1BB16FDC2D,0B9D8808 CC60E3CE CA370B03 0A052E79 41F74D01 C41B682F 8BCA4D368DF03E17,15319944 CECDFCC0 26581887 55119C8E 0CFC2748 657ABB45 1619437F660A53F4,216CEF25 CF7B35EB 9BA90F2E 0819BAC2 11AE04DD F784736F 371749C8297729A7,12904F9F E4A1AF88 4199C60A A34A73A1 093BE6FA 90778B98 1AC6ECF6BFE5C918
MT.path3:
0,
10D9678C C85F5DA3 F616574C AF42A21D 4C3BBCE2 BD7A5CDC E0251FC8EA35CBFB,147121C7 47207FA3 95265858 13386448 743D585C D937A2C1 D199FAA00AE42FE2,08AA78FE 67715ED0 DEA3DDE5 F693252C 1BB3D32F 1E62E742 D486C94B1076FBEF,1A3D4F6B 82975E3A D8C779AB 49B1EE6C F357EFA7 CFB31E0C 53965843B3691EE3,2695ACC3 A0D36110 270DCDEA 2B3AAB81 983B9EEA 322CE84B 12C98E1BB16FDC2D,0B9D8808 CC60E3CE CA370B03 0A052E79 41F74D01 C41B682F 8BCA4D368DF03E17,15319944 CECDFCC0 26581887 55119C8E 0CFC2748 657ABB45 1619437F660A53F4,216CEF25 CF7B35EB 9BA90F2E 0819BAC2 11AE04DD F784736F 371749C8297729A7,12904F9F E4A1AF88 4199C60A A34A73A1 093BE6FA 90778B98 1AC6ECF6BFE5C918
步骤S505:用户端选取128位的兑奖号码beti以及16位随机数ri。
bet1=DF0BA20A D9474A3B 249C9C53 CCE85A0B
r1=811E
bet2=A52ADEDC DE1CABEA 5F4CCA73 F9742037
r2=D1B3
bet3=CC74B221 93D0A6BC A9FC792E FD9D4D2D
r3=EA11
步骤S506:用户端在本地用随机数发生器生成128位的随机数作为会话密钥keyi。
key1=DF0BA20A D9474A3B 249C9C53 CCE85A0B
key2=C61D71C1 B5D37F14 42C51B75 F28BE3EB
key3=D76B07AD 2799CD5A E88E61C0 AC73BAC5
步骤S507:用户端用自己的公钥κi.public根据SM2公钥加密算法加密(ri||beti,keyi)得到cti。
ct1=
E79179D79B2A9D1EFA59BDDED37F4A783847A8D5B2F921C8E9197149984D4A3559E89DC8F1B44F85D043972342AA2FFF38FB42B21D05B7A0793720F757221C81BF89480AE667753304EA808C41792B9DA4D5AC0996FD5D2A0B225677234CC9B1373FE1EA1008B1F4F0294016641619F96606CE8066280D3FCBB2DD22A56FB32C25B7
ct2=
0DFB249FC592BB85FCDE57FC82F7B88F8121C1C11CE28B7217EECACC36D99B6CCB05D8656F0C3C265B0BBD9BDD8ABE725A017DF603637DF6C3EA2D19AE41FD65D205BA5F732314335728148E23FF41FEE0DC846C4BB8C83B83FC4815FC0CC09A5EEC0BE87362530C659685EEBD16895642DC398C11E0E7EAC1A3AAA2B352E79D69B4
Ct3=
EE6A052C061EA68BE1ABCF57D0C6596654D76CAB094FA005BED909D8E9384EC740F8BFEE5CC62E1A037B24AEFC8657550276D96339F0B8998D531F3BF6A34B90E452AB4FE029A4C2FB3D37FCD7BEFE762B2BBF7C50DB3959BB96B53F23BE45DBC2973F8AACEB1E1797A05DB5D50B0AA50CAFE31D7AE179D1E9111CC5954535520F3D
ct′1=
F530C607B85B5D1D0C74B27460808C3DC37C415E8432B156D20DF149D0806F3989FAFD178BBF482913BA22950D5E0C0BE7EBA2B02F1A731EA05ADB6F81DF895724452B42EC1F9BA591B16439F09ABF6E3E079FB672CC7154DC4F7F2DAD6AB64E802F320A1C85F39BCDD761D237F5BCB4D7B4B5D4567A724E9CA449E1C6DAD1C1C6652FFED000FC2E912BD7887023B2C5D1B411EE2E2BE8A6528175367EFAFE9DC588FCAECA7335E94C10FA2F5E6E25E82D126CFE390EB1773DAEE1425426D08B6B4AA481DE76C611C05269311D0E53EF5C2C6DA31269EDC2E8ACC4BAC6B3082E3D68617308EE9CC27DBAC9481D6907784A3EC1353AA38F0EB559508598DF002748365BE57F4CC2A50F6B24851F6E1FE60EA35A6AEC5B9FB1218861AAF1C1C604EF2FBCD4F3680298710DF1D2BCCD2A82A3D42D0C926B6C2EFD02FCC9B0C16632DC2844881ECE7411B58D5CF414F3B55B91EEC35CE999B2D7B0942825FB5FF4A47B871C9BDB8E3646A74F6556888CF4E730DAD9839BDD716F518FC5BAC7783B8BEF6CEA227E4669366F2ADD110BE5CF72957201FF266F41C14E2659C64B1D0BF03B
ct′2=
F1A5429A13EA0662004D8D6EAD3DB2064C9446D70DE8ECA5AC57619F1AC7D45F852CC20BA83820C5ED9670AEA159C88B4129435AE8816DD601A8CB73193CFD17F2FF10E43DB2CF9D32A9326250C8C41CFB7579DA5100FFEB85777B036387F49F36B3549464E9DD81E2911376F0B6EE449B3E0D420BE5F06BB75BD0BEBED848389B990B6ECB7EA6E775FA0AEB638D87C009B8C0AE3CD54D71397E4B959362297F2F781B22962D204783D5AFC3228AC3FCDAFCFFE9D65CD1EA262A95E2BDF3E1432B7B90FC1FAFECAC6EF2E63397956D03F91FC887460327B3006D0628B3F44D0F8A7BF65E1576FAAAD556B05BBD65DEC84BF0EE5D6C4DE501E21A248697DCF63F15D8F08F51454E51A31BC31DB134DE26BEEF82496222A920A9E40D52AD9DA2E472CE0E6AB5D5BBEC51004684A6C499A3AFCE850AF94D7F0E97B412524116D047FABF5CD89F1BE271028199084887D3E08AFDE9B7D806E6EDD90D42AD04F07D3F9723F9AEDFBE54AE9FEC2191BA75DC952F22CDA8D197C63C2A47C1E39E58C61D6363DFC048CFBEA3103D2690F9E02DC8E0BC86514B8138C3CB5E70095AECF04D26
ct′3=
EA030308CB1785D5E1F8D2080830223D0A1B0F897002D4FA491C929D955A22DB7F5293B18C8EBC27C15B8A43C4B8005458364DB6F19B2EDEDCBB5A924424E493B349907603F73C5F4858379671B984E369ED2D23E37EEE583A0549831E246F392A73AB8E0FE77117E5CF481E23F5679CBF94EDF5D28F4C3625825B5C223405F353597458AF190DCB6720D2472D783C3CB89898EE4D4080498F991D262219B8EBD18A0441C6C9EE19C4F427DA605D4F1A4A5A132FF9449381AB32B3EAB65EF7BF728BE5E5FF33AAB107748017D15BD3FD33E9B1B73FF552B294350F9BC55DD1E22BFFA6CEAE0906687BDA1948FBFA02B16D28B1A47F2881B19F9669BDFF2F73AB464830744B555BE75C06686352F4A0025532BD64D59D9DBAA5A01150B536FF6796E0298BDFF25A7FB22A059C607417BD17477ECFB1FF37F8AA4C04E97B547219DE6D504B65DC7C6E048998795F640C84DBD4DDC2F919B11D6C382E54EF0CE1A2FC527D38F1075CA82418BF1218B90E08280AE56142808F16EFB887065B23D24E46BD6A0C8C160856737621AA7475D385E2844B0F7C16498D6537FF4A9FCD1A5A01
步骤S509:在Tpurchase前用户端调用Lottery合约的Purchase方法,将(cti,ct′i,πuser)发送至区块链。
步骤S510:Lottery合约验证彩票提交时间未超时后,按照接受顺序添加彩票编号lotto_numi和当前时间戳ti(时间戳可使用区块链的块高),同时计算
在区块链上公开(xi,yi),用户端在区块链上查询到自己的(xi,yi)点对即代表彩票购买成功。
x0=0
y0=24B9C7C6 E859778B 9926F97A 65B8C700 B8E6F241 40DD0C4B 077EAC105C9A81DF
x1=1
y1=6EAC8C3C 10127088 0FB9B8D3 C50079B2 4C1B6309 24509EF0 99AFB44AA5B80E36
x2=2
y2=D06BD0E1 69C4B660 A433813E 4FF4EC24 94CD99D3 E770D2A4 5BE9291E409C9255
3、开奖阶段
图6给出了本发明实施例的彩票活动开奖阶段的流程示意图,过程从步骤S601开始,具体步骤如下:
步骤S601:彩票机构发行端从Lottery合约中获取购买彩票总人数N=3以及所有用户端的有效点对(x0,y0),(x1,y1)(x2,y2)。
步骤S606:将seed和LA.sk作为可验证随机函数VRF的输入,计算最终中奖序号lotto_result和中奖序号的证明proof。
VRFpk=
AC21B0303ED8B5123AE3BF13F2C627DC9B9C2E04CF1C732364CFE472A5F145C25B14FDE6DB37A5302F0150A73F6ADA5A05A810A24C656482CBDEB51020E92FE7
VRFvk=5B14FDE6DB37A5302F0150A73F6ADA5A05A810A24C656482CBDEB51020E92FE7
lotto_result=8B8E08E305DAAA151957DD2489959D2F
proof=
57A94FB28C2A9DE3C70D16C0036D4EE0B6CA79F49258051DD3C2B9B607D4D3234935488DCF083F320BF1DE43106C411A123B64D01A215898F0BA6DB2AA8E785AFF94CF28AD8A21BF60701D59A17DAE02
步骤S607:Lottery合约的Open方法用于彩票机构发行端公开中奖号码,彩票机构发行端调用此方法,将lotto_result、proof、seed、和VRFvk发送至区块链进行公开。用户端可通过将自己的(xi,yi)点对带入拉格朗日插值多项式中来验证自己的兑奖号码是否参与到中奖序号的生成过程中。用户还可通过VRF的验证函数,将seed、proof和LA.pk作为输入来验证中奖序号是否由彩票机构发行端生成且结果是否正确。
4、兑奖阶段
图7给出了本发明实施例的彩票活动兑奖阶段的流程示意图,过程从步骤S701开始,具体步骤如下:
步骤S701:用户端在区块链上查询公布的中奖序号,此处假设用户端1是中奖者,即lotto_result=bet1,在Tverify之前调用Lottery合约的Verify方法,将用户端私钥κ1.private和购彩时选择的随机数r1发送至区块链。
步骤S702:彩票机构发行端从Lottery合约获取(κ1.private,r1),用用户端私钥κ1.private解密ct1得到(bet1,key1),验证lotto_result=bet1,若验证通过则确认此用户端为中奖用户。
步骤S703:Tverifv时间后,彩票机构发行端记录中奖人数Nwin=1,计算每个中奖用户的奖金金额
步骤S704:彩票机构发行端调用Mixer合约的Mint方法,将奖金金额bonus1转入混币公开地址Mixaddress=0xc400AE53D7d27103E4e552791e4275d0c428c3C9。
步骤S705:因为奖金金额与unitval相等,为防止承诺值出现相同的情况,选取随机数randomNum=321,Mixer合约通过Comm(unitval)计算承诺值,其中Comm(·)采用MIMChash,也可选择Pedersen commitment或其他承诺方案。Mixer合约将所有的承诺值作为叶子加入到混币默克尔树MT中,并更新路径的哈希值,在区块链上公开默克尔树的根节点MT.root=D33D32B36DF3B06DF88AC24B8275F0E24280C30940CCFFA20B2309DEB084167C。
5B5678E7B1C89677B654081AABEFF5A4B6424E7CEE57B5DE711BA9D39B51A87BE230B0E75A77C2A9E38227F9F984FC5ECD459EF7B84AB55B7D9CE7B521ABF7E1336A58CCE6608716E3EB5B3AEA6D2DB155A55EF33BD7DDF9AF24F2E583C408734FEB3BC4975E66BC58BED546B73FE0FCF76BFCB5B2DBCE207482AC191B994DC50B61DE920AB60A13C3094B400DDE8758067172BE77875D53C850BD69630F63AF2C8C22D9E92BE7E0782ACE44DEC130DB9340F9AB46BFF24CC242C3E5DEC14302A840A34A1197C17C9C1BE540EB4C3BC3055965A6216C840CAE0037860D3EE91CF040419DD67148E69D24E46E1C8E997B4C1F2A915BB74E50E5944B0568794FA07AD1B2264F933AB0276C210B236FF7D1525E8908AD47A2A60EF6E3B92024C91F6C00DAEFC115CC96B264AAEEECBC61E7340F48FAFAC228EDDA8952B9EA9D2DDC4EECF030D7BBE4C492E60E1AAF593112。
步骤S709:Lottery合约的SetBonus方法用于彩票机构发行端公开奖金加密信息,彩票机构发行端调用此方法,将winner_msg发送至区块链。
以上是对本发明基于区块链的隐私保护公平彩票发行方法的详细介绍。
Claims (2)
1.基于区块链的具有隐私保护功能的公平彩票发行方法,其特征在于,所述方法包括用户端和彩票机构发行端,以及链上智能合约,链上智能合约包括Mixer合约和Lottery合约,发行过程依次包括:
第1、初始化阶段,主要分为三个步骤:
(1)彩票机构发行端通过密钥生成算法在本地生成一对非对称密钥对(LA.pk,LA.sk),并根据zk-SNARKs生成零知识证明密钥NIZK.pkLA、验证密钥NIZK.vkLA;
(2)彩票机构发行端调用Lottery合约的Init方法,在区块链上公开公钥LA.pk、素数p、素数q、有限域的生成元g、NIZK.vkLA、彩票购买截止时间Tpurchase、兑奖截止时间Tverify;
(3)用户端通过密钥生成算法在本地生成一对公私钥对κi=(κi.public,κi.private),并根据zk-SNARKs生成零知识证明密钥NIZK.pki、验证密钥NIZK.vki;
第2、销售阶段,主要分为三个步骤:
(1)用户端调用区块链上Mixer合约的Mint方法将购买金额vali转入混币公开地址Mixaddress;Mixer合约将vali按照默克尔树每个叶子所代表的金额unit_val分成若干份,为每一份unit_val计算承诺值Comm(unit_val);Mixer合约用所有的承诺值作为叶子构建一棵默克尔树MT,在区块链上公开默克尔树的根节点MT.root,将用户端所拥有的叶子的值以及叶子到根节点的路径MT.pathi返回给用户端;用户端在本地用NIZK.pki生成混币零知识证明πcoin=NIZK.Prove(MT.pathi,unit_val,MT.root,NIZK.pki),其中MT.root为公开输入,MT.pathi和unit_val为私有输入,πcoin能够证明MT中某个叶子所代表的金额属于用户端;
(2)用户端选取一串数字作为兑奖号码beti以及随机数ri,并在本地用随机数发生器生成随机数作为会话密钥keyi;用户端用自己的公钥κi.public加密(ri||beti,keyi)得到cti,其他用户端和彩票机构发行端不能通过cti观察到用户端的兑奖号码,保护用户的隐私;用户端用彩票机构发行端的公钥LA.pk加密({πcoin},NIZK.vki)得到ct′i,利用零知识证明和非对称加密隐藏了用户端的购买金额;在Tpurchase前用户端调用Lottery合约的Purchase方法,将(cti,ct′i)发送至区块链;
(3)Lottery合约验证彩票提交时间未超时后,按照接受顺序添加彩票编号lotto_numi和当前时间戳ti,同时计算
在区块链上公开(xi,yi),用户端在区块链上查询到自己的(xi,yi)点对即代表彩票购买成功。
第3、开奖阶段,主要分为四个步骤:
(1)彩票机构发行端从Lottery合约中获取购买彩票总人数N以及所有用户端的有效点对(x0,y0),(x1,y1),...,(xN-1,yN-1);彩票机构发行端用自己私钥LA.sk解密ct′i获得{πcoin}和NIZK.vki,调用Mixer合约的Pour方法,Mixer合约进行零知识证明验证b=Verify({πcoin},{NIZK.vki}),若b=true则验证通过,彩票机构发行端从混币公开地址提取用户端存入的购彩金额,但彩票机构发行端并不能判别出πcoin所对应的默克尔树叶子是哪个,即不能判别出是哪个用户端存入的金额;
(3)彩票机构发行端计算k=F(a0,a1,...,aN-1),中奖序号种子seed=gkmod q;将seed和LA.sk作为可验证随机函数VRF的输入,计算最终中奖序号lotto_result和中奖序号的证明proof;
第4、兑奖阶段,主要分为五个步骤:
(1)用户端在区块链上查询公布的中奖序号,若lottoresult=beti,在Tverify之前调用Lottery合约的Verify方法,将用户端私钥κi.private和购彩时选择的随机数ri发送至区块链;
(2)彩票机构发行端从Lottery合约获取所有的(κi.private,ri),用用户端私钥κi.private解密cti得到(beti,keyi),验证lottoresult=beti,若验证通过则确认此用户端为中奖用户;
(3)Tverify时间后,彩票机构发行端记录中奖人数Nwin,计算每个中奖用户的奖金金额
(4)彩票机构发行端调用Mixer合约的Mint方法,将奖金金额bonusi转入混币公开地址Mixaddress;Mixer合约将bonusi按照默克尔树每个叶子所代表的金额unit_val分成若干份,为每一份unit_val计算承诺值Comm(unit_val);Mixer合约将所有的承诺值作为叶子加入到混币默克尔树MT中,并更新路径的哈希值,在区块链上公开默克尔树的根节点MT.root,将中奖用户端所拥有的叶子的值以及叶子到根节点的路径MT.pathi返回给彩票机构发行端;彩票机构发行端在本地用NIZK.pkLA生成混币零知识证明πbonus=NIZK.Prove(MT.pathi,unit_val,MT.root,NIZK.pkLA),其中MT.root为公开输入,MT.pathi和unit_val为私有输入,πbonus能够证明MT中某个叶子所代表的金额属于中奖用户;彩票机构发行端用中奖用户端的会话密钥keyi加密{πbonus}得到winner_msg,调用Lottery合约的SetBonus方法,将winner_msg发送至区块链;
(5)中奖用户用keyi解密winner_msg获得{πbonus},因为只有中奖用户拥有对应的会话密钥keyi,因此他人无法冒充领奖;中奖用户调用Mixer合约的Pour方法,Mixer合约进行零知识证明验证b=Verify({πbonus},{NIZK.vkLA}),若b=true则验证通过,中奖用户从混币公开地址提取彩票机构发行端存入的奖金;但其他用户端和彩票机构发行端并不能判别出πbonus所对应的默克尔树叶子是否是彩票机构发行端存入的奖金金额,即切断了购彩者与中奖者的联系,保护中奖者的隐私。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011452657.3A CN112464288B (zh) | 2020-12-12 | 2020-12-12 | 基于区块链的具有隐私保护功能的公平彩票发行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011452657.3A CN112464288B (zh) | 2020-12-12 | 2020-12-12 | 基于区块链的具有隐私保护功能的公平彩票发行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112464288A true CN112464288A (zh) | 2021-03-09 |
CN112464288B CN112464288B (zh) | 2022-05-17 |
Family
ID=74801351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011452657.3A Active CN112464288B (zh) | 2020-12-12 | 2020-12-12 | 基于区块链的具有隐私保护功能的公平彩票发行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112464288B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113313503A (zh) * | 2021-06-18 | 2021-08-27 | 鸿博股份有限公司 | 一种彩票防伪方法及终端 |
CN114090943A (zh) * | 2021-11-22 | 2022-02-25 | 杭州萝卜智能技术有限公司 | 基于区间分组的随机摇号及摇号结果验证方法、系统 |
CN117290887A (zh) * | 2023-11-16 | 2023-12-26 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于账户区块链的可问责隐私保护智能合约实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105913174A (zh) * | 2016-04-07 | 2016-08-31 | 彭军红 | 一种基于区块链的彩票发行方法 |
CN106504174A (zh) * | 2016-09-27 | 2017-03-15 | 布比(北京)网络技术有限公司 | 基于区块链的博彩发行系统及装置 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储系统及其身份认证方法 |
-
2020
- 2020-12-12 CN CN202011452657.3A patent/CN112464288B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105913174A (zh) * | 2016-04-07 | 2016-08-31 | 彭军红 | 一种基于区块链的彩票发行方法 |
CN106504174A (zh) * | 2016-09-27 | 2017-03-15 | 布比(北京)网络技术有限公司 | 基于区块链的博彩发行系统及装置 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储系统及其身份认证方法 |
Non-Patent Citations (1)
Title |
---|
江美琴: "基于区块链的线上线下业务融合创新探讨", 《当代经济·月刊》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113313503A (zh) * | 2021-06-18 | 2021-08-27 | 鸿博股份有限公司 | 一种彩票防伪方法及终端 |
CN113313503B (zh) * | 2021-06-18 | 2022-07-12 | 鸿博股份有限公司 | 一种彩票防伪方法及终端 |
CN114090943A (zh) * | 2021-11-22 | 2022-02-25 | 杭州萝卜智能技术有限公司 | 基于区间分组的随机摇号及摇号结果验证方法、系统 |
CN117290887A (zh) * | 2023-11-16 | 2023-12-26 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于账户区块链的可问责隐私保护智能合约实现方法 |
CN117290887B (zh) * | 2023-11-16 | 2024-04-23 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 基于账户区块链的可问责隐私保护智能合约实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112464288B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108171511B (zh) | 一种具有隐私保护功能的区块链系统 | |
EP2081143B1 (en) | Method and system for mediated secure computation | |
CN112464288B (zh) | 基于区块链的具有隐私保护功能的公平彩票发行方法 | |
CN111143885B (zh) | 区块链交易处理方法及装置和区块链节点 | |
US20190164153A1 (en) | Blockchain system for confidential and anonymous smart contracts | |
CN109495465A (zh) | 基于智能合约的隐私集合交集方法 | |
CN103563288B (zh) | 基于口令的单轮密钥交换协议 | |
Azouvi et al. | Betting on blockchain consensus with fantomette | |
CN110020541A (zh) | 一种基于区块链的隐私保护的声誉评价方法及系统 | |
CN114255034A (zh) | 一种基于区块链的可验证公平性的电子投票方法 | |
WO2011047085A2 (en) | Method and apparatus for efficient and secure creating transferring, and revealing of messages over a network | |
Azouvi et al. | Winning the caucus race: Continuous leader election via public randomness | |
CN115795518A (zh) | 一种基于区块链的联邦学习隐私保护方法 | |
Pan et al. | FPLotto: A fair blockchain-based lottery scheme for privacy protection | |
CN114666032A (zh) | 基于同态加密的区块链交易数据隐私保护方法 | |
Jiang et al. | SearchBC: A blockchain-based PEKS framework for IoT services | |
CN115688185B (zh) | 多方隐私求和方法、装置、电子设备和存储介质 | |
CN117200964A (zh) | 一种联邦学习安全聚合方法 | |
Kokaras et al. | The cost of privacy on blockchain: A study on sealed-bid auctions | |
Cerulli et al. | vetkeys: How a blockchain can keep many secrets | |
Lu et al. | Self-tallying e-voting with public traceability based on blockchain | |
Chenli et al. | Fairtrade: Efficient atomic exchange-based fair exchange protocol for digital data trading | |
Zhou et al. | Playing lottery on the internet | |
Chow et al. | An e-lottery scheme using verifiable random function | |
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 | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |