一种基于区块链的公平彩票开奖方法技术

技术编号:19595030 阅读:39 留言:0更新日期:2018-11-28 05:26
本发明专利技术公开了一种基于区块链的公平彩票开奖方法,属于数据处理技术领域。本发明专利技术主要包含以下步骤:规定开奖时间;进行六次哈希计算得到中间值;对中间值进行计算得到六个红色球号码;进行一次哈希计算得到蓝色球号码。本发明专利技术基于区块链技术,对消费者完全透明,任何一个人都可以根据区块哈希值计算出中奖结果;基于区块链技术,去中心化,并且不需要任何开奖设备的投入;开奖结果基于未知区块进行运算,并有比特币的算力进行保证,任何参与彩票的环节都无法作弊,即使是彩票发行方也无法预知或设定开奖结果,彩票开奖过程完全公开,便于用户监督;开奖结果完全随机化,每个数字产生的概率相同,避免了物理设备的不能完全相同的弊端。

【技术实现步骤摘要】
一种基于区块链的公平彩票开奖方法
本专利技术属于数据处理
,具体涉及一种基于区块链的公平彩票开奖方法。
技术介绍
区块链由一组基于点到点网络的节点组成,各节点通过执行共识机制,维护数据的一致性。区块链利用区块的哈希值将数据区块连接起来形成块链式结构,使区块中的数据具有不可篡改、保序、可追溯等特性。区块链通过分布式节点共识算法来生成、更新和存储数据,可以达到去中心化的功能。区块链通过数字签名的方式声明和转让数字资产保证了数据传输和访问的安全。比特币是区块链的典型代表。比特币区块包含了区块头部和一些比特币交易。一个区块上所有交易的标识值构成了该区块默克尔哈希树(MerkelHashTree)的叶子结点,默克尔哈希树的根节点保存在区块头里面,因此所有交易与区块头部绑定在了一起。前一个区块头的哈希值保存在区块头里,形成区块的链式结构。链中新的区块通过共识机制来产生,每个区块中包含区块困难度,通过困难度可以计算区块哈希要达到的目标值,区块中包含可以填充的随机值字段,目的是通过填充该字段,使得区块头的哈希值低于目标值。一旦单个节点发现填充字段后区块头的哈希值低于目标值,就将该区块发送给其他节点。当大部分节点接受这个新区块后,这个区块便被增加到链上,其包含的所有交易也会在验证后得到确认。由于区块填充部分的内容是不可预测的,比特币中下一个区块的哈希值也是不可预测的。比特币中的数据是公开透明的,任何人都可以接入比特币网络中查询比特币区块链的内容。不仅如此,目前为止比特币算力为9211434TH/s,有足够的算力保证数据的不可伪造性。按彩民参与方式分类,彩票主要分为摇奖彩票、摸奖彩票、竞猜彩票和投注彩票。其中摸奖彩票是一种即时彩票,即摸即开,奖品内容已经实现打印在彩票里,不需要进行公开开奖;竞猜彩票和投注彩票是通过特定对象进行预测,以预测对象产生的结果为准,同样不需要进行开奖。目前,由于彩票开奖过程是由彩票发行方进行管理维护,是由公证人员监督下通过摇奖器确定开奖号码,开奖结果由彩票发行方公布。但是有可能存在公证人员与彩票发行方合谋欺骗消费者的情况发生。
技术实现思路
本专利技术的目的是克服上述现有技术的不足,提供一种基于区块链的公平彩票开奖方法,利用比特币区块链的公开透明以及未来区块的不可预测性,保证彩票开奖过程的完全公开透明并保证号码出现的概率相同,并减少了开奖设备的投入。本专利技术主要讨论摇奖彩票的开奖方法,本专利技术选取摇奖彩票中的一个代表双色球进行讨论,其他彩票的开奖方法与上述彩票的开奖方法类似。本专利技术所提出的技术问题是这样解决的:一种基于区块链的公平彩票开奖方法,包括以下步骤:步骤1.规定开奖时间,开奖前至少一个小时停止售卖彩票;步骤2.将开奖时间的最新确认的区块的哈希值作为输入,并在哈希值后添加填充数据,进行六次哈希计算;其中,每进行一次哈希计算,填充数据加1;得到产生双色球号码的6个哈希值;将6个哈希值转换为十进制数后取模100的余数得到6个中间值;步骤3.判断中间值是否为0,若某个中间值,为0,则舍弃该中间值,并改变填充数据,利用新的哈希值进行步骤2的操作得到新的中间值;若新的中间值仍为0,则改变填充数据重新计算新的哈希值,直到6个中间值均不为0;步骤4.将6个中间值进行取模33并加1,计算得到6个红色球号码;若6个红色球号码中存在两个相同的号码,则舍弃其中一个号码,重新进行步骤2-4的操作得到新的红色球号码,将新的红色球号码与其他红色球号码进行比较,若不同则保留,若相同则舍弃该号码,重复步骤2-4,直至找到6个互不相同的红色球号码为止;步骤5.将区块的哈希值作为输入,并在该哈希值后添加填充数据,利用填充数据计算得到新的哈希值,该哈希值取二进制形式的后四位并转换为十进制数加1得到蓝色球号码。本专利技术的有益效果是:1.本专利技术基于区块链技术,对消费者完全透明,任何一个人都可以根据区块哈希值计算出中奖结果;2.本专利技术基于区块链技术,去中心化,并且不需要任何开奖设备的投入;3.本专利技术的开奖结果基于未知区块进行运算,并有比特币的算力进行保证,任何参与彩票的环节都无法作弊,即使是彩票发行方也无法预知或设定开奖结果,彩票开奖过程完全公开,便于用户监督;4.本专利技术的开奖结果完全随机化,每个数字产生的概率相同,避免了物理设备的不能完全相同的弊端。具体实施方式下面结合实施例对本专利技术进行进一步的说明。本实施例提供一种基于区块链的公平彩票开奖方法,包括以下步骤:步骤1.规定开奖时间,双色球的开奖时间是每周二、周四、周日的21点15分,开奖前至少一个小时停止售卖彩票,双色球的停售时间均是开奖日晚上20点;开奖时,在公证人员封存销售数据资料之后,并在其监督下通过摇奖器确定开奖号码;摇奖时先摇出6个红色球号码,再摇出1个蓝色球号码;红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成;步骤2.将开奖时间的最新确认的区块的哈希值作为输入,设截止到开奖时间最新确认的区块的哈希值为Bhash;在哈希值后添加填充数据f,进行六次哈希计算;其中,填充数据的初值为f=1,每进行一次哈希计算,填充数据加1;得到产生双色球号码的6个哈希值;六次哈希计算:s1=H(Bhash||f),f=f+1,s2=H(Bhash||f),f=f+1,s3=H(Bhash||f),f=f+1,s4=H(Bhash||f),f=f+1,s5=H(Bhash||f),f=f+1,s6=H(Bhash||f),f=f+1,得到二进制形式的256比特的哈希值s1,s2,s3,s4,s5,s6;其中,||为连接符,哈希计算为将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值;本实施例中哈希函数采用SHA256算法,H:{0,1}*→{0,1}256,表示哈希函数将任意长度的二进制值映射为长度为256的二进制值;将6个二进制形式的哈希值s1,s2,s3,s4,s5,s6转换为十进制形式,分别取模100的余数得到6个中间值:r1=s1mod100,r2=s2mod100,r3=s3mod100,r4=s4mod100,r5=s5mod100,r6=s6mod100,其中mod为取模运算;步骤3.判断中间值是否为0,若某个中间值为0,则舍弃该中间值,并改变填充数据,利用新的哈希值进行步骤2的操作得到新的中间值;若新的中间值仍为0,则改变填充数据重新计算新的哈希值,直到6个中间值均不为0;若r1,r2,r3,r4,r5,r6中存在ri=0(i=1,2,...,6),则舍弃;重新计算s7=H(Bhash||f),f=f+1,r7=s7mod100,s8=H(Bhash||f),f=f+1,r8=s8mod100……,直到找到6个不为0的中间值为止;步骤4.将6个中间值进行取模33并加1,计算得到6个红色球号码;假设满足条件的6个中间值为r1,r2,r3,r4,r5,r6;计算h1=r1mod33,h2=r2mod33+1,h3=r3mod33+1,h4=r4mod33+1,h5=r5mod33+1,h6=r6mod33+1,得到6个红色球号码;若6个红色球号码h1,h2,h3,h4,h5,h6中存在两个相同的号码,则舍弃其中一个号码,本文档来自技高网
...

