Skip to content

luishsr/provable-vm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Provable VM - An Open Source Virtual Machine with ZK-Proof Integration

Overview

Provable VM is an open-source Rust-based virtual machine designed to run a set of instructions while providing cryptographic zero-knowledge proof (ZKP) capabilities. This project leverages advanced ZK-proof libraries like ark-groth16 and Bls12-381 to ensure the integrity and privacy of computational execution. The VM integrates a constraint system that enforces state correctness, making it ideal for secure and verifiable computational tasks.

Key Features:

  • Fully functional virtual machine (VM) with a stack-based instruction set.
  • Integrated zero-knowledge proof system using arkworks.
  • Ability to verify program execution using Groth16 proofs.
  • Cryptographic trace commitment for program execution.
  • Modularized codebase for ease of understanding and contribution.
  • Comprehensive error handling for robust performance.

Getting Started:

Prerequisites:

Installation:

  1. Clone the repository: git clone https://github.com/luishsr/provable-vm.git
  2. Navigate to the project directory: cd provable-vm
  3. Build the project: cargo build
  4. Run tests: cargo test

Usage: To run a program using Provable VM:

  1. Create a program file (e.g., program.prov) with instructions:

  2. Execute the program: cargo run -- program.prov

  3. Generate proofs: Use the integrated proof-generation features to create and verify proofs for program execution.

Directory Structure:

  • src/
    • #main.rs: Entry point of the application.
    • vm.rs: Core virtual machine logic.
    • zk_proof.rs: ZK proof generation and verification logic.
    • program_loader.rs: Utilities to load and parse program files.
    • utils.rs: Shared utilities for the project.
  • examples/: Example program files for the VM.
  • README.md: Documentation for the project.

Contributing:

Contributions are welcome! Please follow the steps below:

  1. Fork the repository on GitHub.
  2. Create a new feature branch: git checkout -b feature-branch-name
  3. Commit your changes: git commit -m "Description of changes"
  4. Push the branch: git push origin feature-branch-name
  5. Submit a pull request.

Credits

This project was created and maintained by Luis Soares. Contributions are welcome!

License:

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgements:

Provable VM utilizes the arkworks framework for cryptographic functionalities and the Rust language for high performance. Special thanks to the open-source community for their contributions to cryptographic research and libraries.

The implementation was inspired by the TinyRAM

Contact:

For questions or support, reach out to the repository maintainers via GitHub issues.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages