Skip to content

Commit 9c69e7c

Browse files
committed
Rename adaptorless signatures to partial signatures
1 parent 88a5f1a commit 9c69e7c

File tree

3 files changed

+23
-22
lines changed

3 files changed

+23
-22
lines changed

md/atomic-swap.md

+12-11
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ to B on one chain, while B is sending coins to A on the other.
1212

1313
1. Both parties A and B put their coins into multisignature outputs on each chain
1414
which require both parties' signatures to be spent.
15-
2. A gives B auxiliary data, "adaptorless signatures", for each output. This will allow B to extract a
15+
2. A gives B a partial signature with auxiliary data for each output. This will allow B to extract a
1616
discrete logarithm from a signature on one chain, and then to adapt A's
1717
signature with the same discrete logarithm on the other chain.
1818
3. B then signs to give A her coins on one chain.
@@ -38,23 +38,24 @@ with public key `P` is a pair `(s, R)` satisfying the equation
3838
```
3939
sG = R + H(P || R || m)P
4040
```
41-
Closely related, an _adaptorless signature_ is a triplet `(s', R, T)` satisfying
41+
Closely related, a partial signature with _adaptor_ `T` is a triplet `(s', R, T)` satisfying
4242
```
4343
s'G = R + H(P || R + T || m)P
4444
```
4545

46-
It is easy to see that given a Schnorr signature `(s, R + T)` and adaptor signature
47-
`(s', R, T)` that the discrete logarithm of the _adaptor_ `T`,
46+
It is easy to see that given a Schnorr signature `(s, R + T)` and partial signature
47+
`(s', R, T)` that the discrete logarithm of the adaptor `T`,
4848
can be computed as `s - s'`, since subtracting the above equations reveals
4949
`(s - s')G = R + T - R = T`.
5050

51-
Similarly, given an adaptorless signature `(s', R, T)` and `t` such that `T = tG`,
51+
Similarly, given a partial signature `(s', R, T)` and `t` such that `T = tG`,
5252
it is easy to compute a Schnorr signature `(s, R + T)` by the equation `s = s' + t`.
5353

54-
We conclude that given an adaptorless signature `(s', R, T)` with public key `P`,
54+
We conclude that given a partial signature `(s', R, T)` with public key `P`,
5555
knowledge of a Schnorr signature `(s, R + T)` with same `P` is equivalent to
56-
knowledge of the discrete logarithm of `T`. Schnorr signature `(s, R + T)` is an
57-
_adaptor signature_ for `(s', R, T)` because it provides the adaptor.
56+
knowledge of the discrete logarithm of `T`. The Schnorr signature `(s, R + T)` is an
57+
_adaptor signature_ because it reveals the secret adaptor to anyone
58+
with partial signature `(s', R, T)`.
5859

5960
#### Schnorr Multisignatures
6061

@@ -73,13 +74,13 @@ that both blockchains support Schnorr signatures.
7374
1. Each party puts their coins into a multisignature output. They agree on a public Schnorr signature nonce
7475
`R` for each signature that they'll eventually use to move the coins to their
7576
final destinations.
76-
2. A chooses a random `t`, sets `T = tG`, and produces adaptorless signatures in place
77+
2. A chooses a random `t`, sets `T = tG`, and produces a partial signatures in place
7778
of her contributions to `s`. Each signature uses the same `T`. She sends these
7879
and `T` to B.
7980
3. B reveals his contribution to `s` for the signature that sends his coins to A.
80-
4. A reveals her contribution to `s` for that signature, completing it by adapting previous adaptorless signature, and
81+
4. A reveals her contribution to `s` for that signature, completing it by adapting the partial signature, and
8182
publishes it to take her coins.
82-
5. Using the adaptorless signature, B learns `t` from the output of step (4), and uses
83+
5. Using the partial signature, B learns `t` from the output of step (4), and uses
8384
it to adapt A's contribution to `s` for the signature that sends her coins to
8485
him.
8586
6. B adds his contribution to `s`, completing the signature, and publishes it to

md/partially-blind-swap.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ follows.
5656
* the blinded challenge `c = c'+beta`
5757
* and the blinded signature of A times `G`: `T = R + c*A`
5858
* Bob sends `c` to Alice
59-
* Alice replies with an adaptorless signature over `tx_A` spending `O2` with
59+
* Alice replies with a partial signature over `tx_A` spending `O2` with
6060
adaptor point `T = t*G, t = ka + c*a` where `a` is the discrete
6161
logarithm of permanent key `A`.
6262
3. Swap
6363

6464
* Bob gives Alice his contribution to the signature over `tx_A`.
6565
* Alice adds Bob's contribution to her own signature and uses it to take
6666
her coins out of O2.
67-
* Due to previously receiving an adaptorless signature Bob learns `t` from step (2).
67+
* Due to previously receiving a partial signature Bob learns `t` from step (2).
6868
4. Unblinding
6969

