hiero-ledger / hiero-ledger/hiero-consensus-node
Cover key-change `CryptoUpdate` scheduling scenarios
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
### Problem
We want to confirm that scheduled `CryptoUpdate`'s have the expected behavior when the target account's signing keys change between the time the update is scheduled, and the time it executes.
For example, say `(A, B, C, D)` are all cryptographic keys, a mix of Ed25519 and secp256k1. Suppose we are scheduling an update to account `0.0.X` via scheduled transaction `0.0.S`. Then we want to cover cases such as,
- [ ] The update is scheduled when `0.0.X` has `ThresholdKey{3/4, (A, B, C, D)}`; so even after `0.0.S` receives signatures from `A` and `B`, it cannot execute. But if a non-scheduled update changes the `0.0.X` key to `ThresholdKey{2/4, (D, C, B, A)}`, then a `ScheduleSign` to `0.0.S` with no new signatures _should_ trigger the update.
- [ ] The update is scheduled when `0.0.X` has `KeyList(A, B)`, does not execute when `0.0.S` receives a signature `A`, and ignores a `ScheduleSign` giving signature `C`. After `0.0.X` is updated to have a new `KeyList(A, C)`, then `0.0.S` will ignore a `ScheduleSign` with signature `B`; but will trigger when again receiving a signature with `C`.
- [ ] The update is scheduled when `0.0.X` has `ThresholdKey{1/2, (A, ThresholdKey{2/3, (A, B, C)})}`; and does not trigger when `0.0.S` receives a signature from `C`. But after a non-scheduled update changes the `0.0.X` key to `ThresholdKey{1/2, (A, ThresholdKey{2/3, (C, B, C)})}`, a `ScheduleSign` with no new signatures _should_ trigger the update.
### Solution
Write EETs for the above scenarios.
### Alternatives
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.