IntersectMBO / IntersectMBO/mithril

Implement circuit verification key whitelist/revoke mechanism

Open
#3,148 1 comment 0 reactions 1 assignee Claimed by @jpraynaud View on GitHub
feature :rocket:
Dominant language
Rust
Stars
154
Forks
51
Avg merge
1d 23h
Merged PRs (30d)
38

Description

## Why

Any change in a circuit (logic, dependency update, parameters) changes its verification key, and a circuit or a key can turn out to be insecure. There is no mechanism today to invalidate the certificates produced with it: the trust in the circuit verification key is compile time only, and clients have no signal to reject a range of certificates.

## What

Prepare a revocation mechanism for certificates in defined epoch ranges. The revocation list is published, signed by the genesis key, and must be verified by clients prior to verification.

## How

- [x] Specify the format of the whitelist and revocation list (circuit verification keys, epoch ranges) and how the genesis key signs it
- [x] Implement the creation and the signing of the list with the genesis key (new command in the aggregator)
- [x] Enforce the whitelist and revocation checks on the circuit verification key in the prover and the verifier setup
- [x] Update the infrastructure
- [x] Update the documentation
- [x] Create a runbook for the revocation procedure
- [ ] Publish the registries to the repository:
- [ ] `testing-preview`
- [ ] `dev-preview`
- [ ] `pre-release-preview`
- [ ] `release-preprod`
- [ ] `release-mainnet`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.