Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zkMIPS/zkm
The universal zkVM empowering Ethereum as the Global Settlement Layer
https://github.com/zkMIPS/zkm
mips verifiable-computing zkp zkvm
Last synced: 15 days ago
JSON representation
The universal zkVM empowering Ethereum as the Global Settlement Layer
- Host: GitHub
- URL: https://github.com/zkMIPS/zkm
- Owner: zkMIPS
- License: mit
- Created: 2023-10-07T05:45:34.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-02T02:54:16.000Z (about 1 month ago)
- Last Synced: 2024-11-10T09:06:21.891Z (about 1 month ago)
- Topics: mips, verifiable-computing, zkp, zkvm
- Language: Rust
- Homepage: https://zkm.io
- Size: 31.8 MB
- Stars: 101
- Watchers: 4
- Forks: 50
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-zkvm - zkm
README
# Table of Contents
- [Table of Contents](#table-of-contents)
- [1. Overview](#1-overview)
- [2. Build Guide](#2-build-guide)
- [2.1 Local Proving](#21--local-proving)
- [Requirements:](#requirements)
- [2.1.1 Local Proving Guide](#211-local-proving-guide)
- [2.2 Network Proving](#22-network-proving)
- [Requirements](#requirements-1)
- [2.2.1 Network Proving Guide](#221-network-proving-guide)
- [3. ZKM Project Template](#3-zkm-project-template)
- [4. FAQs](#4-faqs)
- [1. My node is unable to compile.](#1-my-node-is-unable-to-compile)
- [5. Contributors](#5-contributors)
- [General guidance for your PR](#general-guidance-for-your-pr)
- [6. Licenses](#6-licenses)
- [7. Security](#7-security)
# 1. Overview
ZKM is a general verifiable computing infrastructure based on [Plonky2](https://github.com/0xPolygonZero/plonky2) and the [MIPS microarchitecture](https://en.wikipedia.org/wiki/MIPS_architecture), empowering Ethereum as the Global Settlement Layer. The proof generation and verification guide can be found in the [docs](https://docs.zkm.io/guides/proof-generation-guide).
# 2. Build Guide
**ZKM can generate proofs for Go and Rust (guest) Programs.**There are two ways to prove the program:
- Use your local machine
- Use ZKM Proving network
## 2.1 Local Proving
### Requirements:
- [Go : 1.22.1](https://go.dev/dl)
- [Rust: 1.81.0-nightly](https://www.rust-lang.org/tools/install)
- Hardware: X86 CPU, 32 cores, 32G memory
- OS: Ubuntu22| Instructions Per Segment | RAM |
| ------------------ | --- |
| 32768 | 13G |
| 65536 | 19G |
| 262144 | 27G |Please note that in order to run an ZKM Prover that is **competitive**, the machine will need more than these requirements.
### 2.1.1 Local Proving Guide
An end-to-end example has been presented in [examples](https://github.com/zkMIPS/zkm/blob/main/prover/examples).
## 2.2 Network Proving
> [!NOTE]
> The proving network is demo at present. The production version is coming soon.
### Requirements
* CA certificate: ca.pem, ca.key
* Register in the https://www.zkm.io/apply (Let your public key be in the whitelist)
* Set up a local node for some blockchain(eg, sepolia)
### 2.2.1 Network Proving Guide
An end-to-end example has been presented in [examples](https://github.com/zkMIPS/zkm/blob/main/prover/examples).
# 3. ZKM Project Template
A project template to facilitate creating an end-to-end ZKM project which can generate the EVM-Compatible proof and the on chain verification contract.
[ZKM Project Template](https://github.com/zkMIPS/zkm-project-template/tree/main)
# 4. FAQs
### 1. My node is unable to compile.
- Ensure your machine has `Rust v1.66+` installed. Instructions to [install Rust can be found here.](https://www.rust-lang.org/tools/install)
- If large errors appear during compilation, try running `cargo clean`.
- Ensure `zkMIPS` is started using `./run-client.sh` or `./run-prover.sh`.
# 5. Contributors
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Any kind of external contributions are encouraged and welcomed!## General guidance for your PR
- The PR fixes a bug In the PR description, please clearly but briefly describe the bug, including how to reproduce, and the error/exception you got, and how your PR fixes the bugs.
- The PR implements a new featureIn the PR description, please clearly but briefly describe
1. what the feature does
2. the approach taken to implement it
3. All PRs for new features must include a suitable test suite.
4. The PR improves performanceTo help filter out false positives, the PR description for a performance improvement must clearly identify
1. the target bottleneck (only one per PR to avoid confusing things!)
2. how performance is measured
3. characteristics of the machine used (CPU, OS, #threads if appropriate) performance before and after the PR
# 6. Licenses
The ZKM is distributed under the terms of MIT license.
# 7. Security
This code has not yet been audited, and should not be used in any production systems.