2

The basic script for a lightning network HTLC output has a conditional branch which requires a user to know a preimage of a hash. It also requires the user to give a valid signature, but it got me thinking, what if before P2SH was a thing (back in the day) a user created a locking script which just so happens to match the P2SH template? For whatever reason, the user only intended to lock the bitcoin with a "spender must know the preimage of this hash" requirement. But this preimage is not a bitcoin script itself, so can't be executed even though it matches the P2SH template. Do P2SH-knowing nodes lock this bitcoin forever?

0

2 Answers 2

1

Yes, that could happen. However it is also possible to inspect the blockchain for such outputs, and none exist that weren't known to be for testing.

1
0

I think this question is effectively asking what happens if you try to pre-empt future soft fork rules and broadcast a transaction which can only be spent after a future soft fork lays out the rules for spending that output(s). Today such an output would be anyone-can-spend on broadcasting so it would be the complete opposite of being locked up forever. But at the time of the P2SH soft fork (2012) it would have been locked up forever unless the transaction constructor was able to perfectly pre-empt the future rules for spending the output. Any slight mistake when attempting to pre-empt those future rules could have resulted in them being locked up forever so it wouldn't have been advisable to try this.

1
  • I was thinking the opposite, where a user creates a script which is unintentionally restricted by a future softfork.
    – yonson
    Feb 13 at 17:22

Not the answer you're looking for? Browse other questions tagged or ask your own question.