{"id":13632565,"url":"https://github.com/o1-labs/proof-systems","last_synced_at":"2025-05-15T11:01:43.211Z","repository":{"id":37015892,"uuid":"226987753","full_name":"o1-labs/proof-systems","owner":"o1-labs","description":"The proof systems used by Mina","archived":false,"fork":false,"pushed_at":"2025-05-14T07:32:37.000Z","size":245517,"stargazers_count":440,"open_issues_count":212,"forks_count":119,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-05-14T07:48:12.455Z","etag":null,"topics":["bulletproofs","kimchi","plonk","recursive-zkps","zero-knowledge-proofs","zksnarks"],"latest_commit_sha":null,"homepage":"https://o1-labs.github.io/proof-systems/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/o1-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-09T23:27:48.000Z","updated_at":"2025-05-13T16:41:44.000Z","dependencies_parsed_at":"2023-12-30T23:21:54.759Z","dependency_job_id":"e691e738-26ff-4ba9-8705-755d7990da87","html_url":"https://github.com/o1-labs/proof-systems","commit_stats":{"total_commits":6297,"total_committers":69,"mean_commits":91.26086956521739,"dds":0.7459107511513419,"last_synced_commit":"ce5d6f6b38c2a17a583af39d2bba779624edf2a7"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o1-labs%2Fproof-systems","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o1-labs%2Fproof-systems/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o1-labs%2Fproof-systems/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/o1-labs%2Fproof-systems/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/o1-labs","download_url":"https://codeload.github.com/o1-labs/proof-systems/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328384,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bulletproofs","kimchi","plonk","recursive-zkps","zero-knowledge-proofs","zksnarks"],"created_at":"2024-08-01T22:03:07.003Z","updated_at":"2025-05-15T11:01:38.064Z","avatar_url":"https://github.com/o1-labs.png","language":"Rust","funding_links":[],"categories":["Rust","Web3 and ZKP Framework","others"],"sub_categories":[],"readme":"# Kimchi\n\n[![codecov](https://codecov.io/gh/o1-labs/proof-systems/graph/badge.svg?token=pl6W1FDfV0)](https://codecov.io/gh/o1-labs/proof-systems)\n\n[![CI](https://github.com/o1-labs/proof-systems/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/o1-labs/proof-systems/actions/workflows/ci.yml)\n[![CI nightly](https://github.com/o1-labs/proof-systems/actions/workflows/ci-nightly.yml/badge.svg?branch=master)](https://github.com/o1-labs/proof-systems/actions/workflows/ci-nightly.yml)\n[![GitHub page](https://github.com/o1-labs/proof-systems/actions/workflows/gh-page.yml/badge.svg?branch=master)](https://github.com/o1-labs/proof-systems/actions/workflows/gh-page.yml)\n[![o1vm CI](https://github.com/o1-labs/proof-systems/actions/workflows/o1vm-ci.yml/badge.svg?branch=master)](https://github.com/o1-labs/proof-systems/actions/workflows/o1vm-ci.yml)\n[![Saffron](https://github.com/o1-labs/proof-systems/actions/workflows/saffron.yml/badge.svg?branch=master)](https://github.com/o1-labs/proof-systems/actions/workflows/saffron.yml)\n\n[![dependency status](https://deps.rs/repo/github/o1-labs/proof-systems/status.svg?style=flat-square)](https://deps.rs/repo/github/o1-labs/proof-systems)\n\nThis repository contains **kimchi**, a general-purpose zero-knowledge proof system for proving the correct execution of programs.\n\nYou can read more about this project on the [Kimchi book](https://o1-labs.github.io/proof-systems), or for a lighter introduction in this [blogpost](https://minaprotocol.com/blog/kimchi-the-latest-update-to-minas-proof-system).\n\n[See here for the rust documentation](https://o1-labs.github.io/proof-systems/rustdoc).\n\n## User Warning\n\nThis project comes as is. We provide no guarantee of stability or support, as the crates closely follow the needs of the [Mina](\u003c[https://](https://github.com/minaprotocol/mina)\u003e) project.\n\nIf you use this project in a production environment, it is your responsibility to perform a security audit to ensure that the software meets your requirements.\n\n## Performance\n\nAt the time of this writing:\n\n### Proving time\n\n| number of gates | seconds |\n| :-------------: | :-----: |\n|      2^11       |  0.6s   |\n|      2^15       |  3.3s   |\n|      2^16       |  6.3s   |\n\n### Verification time\n\n| number of gates | seconds |\n| :-------------: | :-----: |\n|      2^15       |  0.1s   |\n|      2^16       |  0.1s   |\n\n### Proof size\n\n| number of gates | bytes |\n| :-------------: | :---: |\n|      2^15       | 4947  |\n|      2^16       | 5018  |\n\n## Organization\n\nThe project is organized in the following way:\n\n- [book/](book/). The mina book, RFCs, and specifications. [Available here in HTML](https://o1-labs.github.io/proof-systems).\n- [curves/](curves/). The elliptic curves we use (for now just the pasta curves).\n- [groupmap/](groupmap/). Used to convert elliptic curve elements to field elements.\n- [hasher/](hasher/). Interfaces for mina hashing.\n- [kimchi/](kimchi/). Our proof system based on PLONK.\n- [poly-commitment/](poly-commitment/). Polynomial commitment code.\n- [poseidon/](poseidon/). Implementation of the poseidon hash function.\n- [signer/](signer/). Interfaces for mina signature schemes.\n- [tools/](tools/). Various tooling to help us work on kimchi.\n- [turshi/](turshi/). A Cairo runner written in rust.\n- [utils/](utils/). Collection of useful functions and traits.\n\n## Contributing\n\nCheck [CONTRIBUTING.md](CONTRIBUTING.md) if you are interested in contributing to this project.\n\n## Generate rustdoc locally\n\nAn effort is made to have the documentation being self-contained, referring to the mina book for more details when necessary.\nYou can build the rust documentation with\n\n\u003c!-- This must be the same than the content in .github/workflows/gh-page.yml --\u003e\n\n```shell\nrustup install nightly\nRUSTDOCFLAGS=\"--enable-index-page -Zunstable-options\" cargo +nightly doc --all --no-deps\n```\n\nYou can visualize the documentation by opening the file `target/doc/index.html`.\n\n## CI\n\n\u003c!-- Please update this section if you add more workflows --\u003e\n\n- [CI](.github/workflows/ci.yml).\n  This workflow ensures that the entire project builds correctly, adheres to guidelines, and passes all necessary tests.\n- [Nightly tests with the code coverage](.github/workflows/ci-nightly.yml).\n  This workflow runs all the tests per scheduler or on-demand, generates and attaches the code coverage report to the job's execution results.\n- [Benchmarks](.github/workflows/benches.yml).\n  This workflow runs benchmarks when a pull request is labeled with \"benchmark.\" It sets up the Rust and OCaml environments, installs necessary tools, and executes cargo criterion benchmarks on the kimchi crate. The benchmark results are then posted as a comment on the pull request for review.\n- [Deploy Specifications \u0026 Docs to GitHub Pages](.github/workflows/gh-page.yml).\n  When CI passes on master, the documentation built from the rust code will be available by this [link](https://o1-labs.github.io/proof-systems/rustdoc) and the book will be available by this [link](https://o1-labs.github.io/proof-systems).\n- [MIPS Build and Package](.github/workflows/mips-build.yml)\n  This workflow runs the assembler and linker on the programs from the OpenMips test suite, and provides a link where you can download the artifacts (recommended if you don't have / can't install the required MIPS tooling). This workflow also runs the o1vm ELF parser on the artifacts to check that our parsing is working. Currently it is run via manual trigger only -- you can find the trigger in the [GitHub actions tab](https://github.com/o1-labs/proof-systems/actions/workflows/mips-build.yml) and the link to the artifacts will appear in logs of the `Upload Artifacts` stage.\n\n## Nix for Dependencies (WIP)\n\nIf you have `nix` installed and in particular, `flakes` enabled, you can install the dependencies for these projects using nix. Simply `nix develop .` inside this directory to bring into scope `rustup`, `opam`, and `go` (along with a few other tools). You will have to manage the toolchains yourself using `rustup` and `opam`, in the current iteration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo1-labs%2Fproof-systems","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fo1-labs%2Fproof-systems","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo1-labs%2Fproof-systems/lists"}