基于区块链智能合约的抽奖系统
文献发布时间:2023-06-19 10:16:30
技术领域
本发明涉及信息管理技术领域,尤其是涉及基于区块链智能合约的抽奖系统。
背景技术
现有的抽奖系统,特别是许多商家抽奖促销活动系统,一方面,在用户参与抽奖的过程中无法感知抽奖活动内容的公平、真实性,具体的抽奖奖项和中奖结果的数据对用户完全不透明。另一方面,主办方可能会利用主办方管理权限在抽奖系统中人为修改中奖名单、中奖的奖品,造成用户对主办方的不信任。
现有的技术中,许多抽奖平台通常采用中心化的方式来进行抽奖,一方面由于此系统是中心化的部署,从而导致抽奖结果可以人为的控制,具有可篡改性。另一方面系统算法中的随机数生成算法为伪随机,这样产生的结果随着随机因子确定而确定,同样存在结果可操控和不公平的现象。
发明内容
针对现有技术存在的不足,本发明的目的是提供基于区块链智能合约的抽奖系统,其基于区块链不可篡改的特性使用区块链技术来进行抽奖活动,提高了抽奖的随机性与公平性。
本发明的上述发明目的是通过以下技术方案得以实现的:
基于区块链智能合约的抽奖系统,包括发布模块、算法模块以及核验模块,所述算法模块基于区块链技术用于录入及存储抽奖的算法,所述发布模块用于将抽奖的算法事先发布到所述区块链上以及发布抽奖结果,所述核验模块用于记录并核验所述抽奖结果的真实性;
当有抽奖活动需要开启时,所述算法会调用所述区块链当前的区块哈希值作为随机因子,当所述算法执行时,所述区块链会记录下所有的入参以及结果以保证公正。
通过上述技术方案,在使用此系统进行抽奖时,将预先设置好的算法录入算法模块中,通过发布模块将算法模块中的算法发布到区块链上,算法会自动调用区块链当前的区块哈希值作为随机因子,算法执行时区块链会记录下所有的入参以及结果。区块链具有“不可伪造篡改”“全程留痕”“可以追溯”“公开透明”“集体维护”的特点,基于这些特点提高了抽奖系统的公平性与随机性。
本发明在一较佳示例中可以进一步配置为:所述抽奖系统的底层区块链设置为支持智能合约的公链。
通过上述技术方案,智能合约是一种用计算机语言取代法律语言去记录条款的合约。在智能合约中,先通过定义预先设定的输入条件和对应的输出动作。编码完成后,技术人员需要将智能合约部署到区块链网络上,在网络中的节点能够对合约进行验证。
如果合约中的条件触发,就会执行相应的动作,而不会受到外界的干扰。在区块链上,智能合约能够访问区块中的数据和信息,并且能够实现价值转移,这也是智能合约与区块链不可分割的原因所在。智能合约还拥有不可逆和修改性,一旦它被部署到区块链上,就将会终极授权,无法改变。
本发明在一较佳示例中可以进一步配置为:所述公链的类型包括以太坊、XRP以及NEO。
通过上述技术方案,在以太坊里,合约自身的程序由特殊的低级语言写成,包括用来暂时存储的堆栈、用来暂时存储的2256个内存输入项、以及用来存储合约永久状态的2256个存储输入项。以太坊使用者并不需要使用这些低级堆栈语言来编程,以太坊会提供更为简单的类C语言,包括变量、表达式、条件判断、数组以及while循环,以太坊还会提供编译器,以太坊的脚本代码也可以用它来编译。
NEO具备独立的智能合约体系:NeoContract,NeoContract智能合约体系的最大特点是无缝对接现有的开发者生态。开发者无需学习新的编程语言,就能用C#、Java等主流编程语言在熟悉的IDE环境(Visual Studio、Eclipse等)中进行智能合约的开发、调试、编译。NEO的通用轻量级虚拟机NeoVM具有高确定性、高并发性、高扩展性等优点。
本发明在一较佳示例中可以进一步配置为:所述智能合约的算法用string[]fun(string[]names,intn)定义,即将所有参与抽奖的人员名字或者编号和计划抽取的中奖人数作为入参;
所述算法经过会从传入的names列表中随机抽取出n个中奖的名字或者编号,最后会将所述中奖的名字或编号按照顺序作为所述抽奖结果输出至发布模块。
通过上述技术方案,通过此算法随机生成的抽奖结果通过发布模块发布,有效的提高了抽奖的公平性与随机性。
本发明在一较佳示例中可以进一步配置为:所述核验模块包括身份核验单元以及复盘单元,所述身份核验单元用于核验抽奖人的姓名、身份证号以及实名账号,所述复盘单元用于根据所述算法模块模拟抽奖过程以及得出抽奖结果,通过对比多次抽奖结果判断数据的真实性与随机性。
通过上述技术方案,复盘核验单元通过核验抽奖人的姓名、身份证号以及实名账号能够自动过滤掉身份虚假的抽奖人,保证正常抽奖人的获奖权利,从而大大提升了抽奖结果的真实性与随机性。并且通过复盘单元能够在相同条件下模拟抽奖过程,根据对比多次抽奖结果来判断抽奖结果数据的真实性,避免了人为的操作,起到了对抽奖监管的作用。
本发明在一较佳示例中可以进一步配置为:还包括作弊判定模块,所述作弊判定模块用于对参与用户抽奖过程中存在的作弊行为进行判定,以识别出作弊用户,并将所述作弊用户的抽奖资格取消。
通过上述技术方案,抽奖系统加装作弊判断模块,不仅能够对整个抽奖过程实现全方位的监管,同时加大了对作弊用户处罚的力度,从而保证了每一位抽奖用户能够中奖的权利。
本发明在一较佳示例中可以进一步配置为:所述作弊判定模块基于当前用户在抽奖时是否对抽奖系统施行网络攻击、是否采用作弊外挂抽奖等情况进行作弊判定。
通过上述技术方案,保证了抽奖过程有条不紊的进行,从而提高了抽奖的公平性。
本发明在一较佳示例中可以进一步配置为:所述抽奖的特征信息包括活动主办方名称、活动类型、活动规模、活动时间、活动地点。
通过上述技术方案,多种抽奖的特征信息使得此系统能够适应不同平台的抽奖,从而提高了实用性。
综上所述,本发明包括以下至少一种有益技术效果:
1.在使用此系统进行抽奖时,将预先设置好的算法录入算法模块中,通过发布模块将算法模块中的算法发布到区块链上,算法会自动调用区块链当前的区块哈希值作为随机因子,算法执行时区块链会记录下所有的入参以及结果。区块链具有“不可伪造篡改”“全程留痕”“可以追溯”“公开透明”“集体维护”的特点,基于这些特点提高了抽奖系统的公平性与随机性。
2.复盘核验单元通过核验抽奖人的姓名、身份证号以及实名账号能够自动过滤掉身份虚假的抽奖人,保证正常抽奖人的获奖权利,从而大大提升了抽奖结果的真实性与随机性。并且通过复盘单元能够在相同条件下模拟抽奖过程,根据对比多次抽奖结果来判断抽奖结果数据的真实性,避免了人为的操作,起到了对抽奖监管的作用。
附图说明
图1为本发明的结构框图。
附图标记:1、发布模块;2、算法模块;3、核验模块;4、作弊判定模块。
具体实施方式
以下结合附图对本发明作进一步详细说明。
参照图1,为本发明公开的基于区块链智能合约的抽奖系统,包括发布模块1、算法模块2以及核验模块3,算法模块2基于区块链技术用于录入及存储抽奖的算法,发布模块1用于将抽奖的算法事先发布到区块链上以及发布抽奖结果,核验模块3用于记录并核验抽奖结果的真实性。当有抽奖活动需要开启时,算法会调用区块链当前的区块哈希值作为随机因子,当算法执行时,区块链会记录下所有的入参以及结果以保证公正。
其中,抽奖系统的底层区块链设置为支持智能合约的公链,智能合约是一种用计算机语言取代法律语言去记录条款的合约。在智能合约中,先通过定义预先设定的输入条件和对应的输出动作。编码完成后,技术人员需要将智能合约部署到区块链网络上,在网络中的节点能够对合约进行验证。
如果合约中的条件触发,就会执行相应的动作,而不会受到外界的干扰。在区块链上,智能合约能够访问区块中的数据和信息,并且能够实现价值转移,这也是智能合约与区块链不可分割的原因所在。智能合约还拥有不可逆和修改性,一旦它被部署到区块链上,就将会终极授权,无法改变。
参照图1,此抽奖系统还包括作弊判定模块4,作弊判定模块4用于对参与用户抽奖过程中存在的作弊行为进行判定,以识别出作弊用户,并将作弊用户的抽奖资格取消。抽奖系统加装作弊判断模块,不仅能够对整个抽奖过程实现全方位的监管,同时加大了对作弊用户处罚的力度,从而保证了每一位抽奖用户能够中奖的权利。
作弊判定模块4基于当前用户在抽奖时是否对抽奖系统施行网络攻击、是否采用作弊外挂抽奖等情况进行作弊判定。如此设置保证了抽奖过程有条不紊的进行,从而提高了抽奖的公平性。
在本实施例中,抽奖的特征信息包括活动主办方名称、活动类型、活动规模、活动时间、活动地点。多种抽奖的特征信息使得此系统能够适应不同平台的抽奖,从而提高了实用性。
其中,公链的类型包括以太坊、XRP以及NEO。在以太坊里,合约自身的程序由特殊的低级语言写成,包括用来暂时存储的堆栈、用来暂时存储的2256个内存输入项、以及用来存储合约永久状态的2256个存储输入项。以太坊使用者并不需要使用这些低级堆栈语言来编程,以太坊会提供更为简单的类C语言,包括变量、表达式、条件判断、数组以及while循环,以太坊还会提供编译器,以太坊的脚本代码也可以用它来编译。
NEO具备独立的智能合约体系:NeoContract,NeoContract智能合约体系的最大特点是无缝对接现有的开发者生态。开发者无需学习新的编程语言,就能用C#、Java等主流编程语言在熟悉的IDE环境(Visual Studio、Eclipse等)中进行智能合约的开发、调试、编译。NEO的通用轻量级虚拟机NeoVM具有高确定性、高并发性、高扩展性等优点。
在本实施例中,智能合约的算法用string[]fun(string[]names,int n)定义,即将所有参与抽奖的人员名字或者编号和计划抽取的中奖人数作为入参。算法经过会从传入的names列表中随机抽取出n个中奖的名字或者编号,最后会将中奖的名字或编号按照顺序作为抽奖结果输出至发布模块1。通过此算法随机生成的抽奖结果通过发布模块1发布,有效的提高了抽奖的公平性与随机性。
其中,核验模块3包括身份核验单元以及复盘单元,身份核验单元用于核验抽奖人的姓名、身份证号以及实名账号,复盘单元用于根据算法模块2模拟抽奖过程以及得出抽奖结果,通过对比多次抽奖结果判断数据的真实性与随机性。
复盘核验单元通过核验抽奖人的姓名、身份证号以及实名账号能够自动过滤掉身份虚假的抽奖人,保证正常抽奖人的获奖权利,从而大大提升了抽奖结果的真实性与随机性。并且通过复盘单元能够在相同条件下模拟抽奖过程,根据对比多次抽奖结果来判断抽奖结果数据的真实性,避免了人为的操作,起到了对抽奖监管的作用。
本实施例的实施原理为:在使用此系统进行抽奖时,将预先设置好的算法录入算法模块2中,通过发布模块1将算法模块2中的算法发布到区块链上,算法会自动调用区块链当前的区块哈希值作为随机因子,算法执行时区块链会记录下所有的入参以及结果。区块链具有“不可伪造篡改”“全程留痕”“可以追溯”“公开透明”“集体维护”的特点,基于这些特点提高了抽奖系统的公平性与随机性。
本具体实施方式的实施例均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。
- 基于区块链智能合约的抽奖系统
- 一种基于区块链的智能合约引擎系统及其合约执行方法