Closed Strernd closed 3 years ago
Hi,
This specific issue can be probably more elegantly handled with some extra communication, however, there is a fundamental limitation of the protocol (GG18) that makes it impossible to determine the culprit in the general case. This is one of the motivations behind some of the followup protocols from the literature (see GG20 and AHS20 regarding identifiable abort)
Looks interesting, would love to see the improvements from those protocols in this lib.
I'm not sure if this is a bug or a limitation of the protocol. Consider following case: We have 4 nodes
A
,B
,C
andD
with threshold = 2. They establish communication over another layer and start signing something. It usually takes me about ~8 seconds in local docker containers to produce a signature. If I kill node C at an arbitrary point during the sign algorithm and I print out theWaitingFor()
of thetss.Party
after a timeout I get:Node A,B can not accurately determine, that they can't proceed because C doesn't send messages anymore. If I wanted to restart the signing without the culprit, I wouldn't be able to determine the culprit.