-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow signers to change group threshold by updating shares #519
Comments
This seems pretty cool! But glancing at the reference, wouldn't it be better to protect against active adversaries, and thus use public evaluation / zero addition? (Note that we were already considering implementing zero addition in #245 but I didn't realize it also allowed increasing the threshold). In any case thanks for opening this, I'll bring this up for discussion with the team |
This section of the paper discusses a specific insecure resharing method which seems different from the one i detailed in OP, which is the method discussed in this section. Need to do some more detailed reading to see if the insecurity proof relates to the protocol i suggested. Implementing both public evaluation and zero addition would require implementing two separate protocols to enact threshold changes, which would double the work (and complexity). I suspect we could protect against active adversaries by adding a round of commitments and verification. I need to do some more research to see if someone else has already devised a variation of the Lagrange threshold change method which has been proven secure for active adversaries. In the meantime, I'll take a stab at a simple design which might fit the bill and post it here later. Thanks for the eyes! 😄 Whatever protocol you end up choosing, i'd be happy to help out with the implementation. |
here is a description of the resharing protocol with verifiable commitments. That article is effectively a collection of my notes on the subject so take it with a grain of salt (i'm not an expert just a nerd). I'll try to do some more research soon to see if anyone has already done a proof of security that applies to this protocol. |
hey all, posting the results of my research here for your consideration. Hope it comes in handy making a choice. As expected, I was definitely not the first to think of this idea, and there is ample support in the literature for using share resharing (with a commitment round) against active adversaries. I checked into the sources cited by Nojoumian in the paper where he describes the unverifiable version of the resharing protocol (the one i outlined in OP). Looks like although Nojoumian cites a paper on threshold RSA as where he heard about resharing, the idea of redistributing shares using shares-of-shares in this way was first introduced in this paper. The authors of that paper note in Section 6 that the resharing protocol can be extended to be verifiable.
This paper on threshold RSA (specifically sections 3.2 and 4.1) was cited by Nojoumian, and they seem to represent a verifiable secret resharing protocol. They split the resharing conceptually into two steps, which they call 'sum-to-poly' and 'poly-to-sum', in which the There is a short note in Section 5 of this paper which also summarizes this. To explain further i would basically be parroting them so let me just quote directly.
But by far the most helpful paper was this one by Wong, Wang, and Wing (best trio of names on a paper I've ever seen), which calls the process a verifiable secret redistribution (VSR) scheme. Their VSR scheme is almost exactly the same as the protocol i described on my blog with a few minor adjustments. This article describes some drawbacks of Wang's scheme:
This paper describes an improvement to Wang's protocol which fixes item (3) by adding a complaint-lodging mechanism. I'd propose we implement Wang's scheme. We could also consider implementing Gupta's complaint mechanism. |
Also worth reading are these slides regarding the "Forget & Forgive" attack on any secret sharing redistribution scheme, namely that at least |
Just opened a draft PR which implements Wang's VSR scheme: #570 - feedback would be appreciated 🙏 |
@conduition testing pr. in a 3(min)/4(max) signers enviroment, if a person's key is compromised is it safe to reduce min signers to 2? |
@canewsin It should be, depending on your threat model. If a signing group has If the group then lowered the threshold to |
See #570 (comment) for why this was closed as not planned |
There is this interesting protocol which allows a group of at least$t$ shamir shareholders (or FROST signers) to compute updated shares which correspond to a new threshold $t'$ .
It requires that only$t$ signers be online, but all $n$ signers must at least be able to receive messages asynchronously while offline, to update their shares to have threshold $t'$ . Of course it wouldn't stop a malicious subset of shareholders from holding onto their old shares which are valid for the original threshold $t$ .
Is this of interest? Would love to work on this.
Here's a short description, omitting verifiable commitments.
In other words, each$g_i(x)$ is a random degree $t' - 1$ polynomial with $z_i = f(i)$ as the constant term.
Online participant$P_i$ sends $g_i(j)$ to every participant $P_j$ for every $j \in \{1...n\}$ . It is important that the offline participants can receive these messages asynchronously, as they will need to update their shares before their next interaction with any shareholders in $S$ .
...and erases his old share$z_i$ .
Effectively,$P_i$ has securely updated their share to an evaluation $f'(i)$ of a new degree $t' - 1$ polynomial $f'(x)$ , which maintains the same constant term as $f(x)$ (i.e. $f'(0) = f(0)$ ).
Cost/Benefit
The text was updated successfully, but these errors were encountered: