Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.
Sign up to join this communityAnybody can ask a question
Anybody can answer
The best answers are voted up and rise to the top
Pushdata operations that are not minimally encoded are not standard since bitcoin core 0.9
My question is: how is this check performed? From reading the source code it seems that it is performed only on executed branches of the script, but it seems not quite right. It would have made more sense to me if it were performed either on the entire script or only on the scriptSig, since malleability of pushdata operations in the scriptSig is what prompted for the check in the first place.
Am I wrong?
The minimal push check only needs to occur for scripts that are being executed. The malleability only comes from data that is pushed to the stack when an input is being spent. That data is not covered by any signatures which is why it is malleable. So the only data that is pushed to the stack that is malleable are the arguments required for the path taken. There won't be any arguments for the path not taken.
Of course this means that if the script has a path that is not taken, the pushes for anything in those branches are not checked. However these are not malleable. The script will have been committed to earlier in the output script of the output being spent.
You can get bonuses upto $100 FREE BONUS when you:
π° Install these recommended apps:
π² SocialGood - 100% Crypto Back on Everyday Shopping
π² xPortal - The DeFi For The Next Billion
π² CryptoTab Browser - Lightweight, fast, and ready to mine!
π° Register on these recommended exchanges:
π‘ Binanceπ‘ Bitfinexπ‘ Bitmartπ‘ Bittrexπ‘ Bitget
π‘ CoinExπ‘ Crypto.comπ‘ Gate.ioπ‘ Huobiπ‘ Kucoin.
Comments