Hi Lloyd,
> Yes but suppose you do *not* create another signature adaptor or otherwise on
> m. Since you've only generated one adaptor signature on m and no other
> signatures on m there is no possibility that a signature on m that appears
> under your key would not reveal y to you. This is an useful property in
> theory and in practice.
Ah yes, this is a pretty big error on my part! Thanks for walking it through.
It's where this is analogous to asymmetric encryption. I remember you framing
it like that, in terms of asymmetric encryption (but with the one-time, a bit
like symmetric, twist), in your paper. I should have re-read it a lot more
thoroughly! :)
I must have had this misconception floating around in my head about adaptors
for years.
It's interesting that it didn't help choosing the framing : s' = k - t
+H(R|P|m)x instead of s' = k + H(R+T|P|m)x although, as I noted there, they're
equivalent (indeed, the former framing was also used in e.g. the description of
the atomic swap in the scriptless-scripts writeups repo). But in the latter
framing it's much more obvious that you can do this, given that you can just
plug T into the hash directly.
A sidebar, but it immediately brings it to mind: the canonical adaptor based
swap, you can do it with only one half being multisig like this, right? Alice
can encrypt the single-key signature for her payment to Bob, with the
encryption key being T= sG, where s is the partial signature of Bob, on the
payout from a multisig, to Alice. That way Bob only gets his money in the
single sig (A->B) tx, if he reveals his partial sig on the multisig. I don't
think it's of practical interest (1 multisig instead of 2? meh), but .. I don't
see anywhere that potential variant being written down? Is there some obvious
flaw with that?
Cheers,
waxwing/AdamISZ
Sent with [Proton Mail](https://proton.me/) secure email.
------- Original Message -------
On Monday, May 8th, 2023 at 05:37, Lloyd Fournier via bitcoin-dev
<bitcoin-dev@lists.linuxfoundation.org> wrote:
> Hi Waxwing,
>
> On Tue, 2 May 2023 at 02:37, AdamISZ <adam...@protonmail.com> wrote:
>
>> Hi Lloyd,
>> thanks for taking a look.
>>
>>> I think your view of the uselessness of single signer adaptors is too
>>> pessimistic. The claim you make is that they "don't provide a way to create
>>> enforcement that the publication of signature on a pre-defined message will
>>> reveal a secret'' and so are useless. I think this is wrong. If I hold a
>>> secret key for X and create a signature adaptor with some encryption key Y
>>> with message m and do not create any further signatures (adaptor or
>>> otherwise) on m, then any signature on m that is published necessarily
>>> reveals the secret on Y to me. This is very useful and has already been
>>> used for years by DLCs in production.
>>
>> I'm struggling with this one - say I hold privkey x for pubkey X. And I
>> publish adaptor for a point Y (DL y) for message m, like: s' = k - y +
>> H(R|X|m)x with k the nonce and R the nonce point.
>>
>> And to get the basics clear first, if I publish s = k + H(R|X|m)x then of
>> course the secret y is revealed.
>>
>> What do you mean in saying "any signature on m that is published reveals y"?
>> Clearly you don't mean any signature on any key (i.e. not the key X). But I
>> also can't parse it if you mean "any signature on m using key X", because if
>> I go ahead and publish s = k_2 + H(R_2|X|m)x, it has no algebraic
>> relationship to the adaptor s' as defined above, right?
>
> Yes but suppose you do *not* create another signature adaptor or otherwise on
> m. Since you've only generated one adaptor signature on m and no other
> signatures on m there is no possibility that a signature on m that appears
> under your key would not reveal y to you. This is an useful property in
> theory and in practice.
>
>> I think the point of confusion is maybe about the DLC construct? I
>> referenced that in Section 4.2, parenthetically, because it's analogous in
>> one sense - in MuSig(2) you're fixing R via a negotiation, whereas in
>> Dryja's construct you're fixing R "by definition". When I was talking about
>> single key Schnorr, I was saying that's what's missing, and thereby making
>> them useless.
>
> I was not referencing the DLC oracle attestation protocol - I am pointing out
> that DLC client implementations have been using single signer adaptor
> signatures as signature encryption in practice for years for the transaction
> signatures. There are even channel implementations using them as well as
> atomic swaps doing this iirc. It's a pretty useful thing!
>
> Cheers,
>
> LL
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev