一种基于区块链技术的快速抽签/排序方法技术

技术编号:29400674 阅读:107 留言:0更新日期:2021-07-23 22:37
本发明专利技术涉及区块链技术领域,提出了一种基于区块链技术的快速抽签/排序方法,包括以下步骤:S1、抽签/排序活动参与者在区块链的历史区块中任意选定一个抽签/排序区块;S2、活动主办方选定一个未来T

【技术实现步骤摘要】
一种基于区块链技术的快速抽签/排序方法
本专利技术涉及区块链
,尤其涉及一种基于区块链技术的快速抽签/排序方法。
技术介绍
现代社会中,有限的资源如何有序、有效、公平地进行分配,是一个关系到每个人切身利益的课题。其中,抽签和排序(排队)是进行资源分配过程中的两种常用方式,在现实生活大量存在。例如:学区房摇号、商场的抽奖促销活动、购物网站的限时秒杀抽奖活动、国家体育总局发行的体育彩票、中国福利彩票发行管理中心发行的双色球彩票、世界杯参赛球队的分组抽签、美国总统竞选人演讲排序等。虽然这些活动会事先公布若干的抽签/排序规则,但是,由于活动主办方是中心化性质的运维平台,会投入巨大的人力、物力资源,另一方面,其公平性也难以保证,利益相关的组织或个人在整个活动中会营私舞弊,监守自盗,第三方的黑客也觊觎这些资源利益,侵入系统平台,破坏和修改抽签/排序规则。区块链(Blockchain)是一种去中心化的链式数据结构,并以密码学方式保证其数据不可篡改和不可伪造,单个甚至多个节点对数据的修改无法影响其他更多节点的数据,其公链区块头中的随机数既不能被操控,也不能被预测,是一种理想的随机数源,将其应用于抽签/排序活动,可以实现一个监管成本低、公开、公平和公正的快速抽签/排序方法。
技术实现思路
本专利技术克服现有技术存在的不足,所要解决的技术问题为:提供一种基于区块链技术的快速抽签/排序方法,解决抽签/排序的公开、公平和公正问题。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于区块链技术的快速抽签/排序方法,包括以下步骤:S1、抽签/排序活动参与者在区块链的历史区块中任意选定一个抽签/排序区块,各个抽签/排序参者选定的区块各不相同;S2、活动主办方选定一个未来T2时刻才出块的区块作为初始抽签/排序区块;S3、创建抽签/排序表,所述抽签排序表中,所有抽签/排序活动参与者分别设置一个编号;S4、当指定的初始抽签/排序区块在链上等待若干个区块确认之后,从初始抽签/排序区块的区块头参数中提取出随机数N1,根据随机数计算索引值,并通过索引值确定下一个参与索引值计算的区块,重复计算索引值;S5、根据索引的计算结果对抽签/排序活动参与者进行排序。所述步骤S4具体包括以下步骤:S401、当指定的初始抽签/排序区块在链上等待若干个区块确认之后,从初始抽签/排序区块的区块头参数中提取出随机数N1,将其转换为十进制,再根据随机数N1计算出对应的索引Z1的值,并根据索引Z1的值从抽签/排序表中找到对应的编号;将当前计算出的抽签/排序活动参与者所在的行信息从抽签/排序表中删除,更新抽签/排序表;S402、从抽签/排序表中被删除行信息中的抽签/排序区块的区块头参数中提取出随机数N2,将其转换为十进制,再根据随机数N2计算出对应的索引Z2的值,并根据索引Z2的值从新的抽签/排序表中找到对应的编号;将当前计算出的抽签/排序号码所在的行信息从抽签/排序表中删除,更新抽签/排序表;S403、重复步骤S402,直至抽签排序表仅剩一行;其中,所述索引的计算公式为:Zn=NnmodHn,并且,若Zn=0,则Zn=Hn;其中,Hn=H-n+1,H表示参与抽签/排序的总人数,n表示第n个参与计算的区块,Nn表示第n个参与计算的区块中的随机数。所述区块链为区块头中有随机数参数以及时间戳参数的公有链。所述步骤S3中,按照抽签/排序活动参与者的编号为其选定的抽签/排序区块高度的排序号。所述的抽签/排序活动以数字号码为抽签/排序结果。根据抽签/排序活动参与者索引被找到的顺序对抽签/排序活动参与者进行排序。将索引Zn的值作为编号为n的抽签/排序活动参与者的排序号码,对抽签/排序活动参与者进行排序。本专利技术与现有技术相比具有以下有益效果:1、本专利技术基于区块链技术,去中心化,抽签/排序结果基于未知区块的随机数进行计算,任何人都无法作弊,即使是抽签/排序主办方,也无法事先预知或设定抽签/排序结果,可以实现一个公开、公平和公正的抽签/排序方法。2、本专利技术的抽签/排序方法,区块中的随机数是通过全网所有节点一起协作生成的,从技术上保证了抽签/排序结果更随机、更公正。3、本专利技术属于免公证、无硬件的抽签/排序方法,无需第三方公证,无需抽签/排序装置,能够大幅度降低抽签/排序成本。4、本专利技术的抽签/排序方法,抽签/排序参与者可以自由自主地选择各自的抽签/排序区块高度。5、本专利技术的抽签/排序方法,在抽签/排序之前已经公布了抽签/排序规则、抽签/排序区块高度、抽签/排序参与者与选定的抽签/排序区块之间的对应关系,任何用户都可以通过区块链浏览器查看,方便各方监督。6、本专利技术的抽签/排序方法,在区块被确认之后,任何用户都可以通过区块链浏览器查看区头中的随机数,进而计算出抽签/排序结果,方便各方监督。7、本专利技术的抽签/排序方法,只需要获取一个新出区块中的随机数参数,就可以快速确定所有抽签/排序结果。附图说明图1为本专利技术实施例提供的基于区块链技术的抽签/排序方法流程图;图2为本专利技术实施例提供的抽签/排序参与者选定抽签/排序区块的方法流程图;图3为本专利技术实施例提供的抽签/排序号码的计算方法流程图;图4初始抽签/排序区块计算出抽签/排序号码及抽签/排序表的更新;图5第二次计算出抽签/排序号码及抽签/排序表的更新;图6第三次计算出抽签/排序号码及抽签/排序表的更新;图7第四次计算出抽签/排序号码及抽签/排序表的更新;图8第五次计算出抽签/排序号码及抽签/排序表的更新;图9为本专利技术实施例中应用的区块链的区块头参数示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例;基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。由于区块链技术种类较多,为了方便理解本专利技术的实现方法,对其中一些重要细节进行说明:在区块链网络中,数据以文件的形式被永久记录,称之为区块。新区块一旦上链确认,就再也不能改变或删除。每个区块记录了它被创建之前一段时间内发生的所有事件。区块头中的参数信息可以包括:版本号、父区块哈希值、Merkle根、时间戳、难度值、随机数等,本专利技术对此不进行具体限定,但必须包含随机数和时间戳。随机数用来生成抽签/排序号码,时间戳可以验证本专利技术方法中提到的各种时刻。区块有两个标示符,一是区块头的哈希值,二是区块高度。本专利技术考虑到区块高度是连续变化的正整数,可以事先指定,因此选为本专利技术的区块标识符。本专利技术实施例提供了一种基于区块链技术的快速抽签/排序方法,其基本原理如图1所示,在开始抽签/排序之前,抽签/排序活动参与者自己在区块链的历史区块中本文档来自技高网...

【技术保护点】
1.一种基于区块链技术的快速抽签/排序方法,其特征在于,包括以下步骤:/nS1、抽签/排序活动参与者在区块链的历史区块中任意选定一个抽签/排序区块,各个抽签/排序参者选定的区块各不相同;/nS2、活动主办方选定一个未来T

【技术特征摘要】
1.一种基于区块链技术的快速抽签/排序方法,其特征在于,包括以下步骤:
S1、抽签/排序活动参与者在区块链的历史区块中任意选定一个抽签/排序区块,各个抽签/排序参者选定的区块各不相同;
S2、活动主办方选定一个未来T2时刻才出块的区块作为初始抽签/排序区块;
S3、创建抽签/排序表,所述抽签排序表中,所有抽签/排序活动参与者分别设置一个编号;
S4、当指定的初始抽签/排序区块在链上等待若干个区块确认之后,从初始抽签/排序区块的区块头参数中提取出随机数N1,根据随机数计算索引值,并通过索引值确定下一个参与索引值计算的区块,重复计算索引值;
S5、根据索引的计算结果对抽签/排序活动参与者进行排序。


2.根据权利要求1所述的一种基于区块链技术的快速抽签/排序方法,其特征在于,所述步骤S4具体包括以下步骤:
S401、当指定的初始抽签/排序区块在链上等待若干个区块确认之后,从初始抽签/排序区块的区块头参数中提取出随机数N1,将其转换为十进制,再根据随机数N1计算出对应的索引Z1的值,并根据索引Z1的值从抽签/排序表中找到对应的编号;将当前计算出的抽签/排序活动参与者所在的行信息从抽签/排序表中删除,更新抽签/排序表;
S402、从抽签/排序表中被删除行信息中的抽签/排序区块的区块头参数中提取出随机数N2,将其转换为十进制,再根据随机数N2计算出对应的索引Z2的值,并根据索引...

【专利技术属性】
技术研发人员:刘晓峰陈泽华程永强郭涛
申请(专利权)人:太原理工大学
类型:发明
国别省市:山西;14

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

1