SilverPoker / zkmove

A zero-knowledge proof friendly Move language runtime environment.

Home Page:https://www.zkmove.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Website

zkMove

zkMove is a zero-knowledge proof friendly Move language runtime environment. We can build scaling and privacy solution based on it.

Overview

A zero-knowledge proof-friendly bytecode virtual machine, to improve programmability and composability of zk-proof application.

Powered by Move language and Halo2. As a new generation of programming language for digital assets, Move guarantees secutiry of assets at the language level. Halo2 uses Plonkish arithmetization, fitable for constructing complicated ciruit. No trusted setup required

No compromise on performance while pursuing Turing completeness. Two types of circuits are combined: VM circuits to handle conditional branches and loops, and Move circuits, which directly compiled from bytecodes, offer smaller proof size and shorter proving time.

Example

We have prepared a demo with some examples to demonstrate the functionality of the zkMove virtual machine.

For example, the following command will first compile add.move into bytecode, execute the bytecode to generate an execution trace, then build the circuit and setup the proving/verifying key, and then generate a zkp for the execution with the proving key and finally verify the proof with the verifying key.

bin/zkmove run -s examples/scripts/add.move

Source code

Move circuit: https://github.com/young-rocks/zkmove-lite

VM circuit: we plan to make the source code available later this year

License

zkMove is licensed as Apache 2.0.

About

A zero-knowledge proof friendly Move language runtime environment.

https://www.zkmove.net

License:Apache License 2.0