Commit d475b15
committed
Relax standardness rules regarding CHECKMULTISIG
In PR bitcoin#5247, the STRICTENC standardness rules were tightned with regards to
CHECKMULTISIG so that unparsable public keys fail the script when they are
encountered. The overall purpose here was to disallow the use of confusing
hybrid public keys by policy while remaining keeping policy compatible (i.e.
strictly stronger) than consensus rules.
Comments in PR bitcoin#5247 note that "I don't believe it should affect any system in
production", however this believe is/was false. Counterparty was stuffing data
blobs into multisig pubkey lists. But these UTXOs were meant to be spendable
because, although some pubkeys were unparsable, some keys were parsable, and the
UTXOs were meant to be spent buy those valid keys.
But in tackling the hybrid key issue, PR bitcoin#5247 disallowed any unparsable keys in
multisigs, whether or not they were hybrid, and whether or not the signature
was meant to satify a hybrid key.
In production Counterparty UTXOs were inadvertantly caught up in this
standardness rule change and became "soft confiscated", that is not longer
spendable by policy but still recoverable if users are able to somehow bypass
standardness by minding their transactions themselves, or getting out-of-band
assistance from some other miner.
I understand that Bitcoin Core never intended to "soft confiscate" any UTXOs by
policy changes. This change addresses the problem.
With this change standardness rules intended for hybrid keys are only checked
for successful signature in CHECKMULTISIG operations. Failing signature checks
revert to their consensus behaviour of testing subsequent public keys.1 parent 305384a commit d475b15
1 file changed
+5
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1158 | 1158 | | |
1159 | 1159 | | |
1160 | 1160 | | |
1161 | | - | |
| 1161 | + | |
1162 | 1162 | | |
1163 | 1163 | | |
1164 | 1164 | | |
| |||
1167 | 1167 | | |
1168 | 1168 | | |
1169 | 1169 | | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
1170 | 1174 | | |
1171 | 1175 | | |
1172 | 1176 | | |
| |||
0 commit comments