LearnBitcoin

Bitcoin Dev Archive 2021

Tweaking tapscript instead of public key

2 messages, 23 May 2021. Started by vjudeu.

vjudeu, Ruben Somsen

Permalink Original thread on gnusha.org

vjudeu permalink original

As far as I know, P2TR address contains 32-byte public key. It can be used directly by creating Schnorr signature or indirectly, by revealing tapscript. Does it mean that any taproot output could be modified on-the-fly after being confirmed without changing an address? I mean, if we have base point as the private key with P2TR address tb1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqqzj3dz, then the owner of that key can modify spending conditions without moving on-chain coins?

Ruben Somsen in reply to vjudeu permalink original

Hi,

That's an excellent question, but note that answering such questions is not the primary function of this mailing list. Places like Bitcoin Stack Exchange or even IRC are probably better for that!

Specific to your question: in Taproot Q = P + hash(P||m)*G. The fact that P
is hashed together with the message, makes it a commitment. If you try to
change m to e.g. m2, then Q - hash(P||m2) will never result in P (unless
the hash function is broken).

The original Taproot thread can be found here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-January/015614.html

Cheers, Ruben

On Sun, May 23, 2021 at 7:10 PM vjudeu via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:

Quoted text (13 lines)
> As far as I know, P2TR address contains 32-byte public key. It can be used
> directly by creating Schnorr signature or indirectly, by revealing
> tapscript. Does it mean that any taproot output could be modified
> on-the-fly after being confirmed without changing an address? I mean, if we
> have base point as the private key with P2TR address
> tb1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqqzj3dz, then the
> owner of that key can modify spending conditions without moving on-chain
> coins?
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation•org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>