Good morning list,

> > Can this "unknown discrete logarithm" be made provably unknown, so all 
> > signers are assured of this property? Bonus points if the outside world 
> > can't tell. The exact mechanism could be outside the scope of the BIP, but 
> > knowing that it's possible is useful.
>
> Yes, that's a TODO that's left in the draft, but this is absolutely
> possible (using a hash-to-curve operation). As ZmnSCPxj already
> suggested, there can even be a fixed known constant you can use for
> this. However, you get better privacy by taking this fixed known
> constant (call it C) and using as internal key a blinded version of it
> (C+rG, for some random value r, and G the normal secp256k1 generator);
> as long as the DL between G and C is unknown, this is safe (and does
> not reveal to the world that in fact no key-path was permitted when
> spending).

Gregory Maxwell commented some days ago:

> 2019-05-11T23:35:02  <gmaxwell> sipa: also someone might want to point out to 
> ZmnSCPxj  that his scheme for getting a NUMS point is insecure (it must also 
> commit to G because we don't know how G was generated)

I am assuming that gmax is referring to my description of the "hash-to-point" 
or "hash-to-curve" operation.

A little more research shows this: https://crypto.stackexchange.com/a/25603

>From the above, it seems the method that real cryptographers use is:

1.  Generate some random data d.
2.  Get x = h(G | d) where G is the existing generator for secp256k1.
3.  Find a point on secp256k1 with X coordinate x.
4.  If not found, go to 1.

In any case, I am almost sure that for every case where the "everyone agrees" 
path is unwanted in a taproot address, the simple "put your own pubkey lock on 
the door and throw away the privkey" technique would work without requiring a 
NUMS point: the same taproot assumption should also work here.
But generation of a NUMS point might be of independent interest in any case 
(e.g. setting up Pedersen commitments).

Regards,
ZmnSCPxj
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to