IntersectMBO / IntersectMBO/mithril

Verify that the OpCert used for registration is the latest

Open
#872 2 comments 0 reactions 0 assignees View on GitHub
idea :bulb: stale :calendar:
Dominant language
Rust
Stars
154
Forks
51
Avg merge
1d 23h
Merged PRs (30d)
38

Description

## Issue
During signer registration, we use the `KES Secret Key` and the `Operational Certificate` to verify that the Mithril keys registered are associated to the correct SPO (i.e. owner of the associated Pool ID that is used to match stakes)

In order to avoid using a stale Operational Certificate (with an issue counter that is less than the latest counter used to register an Operational Certificate on the Cardano chain), we need to find a mechanism that enforces usage of the latest counter.

We could probably use the counters that are registered on the Cardano nodes and retrievable by the command from the Cardano cli:
`cardano-cli query protocol-state --mainnet | jq .oCertCounters`.

However, we have identified a few difficulties with this approach:
- With the broadcast channel implemented to provide key registration (i.e. the Aggregator broadcasts the Signer registration): Signer registration is used `2` epochs after registration for signature, which means that we would probably need to trust the information (i.e. the counter value) sent by the signer at registration)
- The signer registration will be done on-chain in the future and smart contracts are probably not aware of the Operational Certificate counters, which might be a problem

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.