BUIP016: Consensus with Classic on txn size limit
Proposer: Andrew Clifford
Submitted: 2016-01-20
Status: passed
revision 1: 21 Jan 2016 (no longer a simple 100kb limit for txns)
Summary
This is a "bare bones" BUIP just to obtain BU membership agreement for implementing the final patch used in Classic for transaction size limiting. This patch is necessary for blocks >1MB because there is a theoretical attack possible on Bitcoin from a rogue miner creating very large txns which take minutes to verify, i.e. too many signature validation operations (sigops). BU is safe from this attack, but may eventually reject blocks which Classic considers valid, perhaps not for a few years but the probability of a divergence increases as block sizes steadily increase.
Gavin Andresen has written a sophisticated pull request for Bitcoin Classic:
https://github.com/bitcoinclassic/bitcoinclassic/commit/842dc24b23ad9551c67672660c4cba882c4c840a
Accurate sigop/sighash accounting and limits
Adds a ValidationCostTracker class that is passed to
CheckInputs() / CScriptCheck() to keep track of the exact number
of signature operations required to validate a block, and the
exact number of bytes hashed to compute signature hashes.
Also extends CHashWriter to keep track of number of bytes hashed.
Signature operations per block are limited to MAX_BLOCK_SIGOPS
(unchanged at 20,000)
Bytes hashed to compute signatures is limited to MAX_BLOCK_SIGHASH
(1.3 GB in this commit).
**
Proposal**
That the BU Developer may implement the same patch which Classic uses for txn size limiting in a BU release before or during the first release of Classic.