一种基于区块链识别作弊用户的方法、装置、介质及设备与流程

文档序号:23727648发布日期:2021-01-26 17:47阅读:136来源:国知局
一种基于区块链识别作弊用户的方法、装置、介质及设备与流程

[0001]
本发明属于区块链技术领域,尤其涉及一种基于区块链识别作弊用户的方法、装置、介质及设备。


背景技术:

[0002]
目前,对于一些虚拟游戏来说,比如第一人称视角射击游戏(fps,first-person shooter),游戏角色可以在地图中进行自由行走、跳跃等。
[0003]
但是存在一些作弊用户通过“外挂”程序修改人物坐标实现外挂功能,以防止被其他游戏角色攻击。导致。例如:“外挂”程序将人物坐标修改到一个天空中比较高的位置,导致敌人无法对其进行攻击。对于这些作弊用户,需要及时的识别出来,以保证合法用户的权益。
[0004]
现有技术中,一般是人工对各角色在游戏中产生的位置数据进行分析处理,来确定作弊用户。但是这种方式精度较低,无法精准识别出作弊用户。


技术实现要素:

[0005]
针对现有技术存在的问题,本发明实施例提供了一种基于区块链识别作弊用户的方法、装置、介质及设备,用于解决现有技术中无法精准识别出游戏中作弊用户,导致合法用户的权益得不到确保的技术问题。
[0006]
第一方面,本发明提供一种基于区块链识别作弊用户的方法,方法包括:接收分配指令;基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;基于所述区块数据对所述当前区块进行验证;若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户其中,所述基于所述区块数据对所述当前区块进行验证,包括:提取所述区块数据中的坐标数据及操作信息;基于所述坐标数据及所述操作信息还原所述目标用户的游戏场景;所述游戏场景中包括有基于所述坐标数据生成的坐标指示信息以及基于所述操作信息生成的操作提示信息;判断所述坐标指示信息及所述操作提示信息是否一致,若不一致,则确定验证失败。
[0007]
可选的,所述方法还包括:当所述目标用户在进行游戏时,基于所述目标用户对应的第一游戏角色在所述游戏地图中的行走路径采集所述第一游戏角色的坐标数据及所述目标用户的操作信息;所述操作信息包括:鼠标操作信息及键盘操作信息;
对所述坐标数据及所述操作信息进行单独压缩;根据区块对应的数据长度,基于压缩后的所述坐标数据及所述操作信息生成至少一个区块。
[0008]
可选的,所述基于所述目标用户对应的第一游戏角色在所述游戏地图中的行走路径采集所述第一游戏角色的坐标数据及所述目标用户的操作信息后,包括:将所述坐标数据与所述操作信息进行匹配,获得所述坐标数据所述操作信息之间的对应关系;获取坐标数据的坐标标识id,基于所述对应关系将所述坐标标识id与对应的所述操作信息存储在所述至少一个区块中。
[0009]
可选的,所述基于所述区块数据对所述当前区块进行验证,包括:当所述验证用户基于所述坐标指示信息及所述操作提示信息重新行走所述第一游戏角色的行走路径时,获得所述验证用户对应的第二游戏角色的当前坐标信息;判断所述当前坐标信息是否能与所述第一游戏角色的坐标数据匹配成功,若匹配失败,则确定验证失败。
[0010]
可选的,方法还包括:遍历所有验证成功的区块;提取验证成功的所述区块中的各目标坐标数据;基于公式position = num / allpostionnum确定每个所述目标坐标数据的权重position;所述num为所述目标坐标数据的数量,所述allpostionnum为所述区块链网络中的坐标总数量;将各所述目标坐标数据及对应的权重发送至服务器。
[0011]
可选的,方法还包括:遍历所有验证成功的区块;提取验证成功的所述区块中的各目标坐标数据;基于各所述目标坐标数据对所述游戏地图进行检测,判断所述游戏地图是否存在bug。
[0012]
第二方面,本发明还提供一种基于区块链识别作弊用户的装置,装置包括:接收单元,接收分配指令;获取单元,用于基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;验证单元,用于基于所述区块数据对所述当前区块进行验证;广播单元,用于若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户;其中,所述验证单元具体用于:提取所述区块数据中的坐标数据及操作信息;基于所述坐标数据及所述操作信息还原所述目标用户的游戏场景;所述游戏场景中包括有基于所述坐标数据生成的坐标指示信息以及基于所述操作信息生成的操作提示信息;判断所述坐标指示信息及所述操作提示信息是否一致,若不一致,则确定验证失败。
[0013]
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的方法。
[0014]
第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实现第一方面中任一项所述的方法。
[0015]
本发明提供了一种基于区块链识别作弊用户的方法、装置、介质及设备,方法包括:接收分配指令;基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;基于所述区块数据对所述当前区块进行验证;若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户;其中,基于所述区块数据对所述当前区块进行验证,包括:提取所述区块数据中的坐标数据及操作信息;基于所述坐标数据及所述操作信息还原所述目标用户的游戏场景;所述游戏场景中包括有基于所述坐标数据生成的坐标指示信息以及基于所述操作信息生成的操作提示信息;判断所述坐标指示信息及所述操作提示信息是否一致,若不一致,则确定验证失败。如此,针对当前块对应的验证用户来说,任一验证用户均可对目标用户的当前区块进行验证,再将验证失败的当前区块广播至区块链网络中,区块链网络基于验证结果判断当前区块对应的用户是否为作弊用户,这样区块链网络基于大量的验证结果来判断当前区块对应的用户是否为作弊用户,验证过程具有较高的可靠性,因此可以精准识别出游戏中作弊用户,确保合法用户的权益;并且本申请直接根据操作提示信息及坐标指示信息即可快速对当前区块进行验证,确保验证效率;此外,每个目标用户均对应有很多区块,那么整个区块链网络的区块可能数以万计;为避免降低用户参与游戏的积极性,会基于分配指令为预设数量的验证用户来分配验证区块,也即游戏地图的每个目标地图区域是利用不同的验证用户来进行验证的,这样可以避免所有用户一直处于验证状态,无法进行游戏进程,进而提高用户参与游戏的积极性。
附图说明
[0016]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本发明实施例提供的基于区块链识别作弊用户的方法流程示意图;图2为本发明实施例提供的基于区块链识别作弊用户的装置结构示意图;图3为本发明实施例提供的基于区块链识别作弊用户的计算机设备结构示意图;图4为本发明实施例提供的基于区块链识别作弊用户的计算机介质结构示意图。
具体实施方式
[0017]
为了解决现有技术中无法精准识别出游戏中的作弊用户,导致合法用户的权益得不到确保的技术问题。本发明提供了一种基于区块链识别作弊用户的方法、装置、介质及设
备。
[0018]
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
[0019]
实施例一本实施例提供一种基于区块链识别作弊用户的方法,如图1所示,方法包括以下步骤:s110,接收分配指令;在本说明书实施例中,对于每个游戏来说,对应的目标用户可能会非常多,每个目标用户在进行游戏时,目标用户对应的游戏角色均会产生坐标数据,目标用户对游戏角色进行操作时,也会产生对应的操作信息。因此在接收分配指令之前,方法可以包括:当目标用户在进行游戏时,基于目标用户对应的第一游戏角色在游戏地图中的行走路径采集第一游戏角色的坐标数据及目标用户的操作信息;操作信息包括:鼠标操作信息及键盘操作信息;对坐标数据及操作信息进行单独压缩;根据区块对应的数据长度,基于压缩后的坐标数据及操作信息生成至少一个区块;基于至少一个区块生成区块链网络。
[0020]
具体的,当目标用户对应的第一游戏角色在游戏地图中的行走或跳动时,跟踪目标用户,记录目标用户的坐标数据。由于坐标数据会非常多,如果采集所有的坐标数据,会影响坐标数据的处理效率及采集效率,因此本实施例在采集坐标数据时,是利用预设的坐标差值delta来进行采集。
[0021]
举例来说,针对当前坐标数据,判断当前坐标数据与上一坐标数据之间的坐标差值是否为delta,若为delta,则存储当前坐标数据;若小于delta,则放弃当前坐标数据。其中,delta的取值应根据每个地图的精度及尺寸确定,在此不做限制。应说明的是,坐标数据的采集顺序与目标用户的行走顺序一致。
[0022]
而在游戏中,可能会存在一些特效,比如游戏角色可以去吃某种buff的效果药来加速行走,那么还需采集目标用户开吃buff效果药的坐标数据以及buff效果消失时对应的坐标数据。
[0023]
进一步地,由于第一游戏角色是由目标用户通过键盘和鼠标进行操作的,因此当游戏角色在游戏地图中行走时,同时也会记录目标用户对游戏角色的操作信息。
[0024]
本实施例考虑到坐标数据的数据量较大,若直接存储会影响存储效率及后续的下载效率,因此对坐标数据及操作信息进行单独压缩。由于坐标数据与操作信息的数据格式不同,单独压缩相比将坐标数据及操作信息同时压缩的方式,压缩率会提高50%左右。
[0025]
应说明的是,在采集坐标数据时,同时也会采集游戏名称、游戏分区的区号、角色名称、目标用户在游戏平台的账号、游戏地图名称、目标地图区域的标识等游戏数据。其中,当游戏地图包括有多个目标地图区域时,每个目标地图区域具有对应的标识。
[0026]
因每个区块的数据长度是固定的,当压缩后的坐标数据、操作信息以及游戏数据达到一个区块的数据长度时,会利用区块链功能来生成一个区块,再将该区块广播至区块链网络中。
[0027]
由于坐标数据与操作信息的总数据长度远大于区块的数据长度,因此区块链网络中包括至少一个区块。
[0028]
本实施例说明书中,基于目标用户对应的第一游戏角色在游戏地图中的行走路径采集第一游戏角色的坐标数据及目标用户的操作信息后,包括:将坐标数据与操作信息进行匹配,获得坐标数据操作信息之间的对应关系;获取坐标数据的坐标标识id,基于对应关系将坐标id与对应的操作信息存储在至少一个区块中。
[0029]
也即,区块对应的区块数据包括:坐标数据、操作信息以及坐标id;坐标id与操作信息之间具有对应关系。其中,沿行走路径采集坐标数据时,坐标id是依次自增的。
[0030]
应说明的是,每一个目标用户均会生成一个区块链,各区块链形成区块链网络,区块链网络具有共识机制,也即区块链网络中包括有不同目标用户的区块,区块链网络中不同区块链的数据是互通的。为了可以基于区块链来识别作弊用户,针对区块链网络中的任一当前区块来说,当前区块的区块数据中还包括有用于标识目标用户的唯一标识信息。其中,标识信息可以包括:区块链网络地址信息及区块链网络的公钥信息中的至少一种、当前区块的hash值、当前区块的上一区块的hash值。这样不管目标用户在哪个游戏平台存在作弊行为,均可通过唯一标识信息来识别目标用户的身份信息。
[0031]
每个目标用户的区块链形成之后,验证用户可以对区块链网络中的区块进行验证,根据验证结果来识别作弊用户。
[0032]
但是由于区块链网络中的区块会非常多(可能有几万~几百万)。若每个验证用户对所有区块链网络中的所有区块一一进行验证的话,会需要很多时间,可能会导致这些验证用户无法正常参与游戏,进而会降低验证用户的游戏参与积极性。
[0033]
考虑到以上原因,本实施例说明书中,针对每一个验证用户来说,在开始验证之前,接收分配指令,分配指令中携带有目标地图区域标识,分配指令用于为验证用户分配对应的目标地图区域,验证用户只需要对第一游戏角色在目标地图区域中生成的区块进行验证。
[0034]
本步骤中,因坐标数据的数据量较大,若直接存储会影响存储效率及后续的下载效率,因此对坐标数据及操作信息进行单独压缩。由于坐标数据与操作信息的数据格式不同,单独压缩相比将坐标数据及操作信息同时压缩的方式,压缩率会提高50%左右。并且每个目标用户均对应有很多区块,那么整个区块链网络的区块可能数以万计;为避免降低验证用户参与游戏的积极性,会基于分配指令为预设数量的验证用户来分配验证区块,也即游戏地图的每个目标地图区域是利用不同的验证用户来进行验证的,这样可以避免所有用户一直处于验证状态,无法进行游戏进程,进而提高用户参与游戏的积极性。
[0035]
s111,基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据,所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;接收到分配指令后,因分配指令中携带有目标地图区域的标识,目标地图区域对应的当前区块的区块数据也携带有目标地图区域的标识,因此可以基于分配指令从区块链网络中下载目标地图区域对应的当前区块,获取当前区块对应的区块数据。
[0036]
其中,当前区块为第一游戏角色在目标地图区域中产生的任一区块;区块链网络中包括有每个目标用户在游戏地图中产生的区块数据,区块数据包括目标用户对应的第一游戏角色的坐标数据、目标用户的操作信息以及目标用户的唯一标识信息。每个目标地图区域对应有预设数量的验证用户。
[0037]
举例来说,假设将游戏地图很大(比如包括至少2张地图),那么可将游戏地图分为a1、a2、a3和a4四个目标地图区域,每个目标地图区域均有对应的标识,每个目标地图区域对应的标识不同。目标用户的第一游戏角色在这四个目标地图区域生成的区块均广播至区块链网络中后,每个区块也携带有目标地图区域的标识。
[0038]
若验证用户包括b1、b2、b3和b4;b1、b2、b3和b4可以理解为验证集合,每个验证集合均包括有预设数量(比如10000个)的验证用户。b1接收到分配指令后,若确定目标地图区域的标识为a1对应的标识,说明b1应当为a1对应的区块进行验证;b2接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a2对应的标识时,说明b2应当为a2对应的区块进行验证;b3接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a3对应的标识时,说明b3应当为a3对应的区块进行验证。b4接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a4对应的标识时,说明b4应当为a4对应的区块进行验证。
[0039]
值得注意的是,为了提高验证精度,验证用户是基于对历史用户进行筛选确定的。比如:根据历史用户的历史数据确定各历史用户的信用度,将信用度大于信用阈值的历史用户作为验证用户。信用阈值可根据各游戏平台的具体情况来定,在此不做限制。
[0040]
这里,验证用户与目标用户可以是相同的,也可以是不同的。当验证用户与目标用户相同时,验证用户除不能验证自己的区块外,其他目标用户的区块均可以验证。
[0041]
应说明的是,当游戏地图较小时,比如“英雄联盟”游戏只包括有一张游戏地图,可以将游戏地图分为多个目标地图区域,也可以不将游戏地图划分为多个目标地图区域。当游戏地图没有被划分为多个目标地图区域时,验证用户可对所有区块进行验证。
[0042]
本步骤中,若游戏地图很大时,可以对游戏地图分为多个目地图区域,每个地图区域对应预设数量的验证用户,这样可以避免所有用户一直处于验证状态,无法进行游戏进程,进而提高用户参与游戏的积极性。并且,因验证用户是基于历史用户筛选出的,将信用度大于信用阈值的历史用户作为验证用户,这样也可确保验证的准确度,为识别作弊用户的精度提供保障。
[0043]
s112,基于所述区块数据对所述当前区块进行验证;获取到当前区块对应区块数据后,基于区块数据对当前区块进行验证。
[0044]
作为一种可选的实施例,基于区块数据对所述当前区块进行验证,包括:提取区块数据中的坐标数据及操作信息;基于坐标数据及操作信息还原目标用户的游戏场景;游戏场景中包括有基于坐标数据生成的坐标指示信息以及基于操作信息生成的操作提示信息;判断坐标指示信息及操作提示信息是否一致,若不一致,则确定验证失败。
[0045]
举例来说,若操作提示信息为跳跃,但是坐标指示信息却为朝前方行走,说明操作提示信息与坐标指示信息不一致,则确定对当前区块验证失败。
[0046]
作为一种可选的实施例,基于区块数据对当前区块进行验证,包括:提取区块数据中的坐标数据及操作信息;
基于坐标数据及操作信息还原目标用户的游戏场景;游戏场景中包括有基于坐标数据生成的坐标指示信息以及基于操作信息生成的操作提示信息;当验证用户基于坐标指示信息及操作提示信息重新行走第一游戏角色的行走路径时,获得验证用户对应的第二游戏角色的当前坐标信息;判断当前坐标信息是否能与第一游戏角色的坐标数据匹配成功,若匹配失败,则确定验证失败。
[0047]
也即,当基于坐标数据及操作信息还原目标用户的游戏场景后,验证用户会沿着游戏场景的坐标指示信息及操作提示信息重新行走第一游戏角色的行走路径,若能到达游戏场景中第一游戏角色所有的坐标点,说明当前坐标信息是可以与第一游戏角色的坐标数据匹配成功。若有任一坐标点不能到达,则匹配失败,说明对当前区块验证失败。
[0048]
此外,当基于所述区块数据对所述当前区块进行验证后,会获取相应的奖励,比如装备、特技及鱼丸等,以能提高验证的积极性。
[0049]
本步骤中,在利用坐标信息及操作信息来对当前区块进行验证时,相当于是沿着目标用户的行走路径进行验证,因此验证精度较高。并且由于坐标指示信息及操作提示信息在游戏地图上一目了然,因此验证效率也可以得到确保。
[0050]
s113,若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户。
[0051]
若当前区块验证失败,则标记当前区块为非正常区块,并向区块链网络广播当前区块的验证结果,并且不会将当前区块添加至自身的区块链中,这样下一个区块则不会基于当前区块产生。
[0052]
并且,因区块链网络具有共识机制,其他验证用户看到当前区块的验证结果为验证失败时,也不会将当前区块添加至自身的区块链中。那么,区块链网络基于验证结果判断当前区块对应的用户是否为作弊用户可以包括:区块链网络若识别出大部分(超出验证用户总数量的一半)验证用户对应的区块链中均没有当前区块,确定当前区块对应的用户为作弊用户。
[0053]
或者,若对当前区块验证失败,还可以将当前区块对应的当前区块数据至服务器,以使服务器对发送当前区块数据的验证用户进行统计,并基于验证用户的数量判断当前区块对应的用户是否为作弊用户。
[0054]
举例来说,若验证用户包括10000个,其中有51%的验证用户对当前区块验证失败,那么向服务器发送当前区块数据的验证用户为5100个,基于少数服从多数的原则,此时服务器会确定当前区块对应的用户为作弊用户。
[0055]
当区块链网络中所有的区块被验证完毕之后,方法还包括:遍历所有验证成功的区块;提取验证成功的所述区块中的各目标坐标数据;基于公式position = num / allpostionnum确定每个目标坐标数据的权重position;num为目标坐标数据的数量,allpostionnum为区块链网络中的坐标总数量;将各目标坐标数据及对应的权重发送至服务器。
[0056]
这里,针对任一目标坐标,可能会有很多目标用户经过这个坐标,那么num可以理解为目标坐标数据在整个区块链网络中出现的次数。
[0057]
而目标坐标数据的权重越大,则表明目标坐标数据是所有目标用户经过越多的坐标数据。
[0058]
当服务器接收到各目标坐标数据及对应的权重后,可以根据权重较大的目标坐标数据来实时验证目标用户的坐标数据是否合法,若目标用户的坐标数据可以和权重较大的目标坐标数据匹配成功,则说明该目标用户是非作弊用户。这样无需将所有的坐标数据进行一一匹配,只需根据权重较大的坐标数据来进行匹配。相比通过区块链网络来验证的方式,因区块链网络的共识机制也需要一定的时间,对区块进行广播也需要一定的时间,那么服务器利用目标坐标数据的权重信息来实时验证目标用户的坐标数据是否合法,可以提高验证速度。
[0059]
应说明的是,当验证成功的区块越全面,服务器的识别速度及精度越高。
[0060]
进一步地,在游戏开发中由于游戏地图一般会很大,地图场景非常多。当存在一些复杂地形场景时,由于开发漏洞,在地图的边角会可能会存在一些极端坐标,比如:一个人可以移动到房子和地面之间的空隙;而这些空隙对应的坐标理论上是不存在的。这种情况会造成游戏的bug,例如一个子弹打过去时,由于坐标的关系子弹无法命中目标。
[0061]
那么,方法还包括:遍历验证成功的当前区块;提取验证成功的区块中的各目标坐标数据;基于各目标坐标数据对游戏地图进行检测,判断游戏地图是否存在bug。
[0062]
举例来说,对于某个目标坐标数据,若验证用户验证该目标坐标数据是合法的,不是外挂修改的虚假坐标;但是对于游戏地图来说是不合理的,那么则说明该目标坐标数据地图中的bug坐标,验证用户可以将这样的坐标数据反馈至开发人员,开发人员可以对地图进行修复。
[0063]
本步骤中,既可以利用区块链网络来识别作弊用户,也可以利用服务器来识别作弊用户。不管时哪一种识别方式,针对当前块对应的验证用户来说,任一验证用户均可对目标用户的当前区块进行验证,再将验证失败的当前区块广播至区块链网络中,区块链网络基于验证结果判断当前区块对应的用户是否为作弊用户,这样区块链网络基于大量的验证结果来判断当前区块对应的用户是否为作弊用户,验证过程具有较高的可靠性,因此可以精准识别出游戏中作弊用户,确保合法用户的权益。此外,对所有区块验证完毕之后,可以基于大量的合法坐标数据染色游戏地图,那么服务器可以基于这些大量的合法坐标数据实时对作弊用户进行识别,进而提高识别效率。并且,还可以基于大量的合法坐标数据对游戏地图bug进行检测,对游戏地图进行修复,确保游戏逻辑的正常。
[0064]
基于同样的发明构思,本发明还提供一种基于区块链识别作弊用户的装置,详见实施例二。
[0065]
实施例二本实施例还提供一种基于区块链识别作弊用户的装置,如图2所示,装置包括:接收单元21,接收分配指令;获取单元22,用于基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及
所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;验证单元23,用于基于所述区块数据对所述当前区块进行验证;广播单元24,用于若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户。
[0066]
具体的,对于每个游戏来说,对应的目标用户可能会非常多,每个目标用户在进行游戏时,目标用户对应的游戏角色均会产生坐标数据,目标用户对游戏角色进行操作时,也会产生对应的操作信息。因此参考图2,装置还包括:采集单元25,在接收分配指令之前,采集单元25用于:当目标用户在进行游戏时,基于目标用户对应的第一游戏角色在游戏地图中的行走路径采集第一游戏角色的坐标数据及目标用户的操作信息;操作信息包括:鼠标操作信息及键盘操作信息;对坐标数据及操作信息进行单独压缩;根据区块对应的数据长度,基于压缩后的坐标数据及操作信息生成至少一个区块;基于至少一个区块生成区块链网络。
[0067]
具体的,当目标用户对应的第一游戏角色在游戏地图中的行走或跳动时,跟踪目标用户,记录目标用户的坐标数据。由于坐标数据会非常多,如果采集所有的坐标数据,会影响坐标数据的处理效率及采集效率,因此本实施例在采集坐标数据时,是利用预设的坐标差值delta来进行采集。
[0068]
举例来说,针对当前坐标数据,判断当前坐标数据与上一坐标数据之间的坐标差值是否为delta,若为delta,则存储当前坐标数据;若小于delta,则放弃当前坐标数据。其中,delta的取值应根据每个地图的精度及尺寸确定,在此不做限制。应说明的是,坐标数据的采集顺序与目标用户的行走顺序一致。
[0069]
而在游戏中,可能会存在一些特效,比如游戏角色可以去吃某种buff的效果药来加速行走,那么还需采集目标用户开吃buff效果药的坐标数据以及buff效果消失时对应的坐标数据。
[0070]
进一步地,由于第一游戏角色是由目标用户通过键盘和鼠标进行操作的,因此当游戏角色在游戏地图中行走时,同时也会记录目标用户对游戏角色的操作信息。
[0071]
本实施例考虑到坐标数据的数据量较大,若直接存储会影响存储效率及后续的下载效率,因此对坐标数据及操作信息进行单独压缩。由于坐标数据与操作信息的数据格式不同,单独压缩相比将坐标数据及操作信息同时压缩的方式,压缩率会提高50%左右。
[0072]
应说明的是,在采集坐标数据时,同时也会采集游戏名称、游戏分区的区号、角色名称、目标用户在游戏平台的账号、游戏地图名称、目标地图区域的标识等游戏数据。其中,当游戏地图包括有多个目标地图区域时,每个目标地图区域具有对应的标识。
[0073]
因每个区块的数据长度是固定的,当压缩后的坐标数据、操作信息以及游戏数据达到一个区块的数据长度时,会利用区块链功能来生成一个区块,再将该区块广播至区块链网络中。
[0074]
由于坐标数据与操作信息的总数据长度远大于区块的数据长度,因此区块链网络中包括至少一个区块。
[0075]
本实施例说明书中,基于目标用户对应的第一游戏角色在游戏地图中的行走路径
采集第一游戏角色的坐标数据及目标用户的操作信息后,包括:将坐标数据与操作信息进行匹配,获得坐标数据操作信息之间的对应关系;获取坐标数据的坐标标识id,基于对应关系将坐标id与对应的操作信息存储在至少一个区块中。
[0076]
也即,区块对应的区块数据包括:坐标数据、操作信息以及坐标id;坐标id与操作信息之间具有对应关系。其中,沿行走路径采集坐标数据时,坐标id是依次自增的。
[0077]
应说明的是,每一个目标用户均会生成一个区块链,各区块链形成区块链网络,区块链网络具有共识机制,也即区块链网络中的不同区块内的数据是互通的。为了可以基于区块链来识别作弊用户,针对区块链网络中的任一当前区块来说,当前区块的区块数据中还包括有用于标识目标用户的唯一标识信息。其中,标识信息可以包括:区块链网络地址信息及区块链网络的公钥信息中的至少一种、当前区块的hash值、当前区块的上一区块的hash值。这样不管目标用户在哪个游戏平台存在作弊行为,均可通过唯一标识信息来识别目标用户的身份信息。
[0078]
每个目标用户的区块链形成之后,验证用户可以对区块链网络中的区块进行验证,根据验证结果来识别作弊用户。
[0079]
但是由于区块链网络中的区块会非常多(可能有几万~几百万)。若每个验证用户对所有区块链网络中的所有区块一一进行验证的话,会需要很多时间,可能会导致这些验证用户无法正常参与游戏,进而会降低验证用户的游戏参与积极性。
[0080]
考虑到以上原因,本实施例说明书中,针对每一个验证用户来说,在开始验证之前,接收单元21接收分配指令,分配指令中携带有目标地图区域标识,分配指令用于为验证用户分配对应的目标地图区域,验证用户只需要对第一游戏角色在目标地图区域中生成的区块进行验证。
[0081]
本步骤中,因坐标数据的数据量较大,若直接存储会影响存储效率及后续的下载效率,因此对坐标数据及操作信息进行单独压缩。由于坐标数据与操作信息的数据格式不同,单独压缩相比将坐标数据及操作信息同时压缩的方式,压缩率会提高50%左右。并且每个目标用户均对应有很多区块,那么整个区块链网络的区块可能数以万计;为避免降低验证用户参与游戏的积极性,会基于分配指令为预设数量的验证用户来分配验证区块,也即游戏地图的每个目标地图区域是利用不同的验证用户来进行验证的,这样可以避免所有用户一直处于验证状态,无法进行游戏进程,进而提高用户参与游戏的积极性。
[0082]
接收到分配指令后,因分配指令中携带有目标地图区域的标识,目标地图区域对应的当前区块的区块数据也携带有目标地图区域的标识,因此获取单元22可以基于分配指令从区块链网络中下载目标地图区域对应的当前区块,获取当前区块对应的区块数据。
[0083]
其中,当前区块为第一游戏角色在目标地图区域中产生的任一区块;区块链网络中包括有每个目标用户在游戏地图中产生的区块数据,区块数据包括目标用户对应的第一游戏角色的坐标数据、目标用户的操作信息以及目标用户的唯一标识信息。每个目标地图区域对应有预设数量的验证用户。
[0084]
举例来说,假设将游戏地图很大(比如包括至少2张地图),那么可将游戏地图分为a1、a2、a3和a4四个目标地图区域,每个目标地图区域均有对应的标识,每个目标地图区域对应的标识不同。目标用户的第一游戏角色在这四个目标地图区域生成的区块均广播至区
块链网络中后,每个区块也携带有目标地图区域的标识。
[0085]
若验证用户包括b1、b2、b3和b4;b1、b2、b3和b4可以理解为验证集合,每个验证集合均包括有预设数量(比如10000个)的验证用户。b1接收到分配指令后,若确定目标地图区域的标识为a1对应的标识,说明b1应当为a1对应的区块进行验证;b2接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a2对应的标识时,说明b2应当为a2对应的区块进行验证;b3接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a3对应的标识时,说明b3应当为a3对应的区块进行验证。b4接收到分配指令后,若确定分配指令中携带的目标地图区域的标识为a4对应的标识时,说明b4应当为a4对应的区块进行验证。
[0086]
值得注意的是,为了提高验证精度,验证用户是基于对历史用户进行筛选确定的。比如:根据历史用户的历史数据确定各历史用户的信用度,将信用度大于信用阈值的历史用户作为验证用户。信用阈值可根据各游戏平台的具体情况来定,在此不做限制。
[0087]
这里,验证用户与目标用户可以是相同的,也可以是不同的。当验证用户与目标用户相同时,验证用户除不能验证自己的区块外,其他目标用户的区块均可以验证。
[0088]
应说明的是,当游戏地图较小时,比如“英雄联盟”游戏只包括有一张游戏地图,可以将游戏地图分为多个目标地图区域,也可以不将游戏地图划分为多个目标地图区域。当游戏地图没有被划分为多个目标地图区域时,验证用户可对所有区块进行验证。
[0089]
本步骤中,若游戏地图很大时,可以对游戏地图分为多个目地图区域,每个地图区域对应预设数量的验证用户,这样可以避免所有用户一直处于验证状态,无法进行游戏进程,进而提高用户参与游戏的积极性。并且,因验证用户是基于历史用户筛选出的,将信用度大于信用阈值的历史用户作为验证用户,这样也可确保验证的准确度,为识别作弊用户的精度提供保障。
[0090]
获取到当前区块对应区块数据后,验证单元23基于区块数据对当前区块进行验证。
[0091]
作为一种可选的实施例,验证单元23基于区块数据对所述当前区块进行验证,包括:提取区块数据中的坐标数据及操作信息;基于坐标数据及操作信息还原目标用户的游戏场景;游戏场景中包括有基于坐标数据生成的坐标指示信息以及基于操作信息生成的操作提示信息;判断坐标指示信息及操作提示信息是否一致,若不一致,则确定验证失败。
[0092]
举例来说,若操作提示信息为跳跃,但是坐标指示信息却为朝前方行走,说明操作提示信息与坐标指示信息不一致,则确定对当前区块验证失败。
[0093]
作为一种可选的实施例,验证单元23基于区块数据对当前区块进行验证,包括:提取区块数据中的坐标数据及操作信息;基于坐标数据及操作信息还原目标用户的游戏场景;游戏场景中包括有基于坐标数据生成的坐标指示信息以及基于操作信息生成的操作提示信息;当验证用户基于坐标指示信息及操作提示信息重新行走第一游戏角色的行走路径时,获得验证用户对应的第二游戏角色的当前坐标信息;判断当前坐标信息是否能与第一游戏角色的坐标数据匹配成功,若匹配失败,则确定验证失败。
[0094]
也即,当基于坐标数据及操作信息还原目标用户的游戏场景后,验证用户会沿着游戏场景的坐标指示信息及操作提示信息重新行走第一游戏角色的行走路径,若能到达游戏场景中第一游戏角色所有的坐标点,说明当前坐标信息是可以与第一游戏角色的坐标数据匹配成功。若有任一坐标点不能到达,则匹配失败,说明对当前区块验证失败。
[0095]
此外,当基于所述区块数据对所述当前区块进行验证后,会获取相应的奖励,比如装备、特技及鱼丸等,以能提高验证的积极性。
[0096]
本步骤中,在利用坐标信息及操作信息来对当前区块进行验证时,相当于是沿着目标用户的行走路径进行验证,因此验证精度较高。并且由于坐标指示信息及操作提示信息在游戏地图上一目了然,因此验证效率也可以得到确保。
[0097]
若验证失败,广播单元24则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户。
[0098]
若当前区块验证失败,则标记当前区块为非正常区块,广播单元24并向区块链网络广播当前区块的验证结果,并且不会将当前区块添加至自身的区块链中,这样下一个区块则不会基于当前区块产生。
[0099]
并且,因区块链网络具有共识机制,其他验证用户看到当前区块的验证结果为验证失败时,也不会将当前区块添加至自身的区块链中。那么,区块链网络基于验证结果判断当前区块对应的用户是否为作弊用户可以包括:区块链网络若识别出大部分(超出验证用户总数量的一半)验证用户对应的区块链中均没有当前区块,确定当前区块对应的用户为作弊用户。
[0100]
或者,若对当前区块验证失败,还可以将当前区块对应的当前区块数据至服务器,以使服务器对发送当前区块数据的验证用户进行统计,并基于验证用户的数量判断当前区块对应的用户是否为作弊用户。
[0101]
举例来说,若验证用户包括10000个,其中有51%的验证用户对当前区块验证失败,那么向服务器发送当前区块数据的验证用户为5100个,基于少数服从多数的原则,此时服务器会确定当前区块对应的用户为作弊用户。
[0102]
这里,参考图2,装置还包括:发送单元26,当区块链网络中所有的区块被验证完毕之后,发送单元26:遍历所有验证成功的区块;提取验证成功的所述区块中的各目标坐标数据;基于公式position = num / allpostionnum确定每个目标坐标数据的权重position;num为目标坐标数据的数量,allpostionnum为区块链网络中的坐标总数量;将各目标坐标数据及对应的权重发送至服务器。
[0103]
这里,针对任一目标坐标,可能会有很多目标用户经过这个坐标,那么num可以理解为目标坐标数据在整个区块链网络中出现的次数。
[0104]
而目标坐标数据的权重越大,则表明目标坐标数据是所有目标用户经过越多的坐标数据。
[0105]
当服务器接收到各目标坐标数据及对应的权重后,可以根据权重较大的目标坐标数据来实时验证目标用户的坐标数据是否合法,若目标用户的坐标数据可以和权重较大的目标坐标数据匹配成功,则说明该目标用户是非作弊用户。这样无需将所有的坐标数据进
行一一匹配,只需根据权重较大的坐标数据来进行匹配。相比通过区块链网络来验证的方式,因区块链网络的共识机制也需要一定的时间,对区块进行广播也需要一定的时间,那么服务器利用目标坐标数据的权重信息来实时验证目标用户的坐标数据是否合法,可以提高验证速度。
[0106]
应说明的是,当验证成功的区块越全面,服务器的识别速度及精度越高。
[0107]
进一步地,在游戏开发中由于游戏地图一般会很大,地图场景非常多。当存在一些复杂地形场景时,由于开发漏洞,在地图的边角会可能会存在一些极端坐标,比如:一个人可以移动到房子和地面之间的空隙;而这些空隙对应的坐标理论上是不存在的。这种情况会造成游戏的bug,例如一个子弹打过去时,由于坐标的关系子弹无法命中目标。
[0108]
那么,装置还包括:检测单元27,检测单元27用于:遍历验证成功的当前区块;提取验证成功的区块中的各目标坐标数据;基于各目标坐标数据对游戏地图进行检测,判断游戏地图是否存在bug。
[0109]
举例来说,对于某个目标坐标数据,若验证用户验证该目标坐标数据是合法的,不是外挂修改的虚假坐标;但是对于游戏地图来说是不合理的,那么则说明该目标坐标数据地图中的bug坐标,验证用户可以将这样的坐标数据反馈至开发人员,开发人员可以对地图进行修复。
[0110]
本步骤中,既可以利用区块链网络来识别作弊用户,也可以利用服务器来识别作弊用户。不管时哪一种识别方式,针对当前块对应的验证用户来说,任一验证用户均可对目标用户的当前区块进行验证,再将验证失败的当前区块广播至区块链网络中,区块链网络基于验证结果判断当前区块对应的用户是否为作弊用户,这样区块链网络基于大量的验证结果来判断当前区块对应的用户是否为作弊用户,验证过程具有较高的可靠性,因此可以精准识别出游戏中作弊用户,确保合法用户的权益。此外,对所有区块验证完毕之后,可以基于大量的合法坐标数据染色游戏地图,那么服务器可以基于这些大量的合法坐标数据实时对作弊用户进行识别,进而提高识别效率。并且,还可以基于大量的合法坐标数据对游戏地图bug进行检测,对游戏地图进行修复,确保游戏逻辑的正常。
[0111]
基于同样的发明构思,本实施例还提供一种实施例一对应的计算机设备,详见实施例三。
[0112]
实施例三本实施例提供一种计算机设备,如图3所示,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:接收分配指令;基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;基于所述区块数据对所述当前区块进行验证;若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网
络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户;其中,所述基于所述区块数据对所述当前区块进行验证,包括:提取所述区块数据中的坐标数据及操作信息;基于所述坐标数据及所述操作信息还原所述目标用户的游戏场景;所述游戏场景中包括有基于所述坐标数据生成的坐标指示信息以及基于所述操作信息生成的操作提示信息;判断所述坐标指示信息及所述操作提示信息是否一致,若不一致,则确定验证失败。
[0113]
在具体实施过程中,处理器320执行计算机程序311时,可以实现实施例一中任一实施方式。
[0114]
由于本实施例所介绍的计算机设备为实施本申请实施例一中一种基于区块链识别作弊用户的方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的计算机设备的具体实施方式以及其各种变化形式,所以在此对于该服务器如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
[0115]
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
[0116]
实施例四本实施例提供一种计算机可读存储介质400,如图4所示,其上存储有计算机程序411,该计算机程序411被处理器执行时实现以下步骤:接收分配指令;基于所述分配指令从区块链网络中获取目标地图区域对应的当前区块,获取所述当前区块对应的区块数据;所述区块链网络中包括有每个目标用户在游戏地图中产生的区块数据;所述区块数据包括所述目标用户对应的第一游戏角色的坐标数据及所述目标用户的操作信息;每个所述目标地图区域对应有预设数量的验证用户;基于所述区块数据对所述当前区块进行验证;若验证失败,则向所述区块链网络广播所述当前区块的验证结果,以使所述区块链网络基于所述验证结果判断所述当前区块对应的用户是否为作弊用户;其中,所述基于所述区块数据对所述当前区块进行验证,包括:提取所述区块数据中的坐标数据及操作信息;基于所述坐标数据及所述操作信息还原所述目标用户的游戏场景;所述游戏场景中包括有基于所述坐标数据生成的坐标指示信息以及基于所述操作信息生成的操作提示信息;判断所述坐标指示信息及所述操作提示信息是否一致,若不一致,则确定验证失败。
[0117]
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。
[0118]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0119]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0120]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0121]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0122]
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0123]
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1