Author: Matt Corallo 2012-07-23 16:11:43
Published on: 2012-07-23T16:11:43+00:00
A script engine for pynode, a python script which tokenizes the data stream of a scriptPubKey and scriptSig without execution, was written by Jeff Garzik. In testing the engine, he found over 8,000 tokenization failures in the blockchain, with 100% of those being in coinbase transactions' scriptSig. The scripts used to generate this can be found on GitHub. Matt mentioned on IRC that even though sigops that appear in coinbase transactions are not executed and required to be well-formed, they are still counted, which could be an interesting attack if a miner could put a byte in there equivalent to OP_CHECKSIG since sigops in the coinbase scriptSig are not counted during mining. However, Luke pointed out that the content of coinbase scriptSigs is always pushed properly by default, and modifying the code requires researching it thoroughly; if it breaks, it's their fault. Jeff Garzik provided a data dump of invalid scripts he found in the blockchain, some of which are included in his post.
Updated on: 2023-05-19T04:04:03.496457+00:00