【技术保护点】
1.一种基于区块链的公平彩票开奖方法,其特征在于,包括以下步骤:步骤1.规定开奖时间,开奖前至少一个小时停止售卖彩票;步骤2.将开奖时间的最新确认的区块的哈希值作为输入,并在哈希值后添加填充数据,进行六次哈希计算;其中,每进行一次哈希计算,填充数据加1;得到产生双色球号码的6个哈希值;将6个哈希值转换为十进制数后取模100的余数得到6个中间值;步骤3.判断中间值是否为0,若某个中间值为0,则舍弃该中间值,并改变填充数据,利用新的哈希值进行步骤2的操作得到新的中间值;若新的中间值,仍为0,则改变填充数据重新计算新的哈希值,直到6个中间值转换为十进制后取模余数均不为0;步骤4.将6个中间值进行取模33并加1,计算得到6个红色球号码;若6个红色球号码中存在两个相同的号码,则舍弃其中一个号码,重新进行步骤2‑4的操作得到新的红色球号码,将新的红色球号码与其他红色球号码进行比较,若不同则保留,若相同则舍弃该号码,重复步骤2‑4,直至找到6个互不相同的红色球号码为止;步骤5.将区块的哈希值作为输入,并在该哈希值后添加填充数据,利用填充数据计算得到新的哈希值,该哈希值取二进制形式的后四位并转换为十进制数加1得到蓝色球号码。...

