Skip to content

Commit 1d83ebc

Browse files
committed
simplpedpop internals: define pubshare
Previously `pubshares[i]` was used without a definition (it only came later).
1 parent 16900b0 commit 1d83ebc

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

README.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,15 @@ Our variant of the SimplPedPop protocol then works as follows:
253253
the vector `sum_coms` is now the complete component-wise sum of the `coms[j]` vectors from every participant `j`.
254254
It acts as a VSS commitment to the sum `f = f_0 + ... + f_{n-1}` of the polynomials of all participants.)
255255
256+
Participant `i` computes its public share `pubshare` as:
257+
```
258+
pubshare = (i+1)^0 * sum_coms[0] + ... + (i+1)^(t-1) * sum_coms[t-1]
259+
```
260+
256261
Let `partial_secshares` be the vector of the VSS shares that participant `i` has privately obtained from each participant,
257262
and let `secshare = partial_secshares[0] + ... + partial_secshares[n-1]` be the sum of the vector components.
258263
Participant `i` checks the validity of `secshare` against `sum_coms`
259-
by checking if the equation `secshare * G = pubshares[i]` holds.
264+
by checking if the equation `secshare * G = pubshare` holds.
260265
(`secshare` is supposed to be equal to `f(i+1)`.)
261266
262267
If the check fails, participant `i` aborts.
@@ -271,14 +276,15 @@ Our variant of the SimplPedPop protocol then works as follows:
271276
by checking for which participant `j` the equation `partial_secshares[j] * G = partial_pubshares[j]` does not hold.
272277
Participant `i` blames this participant `j` .
273278
274-
Otherwise, i.e., in the successful case that the equation `secshare * G = pubshares[i]` holds, participant `i` proceeds as follows.
279+
Otherwise, i.e., in the successful case that the equation `secshare * G = pubshare` holds, participant `i` proceeds as follows.
275280
In order to obtain a threshold public key with an unspendable [[BIP 341](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki)] Taproot script path,
276281
participant `i` computes a Taproot tweak `tweak` for an unspendable script path,
277282
and adds the point `tweak * G` to `sum_coms[0]`, resulting in a new VSS commitment called `sum_coms_tweaked`.
278-
Participant `i` computes the public share of every participant `j` as follows:
283+
Participant `i` computes the public share of every participant `j != i` as
279284
```
280285
pubshares[j] = (j+1)^0 * sum_coms_tweaked[0] + ... + (j+1)^(t-1) * sum_coms_tweaked[t-1]
281286
```
287+
and participant `i`'s own share as `pubshares[i] = pubshare + tweak * G`.
282288
283289
Then, participant `i` sets the DKG output consisting of
284290
this participant's secret share `secshare_tweaked`,

0 commit comments

Comments
 (0)