Tweaking tapscript instead of public key
2 messages, 23 May 2021. Started by vjudeu.
vjudeu, Ruben Somsen
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?
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 >