{"id":18894091,"url":"https://github.com/trailofbits/reverie","last_synced_at":"2025-04-15T00:31:53.538Z","repository":{"id":40255253,"uuid":"269679242","full_name":"trailofbits/reverie","owner":"trailofbits","description":"An efficient and generalized implementation of the IKOS-style KKW proof system (https://eprint.iacr.org/2018/475) for arbitrary rings.","archived":false,"fork":false,"pushed_at":"2023-09-04T20:18:36.000Z","size":1686,"stargazers_count":61,"open_issues_count":6,"forks_count":6,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-06T07:18:41.354Z","etag":null,"topics":["blake3","crypto","cryptography","nizk","rust-lang","zk","zkproof-prover"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/reverie-zk","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trailofbits.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-05T15:12:16.000Z","updated_at":"2025-01-16T12:31:07.000Z","dependencies_parsed_at":"2022-06-27T07:34:06.120Z","dependency_job_id":null,"html_url":"https://github.com/trailofbits/reverie","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Freverie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Freverie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Freverie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Freverie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trailofbits","download_url":"https://codeload.github.com/trailofbits/reverie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248984383,"owners_count":21193737,"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":["blake3","crypto","cryptography","nizk","rust-lang","zk","zkproof-prover"],"created_at":"2024-11-08T08:17:49.034Z","updated_at":"2025-04-15T00:31:53.062Z","avatar_url":"https://github.com/trailofbits.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reverie\n\nAn efficient implementation of the NIZKPoK outlined in KKW 2018\n\n[![CI](https://github.com/trailofbits/reverie/actions/workflows/ci.yml/badge.svg)](https://github.com/trailofbits/reverie/actions/workflows/ci.yml)\n\nReverie is an implementation (prover and verifier) of the MPC-in-the-head NIZKPoK outlined in\n[Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures](https://eprint.iacr.org/2018/475).\nReverie seeks to offer concrete prover efficiency (linear proving time with small constants) for\ncomplex predicates. The implementation seeks to offer 128-bits of (classical) security and support\narbitrary rings, most efficiently\nZ\u003csub\u003e2\u003c/sub\u003e and Z\u003csub\u003e64\u003c/sub\u003e.\n\nReverie provides both a library (with a simplified and a streaming interface),\nin addition to a CLI program for proving/verifying statements specified in Bristol format\nto enable easy experimentation.\n\n## Running\n\nReverie requires a relatively recent `nightly` Rust.\n\nUsing `SSE+AESNI`\n\n```console\ntime RUSTFLAGS=\"-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2\" cargo run --release\n```\n\nOr even better with `AVX2+AESNI`\n\n```console\ntime RUSTFLAGS=\"-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2\" cargo run --release\n```\n\n## Improvements in 0.3+\n\n- Pack 8 instances of 8 players over GF(2) into a single 64-bit integer (see [gist](https://gist.github.com/rot256/174fd53c0aac8cf04ef9810e8a10b0c0) for details).\n- Switch to AES with AESNI\n- Just-in-time preprocessing to condense proving into a single pass\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Freverie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrailofbits%2Freverie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Freverie/lists"}