基于区块链智能合约的牌类游戏防作弊方法及其系统技术方案

技术编号:21557382 阅读:23 留言:0更新日期:2019-07-10 12:29
本发明专利技术提出了一种基于区块链智能合约的牌类游戏防作弊方法及其系统,利用编码方法和加密方法将玩家的抽牌信息和出牌信息存储到区块链上,然后比对区块链中赢家的哈希值A与哈希值B,若两者相同则判定未有作弊行为发生,若不相同则判定存在作弊行为。本发明专利技术考虑到了区块链与游戏现有结合的不足,将应用场景进行改变,利用区块链去信任,去中心化的独特机制来有效查出作弊行为。同时棋牌类小游戏数据并不复杂,运算时不会造成太大负担,成本低,效果明显,能有效改善当前牌类游戏作弊严重现状。

Anti-cheating Method and System of Brand Game Based on Block Chain Intelligent Contract

【技术实现步骤摘要】
基于区块链智能合约的牌类游戏防作弊方法及其系统
本专利技术涉及一种防作弊方法及其系统,具体的说是一种基于区块链的牌类游戏防作弊方法及其系统,属于区块链

技术介绍
目前牌类游戏平台防止玩家篡改花色的方法是基于中心化节点的,即通过租赁第三方网络服务器来备份存储玩家的数据,从而保证游戏的公平性。只是目前这种防止玩家作弊的方法主要存在着以下几个问题:1.数据传输过程中被破坏的风险较大,传输的过程中很容易造成瑕疵、断点、不完整等问题,这种方法使数据需要多方人员处理,增加了数据中转的次数从而增加数据被篡改的风险,完整性也可能被破坏。2.这种方法对第三方网络服务器的依赖较大,一旦第三方网络服务器遭受恶意入侵或者意外宕机,第三方网络服务器及其所控制的若干服务器上的电子数据将面临整性、隐私性和可修复性等巨大安全隐患。3.由于这种中心化的方法无法保证第三方网络服务器是完全安全和公平的,用户往往会对第三方网络服务器的诚实程度产生质疑,担心自己所上传的数据被泄露或者恶意破坏,不利于系统与用户建立长期的信任关系,从而可能导致用户与平台之间的信任危机,双方建立可靠的信任机制所需的时间较长。4.这种方法需要租赁第三方网络服务器,成本较高,增加了经济负担。针对现有技术的这些问题,需要提出一种公开透明、无法篡改、便于追溯的,经济负担较低的基于区块链的牌类游戏防作弊系统。
技术实现思路
本专利技术所要解决的技术问题是,克服现有技术的不足而提供一种公开透明、无法篡改、便于追溯的,经济负担较低的基于区块链的牌类游戏防作弊方法及其系统。本专利技术提供一种基于区块链智能合约的牌类游戏防作弊方法,包括以下步骤:步骤一、获取玩家在游戏开始时抽取到的牌的花色和数字信息,每发出一张牌给玩家就将该张牌的花色和数字存储到区块链;步骤二、将发出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤三、将步骤二中压缩后的编码按花色和数字大小排序,并将排序后的编码通过加密算法生成哈希值A,存入区块链中;步骤四、游戏过程中,玩家每出一次牌就将该牌的花色和数字存储到区块链;步骤五、将玩家打出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤六、将步骤五中压缩后的编码按花色及数字大小排序,并将排序后的编码通过加密算法生成哈希值B,存入区块链中;步骤七、比对区块链中赢家的哈希值A与哈希值B,若两者相同则判定未有作弊行为发生,若不相同则判定存在作弊行为。作为本专利技术的进一步技术方案,所述编码方法为哈弗曼编码方法和merkle-tree方法的结合。进一步的,所述加密算法为MD5算法和SHA256算法的结合。进一步的,所述步骤一中获取玩家在游戏开始时抽取到的牌的花色和数字信息借助基于TCP的Socket通信来实现客户端和后端系统之间的数据传输。进一步的,所述基于TCP的Socket通信具体包括:S1、服务器端定义ServerSocket对象实例,监听来自客户端的连接请求;S2、在客户端定义Socket对象实例,向指定的服务器发起连接;S3、按照一定协议对Socket进行读写操作,完成数据的计算和交互;S4、关闭输入流、输出流和双方的Socket。本专利技术还公开了一种基于区块链的牌类游戏防作弊系统,包括:发牌信息获取模块、用于获取玩家在游戏开始时抽取到的牌的花色和数字信息,每发出一张牌给玩家就将该张牌的花色和数字存储到区块链;发牌编码压缩模块、用于将发出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;发牌排序存储模块、用于将发牌编码压缩模块中压缩后的编码按花色和数字大小排序,并将排序后的编码通过加密算法生成哈希值A,存入区块链中;出牌信息获取模块、用于在游戏过程中,将玩家每出一次牌的花色和数字存储到区块链;出牌编码压缩模块、用于将玩家打出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;出牌排序存储模块、用于将出牌编码压缩模块中压缩后的编码按花色及数字大小排序,并将排序后的编码通过加密算法生成哈希值存入区块链中;比较模块、比对区块链中赢家的哈希值A与哈希值B,若两者相同则判定未有作弊行为发生,若不相同则判定存在作弊行为。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:本专利技术考虑到了区块链与游戏现有结合的不足,将应用场景进行改变,利用区块链去信任,去中心化的独特机制来有效查出作弊行为。同时棋牌类小游戏数据并不复杂,运算时不会造成太大负担,导致产生拥堵现象。因此本专利技术大胆设想基于区块链的独特性质来设计防作弊系统,将牌类游戏中牌的花色和数字作为电子数据存于区块链中,以保证数据的可验证性、不可篡改性和不可伪造性。花色等电子数据一旦存储在系统中,验证者可将其调用与待查证信息进行比对,以证明此待查证数据的真实性和一致性,防止有玩家中途换牌等作弊行为。再利用智能合约技术和以太坊平台,通过API接口接入游戏,从而防止用户更改花色、私自换牌等篡改、伪造电子数据的作弊行为。此外本专利技术可以帮助网警撕掉赌博游戏精心伪装的外衣,从而规范网络行为,净化网络环境。附图说明图1为本专利技术方法实施例的流程示意图。具体实施方式下面结合附图对本专利技术的技术方案做进一步的详细说明:如图1所示,本实施例提出了一种基于区块链智能合约的牌类游戏防作弊方法,包括以下步骤:步骤一、获取玩家在游戏开始时抽取到的牌的花色和数字信息,每发出一张牌给玩家就将该张牌的花色和数字存储到区块链;具体为,将游戏开始时各位玩家及其所抽取牌的信息通过API接入本插件。考虑到牌的花色信息需要在客户端以及后端系统之间进行传输,故在本实施例中,借助Socket来实现其之间数据的传输与控制。目前可以使用的Socket有两种方式,流式和数据报式。其中,前者基于TCP传输,后者基于UDP传输。经过比较发现流式Socket能够按序提供稳定的的双向数据流通信服务,适合与本系统需要传输牌面信息和网络之间数据的传输情况,故选择基于TCP的Socket来实现通信。其中,基于TCP的Socket通信主要分为下述四个基本步骤:1)服务器端定义ServerSocket对象实例,监听来自客户端的连接请求;2)在客户端定义Socket对象实例,向指定的服务器发起连接;3)按照一定协议对Socket进行读/写操作,完成数据的计算和交互;4)关闭输入流、输出流和双方的Socket。我们为每局游戏都单独启动一个线程进行通信,传输的数据分为用户信息和牌类花色信息。步骤二、将发出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩。因为牌面信息数据量较大,为了减少系统处理时间和存储空间,需要对数据进行压缩。这里运用了哈弗曼编码和merkle-tree(墨克树)相结合的方法(即图1中的HuffMT)编码时,从最小概率的两个符号开始,可选其中一个支路为0,另一支路为1。这里,我们选上支路为0,下支路为1。再将已编码的两支路的概率合并,并重新排队。多次重复使用上述方法直至合并概率归一时为止。假设有n个权值,则构造出的哈夫曼树有n个叶子结点。n个权值分别设为w1、w2、…、wn,则哈夫曼树的构造规则为:(1)将w1、w2、…,wn看成是有n棵树的森林(每棵树仅有一个结点);(2)在森林中本文档来自技高网...

