@@ -34,11 +34,13 @@ A less obvious scheme is to have a participant sign an arbitrary message with
3434the sum of her key ` P ` and the whitelisted key ` W ` . Such a signature with the key
3535` P + W ` proves knowledge of either (a) discrete logarithms of both ` P ` and ` W ` ;
3636or (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.
4042
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
4244* offline delegation* . That is, the key ` P ` does not need to be available at the
4345time of delegation. Instead, participants could choose ` S = P + W ` , sign with
4446this to delegate, and only later compute the discrete logarithm of ` W = P - S ` .
@@ -47,7 +49,7 @@ the overall system security.
4749
4850#### Signing with Tweaked-Difference-of-Keys
4951
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
5153instead have participants sign some message with the key ` P + H(W)W ` , for ` H `
5254some random-oracle hash that maps group elements to scalars. This key, and its
5355discrete 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'`,
6062and signing with the key ` P + H(W + P')(W + P') ` . This gives us the best
6163of both worlds: ` P' ` does not need to be online to delegate, allowing it
6264to 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 .
6567
6668### Our Scheme
6769
78801 . The discrete logarithms of all of ` W ` , ` P_i ` and ` Q_i ` ; or
79812 . The discrete logarithm of ` P_i ` but of * neither* ` W ` nor ` Q_i ` .
8082In 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
8385because by design, only the sum ` S = W + Q_i ` is used when signing; then by choosing
8486` S ` freely, a participant can delegate without the secret key to ` Q_i ` ever being online.
8587(Later, when she wants to actually use ` W ` , she will need to compute its key as the
0 commit comments