zkp-rust-client


Namezkp-rust-client JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Rust implementation of Zero-Knowledge Proofs (ZKP) using the Groth16 proving system
upload_time2025-08-08 02:29:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords zkp zero-knowledge-proofs groth16 cryptography blockchain
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 1.15945s