# ZKP Rust Client
A Rust implementation of Zero-Knowledge Proofs (ZKP) using the Groth16 proving system and the Arkworks cryptographic library. This project demonstrates how to create, verify, and benchmark zero-knowledge proofs for simple arithmetic operations.
## ๐ Features
- **Groth16 Proving System**: Implements the Groth16 zk-SNARK protocol
- **Simple Addition Circuit**: Demonstrates ZKP for basic arithmetic operations
- **WebAssembly Support**: Cross-platform WASM compilation for web and Node.js
- **Python Bindings**: Native Python integration with PyO3
- **Comprehensive Benchmarking**: Performance testing and analysis tools
- **Memory Usage Analysis**: Proof size and memory consumption metrics
- **Stress Testing**: Rapid-fire proof generation and verification
- **Modular Architecture**: Clean separation of concerns with library and binary components
## ๐ Prerequisites
- Rust 1.70+ (stable channel)
- Cargo package manager
- [wasm-pack](https://rustwasm.github.io/wasm-pack/) (for WASM builds, installed automatically)
- [maturin](https://github.com/PyO3/maturin) (for Python builds, installed automatically)
- Modern web browser with WebAssembly support (for web usage)
- Node.js (for Node.js WASM usage)
- Python 3.7+ (for Python bindings)
## ๐ ๏ธ Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd zkp-rust-client
```
2. Build the project:
```bash
cargo build --release
```
## ๐ WebAssembly (WASM) Build
This project supports WebAssembly compilation for use in web browsers and Node.js environments.
### Prerequisites for WASM
- [wasm-pack](https://rustwasm.github.io/wasm-pack/) (will be installed automatically if missing)
- Modern web browser with WebAssembly support (for web usage)
- Node.js (for Node.js usage)
### Building WASM Packages
Run the build script to generate both web and Node.js WASM packages:
```bash
./build-wasm.sh
```
This will:
- Install `wasm-pack` if not already installed
- Build a web-compatible WASM package in `pkg-web/`
- Build a Node.js-compatible WASM package in `pkg-node/`
- Optimize the WASM binaries for performance
### Manual WASM Build
Alternatively, you can build WASM packages manually:
```bash
# Build for web browsers
wasm-pack build --target web --out-dir pkg-web
# Build for Node.js
wasm-pack build --target nodejs --out-dir pkg-node
```
### Using WASM in Web Applications
The generated `pkg-web/` package can be used in web applications:
```javascript
import init, { WasmCompatibleProver } from './pkg-web/zkp_rust_client.js';
async function runZKP() {
await init();
const prover = new WasmCompatibleProver();
// Use the prover for ZKP operations
}
```
### Using WASM in Node.js
The generated `pkg-node/` package can be used in Node.js applications:
```javascript
const { WasmCompatibleProver } = require('./pkg-node/zkp_rust_client.js');
const prover = new WasmCompatibleProver();
// Use the prover for ZKP operations
```
## ๐ Python Bindings
This project supports native Python integration using PyO3 for high-performance ZKP operations.
### ๐ฆ PyPI Installation
The package is available on PyPI:
```bash
pip install zkp-rust-client
```
```python
import zkp_rust_client
# Create a prover
prover = zkp_rust_client.PyZKProver()
# Generate a proof
result = prover.generate_proof_only(42, 13)
print(f"Proof generated in {result.generation_time_ms()}ms")
```
### Prerequisites for Python
- Python 3.7+
- [maturin](https://github.com/PyO3/maturin) (will be installed automatically if missing)
- Rust toolchain (for compilation)
### Building Python Package
Run the build script to generate the Python wheel:
```bash
./build-python.sh
```
This will:
- Install `maturin` if not already installed
- Build a Python wheel in `target/wheels/`
- Optimize the binary for performance
### Manual Python Build
Alternatively, you can build the Python package manually:
```bash
# Install maturin
pip install maturin
# Build wheel
maturin build --release
# Or develop mode (for development)
maturin develop --release
```
### Installing the Python Package
After building, install the wheel:
```bash
pip install target/wheels/zkp_rust_client-*.whl
```
### Using Python Bindings
The Python package provides the same functionality as the WASM version:
```python
import zkp_rust_client
# Create a prover
prover = zkp_rust_client.PyZKProver()
# Generate a proof
result = prover.generate_proof_only(42, 13)
print(f"Proof generated in {result.generation_time_ms()}ms")
print(f"Public inputs: start={result.public_input_start()}, result={result.public_input_result()}")
# Verify the proof
verification = prover.verify_proof_only(result.proof_data(), 42, 55)
print(f"Proof valid: {verification.is_valid()}")
# Run benchmarks
benchmark = prover.benchmark_generation_only(100)
print(f"Generated {benchmark.successful_proofs()}/{benchmark.total_proofs()} proofs")
print(f"Average time: {benchmark.average_proof_time_ms()}ms per proof")
```
### Standalone Functions
You can also use standalone functions:
```python
import zkp_rust_client
# Generate proof
result = zkp_rust_client.generate_zkp_proof_only(10, 5)
# Verify computation
is_valid = zkp_rust_client.verify_computation(10, 5, 15)
# Run benchmark
benchmark = zkp_rust_client.run_generation_benchmark(50)
# Get library info
info = zkp_rust_client.get_library_info()
```
### Python Example
Run the complete Python example:
```bash
python examples/python_example.py
```
## ๐ฏ Usage
### Basic Example
Run the main demo to see a simple ZKP in action:
```bash
cargo run --bin main --release
```
This will:
- Set up the Groth16 proving system
- Generate a proof for `42 + 13 = 55`
- Verify the proof without revealing the secret increment value
- Display proof size and timing information
### Benchmarking
Run comprehensive benchmarks to test performance:
```bash
cargo run --release --bin benchmark
```
### Testing
```bash
cargo test --release
```
The benchmark suite includes:
- **Basic Benchmark**: Single proof generation and verification
- **Scale Benchmark**: Multiple proofs with timing analysis
- **Complexity Benchmark**: Different input sizes and complexity levels
- **Stress Test**: Rapid-fire proof generation
- **Memory Benchmark**: Proof size and memory usage analysis
### Library Usage
Use the library in your own projects:
```rust
use zkp_rust_client::SimpleAddProver;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize the prover
let prover = SimpleAddProver::new()?;
// Generate a proof
let proof_result = prover.generate_proof(10, 5)?;
// Verify the proof
let verification_result = prover.verify_proof(
&proof_result.proof,
&proof_result.public_inputs
)?;
if verification_result.is_valid {
println!("Proof is valid!");
}
Ok(())
}
```
## ๐๏ธ Architecture
### Core Components
- **`AdditionCircuit`**: R1CS constraint system for addition operations
- **`SimpleAddProver`**: Main prover struct with setup, proof generation, and verification
- **`ProofResult`**: Contains proof, public inputs, and timing information
- **`VerificationResult`**: Contains validity status and verification timing
- **`ProofStats`**: Statistical analysis for benchmarking
### Circuit Design
The addition circuit implements the constraint:
```
start + increments = result
```
Where:
- **Public inputs**: `start` and `result`
- **Private witness**: `increments`
- **Zero-knowledge property**: The verifier learns the computation was correct without learning the secret `increments` value
## ๐ Performance
Typical performance metrics (on modern hardware):
- **Setup time**: ~2-5 seconds (one-time trusted setup)
- **Proof generation**: ~50-200ms per proof
- **Proof verification**: ~1-10ms per proof
- **Proof size**: ~200-300 bytes
- **Memory usage**: ~1-2MB per proof
## ๐งช Testing
Run the test suite:
```bash
cargo test
```
Tests include:
- Basic proof generation and verification
- Edge cases (zero increments, large numbers)
- Performance regression tests
## ๐ Project Structure
```
zkp-rust-client/
โโโ src/
โ โโโ lib.rs # Core library implementation
โ โโโ main.rs # Demo binary
โ โโโ benchmark.rs # Benchmarking suite
โ โโโ wasm.rs # WASM-compatible interface
โ โโโ python.rs # Python-compatible interface
โ โโโ main_backup.rs # Backup of original implementation
โโโ examples/
โ โโโ python_example.py # Python usage example
โโโ pkg-web/ # WebAssembly package for browsers
โโโ pkg-node/ # WebAssembly package for Node.js
โโโ build-wasm.sh # WASM build script
โโโ build-python.sh # Python build script
โโโ Cargo.toml # Project dependencies
โโโ Cargo.lock # Dependency lock file
โโโ .gitignore # Git ignore rules
โโโ README.md # This file
```
## ๐ง Dependencies
- **ark-bls12-381**: BLS12-381 elliptic curve implementation
- **ark-groth16**: Groth16 zk-SNARK implementation
- **ark-relations**: R1CS constraint system
- **ark-snark**: SNARK trait definitions
- **ark-ff**: Finite field arithmetic
- **ark-std**: Standard library extensions
- **rand**: Random number generation
- **pyo3**: Python bindings (for Python builds)
- **serde**: Serialization support
- **wasm-bindgen**: WebAssembly bindings (for WASM builds)
## ๐ Security Considerations
- **Trusted Setup**: The current implementation uses a circuit-specific trusted setup. In production, you would use a universal trusted setup or a trusted setup ceremony.
- **Cryptographic Assumptions**: Relies on the security of the BLS12-381 curve and Groth16 protocol.
- **Random Number Generation**: Uses cryptographically secure random number generation.
- **Proof Verification**: Always verify proofs before accepting them as valid.
## ๐ง Limitations
- **Simple Circuit**: Currently only implements addition. More complex circuits would require additional development.
- **No Recursion**: Does not support recursive proof composition.
- **Single Curve**: Only supports BLS12-381. Other curves would require modifications.
- **No Optimizations**: Basic implementation without advanced optimizations like batch verification.
## ๐ค Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
- [Arkworks](https://github.com/arkworks-rs) for the excellent cryptographic library
- The ZKP community for educational resources and examples
- Rust ecosystem for providing excellent tooling and documentation
## ๐ Further Reading
- [Groth16 Paper](https://eprint.iacr.org/2016/260)
- [Arkworks Documentation](https://docs.rs/arkworks)
- [Zero-Knowledge Proofs: A Primer](https://zkproof.org/)
- [Rust Book](https://doc.rust-lang.org/book/)
## ๐ Troubleshooting
### Common Issues
1. **Compilation Errors**: Ensure you're using Rust 1.70+ and have all dependencies installed
2. **Memory Issues**: Large proofs may require more memory. Try running with `--release` flag
3. **Performance Issues**: Use `--release` for optimal performance
4. **Dependency Conflicts**: Try `cargo clean` and `cargo update`
### Getting Help
- Check the [Issues](../../issues) page for known problems
- Create a new issue for bugs or feature requests
- Review the test cases for usage examples
---
**Note**: This is a demonstration project for educational purposes. For production use, additional security audits and optimizations would be required.
Raw data
{
"_id": null,
"home_page": null,
"name": "zkp-rust-client",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Your Name <your.email@example.com>",
"keywords": "zkp, zero-knowledge-proofs, groth16, cryptography, blockchain",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": null,
"platform": null,
"description": "# ZKP Rust Client\n\nA Rust implementation of Zero-Knowledge Proofs (ZKP) using the Groth16 proving system and the Arkworks cryptographic library. This project demonstrates how to create, verify, and benchmark zero-knowledge proofs for simple arithmetic operations.\n\n## \ud83d\ude80 Features\n\n- **Groth16 Proving System**: Implements the Groth16 zk-SNARK protocol\n- **Simple Addition Circuit**: Demonstrates ZKP for basic arithmetic operations\n- **WebAssembly Support**: Cross-platform WASM compilation for web and Node.js\n- **Python Bindings**: Native Python integration with PyO3\n- **Comprehensive Benchmarking**: Performance testing and analysis tools\n- **Memory Usage Analysis**: Proof size and memory consumption metrics\n- **Stress Testing**: Rapid-fire proof generation and verification\n- **Modular Architecture**: Clean separation of concerns with library and binary components\n\n## \ud83d\udccb Prerequisites\n\n- Rust 1.70+ (stable channel)\n- Cargo package manager\n- [wasm-pack](https://rustwasm.github.io/wasm-pack/) (for WASM builds, installed automatically)\n- [maturin](https://github.com/PyO3/maturin) (for Python builds, installed automatically)\n- Modern web browser with WebAssembly support (for web usage)\n- Node.js (for Node.js WASM usage)\n- Python 3.7+ (for Python bindings)\n\n## \ud83d\udee0\ufe0f Installation\n\n1. Clone the repository:\n\n```bash\ngit clone <repository-url>\ncd zkp-rust-client\n```\n\n2. Build the project:\n\n```bash\ncargo build --release\n```\n\n## \ud83c\udf10 WebAssembly (WASM) Build\n\nThis project supports WebAssembly compilation for use in web browsers and Node.js environments.\n\n### Prerequisites for WASM\n\n- [wasm-pack](https://rustwasm.github.io/wasm-pack/) (will be installed automatically if missing)\n- Modern web browser with WebAssembly support (for web usage)\n- Node.js (for Node.js usage)\n\n### Building WASM Packages\n\nRun the build script to generate both web and Node.js WASM packages:\n\n```bash\n./build-wasm.sh\n```\n\nThis will:\n\n- Install `wasm-pack` if not already installed\n- Build a web-compatible WASM package in `pkg-web/`\n- Build a Node.js-compatible WASM package in `pkg-node/`\n- Optimize the WASM binaries for performance\n\n### Manual WASM Build\n\nAlternatively, you can build WASM packages manually:\n\n```bash\n# Build for web browsers\nwasm-pack build --target web --out-dir pkg-web\n\n# Build for Node.js\nwasm-pack build --target nodejs --out-dir pkg-node\n```\n\n### Using WASM in Web Applications\n\nThe generated `pkg-web/` package can be used in web applications:\n\n```javascript\nimport init, { WasmCompatibleProver } from './pkg-web/zkp_rust_client.js';\n\nasync function runZKP() {\n await init();\n const prover = new WasmCompatibleProver();\n // Use the prover for ZKP operations\n}\n```\n\n### Using WASM in Node.js\n\nThe generated `pkg-node/` package can be used in Node.js applications:\n\n```javascript\nconst { WasmCompatibleProver } = require('./pkg-node/zkp_rust_client.js');\n\nconst prover = new WasmCompatibleProver();\n// Use the prover for ZKP operations\n```\n\n## \ud83d\udc0d Python Bindings\n\nThis project supports native Python integration using PyO3 for high-performance ZKP operations.\n\n### \ud83d\udce6 PyPI Installation\n\nThe package is available on PyPI:\n\n```bash\npip install zkp-rust-client\n```\n\n```python\nimport zkp_rust_client\n\n# Create a prover\nprover = zkp_rust_client.PyZKProver()\n\n# Generate a proof\nresult = prover.generate_proof_only(42, 13)\nprint(f\"Proof generated in {result.generation_time_ms()}ms\")\n```\n\n### Prerequisites for Python\n\n- Python 3.7+\n- [maturin](https://github.com/PyO3/maturin) (will be installed automatically if missing)\n- Rust toolchain (for compilation)\n\n### Building Python Package\n\nRun the build script to generate the Python wheel:\n\n```bash\n./build-python.sh\n```\n\nThis will:\n\n- Install `maturin` if not already installed\n- Build a Python wheel in `target/wheels/`\n- Optimize the binary for performance\n\n### Manual Python Build\n\nAlternatively, you can build the Python package manually:\n\n```bash\n# Install maturin\npip install maturin\n\n# Build wheel\nmaturin build --release\n\n# Or develop mode (for development)\nmaturin develop --release\n```\n\n### Installing the Python Package\n\nAfter building, install the wheel:\n\n```bash\npip install target/wheels/zkp_rust_client-*.whl\n```\n\n### Using Python Bindings\n\nThe Python package provides the same functionality as the WASM version:\n\n```python\nimport zkp_rust_client\n\n# Create a prover\nprover = zkp_rust_client.PyZKProver()\n\n# Generate a proof\nresult = prover.generate_proof_only(42, 13)\nprint(f\"Proof generated in {result.generation_time_ms()}ms\")\nprint(f\"Public inputs: start={result.public_input_start()}, result={result.public_input_result()}\")\n\n# Verify the proof\nverification = prover.verify_proof_only(result.proof_data(), 42, 55)\nprint(f\"Proof valid: {verification.is_valid()}\")\n\n# Run benchmarks\nbenchmark = prover.benchmark_generation_only(100)\nprint(f\"Generated {benchmark.successful_proofs()}/{benchmark.total_proofs()} proofs\")\nprint(f\"Average time: {benchmark.average_proof_time_ms()}ms per proof\")\n```\n\n### Standalone Functions\n\nYou can also use standalone functions:\n\n```python\nimport zkp_rust_client\n\n# Generate proof\nresult = zkp_rust_client.generate_zkp_proof_only(10, 5)\n\n# Verify computation\nis_valid = zkp_rust_client.verify_computation(10, 5, 15)\n\n# Run benchmark\nbenchmark = zkp_rust_client.run_generation_benchmark(50)\n\n# Get library info\ninfo = zkp_rust_client.get_library_info()\n```\n\n### Python Example\n\nRun the complete Python example:\n\n```bash\npython examples/python_example.py\n```\n\n## \ud83c\udfaf Usage\n\n### Basic Example\n\nRun the main demo to see a simple ZKP in action:\n\n```bash\ncargo run --bin main --release\n```\n\nThis will:\n\n- Set up the Groth16 proving system\n- Generate a proof for `42 + 13 = 55`\n- Verify the proof without revealing the secret increment value\n- Display proof size and timing information\n\n### Benchmarking\n\nRun comprehensive benchmarks to test performance:\n\n```bash\ncargo run --release --bin benchmark\n```\n\n### Testing\n\n```bash\ncargo test --release\n```\n\nThe benchmark suite includes:\n\n- **Basic Benchmark**: Single proof generation and verification\n- **Scale Benchmark**: Multiple proofs with timing analysis\n- **Complexity Benchmark**: Different input sizes and complexity levels\n- **Stress Test**: Rapid-fire proof generation\n- **Memory Benchmark**: Proof size and memory usage analysis\n\n### Library Usage\n\nUse the library in your own projects:\n\n```rust\nuse zkp_rust_client::SimpleAddProver;\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n // Initialize the prover\n let prover = SimpleAddProver::new()?;\n \n // Generate a proof\n let proof_result = prover.generate_proof(10, 5)?;\n \n // Verify the proof\n let verification_result = prover.verify_proof(\n &proof_result.proof, \n &proof_result.public_inputs\n )?;\n \n if verification_result.is_valid {\n println!(\"Proof is valid!\");\n }\n \n Ok(())\n}\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\n### Core Components\n\n- **`AdditionCircuit`**: R1CS constraint system for addition operations\n- **`SimpleAddProver`**: Main prover struct with setup, proof generation, and verification\n- **`ProofResult`**: Contains proof, public inputs, and timing information\n- **`VerificationResult`**: Contains validity status and verification timing\n- **`ProofStats`**: Statistical analysis for benchmarking\n\n### Circuit Design\n\nThe addition circuit implements the constraint:\n\n```\nstart + increments = result\n```\n\nWhere:\n\n- **Public inputs**: `start` and `result`\n- **Private witness**: `increments`\n- **Zero-knowledge property**: The verifier learns the computation was correct without learning the secret `increments` value\n\n## \ud83d\udcca Performance\n\nTypical performance metrics (on modern hardware):\n\n- **Setup time**: ~2-5 seconds (one-time trusted setup)\n- **Proof generation**: ~50-200ms per proof\n- **Proof verification**: ~1-10ms per proof\n- **Proof size**: ~200-300 bytes\n- **Memory usage**: ~1-2MB per proof\n\n## \ud83e\uddea Testing\n\nRun the test suite:\n\n```bash\ncargo test\n```\n\nTests include:\n\n- Basic proof generation and verification\n- Edge cases (zero increments, large numbers)\n- Performance regression tests\n\n## \ud83d\udcc1 Project Structure\n\n```\nzkp-rust-client/\n\u251c\u2500\u2500 src/\n\u2502 \u251c\u2500\u2500 lib.rs # Core library implementation\n\u2502 \u251c\u2500\u2500 main.rs # Demo binary\n\u2502 \u251c\u2500\u2500 benchmark.rs # Benchmarking suite\n\u2502 \u251c\u2500\u2500 wasm.rs # WASM-compatible interface\n\u2502 \u251c\u2500\u2500 python.rs # Python-compatible interface\n\u2502 \u2514\u2500\u2500 main_backup.rs # Backup of original implementation\n\u251c\u2500\u2500 examples/\n\u2502 \u2514\u2500\u2500 python_example.py # Python usage example\n\u251c\u2500\u2500 pkg-web/ # WebAssembly package for browsers\n\u251c\u2500\u2500 pkg-node/ # WebAssembly package for Node.js\n\u251c\u2500\u2500 build-wasm.sh # WASM build script\n\u251c\u2500\u2500 build-python.sh # Python build script\n\u251c\u2500\u2500 Cargo.toml # Project dependencies\n\u251c\u2500\u2500 Cargo.lock # Dependency lock file\n\u251c\u2500\u2500 .gitignore # Git ignore rules\n\u2514\u2500\u2500 README.md # This file\n```\n\n## \ud83d\udd27 Dependencies\n\n- **ark-bls12-381**: BLS12-381 elliptic curve implementation\n- **ark-groth16**: Groth16 zk-SNARK implementation\n- **ark-relations**: R1CS constraint system\n- **ark-snark**: SNARK trait definitions\n- **ark-ff**: Finite field arithmetic\n- **ark-std**: Standard library extensions\n- **rand**: Random number generation\n- **pyo3**: Python bindings (for Python builds)\n- **serde**: Serialization support\n- **wasm-bindgen**: WebAssembly bindings (for WASM builds)\n\n## \ud83d\udd10 Security Considerations\n\n- **Trusted Setup**: The current implementation uses a circuit-specific trusted setup. In production, you would use a universal trusted setup or a trusted setup ceremony.\n- **Cryptographic Assumptions**: Relies on the security of the BLS12-381 curve and Groth16 protocol.\n- **Random Number Generation**: Uses cryptographically secure random number generation.\n- **Proof Verification**: Always verify proofs before accepting them as valid.\n\n## \ud83d\udea7 Limitations\n\n- **Simple Circuit**: Currently only implements addition. More complex circuits would require additional development.\n- **No Recursion**: Does not support recursive proof composition.\n- **Single Curve**: Only supports BLS12-381. Other curves would require modifications.\n- **No Optimizations**: Basic implementation without advanced optimizations like batch verification.\n\n## \ud83e\udd1d Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- [Arkworks](https://github.com/arkworks-rs) for the excellent cryptographic library\n- The ZKP community for educational resources and examples\n- Rust ecosystem for providing excellent tooling and documentation\n\n## \ud83d\udcda Further Reading\n\n- [Groth16 Paper](https://eprint.iacr.org/2016/260)\n- [Arkworks Documentation](https://docs.rs/arkworks)\n- [Zero-Knowledge Proofs: A Primer](https://zkproof.org/)\n- [Rust Book](https://doc.rust-lang.org/book/)\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n1. **Compilation Errors**: Ensure you're using Rust 1.70+ and have all dependencies installed\n2. **Memory Issues**: Large proofs may require more memory. Try running with `--release` flag\n3. **Performance Issues**: Use `--release` for optimal performance\n4. **Dependency Conflicts**: Try `cargo clean` and `cargo update`\n\n### Getting Help\n\n- Check the [Issues](../../issues) page for known problems\n- Create a new issue for bugs or feature requests\n- Review the test cases for usage examples\n\n---\n\n**Note**: This is a demonstration project for educational purposes. For production use, additional security audits and optimizations would be required.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Rust implementation of Zero-Knowledge Proofs (ZKP) using the Groth16 proving system",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/Metaway-Holdings/ark-zkp/issues",
"Documentation": "https://github.com/Metaway-Holdings/ark-zkp#readme",
"Homepage": "https://github.com/Metaway-Holdings/ark-zkp",
"Repository": "https://github.com/Metaway-Holdings/ark-zkp"
},
"split_keywords": [
"zkp",
" zero-knowledge-proofs",
" groth16",
" cryptography",
" blockchain"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0c9fed029c907720b53465e1de7998367b4330e1cc4096e0e986c1c5527e309a",
"md5": "c14ac14af89f1c568c8b54bc3024a6a8",
"sha256": "7d7fd63e50c3ecc4752328eea9256bc909d21bef9aaf9d00f8b638e4f9cb0b78"
},
"downloads": -1,
"filename": "zkp_rust_client-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "c14ac14af89f1c568c8b54bc3024a6a8",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.7",
"size": 722068,
"upload_time": "2025-08-08T02:29:15",
"upload_time_iso_8601": "2025-08-08T02:29:15.031990Z",
"url": "https://files.pythonhosted.org/packages/0c/9f/ed029c907720b53465e1de7998367b4330e1cc4096e0e986c1c5527e309a/zkp_rust_client-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-08 02:29:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Metaway-Holdings",
"github_project": "ark-zkp",
"github_not_found": true,
"lcname": "zkp-rust-client"
}