Say I am building a transaction in private:
- Input 1 is signed with SIGHASH_SINGLE ( | SIGHASH_ANYONECANPAY)
- Input 2 is signed with SIGHASH_NONE | SIGHASH_ANYONECANPAY
SIGHASH_NONE implies that Input 2 will only spend if Input 1 is included in the transaction. Am I able to communicate this privately-signed transaction in such a way that Input 1 is also locked on the condition that Input 2 is included?
For example, I send this partially-signed transaction, with both signatures, to a person I do not trust.
Are they able to spend Input 1 (the SIGHASH_SINGLE) in another transaction without Input 2 included?
What can I do to lock these two inputs together, with one of the inputs also being locked to an output, while still allowing people to add inputs to the transaction?