5.2 开源工具与框架
本节摘要:PETs 用什么工具落地?本节梳理主流开源库和框架——HE(SEAL/OpenFHE/HElib)、MPC(MP-SPDZ/CrypTen)、ZKP(Circom/Noir)、DP(OpenDP/Opacus)、FL(PySyft/FATE/Flower)、TEE(Gramine/Occlum)。读完你能选对工具。
一、HE 工具
1. Microsoft SEAL
- 最流行的 HE 库,C++/Python/C# 接口。
- 支持 BFV(整数)、CKKS(实数)。
- 文档好,社区活跃,工业落地多。
- 适合:入门 HE、隐私 ML(CKKS)、整数计算(BFV)。
2. OpenFHE(前身 PALISADE)
- 全方案 HE 库,支持 BGV/BFV/CKKS/TFHE。
- C++/Python,模块化设计。
- 适合:需多种方案、研究、生产。
3. HElib
- IBM 开源,BGV/CKKS,最早 HE 库之一。
- 性能好但接口低层,学习曲线陡。
- 适合:研究、深度定制。
4. TFHElib/Concrete
- TFHElib:TFHE 原版,比较和非线性强。
- Concrete(Zama):TFHE 工具链,Python 友好,编译器支持 Python 转 TFHE 电路。
- 适合:需要比较/分支、ML 激活函数。
5. Lattigo
- Go 语言 HE 库,CKKS/BFV。
- 适合:Go 生态、区块链。
选 HE 工具:
- 入门/通用 → SEAL
- 多方案/研究 → OpenFHE
- TFHE/比较 → Concrete
- Go → Lattigo
二、MPC 工具
1. MP-SPDZ
- 多协议 MPC 框架,支持半诚实/恶意、多种秘密共享、混淆电路。
- C++/Python,研究/工业用。
- 适合:研究、多协议对比、生产。
2. CrypTen
- Meta 开源,PyTorch 风格,ML 友好。
- Python,支持多方秘密共享。
- 适合:隐私 ML、PyTorch 用户。
3. TF-Encrypted
- TensorFlow 隐私 ML,MPC+HE。
- 适合:TF 用户、隐私 ML。
4. Concrete-ML
- Zama,结合 HE(TFHE)和 MPC,Python。
- 适合:隐私 ML,HE+MPC 混合。
5. Sharemind
- 商用 MPC 平台,有开源版。
- 适合:生产部署、企业。
6. Privy/ABY
- ABY:混淆电路+算术+布尔混合。
- Privy:多方隐私计算。
- 适合:研究、混合协议。
选 MPC 工具:
- 多协议/研究 → MP-SPDZ
- PyTorch ML → CrypTen
- TF ML → TF-Encrypted
- HE+MPC → Concrete-ML
- 生产 → Sharemind
三、ZKP 工具
1. Circom + SnarkJS
- Circom:写电路 DSL,配 SnarkJS 验证。
- 支持 Groth16/PLONK,Web 生态。
- 适合:入门 ZKP、区块链、Web。
2. Noir
- Aztec,高级语言,隐私智能合约。
- 适合:隐私区块链、Aztec 生态。
3. Leo
- Aleo,隐私区块链编程语言。
- 适合:Aleo 生态。
4. Cairo
- StarkWare,STARK 友好,图灵完备。
- 适合:STARK、StarkNet。
5. Halo2
- Zcash 开源,PLONK 变体,无信任设置(递归)。
- 适合:区块链、递归证明。
6. gnark
- Go ZKP,支持 Groth16/PLONK。
- 适合:Go 生态。
7. zkSync/ZkEVM
- 以太坊 zk-Rollup,EVM 兼容 ZKP。
- 适合:以太坊扩容。
选 ZKP 工具:
- 入门/Web → Circom+SnarkJS
- 隐私合约 → Noir
- STARK → Cairo
- 递归 → Halo2
- 以太坊扩容 → zkSync
四、DP 工具
1. Google DP 库
- C++/Java/Go,生产级,Google 内部用。
- 适合:生产、Google 生态。
2. OpenDP
- 哈佛开源,Python/R,研究友好。
- 适合:研究、数据分析。
3. PipelineDP
- Google 开源,分布式 DP(Beam/Spark)。
- 适合:大数据、分布式。
4. TF-Privacy
- TensorFlow DP-SGD,机器学习。
- 适合:TF 隐私 ML。
5. Opacus
- PyTorch DP-SGD,Meta 开源。
- 适合:PyTorch 隐私 ML。
6. IBM DP Library
选 DP 工具:
- 生产/Google → Google DP
- 研究/分析 → OpenDP
- 大数据 → PipelineDP
- TF ML → TF-Privacy
- PyTorch ML → Opacus
五、FL 工具
1. TensorFlow Federated(TFF)
- Google 开源,TF 生态,FL 完整栈(含安全聚合)。
- 适合:TF 用户、Google 生态。
2. PySyft
- OpenMined 开源,PyTorch,FL+MPC+HE。
- 适合:研究、PyTorch、多 PETs。
3. FATE
- 微众银行开源,纵向联邦强,企业级。
- 适合:企业、纵向联邦、金融。
4. Flower
- 轻量,移动端/边缘友好,框架无关。
- 适合:移动端、IoT、轻量部署。
5. NVIDIA FLARE
6. FedML
- 移动端/边缘,跨平台。
- 适合:移动端、边缘 AI。
选 FL 工具:
- TF 生态 → TFF
- PyTorch/多 PETs → PySyft
- 纵向/企业 → FATE
- 移动端/轻量 → Flower
- 企业/医疗 → FLARE
六、TEE 工具
1. Gramine
- Linux 基金会,SGX 友好,跑 Linux 应用。
- 适合:SGX、Linux 应用。
2. Occlum
- SGX LibOS,跑 Linux 应用。
- 适合:SGX、传统应用。
3. OpenEnclave
- 微软开源,跨 TEE(SGX/TrustZone)。
- 适合:跨 TEE、企业。
4. Asylo
- Google 开源,TEE 抽象层。
- 适合:跨 TEE。
5. AWS Nitro Enclave SDK
6. Azure Confidential
- 微软云 TEE(SGX/SEV)。
- 适合:Azure 云。
选 TEE 工具:
- SGX Linux → Gramine/Occlum
- 跨 TEE → OpenEnclave/Asylo
- AWS → Nitro
- Azure → Confidential
七、组合/平台工具
1. Concrete-ML:Zama,HE+MPC,隐私 ML。
2. CrypTen:MPC+HE,隐私 ML。
3. TF-Encrypted:MPC+HE+TF。
4. PySyft:FL+MPC+HE,多 PETs。
5. FATE:FL+MPC+HE,企业。
6. Sharemind:MPC 商用平台。
7. Privy:多方隐私计算。
八、工具选型的建议
1. 从需求出发:先定场景(HE/MPC/ZKP/DP/FL/TEE),再选工具。
2. 生态匹配:选和你技术栈匹配的(PyTorch→Opacus/CrypTen,TF→TFF/TF-Privacy)。
3. 成熟度:生产用成熟工具(SEAL/MP-SPDZ/Opacus),研究可用前沿。
4. 社区:社区活跃的工具更新快、问题少。
5. 文档:文档好的工具学习成本低(SEAL/Opacus/FATE)。
6. 性能:性能敏感场景看基准(OpenFHE/Concrete 有基准)。
7. 组合:多 PETs 用组合工具(PySyft/Concrete-ML/FATE)。
⚠️ 常见误读:以为"用最先进的工具最好"。先进工具可能不成熟、文档少、社区小。生产用成熟工具,研究用前沿,按需求选。
💡 关键直觉:PETs 工具——HE(SEAL 最流行,OpenFHE 全方案,Concrete TFHE)、MPC(MP-SPDZ 多协议,CrypTen PyTorch ML)、ZKP(Circom+SnarkJS 入门,Noir/Cairo/Halo2 区块链)、DP(Google DP 生产,OpenDP 研究,Opacus PyTorch)、FL(TFF/PySyft/FATE/Flower)、TEE(Gramine/Occlum SGX)。选型从需求出发,生态匹配,成熟度优先,组合用 Concrete-ML/PySyft/FATE。
核心回顾
- HE 工具:SEAL(最流行,BFV/CKKS)、OpenFHE(全方案)、HElib(IBM)、Concrete(TFHE,Zama)、Lattigo(Go)。
- MPC 工具:MP-SPDZ(多协议)、CrypTen(PyTorch ML)、TF-Encrypted(TF)、Concrete-ML(HE+MPC)、Sharemind(商用)、ABY(混合)。
- ZKP 工具:Circom+SnarkJS(入门/Web)、Noir(Aztec)、Leo(Aleo)、Cairo(STARK)、Halo2(递归)、gnark(Go)、zkSync(扩容)。
- DP 工具:Google DP(生产)、OpenDP(研究)、PipelineDP(分布式)、TF-Privacy(TF ML)、Opacus(PyTorch ML)、IBM DP。
- FL 工具:TFF(TF 生态)、PySyft(多 PETs)、FATE(纵向/企业)、Flower(移动端/轻量)、FLARE(企业/医疗)、FedML(边缘)。
- TEE 工具:Gramine/Occlum(SGX Linux)、OpenEnclave/Asylo(跨 TEE)、AWS Nitro、Azure Confidential。
- 组合/平台:Concrete-ML(HE+MPC)、CrypTen(MPC+HE)、PySyft(FL+MPC+HE)、FATE(FL+MPC+HE)、Sharemind。
- 选型建议:从需求出发、生态匹配、成熟度优先、社区活跃、文档好、性能基准、组合用组合工具。
开源工具生态
