How CTV+CSFS improves BitVM bridges

For completeness, we are encountering another issue with this construction:

  • If inputA and inputB are created by the same transaction, we cannot apply our trick, as it would create a hash cycle.
  • For the same reason, we cannot apply it to any inputB' that is a child of inputB.
  • Similarly, we cannot apply it to any inputA' that is a child of inputA and connected via a chain of CTV hashes.

Furthermore, inputB should use sighash ANYONECANPAY|ALL to ensure it creates the correct output. However, it could still be spent “maliciously” without inputA.