SIGHASH_NOINPUT in Segregated Witness



Summary:

Segregated Witness (Segwit) is set to be merged soon as a solution for transaction malleability, particularly with multi-party adversarial signatures. However, there may be an additional use case which requires a new SIGHASH flag inside SegWit that does not sign the input txid/index. This would help with third-party outsourcing for watching the blockchain, as it would provide a signature that encompasses penalty transactions for all prior states. This is especially necessary because it is highly desirable to make keeping track of these channels be very cheap, reducing the chance of a third party failing to watch. A SIGHASH flag, termed SIGHASH_NOINPUT, would achieve this and would include the spent outpoint's script as part of the signature. Note that this is just a SIGHASH flag, and the outpoints are still being included as part of the txins. With this SIGHASH flag, one could delegate outsourcing when one's client goes offline with a single message several hundred bytes in size, encompassing all prior states. It allows for opt-in wildcard inputs, but wallets which do not require these transactions do not need to be concerned with this flag. If individuals are doing tens of thousands of transactions per day, then it quickly becomes infeasible to watch on behalf of many channels without material costs. If there is interest in this solution, a draft BIP will be written up in the next couple of days.


Updated on: 2023-06-11T04:08:09.327074+00:00