@@ -34,11 +34,13 @@ A less obvious scheme is to have a participant sign an arbitrary message with
34
34
the sum of her key ` P ` and the whitelisted key ` W ` . Such a signature with the key
35
35
` P + W ` proves knowledge of either (a) discrete logarithms of both ` P ` and ` W ` ;
36
36
or (b) neither. This makes directly attacking participants' signing schemes much
37
- harder, but allows an attacker to whitelist arbitrary "garbage" keys by computing
38
- ` W ` as the difference between an attacker-controlled key and ` P ` . For Bitcoin,
39
- the effect of garbage keys is to "burn" stolen coins, destroying them.
37
+ harder, but allows an attacker to whitelist arbitrary "cancellation" keys by
38
+ computing ` W ` as the difference between an attacker-controlled key and ` P ` .
39
+ Because to spend the funds the attacker must produce a signature with ` W ` , the
40
+ coins will be unspendable until attacker and the legitimate participant owning
41
+ ` P ` cooperate.
40
42
41
- In an important sense, this "burning coins " attack is a good thing: it enables
43
+ In an important sense, this "cancellation " attack is a good thing: it enables
42
44
* offline delegation* . That is, the key ` P ` does not need to be available at the
43
45
time of delegation. Instead, participants could choose ` S = P + W ` , sign with
44
46
this to delegate, and only later compute the discrete logarithm of ` W = P - S ` .
@@ -47,7 +49,7 @@ the overall system security.
47
49
48
50
#### Signing with Tweaked-Difference-of-Keys
49
51
50
- A modification of this scheme, which prevents this "garbage key " attack, is to
52
+ A modification of this scheme, which prevents this "cancellation " attack, is to
51
53
instead have participants sign some message with the key ` P + H(W)W ` , for ` H `
52
54
some random-oracle hash that maps group elements to scalars. This key, and its
53
55
discrete logarithm, cannot be known until after ` W ` is chosen, so ` W ` cannot
@@ -60,8 +62,8 @@ delegation. However, we can get this back by introducing a new key, `P'`,
60
62
and signing with the key ` P + H(W + P')(W + P') ` . This gives us the best
61
63
of both worlds: ` P' ` does not need to be online to delegate, allowing it
62
64
to be securely stored and preventing real-time attacks; ` P ` does need to
63
- be online, but its compromise only allows an attacker to whitelist "garbage
64
- keys", not attacker-controlled ones .
65
+ be online, but its compromise only allows an attacker to whitelist keys he does
66
+ not control alone .
65
67
66
68
### Our Scheme
67
69
78
80
1 . The discrete logarithms of all of ` W ` , ` P_i ` and ` Q_i ` ; or
79
81
2 . The discrete logarithm of ` P_i ` but of * neither* ` W ` nor ` Q_i ` .
80
82
In other words, compromise of the online key ` P_i ` allows an attacker to whitelist
81
- "garbage keys" for which nobody knows the discrete logarithm; to whitelist an
82
- attacker-controlled key, he must compromise both ` P_i ` and ` Q_i ` . This is difficult
83
+ "cancellation keys" for which the attacker alone does not know the discrete logarithm;
84
+ to whitelist an attacker-controlled key, he must compromise both ` P_i ` and ` Q_i ` . This is difficult
83
85
because by design, only the sum ` S = W + Q_i ` is used when signing; then by choosing
84
86
` S ` freely, a participant can delegate without the secret key to ` Q_i ` ever being online.
85
87
(Later, when she wants to actually use ` W ` , she will need to compute its key as the
0 commit comments