elitay152/Blockchain_Assisted_Federated_Learning_Simulation
GitHub: elitay152/Blockchain_Assisted_Federated_Learning_Simulation
该项目模拟了一个结合区块链审计与激励机制的医疗联邦学习工作流,解决跨组织协作训练中的透明性、可问责性和模型溯源问题。
Stars: 0 | Forks: 0
# 区块链支持的医疗联邦学习模拟
本项目演示了区块链如何在联邦学习工作流中支持可审计性、声誉追踪和激励机制。它将多客户端联邦学习模拟与 Ethereum 智能合约相结合,用于记录模型更新、性能指标、模型哈希、客户端声誉以及基于 token 的奖励。
本项目是作为探索隐私保护机器学习、联邦学习治理和安全医疗数据协作的博士课程的一部分而开发的。
## 项目概述
联邦学习允许多个组织在协作训练机器学习模型的同时,无需直接共享原始数据。本项目使用多个本地客户端和一个中央联邦学习协调器来模拟这一过程。区块链被用作审计和治理层,用于记录训练活动并支持对客户端贡献的透明追踪。
该系统包括:
* 多客户端联邦学习模拟
* 基于 Flower 的联邦平均工作流
* Python 机器学习 pipeline
* 用于记录模型更新的 Ethereum 智能合约
* 客户端声誉和 token 奖励追踪
* 用于溯源的 SHA-256 模型哈希生成
* 自动化 JSON 导出和 PDF 报告
* 基于 Hardhat 的智能合约测试与部署
## 技术栈
**机器学习与数据处理**
* Python
* Flower
* PyTorch / scikit-learn
* pandas
* NumPy
* joblib
**区块链**
* Solidity
* Hardhat 3
* Ethereum 本地开发网络
* viem
* TypeScript
**自动化与报告**
* Python 脚本
* ReportLab
* JSON 导出
* Node.js 测试运行器
## 核心功能
### 联邦学习模拟
本项目模拟多个客户端在各自独立的数据集上进行本地训练。模型更新通过联邦学习工作流进行聚合,从而在无需直接共享原始数据的情况下实现协作式的模型改进。
### 区块链审计日志记录
每次提交的模型更新都可以连同以下元数据一起记录到智能合约中:
* 客户端 ID
* 轮次编号
* 模型版本
* 性能指标
* 模型哈希
* 提交地址
* 接受状态
* 声誉变化
* token 奖励金额
### 声誉与奖励
智能合约通过声誉评分和基于 token 的奖励来追踪客户端的参与度和贡献质量。这展示了区块链如何在联邦学习环境中支持激励机制。
### 自动化工作流
本项目包含用于以下操作的脚本:
* 准备客户端数据集
* 运行联邦学习轮次
* 导出模型更新元数据
* 将更新提交到区块链
* 检查已记录的更新和客户端声誉
* 生成总结报告
## 项目结构
```
contracts/ Solidity smart contracts
ignition/modules/ Hardhat Ignition deployment modules
scripts/ TypeScript blockchain interaction scripts
test/ Smart contract tests
ml/ Python ML and reporting workflow
flwr_app/ Flower federated learning application
clients/ Local simulated client data and outputs
```
## 运行项目
为 Hardhat 项目安装依赖:
```
npm install
```
创建并激活 Python 虚拟环境:
```
python -m venv .venv
```
在 Windows 上:
```
.venv\Scripts\activate
```
在 macOS/Linux 上:
```
source .venv/bin/activate
```
安装 Python 依赖:
```
pip install -r requirements.txt
```
运行智能合约测试:
```
npx hardhat test
```
启动本地 Hardhat 节点:
```
npx hardhat node
```
在本地部署智能合约:
```
npx hardhat ignition deploy ignition/modules/FederatedTrainingCoordinator.ts --network localhost
```
运行 Python 联邦学习工作流:
```
python ml/run_full_project.py
```
检查已提交的模型更新:
```
npx hardhat run scripts/checkUpdates.ts --network localhost
```
检查客户端声誉:
```
npx hardhat run scripts/checkReputation.ts --network localhost
```
## 局限性
本项目是一个模拟和概念验证。联邦学习工作流使用中央协调器,区块链仅用于审计日志记录、声誉追踪和激励机制,而不是用于完全去中心化的模型聚合。未来的工作可以探索去中心化协调、链上验证、更强的隐私保护以及生产级的部署模式。
## 目的
本项目的目标是探索如何将联邦学习、区块链和医疗数据治理理念结合起来,以支持跨组织之间更透明、更可问责的机器学习协作。
标签:MITM代理, 凭据扫描, 分布式机器学习, 区块链, 医疗保健, 智能合约, 深度学习, 联邦学习, 逆向工具