EIP-2294: Explicit bound to Chain ID

I honestly don’t think any limitation is necessary, since any value that makes a transaction un-handleable will be rejected by either the wallet, mempool, or chain. A chain will only have chainIDs the clients support, and furthermore one per chain right now. So to wind up on the chain there must be at least one client that can handle it, and then at least one wallet that supports it (or custom submission software). The software will implicitly limit it without need to force it down the rest of the chain. Metamask in effect enforces the 55 bit limit for legacy transactions.

There already exists a consensus rule for chainID bounds: each chain accepts only one. Mainnet and the testnets only accept single bytes at the moment.

Placing a limit on the size of the chainID only places an unneeded limit in innovation. Clients will ignore that the moment it becomes interesting, such as the size limit on ExtraData in the block header, something the python libs ever enforced.

1 Like