IntersectMBO / IntersectMBO/mithril
Implement circuit verification key whitelist/revoke mechanism
- 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
Assessment
This issue has not been assessed yet.