Disallow insecure use of SIGHASH_SINGLE



Summary:

A new policy has been proposed to prevent the usage of SIGHASH_SINGLE without matched output. The signature of this form is considered insecure as it commits to no output while users might think it commits to one. This becomes even worse in non-segwit scripts, which results in any UTXO of the same key being stolen. While it's restricted to only one UTXO in segwit, it's still like a SIGHASH_NONE. This is one of the earliest unintended consensus behaviors and is inherently unsafe.To disable this unintended "feature" with a softfork, these signatures need to be made non-standard. A pull request has already been made to add this policy to Bitcoin's Github repository. As these signatures are currently allowed, making them non-standard is the first step towards disabling them.


Updated on: 2023-05-20T16:58:47.030912+00:00