Skip to content

Commit c2e5dca

Browse files
committed
docs: Add status and limitations section to README
- Add explicit experimental status - Document known limitations (proof composition, security assumptions) - Reference ZKTorch as alternative approach - Clarify when to use this project vs alternatives - Update implementation section with proof composition note
1 parent becfa36 commit c2e5dca

File tree

1 file changed

+46
-4
lines changed

1 file changed

+46
-4
lines changed

README.md

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@
22

33
Extension of [zkml](https://github.com/uiuc-kang-lab/zkml) for distributed proving using Ray, layer-wise partitioning, and Merkle trees.
44

5-
> **Note:** This project is under active development. See [Next Steps](#next-steps) for current progress.
5+
> **⚠️ Status Note:** This is an experimental research project. For production zkML, consider [ZKTorch](https://github.com/uiuc-kang-lab/zktorch) (from the same research group) which uses proof accumulation/folding for parallelization. See [Status and Limitations](#status-and-limitations) for details.
66
7-
## Next Steps
7+
## Completed Milestones
88

99
1. ~~**Make Merkle root public**: Add root to public values so next chunk can verify it~~ Done
1010
2. ~~**Complete proof generation**: Connect chunk execution to actual proof generation ([#8](https://github.com/ray-project/distributed-zkml/issues/8))~~ Done
1111
3. ~~**Ray-Rust integration**: Connect Python Ray workers to Rust proof generation ([#9](https://github.com/ray-project/distributed-zkml/issues/9))~~ Done
1212
4. ~~**GPU acceleration**: ICICLE GPU backend for MSM operations ([#10](https://github.com/ray-project/distributed-zkml/issues/10))~~ Done - see [GPU Acceleration](#gpu-acceleration)
1313

14+
**Note**: This project is experimental. For production zkML, see [ZKTorch](https://github.com/uiuc-kang-lab/zktorch) or [Status and Limitations](#status-and-limitations).
15+
1416
---
1517

1618
## Table of Contents
1719

20+
- [Status and Limitations](#status-and-limitations)
1821
- [Overview](#overview)
1922
- [Implementation](#implementation)
2023
- [Requirements](#requirements)
@@ -25,6 +28,42 @@ Extension of [zkml](https://github.com/uiuc-kang-lab/zkml) for distributed provi
2528

2629
---
2730

31+
## Status and Limitations
32+
33+
### Project Status
34+
35+
This project implements a **Ray-based distributed proving approach** for zkML. It is experimental research code and should be considered:
36+
37+
- **Research/Educational**: Useful for studying alternative approaches to zkML parallelization
38+
- **Not Production-Ready**: Missing formal security analysis and proof composition
39+
- **Superseded**: The same research group (UIUC Kang Lab) has released [ZKTorch](https://github.com/uiuc-kang-lab/zktorch), which uses proof accumulation/folding for parallelization
40+
41+
### Known Limitations
42+
43+
1. **Proof Composition**: This implementation generates separate proofs per chunk. It does not implement recursive proof composition or aggregation. Verifiers must check O(n) proofs rather than O(1), limiting succinctness.
44+
45+
2. **Security Assumptions**: The distributed trust model (Ray workers) is not formally analyzed. The README does not address:
46+
- Malicious worker resistance
47+
- Collusion resistance
48+
- Byzantine fault tolerance
49+
50+
3. **Scalability**: No published benchmarks comparing distributed vs. single-node performance. The approach inherits base zkml limitations (~30-80M parameter ceiling for halo2-based circuits).
51+
52+
### When to Use This
53+
54+
**Consider this project if:**
55+
- Researching alternative zkML parallelization approaches
56+
- Need examples of Ray integration for cryptographic workloads
57+
- Studying Merkle-based privacy for intermediate computations
58+
- Building distributed halo2 proving (not zkML-specific)
59+
60+
**Use alternatives instead if:**
61+
- Need production-ready zkML → Use [ZKTorch](https://github.com/uiuc-kang-lab/zktorch) or [EZKL](https://github.com/zkonduit/ezkl)
62+
- Require formal security guarantees → Use frameworks with proven composition
63+
- Need state-of-the-art performance → ZKTorch achieves 10min GPT-2 proofs vs. ~1 hour for base zkml
64+
65+
---
66+
2867
## Overview
2968

3069
This repository extends zkml (see [ZKML paper](https://ddkang.github.io/papers/2024/zkml-eurosys.pdf)) with distributed proving capabilities. zkml provides an optimizing compiler from TensorFlow to halo2 ZK-SNARK circuits.
@@ -51,6 +90,8 @@ distributed-zkml adds:
5190
3. **Merkle Commitments**: Hash intermediate outputs with Poseidon, only root is public
5291
4. **On-Chain**: Publish only the Merkle root (O(1) public values vs O(n) without)
5392

93+
**Note**: Each chunk produces a separate proof. This implementation does not aggregate proofs into a single succinct proof. Verifiers must check all chunk proofs individually (O(n) verification time). For single-proof aggregation, see [ZKTorch](https://github.com/uiuc-kang-lab/zktorch)'s accumulation-based approach.
94+
5495
\`\`\`
5596
Model: 9 layers -> 3 chunks
5697
Chunk 1: Layers 0-2 -> GPU 1 -> Hash A
@@ -206,5 +247,6 @@ Runs on PRs to \`main\`/\`dev\`: builds zkml, runs tests (~3-4 min). GPU tests e
206247

207248
## References
208249

209-
- [ZKML Paper](https://ddkang.github.io/papers/2024/zkml-eurosys.pdf) (EuroSys '24)
210-
- [zkml Repository](https://github.com/uiuc-kang-lab/zkml)
250+
- [ZKML Paper](https://ddkang.github.io/papers/2024/zkml-eurosys.pdf) (EuroSys '24) - Original zkml framework
251+
- [zkml Repository](https://github.com/uiuc-kang-lab/zkml) - Base framework this project extends
252+
- [ZKTorch](https://github.com/uiuc-kang-lab/zktorch) - Alternative approach using proof accumulation/folding (from same research group)

0 commit comments

Comments
 (0)