【技术保护点】
1.一种基于区块链智能合约的牌类游戏防作弊方法,其特征在于,包括以下步骤:步骤一、获取玩家在游戏开始时抽取到的牌的花色和数字信息,每发出一张牌给玩家就将该张牌的花色和数字存储到区块链;步骤二、将发出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤三、将步骤二中压缩后的编码按花色和数字大小排序,并将排序后的编码通过加密算法生成哈希值A,存入区块链中;步骤四、游戏过程中,玩家每出一次牌就将该牌的花色和数字存储到区块链;步骤五、将玩家打出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤六、将步骤五中压缩后的编码按花色及数字大小排序,并将排序后的编码通过加密算法生成哈希值B存入区块链中;步骤七、比对区块链中赢家的哈希值A与哈希值B,若两者相同则判定未有作弊行为发生,若不相同则判定存在作弊行为。

【技术特征摘要】
1.一种基于区块链智能合约的牌类游戏防作弊方法,其特征在于,包括以下步骤:步骤一、获取玩家在游戏开始时抽取到的牌的花色和数字信息,每发出一张牌给玩家就将该张牌的花色和数字存储到区块链;步骤二、将发出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤三、将步骤二中压缩后的编码按花色和数字大小排序,并将排序后的编码通过加密算法生成哈希值A,存入区块链中;步骤四、游戏过程中,玩家每出一次牌就将该牌的花色和数字存储到区块链;步骤五、将玩家打出的每张牌的花色和数字通过编码方法进行编码,并对生成的编码进行移位压缩;步骤六、将步骤五中压缩后的编码按花色及数字大小排序,并将排序后的编码通过加密算法生成哈希值B存入区块链中;步骤七、比对区块链中赢家的哈希值A与哈希值B,若两者相同则判定未有作弊行为发生,若不相同则判定存在作弊行为。2.根据权利要求1所述的基于区块链智能合约的牌类游戏防作弊方法,其特征在于:所述编码方法为哈弗曼编码方法和merkle-tree方法的结合。3.根据权利要求2所述的基于区块链智能合约的牌类游戏防作弊方法,其特征在于:所述加密算法包括MD5算法和SHA256算法的结合。4.根据权利要求1所述的基于区块链智能合约的牌类游戏防作弊方法,其特征在于:所述步骤一中获取玩家在游戏开始时抽取到的牌的花色和数字信息借助基于TCP的Socket通信来实现客户端和后端系统之间的数据传输...

【专利技术属性】
技术研发人员:孙国梓章鑫怡冯钰涵刘可心苑陈娟
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

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

1