Currently, cohorts have a duration defined in the Coordinator at initiation time. After this duration passes, cohorts are disbanded immediately. Although disbandment is not yet properly defined (see https://github.com/nucypher/nucypher/issues/3461), in the near future this will be an irreparable situation since it will involve destroying the secrets corresponding to the ritual.
We'd like to avoid a situation where cohort disbandment occurs due to adopters failing to renew their periodic payments. The proposed solution is to introduce two "grace periods" after the normal expiration date:
🟨 Yellow period: decryption requests are still serviced, but other management operations are blocked (e.g., authorizing encryptors)
🟥 Red period: cohort still exists, but no decryption request or management operation will be serviced. Once red period ends, cohort can disband and destroy their secrets.
Where and how these periods are defined is initially out of scope, as long as TACo nodes have a univocal way to retrieve them. My initial suggestion would be to include this as part of the Subscription contract (still TBD). Also note that current behavior is still possible since it corresponds to yellow = red = 0 seconds.
Currently, cohorts have a duration defined in the Coordinator at initiation time. After this duration passes, cohorts are disbanded immediately. Although disbandment is not yet properly defined (see https://github.com/nucypher/nucypher/issues/3461), in the near future this will be an irreparable situation since it will involve destroying the secrets corresponding to the ritual.
We'd like to avoid a situation where cohort disbandment occurs due to adopters failing to renew their periodic payments. The proposed solution is to introduce two "grace periods" after the normal expiration date:
Where and how these periods are defined is initially out of scope, as long as TACo nodes have a univocal way to retrieve them. My initial suggestion would be to include this as part of the
Subscription
contract (still TBD). Also note that current behavior is still possible since it corresponds toyellow = red = 0 seconds
.