【技术特征摘要】
1.一种基于区块链的公平彩票开奖方法,其特征在于,包括以下步骤:步骤1.规定开奖时间,开奖前至少一个小时停止售卖彩票;步骤2.将开奖时间的最新确认的区块的哈希值作为输入,并在哈希值后添加填充数据,进行六次哈希计算;其中,每进行一次哈希计算,填充数据加1;得到产生双色球号码的6个哈希值;将6个哈希值转换为十进制数后取模100的余数得到6个中间值;步骤3.判断中间值是否为0,若某个中间值为0,则舍弃该中间值,并改变填充数据,利用新的哈希值进行步骤2的操作得到新的中间值;若新的中间值,仍为0,则改变填充数据重新计算新的哈希值,直到6个中间值转换为十进制后取模余数均不为0;步骤4.将6个中间值进行取模33并加1,计算得到6个红色球号码;若6个红色球号码中存在两个相同的号码,则舍弃其中一个号码,重新进行步骤2-4的操作得到新的红色球号码,将新的红色球号码与其他红色球号码进行比较,若不同则保留,若相同则舍弃该号码,重复步骤2-4,直至找到6个互不相同的红色球号码为止;步骤5.将区块的哈希值作为输入,并在该哈希值后添加填充数据,利用填充数据计算得到新的哈希值,该哈希值取二进制形式的后四位并转换为十进制数加1得到蓝色球号码。2.根据权利要求1所述的基于区块链的公平彩票开奖方法,其特征在于,步骤1中规定开奖时间,双色球的开奖时间是每周二、周四、周日的21点15分,开奖前至少一个小时停止售卖彩票,双色球的停售时间均是开奖日晚上20点。3.根据权利要求1所述的基于区块链的公平彩票开奖方法,其特征在于,步骤2的具体步骤为:将开奖时间的最新确认的区块的哈希值作为输入,设截止到开奖时间最新确认的区块的哈希值为Bhash;在哈希值后添加填充数据f,进行六次哈希计算;其中,填充数据的初值为f=1,每进行一次哈希计算,填充数据加1;得到产生双色球号码的6个哈希值;六次哈希计算:s1=H(Bhash||f),f=f+1,s2=H(Bhash||f),f=f+1,s3=H(Bhash||f),f=f+1,s4=H(Bhash||f)...

【专利技术属性】
技术研发人员:许春香李闯温昕晟白兰华刘大为
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1