A fast zero-knowledge proof friendly Move language runtime environment.

Overview

zkMove Lite

zkMove Lite is a lightweight zero-knowledge proof friendly Move language virtual machine. Move bytecode is automatically "compiled" into circuit by the virtual machine. The circuit is application specific, and we call it a Move circuit.

move-circuit

Contributing

First off, thanks for taking the time to contribute! Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please reading our Contributing Guide for details.

License

zkMove is licensed as Apache 2.0.

Comments
  • [New Feature] a circuit for sparse merkle tree

    [New Feature] a circuit for sparse merkle tree

    1. A native implementation of the sparse merkle tree data structure
    • includes the Path and SparseMerkleTree structs
    • the values stored at each nodes are prime field elements (pasta, bn256)
    • use the poseidon hash function
    1. Construct the circuit for the sparse merkle tree
    • use halo2
    enhancement help wanted 
    opened by guangyuz 2
  • clippy warning message eliminate(phase 2)

    clippy warning message eliminate(phase 2)

    % cargo fmt -- --check % cargo build Finished dev [unoptimized + debuginfo] target(s) in 0.69s % cargo clippy --all-targets -- -D warnings Finished dev [unoptimized + debuginfo] target(s) in 0.34s

    opened by luxebeng 0
  • clippy warning eliminate

    clippy warning eliminate

    Below lint entry is discarded from "vm/src/lib.rs".

    #![allow(clippy::clone_on_copy)] #![allow(clippy::len_without_is_empty)] #![allow(clippy::manual_map)] #![allow(clippy::needless_borrow)] #![allow(clippy::new_without_default)] #![allow(clippy::redundant_closure)] #![allow(clippy::single_match)]

    Test result:

    % cargo clippy --all-targets -- -D warnings Checking vm v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/vm) Checking functional-tests v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/functional-tests) Checking zkmove-cli v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/cli) Finished dev [unoptimized + debuginfo] target(s) in 1.83s % cargo build Compiling vm v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/vm) Compiling functional-tests v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/functional-tests) Compiling zkmove-cli v0.1.0 (/Users/benliu/work/exercise/zkmove-lite/cli) Finished dev [unoptimized + debuginfo] target(s) in 13.18s

    opened by luxebeng 0
  • handle arithmetic overflow

    handle arithmetic overflow

    add constraints to ensure below cases never happen: x + y > max x - y < 0 x * y ... x / y ... x % y ...

    add constraints to ensure below output to be 1 or 0: x == y x != y x < y x and y x or y !x

    enhancement 
    opened by guangyuz 0
  • support bytecode 'lt'

    support bytecode 'lt'

    Perform a "less than" operation of the 2 uint at the top of the stack and pushes the result on the stack.

    Stack transition use u64 as example: ..., u64_value(1), u64_value(2) -> ..., bool_value

    Add constraints to let 'Lt' is in compliance with the spec: let lhs = value(1); let rhs = value(2); let out = result;

    constraint#1 out is 0 or 1; constraint#2 if lhs >= rhs, then out = 0, else out = 1;

    enhancement 
    opened by guangyuz 0
The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Knowledge (ZK) proofs.

zk_whitelist: A Zero Knowledge Whitelist Tool The Zero Knowledge Whitelist Tool is a powerful utility for managing an address whitelist using Zero-Kno

Nikos Koumbakis 4 Nov 21, 2023
OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.

