Goal:
Rotate control keys (and optionally device keys) without losing the identity. You can replace control and/or auth keys without changing attributes or policies.
Inputs:
identity_idSteps:
rotated or revoked.active.keys_root_1 = MerkleRoot(updated_key_leaves)
identity_commitment_2 = H(
version,
keys_root_1,
attributes_root_1,
policies_root_0
)
StateTransition {
previous_commitment = identity_commitment_1
new_commitment = identity_commitment_2
diff = "keys_rotated"
signed_by = old_control_key or recovery_key
timestamp
}