CHIPs · CHIP-2021-01 · activated
Minimum Transaction Size (Allow Smaller Transactions)
Lowered the minimum transaction size from 100 bytes to 65 bytes, still blocking the 64-byte Merkle-tree attack.
Summary
The November 2018 upgrade made transactions under 100 bytes invalid. This CHIP lowered the minimum to 65 bytes.
Motivation
The 100-byte rule blocks a known weakness in Bitcoin’s Merkle tree: a 64-byte transaction can be confused with an inner tree node, which lets an attacker fool SPV wallets. But 100 bytes was more than needed.
Tom Zander’s original post lists the costs:
- A default coinbase transaction is smaller than 100 bytes, so mining software had to pad it or risk invalid blocks.
- Many valid, useful non-P2PKH transactions fit in fewer than 100 bytes.
The first draft proposed banning exactly 64 bytes. Discussion settled on a simple minimum of 65 instead, so the range of valid sizes stays one continuous interval. Calin Culianu implemented it in Bitcoin Cash Node.
What it specifies
From the May 2023 upgrade, a transaction must be at least 65 bytes. Transactions of 64 bytes or fewer are invalid.
Current status
Activated on 15 May 2023 with CashTokens. bitjson’s summary of the upgrade: “Allowing transactions to be as small as 65 bytes avoids wasting bandwidth and storage.”
No formal stakeholder table was found for this CHIP.