Threshold Signatures and Accountability
Andrew Poelstra
Director of Research, Blockstream
4 February 2019
1 / 23
Accountability Andrew Poelstra Director of Research, Blockstream 4 - - PowerPoint PPT Presentation
Threshold Signatures and Accountability Andrew Poelstra Director of Research, Blockstream 4 February 2019 1 / 23 Schnorr Signatures P = xG R = kG e = H ( P , R , m ) sG = kG + exG 2 / 23 Schnorr Signatures P = xG R = kG e = H ( P , R , m )
Andrew Poelstra
Director of Research, Blockstream
4 February 2019
1 / 23
P = xG R = kG e = H(P, R, m) sG = kG + exG
2 / 23
P = xG R = kG e = H(P, R, m) sG = kG + exG
3 / 23
P = xG R0 = kG R = R0 + H(R0c)G e = H(P, R, m) sG = (k + H(R0c))G + exG
4 / 23
P = xG R0 = kG R = R0 + H(R0c)G e = H(P, R, m) sG = (k + H(R0c))G + exG
5 / 23
Suppose k = H(xm). s = (k + H(R0c)) + ex − s = (k + H(R0c′)) + e′x 0 = H(R0c) − H(R0c′) + (e − e′)x So we’d better have k = H(xmc)!
6 / 23
If the hardware device knows c before producing R0 it can grind k so that (k + H(R0c)) has detectable bias. If it doesn’t know c how can it prevent replay attacks? Send hardware device H(c) and receive R0 before giving it c. Then k = H(xmH(c)).
7 / 23
µi= H [H(P1P2 · · · Pn)i] Pi = µixiG P =
Ri = kiG R =
e = H(P, R, m) siG = kiG + eµixiG sG =
8 / 23
µi= H [H(P1P2 · · · Pn)i] Pi = µixiG P =
Ri = kiG R =
e = H(P, R, m) siG = kiG + eµixiG sG =
9 / 23
µi = H [H(P1P2 · · · Pn)i] Pi = µixiG P =
Ri = kiG R =
e = H(P, R, m) siG = kiG + eµixiG sG =
10 / 23
Suppose a party with secret xi wants to split her secret such that k parties may produce a signature with it. pi(X) = xi + γi,1X + γi,2X 2 + · · · + γi,kX k−1 ζi,jG = pi(j)G = xiG + jγi,1G + j2γi,2G + · · · + jk−1γi,k−1G pi(0) = xi =
λi,jζi,j
11 / 23
Suppose a party with secret xi wants to split her secret such that k parties may produce a signature with it. pi(X) = xi + γi,1X + γi,2X 2 + · · · + γi,kX k−1 ζi,jG = pi(j)G = xiG + jγi,1G + j2γi,2G + · · · + jk−1γi,k−1G pi(0) = xi =
λi,jζi,j
12 / 23
xG =
µixiG =
µipi(0)G =
µi
λi,jζi,jG =
λi,jµiζi,jG =
. . . . . .
13 / 23
µi= H [H(P1P2 · · · Pn)i] P =
. . . . . .
G Rj = kjG R =
e = H(P, R, m) sjG = kjG + e . . . . . .
G sG =
. . . . . .
G
14 / 23
µi= H [H(P1P2 · · · Pn)i] P =
. . . . . .
G Rj = kjG R =
e = H(P, R, m) sjG = kjG + e . . . . . .
G sG =
. . . . . .
G
15 / 23
Recall the equation P =
j∈signers
. . . . . .
. What is this set “signers”? In fact any set will do; λi,j depends on the particular set but nothing else does. Importantly the signature does not depend on this set. Such signatures are unaccountable.
16 / 23
What does an accountable signature look like? Satoshi-style “concatenate individual signatures” threshold signatures, for one. Can we get a constant-size accountable signature? I doubt it.
17 / 23
µi= H [H(P1P2 · · · Pn)i] P =
. . . . . .
G Rj = kjG R0 =
R = R0 + H(R0c)G e = H(P, R, m) sjG = kjG + e . . . . . .
G sG =
. . . . . .
G
18 / 23
µi= H [H(P1P2 · · · Pn)i] P =
. . . . . .
G Rj = kjG R0 =
R = R0 + H(R0c)G e = H(P, R, m) sjG = kjG + e . . . . . .
G sG =
. . . . . .
G
19 / 23
Suppose that c commits to an accountable threshold signature. Then we have an unaccountable signature that commits to an accountable signature. Signers can refuse to participate if this commitment is missing
20 / 23
Then assuming at least one party in the signature is honest and will publish the committed accountable signature, the result is “accountable”. (Of course, this doesn’t help if nobody is honest, which is
21 / 23
Can we construct a commitment that can be reconstructed or brute-forced by third parties? Can we get deniability, i.e. can a non-participant prove non-participation without help? Extension to BLS which has no space for committing data?
22 / 23
Thank you. Andrew Poelstra clauspschnorr@wpsoftware.net
23 / 23