Skip to content

sfyll/InvolutionZKP

Repository files navigation

InvolutionZKP

An example of a zero-knowledge encryption use case whereby computations get delegated to the server and the client just has to verify the received proof.

Presently, the server flips a PNG image upside down upon the user's request and sends a proof of Involution that can be validated within the browser.

Installation

To set up the InvolutionZKP project, you'll need to have the following tools installed:

  • Node.js
  • NPM (Node Package Manager)
  • Rust
  • Circom

Quick Start

  1. Clone the repository and navigate to the project root directory:
git clone https://github.com/SFYLL/InvolutionZKP.git
cd InvolutionZKP
  1. Install the required dependencies:
npm install
  1. Run the project
./run.sh

Contributing

Pull requests are welcome. Please make sure to update tests as appropriate. If you want to play around with this project, here are some leads:

  • Optimize the circuits so that it can run on higher definition PNGs;
  • Increase the circuit modularity, allowing users to define their own involutive functions;
  • Implement recursive ZK-proofs. That way, as you bundle involutive functions together the complexity of reverse engineering each function grows exponentially.

About

Proof of PNG Involution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published