Tapret tweak in change output for witness transfers #261
-
When creating tapret transfers towards a witness beneficiary, the tapret host is always set on the change output. I imagine this is to avoid the complexity of adding the taproot tweak to the descriptor on the receiver side. Is this a protocol-level restriction or is it possible to support transfers with a tapret tweak on a receiver's witness output? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
Correct. Also the receiving part may not be a taproot wallet and can't accept an output with tapret tweak.
It is not a consensus-, consignment- or persistence-level restriction or a limitation. It is just the only way of implementation which makes sense. But someone else may write a different implementation of they need to.
Yes, they are there: the tweak can be always deterministically reconstructed by the receiver from the anchor data he receives anyway with the consignment. At the end of the day the receiver has to validate all hostorical opret and tapret tweaks, including the last one, so indeed he has all information to reproduce them. |
Beta Was this translation helpful? Give feedback.
-
Thanks for confirming it's possible. I think I managed to reconstruct the tweak from the consignment data, but |
Beta Was this translation helpful? Give feedback.
-
While trying to implement the required logic to tweak an output other than the change, I bumped into an issue that seems to derive from taproot specification details.
A then proceeds to build a transaction sending some coins to Alternatively, this could be also solved by B also sharing the internal key |
Beta Was this translation helpful? Give feedback.
Correct. Also the receiving part may not be a taproot wallet and can't accept an output with tapret tweak.
It is not a consensus-, consignment- or persistence-level restriction or a limitation. It is just the only way of implementation which makes sense. But someone else may write a different implementation of they need to.