Coordinator handling of the sign protocol is flawed #588
Labels
coordinator
cryptography
An issue involving cryptography/a cryptographic library
improvement
This could be better
processor
We really need to change how we handle preprocess accumulation.
Currently, we select the first
t
people who respond to attempt a sign protocol. Then, the selected are supposed to send the signature shares. After a certain amount of time, a re-attempt is triggered. This re-attempt is participated in by those who don't believe a signature occurred. If at least 2/3rds of people participate, another re-attempt is scheduled (as presumably, the original attempt failed, this attempt is being attempted, and if it fails, we'll need another attempt).There's multiple issues with this.
n
people sent preprocesses for the first attempt. We don't need to redo the entire sign protocol. We haven-t
preprocesses still usable and only need a furthert-(n-t)
preprocesses.t-1
people detect the invalid signature. That is insufficient to cause a removal, or even a fatal slash.1 is ideally resolved largely via changes on the coordinator side of things. The processor will need to be updated with consideration for how the preprocesses it made for attempt #n are now used for attempt #n+1.
2 can be resolved at any time via the coordinator alone and is an open TODO.
3 and 4 requires new FROST code which is a pain. I don't have a better solution to propose at this time.
We have acceptable solutions for all of this at the time. 1 is solely a performance comment, 2 at worst is an DoS which will still cause slashes to be accumulated, 3 shouldn't occur in practice (as even without any slashing, it's just another DoS vector), and 4 is solved by the fact we auto-retry and allow announcing completions. I don't love saying DoSs are acceptable, yet considering they're pointless and don't cause a loss of funds, they're acceptable.
The text was updated successfully, but these errors were encountered: