sunilgentyala/SybilShield-Core

GitHub: sunilgentyala/SybilShield-Core

一个模块化的区块链抗 Sybil 攻击框架,通过复合信任评分引擎融合多维度信号检测并隔离恶意节点,无需依赖工作量证明或中心化身份机构。

Stars: 1 | Forks: 0

# SybilShield-Core **一个面向无许可点对点区块链网络的模块化、多层抗 Sybil 框架。** [![论文](https://img.shields.io/badge/IEEE_Xplore-Published-blue)](https://ieeexplore.ieee.org/document/11604799) [![网站](https://img.shields.io/badge/site-github.io-4fd1c5)](https://sunilgentyala.github.io/SybilShield-Core/) SybilShield-Core 实现了一个 Composite Trust Scoring (CTS) 引擎,该引擎融合了行为遥测、社交图谱拓扑分析和经济承诺信号,以检测并隔离 Sybil 实体,且无需依赖 Proof-of-Work 消耗或中心化身份认证机构。 项目网站:**[sunilgentyala.github.io/SybilShield-Core](https://sunilgentyala.github.io/SybilShield-Core/)** ## 为什么选择 SybilShield-Core Sybil 攻击是每个无许可网络的结构性弱点:攻击者能够以近乎零的成本铸造假名身份,从而扭曲共识、分割诚实节点,并毒害去中心化数据 pipeline,而这一切甚至都不需要破坏任何加密原语。这使得抗 Sybil 成为一个社会性的网络安全问题,而不仅仅是区块链问题,因为同样的身份欺骗模式也助长了对联邦学习、oracle 数据源以及任何假定“一个节点一票”的去中心化系统的攻击。 - **弥补了 Proof-of-Work 和身份认证机构均无法解决的空白。** PoW 能提高小型攻击者的成本,但对资源充足的攻击者无能为力;而中心化的身份检查则重新引入了无许可系统旨在避免的单点故障。相反,Composite Trust Score (CTS) 通过可观测的证据来检测 Sybil 行为,既没有协议级别的身份阻力,也不需要受信任的第三方。 - **经实测,优于纯图谱基线。** 在一个真实、可运行的模拟中(`scripts/run_simulation.py`,n=300 个诚实节点,20 次试验/配置),复合 CTS pipeline 在 10-30% 的攻击者密度下,面对活跃攻击的 Sybil 群体达到了 100% TPR / 0.00% FPR,而在相同拓扑结构下,简化的纯图谱传播基线的 TPR 为 65.9-100% / FPR 为 0.0-11.0%。请参阅 [`simulation/results/sybil_detection_results.txt`](simulation/results/sybil_detection_results.txt) 获取完整的数据、方法论以及客观存在的局限性(包括为什么半休眠状态的 Sybil 群体只能被检测出约 48-51%)。 - **FL 中毒防御已接入但尚未进行基准测试。** `oracle_deviation` 惩罚事件已经存在并由相同的模拟进行了演练,但此仓库中尚不存在 FL 聚合模块或模型准确率/后门抵抗力的基准测试。之前关于将中毒模型后门准确率从 84.7% 降至 11.3% 的声明没有任何可运行代码的支持,该数据已被删除,而不是用另一个未经证实的数字代替。 - **缓解措施是分层的;自动撤销是一个已知缺陷。** 缓解措施会逐步升级(从监控到减少 quorum 权重,再到隔离),但正如本次基准测试所测,参考实现 `CTSEngine` 的隔离标志目前是一个单向锁存器——即使当分数恢复并超过 `configs/monitoring.yaml` 中的恢复阈值时,它也不会自动恢复某个节点。这是已公开披露的缺陷,而非被静默修复。 - **开放且可复现。** 采用 MIT 许可证的参考实现、真实的模拟测试环境以及单元测试均完全公开,因此上述检测率和开销数据可以独立地重新运行和验证,而不是仅仅盲目相信。 ## 架构概述 该框架围绕三个可分离的引擎层构建,每一层都可以独立测试和替换: **第 1 层 - 身份与评分 (`src/core/`)** 根据持仓时间、行为一致性以及图论中心性指标,为每个节点分配动态信任分数。评分过程是确定性且可审计的。 **第 2 层 - 监控 (`src/monitoring/`)** 收集实时遥测数据:区块中继时间、mempool 传播模式、节点连接流失率以及投票偏差。持续为评分引擎提供数据。 **第 3 层 - 缓解 (`src/mitigation/`)** 根据评分阈值采取行动:隔离、权益惩罚以及减少 quorum 权重。没有任何单一缓解原语会被孤立应用;引擎会根据攻击分类选择一种组合。 **设计模式:带事件总线的分层 Pipeline** 核心缓解引擎遵循内部事件总线上的管道与过滤器模式。每个监控探针都会发布类型化事件;下游过滤器则应用逐渐严格的检测启发式算法。检测逻辑和执行逻辑保持解耦,因此无需触及另一层即可对任意一层进行升级或替换。 ## 目录结构 ``` SybilShield-Core/ ├── src/ │ ├── core/ │ │ ├── identity/ # (stub) Peer identity management, key binding, commitment schemes │ │ ├── scoring/ # Composite Trust Score engine, decay functions -- IMPLEMENTED │ │ └── consensus/ # (stub) Consensus weight assignment, quorum arbitration │ ├── monitoring/ │ │ ├── behavior/ # Block relay timing, mempool flood detection -- IMPLEMENTED │ │ ├── graph/ # Peer topology snapshots, clustering/SybilRank probes -- IMPLEMENTED │ │ └── telemetry/ # (stub) Metrics collection, event bus publisher │ └── mitigation/ │ ├── quorum/ # (stub) Dynamic quorum weight reduction for flagged nodes │ ├── penalty/ # (stub) Stake slashing and connection throttling │ └── isolation/ # Eclipse prevention, peer list sanitization -- IMPLEMENTED ├── simulation/ │ ├── network/ # Synthetic P2P topology generation (Barabasi-Albert, networkx) │ ├── adversary/ # Sybil attack event generator (single-shot, no network model) │ ├── scenarios/ # Sybil injection + the real detection pipeline that wires │ │ # src/core, src/monitoring, src/mitigation together │ └── results/ # Measured output of scripts/run_simulation.py ├── tests/ │ ├── unit/ # Component-level tests │ ├── integration/ # (empty -- no cross-layer pipeline tests yet) │ └── simulation/ # Smoke tests for the detection pipeline ├── configs/ # Default monitoring/scoring configuration YAML ├── scripts/ │ ├── run_simulation.py # Real detection-pipeline simulation runner (see Quick Start) │ └── generate_ieee_docx.py # IEEE DOCX generator (delegates to paper/build_docx.py) └── paper/ # DOCX build script for the IEEE manuscript (not the manuscript itself) ``` 上面标记为 `(stub)` 的目录仅包含一个 `__init__.py` ——目前那里还不存在任何功能 性代码。在此 README 早期版本中提到的 `analysis/` 和 `artifacts/` 目录在仓库中并不 存在,已从本列表中移除,而不是将其作为期望的结构保留。 ## 快速开始 ``` git clone https://github.com/sunilgentyala/SybilShield-Core.git cd SybilShield-Core pip install -e ".[dev]" # 运行真实的 Sybil-detection 模拟(将 src/core/scoring/cts_engine.py、 # src/mitigation/isolation/isolation_guard.py、src/monitoring/behavior/relay_monitor.py # 和 src/monitoring/graph/peer_graph.py 连接起来,针对生成的网络运行)。 # 小型/快速 smoke 运行: python scripts/run_simulation.py --nodes 60 --trials 3 --scenario eclipse --sybil-ratios 0.20 # 用于生成 simulation/results/sybil_detection_results.txt 的完整 benchmark 规模 # (在现代笔记本电脑上约需 10-13 分钟): python scripts/run_simulation.py --nodes 300 --trials 20 \ --sybil-ratios 0.10,0.20,0.30 --scenario all --intensities 1.0,0.5 # 运行单元 + 模拟测试 pytest tests/unit/ tests/simulation/ -v ``` 完整的实测结果、方法论、工具版本和客观的范围限制请参阅 [`simulation/results/sybil_detection_results.txt`](simulation/results/sybil_detection_results.txt)。 ## 实测结果 以下数据来自针对此仓库自身的 `CTSEngine`、`BehaviorMonitor`、`PeerGraph` 和 `IsolationGuard` 类实际运行的 `scripts/run_simulation.py`——而不是占位符或 预测数据。规模:n=300 个诚实节点(Barabasi-Albert 拓扑),每种配置 20 次试验, 每次试验 25 个模拟行为轮次,3 种 Sybil 密度(占总网络的 10/20/30%) x 2 种攻击者 活动水平 x 4 种攻击场景 = 总共 480 次试验(在本次运行的 WSL2/x86-64 环境下耗 时约 620 秒)。 | 指标 | 复合 CTS(本仓库) | 纯图谱基线 | |---|---|---| | TPR,活跃攻击者,所有密度 | **100.0%** | 65.9-100.0%(取决于密度) | | FPR,活跃攻击者,所有密度 | **0.00%** | 0.0-11.0%(取决于密度) | | TPR,半休眠 Sybil 群体 | ~48-51% | 65.9-100.0% | | 检测延迟中位数(轮次) | 0-6(取决于攻击类型) | n/a | | IsolationGuard eclipse-edge 拒绝率 | 27.5% (110/400) | n/a | | 每连接计算开销 | 76.14 µs(对比 0.068 µs 的 no-op) | n/a | **该规模小于此 README 和网站早期版本中断言的 2,000 个节点 / 10,000 个区块的 数据**,早期版本中的数据早于任何可运行模拟的出现。请参阅 [`simulation/results/sybil_detection_results.txt`](simulation/results/sybil_detection_results.txt) 获取按场景细分的完整数据,更重要的是,请阅读涵盖以下内容的客观局限性部分: 为什么纯图谱基线的数据会随密度发生机械性变化(固定的第 20 百分位标记配额,而 不是基于图谱检测的更深层属性),为什么休眠的 Sybil 群体的可检测性仅比随机猜测 略高(仅图谱信号对一个节点的评分最多贡献 ±10%),以及一个被发现的缺陷: 尽管论文描述缓解措施是可逆的,但 `CTSEngine` 的隔离标志永远不会自动重置。 本仓库中不存在联邦学习中毒防御基准测试(模型准确率/后门抵抗力)。 模拟演练了 `oracle_deviation` 惩罚事件,但不存在 FL 聚合模块来与真实的模型准确 率数据进行基准对比。早期关于“后门准确率从 84.7% 降至 11.3%”的声明没有任何可 运行代码的支持,该数据已被删除,而不是用另一个同样未经证实的数字代替。 ## 相关论文 **SybilShield-Core:一种用于缓解无许可区块链网络中 Sybil 攻击的 Composite Trust Scoring 框架** Sunil Gentyala (IEEE Senior Member, HCLTECH America Inc., 德克萨斯州达拉斯) | K Sanjeevaiah (Malla Reddy Engineering College for Women,印度海得拉巴) | Suresh Kumar Darisi (Rocket Software Inc.,德克萨斯州达拉斯) **已在 [IEEE Xplore](https://ieeexplore.ieee.org/document/11604799) 发表** — IEEE ICICDS 2026 (论文 ID ICICDS-690)。根据 IEEE 版权政策,该手稿不可公开重新分发;如需官方摘要和引用,请查阅 IEEE Xplore 记录。 ## 许可证 MIT
标签:信任评分, 区块链, 去中心化网络, 图拓扑分析, 女巫攻击防御, 安全防护, 特权检测, 逆向工具