hiero-ledger / hiero-ledger/hiero-consensus-node

Cover key-change `CryptoUpdate` scheduling scenarios

Open
#7,191 0 comments 0 reactions 0 assignees View on GitHub
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

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.