7070
* Bob unblinds Alice's blind signature `t` as `t' = t + alpha + c'*h` where

md/pedersen-swap.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Protocol rationale
6363
---
6464
Assume someone wants to buy the opening `(r, x)` of a Pedersen commitment `Q =
6565
r*G + x*H` from a seller. The seller can't just use `r*G` as the adaptor
66-
point in an adaptorless signature and send it to the buyer. Upon receiving `r*G`
66+
point in a partial signature and send it to the buyer. Upon receiving `r*G`
6767
the buyer would compute `Q - r*G = x*H` and since `x` can belong to a small
6868
set, the buyer could simply brute-force `x` without paying.
6969
This is where the multiplication proof for Pedersen commitments comes into
@@ -74,7 +74,7 @@ problem, but learning `t1` and `t2` during the swap allows the buyer to compute
7474
`r`.
7575

7676
Because `x` is multiplied by `H` and not `G` there is no straightforward way to
77-
similarly put `x*H` in an adaptorless signature. Let `xi` be the `i`-th bit of `x`.
77+
similarly put `x*H` in a partial signature. Let `xi` be the `i`-th bit of `x`.
7878
The seller creates one Pedersen commitment `Qi = ri*G + xi*G` for every bit of
7979
`x`. After learning all `ri` during the swap, the buyer can reconstruct `x`
8080
bitwise by checking whether `Qi` is a commitment to `0` or `1`. Committing to
@@ -84,14 +84,14 @@ transactions](https://people.xiph.org/~greg/confidential_values.txt). So we
8484
can abuse that scheme not to prove ranges, but to prove that each `Qi` commits
8585
to a bit of `x`.
8686

87-
As a result, the seller must send adaptorless signatures for the factors `ti1`
87+
As a result, the seller must send partial signatures for the factors `ti1`
8888
and `ti2` of each `ri`. In general, in order to reveal multiple secret adaptors
89-
`u1, ..., un` with a single signature the seller must create adaptorless
89+
`u1, ..., un` with a single signature the seller must create partial
9090
signatures `(si, R + sum(uj over j)*G - ui*G, ui*G)`. This ensures that all
91-
adaptorless signatures commit to the same Schnorr signature nonce `R + sum(uj
91+
partial signatures commit to the same Schnorr signature nonce `R + sum(uj
9292
over j)*G`.
9393

94-
However, simply sending multiple adaptorless signatures in that way is problematic.
94+
However, simply sending multiple partial signatures in that way is problematic.
9595
Say the seller sends one adaptorless signature with adaptor `Ti1=ti1*G` and one with
9696
adaptor `Ti2=ti2*G`. Then even without seeing the actual signature, by just
9797
subtracting the signatures the buyer learns `-ti1 + ti2`. Instead, the seller
@@ -123,20 +123,20 @@ r*G + x*H` from a seller.
123123
* For each bit commitment `Qi`, seller generates a uniformly random scalar
124124
`ti1` and sets `ti2`, such that `ti1*ti2*G = ri*G = Qi-xi*H`. Then the
125125
seller computes adaptors `Ti1 = ti1*G` and `Ti2 = ti2*G` and sends
126-
adaptorless signatures `(si1, R + sum(Ai) - H(Ti1)*Ti1, H(Ti1)*Ti1)` and
126+
partial signatures `(si1, R + sum(Ai) - H(Ti1)*Ti1, H(Ti1)*Ti1)` and
127127
`(si2, R + sum(Ai) - H(Ti2)*Ti2, H(Ti2)ti2)` where `Ai` is the sum of
128128
both adaptors. The seller also sends a multiplication proof for Pedersen
129129
commitments proving the multiplicative relationship of the blinding
130130
factors of Ti1, Ti2 and Qi.
131131
3. Swap
132132

133-
* The buyer verifies the adaptorless signatures and multiplication proofs and
133+
* The buyer verifies the partial signatures and multiplication proofs and
134134
sends his contribution to the signature.
135135
* The seller completes the signature `(R, s)` and publishes it along with
136136
the transaction to take her coins.
137137
* Just as in regular atomic swaps using adaptor signatures, the buyer can
138138
recover the discrete logarithm of the adaptor by subtracting
139-
the adaptorless signature from the corresponding s. So for each bit commitment, the
139+
the partial signature from the corresponding s. So for each bit commitment, the
140140
buyer is able to recover `ti1` and `ti2`.
141141
* Because it holds that `ti1*ti2 = ri`, the buyer can reconstruct `x` by
142142
setting the `i`-th bit of `x` to `0` if `Qi == ti1*ti2*G + 0*H` and to

0 commit comments

Comments
 (0)