sandorpopan/Cheat-Detection-System-for-BBMOFSGs
GitHub: sandorpopan/Cheat-Detection-System-for-BBMOFSGs
该系统将基于规则的本地作弊检测与以太坊智能合约的链上验证投票相结合,解决 P2E 区块链 FPS 游戏中的公平性保障问题。
Stars: 0 | Forks: 0
# BBMOFSG 作弊检测系统
这是一个概念验证原型,旨在检测**基于区块链的多人在线第一人称射击游戏 (BBMOFSGs)** 中的恶意行为。该系统使用符合道德规范的本地遥测捕获器(键盘记录器/鼠标宏记录器)、通过 IPFS 进行的链下存储优化,以及智能合约的可审计性。
# 基于区块链的在线多人 FPS 游戏作弊检测系统
这是一个基于规则的、经区块链验证的反作弊系统,专为 Play-to-Earn (P2E) FPS 游戏设计。作为毕业设计顶点项目的一部分构建,旨在研究如何将 Proof-of-Stake 区块链共识用作反作弊机制。
## 为什么开发此系统
作弊(自瞄、透视、加速挂、机器人)破坏了 P2E 游戏的公平性,因为在这些游戏中,游戏内的表现可以直接转化为现实世界的价值。该系统结合了:
- **轻量级的、基于时间间隔的输入监控**,以区分人类玩家和机器人
- **确定性的、基于规则的作弊检测**(不使用 AI/ML 推理,以将延迟保持在足够低的水平,从而满足实时 FPS 游戏的需求)
- **IPFS** 用于游戏日志的链下存储,避免区块链网络拥堵
- **一个 Solidity 智能合约**,允许 PoS 验证者独立验证被标记的会话,并在链上封禁确认的作弊者
## 架构
```
Game Client ──> Keylogger (15s cycle / 3s capture) ──> Cheat Detection Rules
│
AES-256 (per-session key)
│
IPFS Upload
│
(if flagged) Smart Contract
│
Validator Review & Voting
│
Wallet Ban (on-chain)
```
### 组件
| 文件夹 | 用途 |
|---|---|
| `keylogger/` | 在游戏会话处于活动状态时,每 15 秒以 3 秒为周期捕获一次鼠标/键盘活动。仅在活动(非暂停)会话期间运行。 |
| `keylogger/encryption.py` | 使用按会话派生的密钥(通过会话种子 + 随机盐进行 PBKDF2 派生)进行 AES-256-CBC 加密,因此没有单个密钥可以跨会话解密日志。 |
| `detection/` | 针对硬编码阈值的基于规则(if/else)的作弊检查:准确率(自瞄)、移动速度(加速挂)和目标获取距离(透视)。 |
| `ipfs/` | 将加密的日志 blob 上传到 IPFS,与区块链并行运行,以避免链上存储膨胀。返回一个用作链上指针的 CID。 |
| `contracts/CheatVerification.sol` | 接收被标记的作弊报告(完整的违规数据 + IPFS CID),允许注册的验证者进行投票,并在获得足够的批准后封禁违规的钱包。 |
| `pipeline/orchestrator.py` | 将上述流程进行端到端串联:采样 → 检测 → 加密 → 上传至 IPFS → (如果被标记)在链上提交。 |
## 作弊者是如何一步步被抓获的
1. 在比赛进行期间,键盘记录器每 15 秒唤醒一次,并主动记录 3 秒的输入。
2. 该输入样本与玩家在同一时间窗口内的游戏内行为统计数据(射击次数、命中次数、移动距离、目标距离)配对。
3. `cheat_rules.py` 根据固定的阈值检查行为统计,包括准确率、移动速度和可观测距离。
4. 完整的样本(输入 + 行为日志)使用该会话唯一的密钥进行 AES 加密,并上传到 IPFS。
5. 如果发现违规行为,完整的违规数据连同 IPFS CID 将被提交至 `CheatVerification.sol`。
6. 验证者独立从 IPFS 拉取加密的 blob,验证该主张并进行投票。一旦达到足够的批准数,合约将在链上封禁该钱包。
## 状态 / 已知缺陷
这是一个毕业设计研究实现,尚未经过生产环境的强化:
- `detection/cheat_rules.py` 中的检测阈值仅为占位符,需要针对特定游戏的移动/武器系统的真实游戏数据进行校准。
- `pipeline/orchestrator.py._get_action_log_for_window()` 是一个 stub - 它需要连接到游戏引擎的遥测/事件系统,以提供真实的按时间窗口行为统计。
- 验证者抵押/质押逻辑(PoS 经济激励层)存在于链层面,不在 `CheatVerification.sol` 的范围内,后者仅处理报告提交、投票和封禁。
- 尚未实现奖励/奖金分配逻辑(参见项目提案,第四章,步骤 4)。
## 设置
```
pip install -r requirements.txt
```
需要运行中的 IPFS daemon (`ipfs daemon`) 以及一个兼容 Ethereum 的 RPC endpoint(例如本地的 Hardhat/Ganache 节点,或您的 AWS Managed Blockchain PoS 网络)来运行智能合约。
标签:FPS游戏, IPFS, 区块链游戏, 反作弊系统, 智能合约, 游戏安全, 逆向工具, 链上审计