-
Notifications
You must be signed in to change notification settings - Fork 37.6k
Description
It is my understanding that bitcoin does not verify the version number in block or transactions. If versions are meant as an extension mechanism, then presumably the client ought to enforce that all the version numbers are equal to 1 until such time as alternative block and transaction versions are added. Right now anyone can start spamming version numbers with any value they want I think.
Similarly the client only checks to see if the low bits of the HashType are SIGHASH_NONE or SIGHASH_SINGLE and all other combinations are treated as SIGHASH_ALL. Again, if this mechanism was intended to be extensible, then you need to check that the SIGHASH_ALL is correct and reject all other invalid HashTypes. Since there are only 5 bits available, spammers could easily exhaust all the HashTypes. Already at least transaction c99c49... is using an invalid HashType of 0 as if it were a SIGHASH_ALL.