OpenZKP OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems. Overview Project current implements ?? the Stark protocol (see its readme

0x 529 Jan 5, 2023
Implementation of zero-knowledge proof circuits for Tendermint.

Tendermint X Implementation of zero-knowledge proof circuits for Tendermint. Overview Tendermint X's core contract is TendermintX, which stores the he

Succinct 3 Nov 8, 2023
RISC Zero is a zero-knowledge verifiable general computing platform based on zk-STARKs and the RISC-V microarchitecture.

RISC Zero WARNING: This software is still experimental, we do not recommend it for production use (see Security section). RISC Zero is a zero-knowledg

RISC Zero 653 Jan 3, 2023
Zero-Knowledge Assembly language and compiler

zkAsm A Zero-Knowledge circuit assembly language, designed to represent Zero-Knowledge circuits in a compressed format, to be stored on blockchains. I

null 1 Dec 30, 2021
Noir is a domain specific language for zero knowledge proofs

The Noir Programming Language Noir is a Domain Specific Language for SNARK proving systems. It has been designed to use any ACIR compatible proving sy

null 404 Jan 1, 2023
STARK - SNARK recursive zero knowledge proofs, combinaison of the Winterfell library and the Circom language

STARK - SNARK recursive proofs The point of this library is to combine the SNARK and STARK computation arguments of knowledge, namely the Winterfell l

Victor Colomb 68 Dec 5, 2022
Composable proof transcripts for public-coin arguments of knowledge

Merlin: composable proof transcripts for public-coin arguments of knowledge Merlin is a STROBE-based transcript construction for zero-knowledge proofs

dalek cryptography 99 Dec 22, 2022
A Software Development Kit (SDK) for Zero-Knowledge Transactions

Aleo SDK The Aleo SDK is a developer framework to make it simple to create a new account, craft a transaction, and broadcast it to the network. Table

Aleo 270 Jan 5, 2023
Zerocaf: A library built for EC operations in Zero Knowledge.

Dusk-Zerocaf WARNING: WIP Repo. Fast, efficient and bulletproof-friendly cryptographic operations. This repository contains an implementation of the S

Dusk Network 50 Oct 31, 2022
Vector OLE and zero-knowledge for Z2k.

Mozzarella Benchmarking Code This repository contains the code developed for the benchmarking experiments in our paper: "Moz $\mathbb{Z}_{2^k}$ arella

null 7 Dec 20, 2022
Safeguard your financial privacy with zero-knowledge proofs.

Spinner The Spinner project (https://spinner.cash) takes a privacy first approach to protect users crypto assets. It is a layer-2 protocol built on th

Spinner 21 Dec 28, 2022
Zero Knowledge Light Client Implementation by Zpoken team.

zkp for chain state Prerecusites This project requires using the nightly Rust toolchain, which can be used by default in this way: rustup default nigh

Zpoken 40 Mar 6, 2023
Spartan2: High-speed zero-knowledge SNARKs.

Spartan2: High-speed zero-knowledge SNARKs. Spartan is a high-speed zkSNARK, where a zkSNARK is type cryptographic proof system that enables a prover

Microsoft 7 Jul 28, 2023
JS Runtime proof-of-concept for interactions with AvdanOS

Important: we are migrating to a new Discord server .gg/avdanos What is this ? This repo aims to be a JavaScript environment where AvdanOS extensions

AvdanOS 4 Nov 26, 2022
Move VM for the Cosmos SDK

NovaVM Move VM for the Cosmos SDK. It allows you to compile, initialize and execute Move smart contracts from Go applications, in particular from x/mo

Kernel Labs 6 Oct 25, 2022
Fast way to test a Substrate Runtime via RPC (eg. PolkadotJS UI).

runstrate Fast way to test a Substrate Runtime via RPC (eg. PolkadotJS UI). Build & Run git clone https://github.com/arturgontijo/runstrate cd runstra

Artur Gontijo 3 May 9, 2023
This is my home environment setup for monitoring temperature and humidity

Home EnViroNment Motivation This is my IoT temperature and humidity monitoring solution for where i live. I found it cheaper to go buy sensors and hoo

Fredrik 1 Jan 5, 2022
Compiler development environment.

compiler-dev 北大编译实践教学用编译器开发环境 (Compiler Development Environment). 该仓库的内容将被打包为 Docker 镜像, 所以不建议直接使用该仓库, 具体使用方法见使用方法一节. 使用方法 WIP. 镜像中包含的内容 必要的工具: git, f

PKU Compiler Course 2 Feb 26, 2022