AlertSourceDiscuss
Skip to content

EIP-4803: Limit transaction gas to a maximum of 2^63-1

Valid transactions must have a reasonable gas limit

🚧 StagnantCore

Stagnant

This EIP has had no recent activity for at least 6 months, and has automatically been marked as stagnant. This EIP should not be used in production.

If you are interested in helping move this EIP to final, create a PR to move this EIP back to Draft and add yourself as an author, and an EIP editor will help guide you through the process. Thank you!

AuthorsAlex Beregszaszi (@axic)
Created2022-02-02

Abstract ​

Limit transaction gas to be between 0 and 2^63-1.

Motivation ​

The gas limit field in the transaction is specified to be an arbitrary long unsigned integer, but various clients put limits on this value. This EIP brings a reasonable limit into consensus.

Specification ​

Introduce one new restrictions retroactively from genesis: any transaction is invalid and not includeable in a block, where the gas limit exceeds 2^63-1.

Rationale ​

2^63-1 vs 2^64-1 ​

2^63-1 is chosen because it allows representing the gas value as a signed integer, and so the out of gas check can be done as a simple "less than zero" check after subtraction.

Current limit ​

Due to the nature of RLP encoding, there is no fixed upper bound for the value, but most implementations limit it to 256-bits. Furthermore, most client implementations (such as geth) internally handle gas as a 64-bit value.

Backwards Compatibility ​

While this is a breaking change, no actual effect should be visible.

Before EIP-1559 it was possible to include transactions with gasPrice = 0 and thus the gasLimit * gasPrice <= accountBalance calculation could have allowed for arbitrarily large values of gasLimit. However, the rule that the transaction list cannot exceed the block gas limit, and the strict rules about how the block gas limit can change, prevented arbitrarily large values of gasLimit to be in the historical state.

Security Considerations ​

None.

Test Cases ​

TBA

Copyright and related rights waived via CC0.

Citation

Please cite this document as:

Alex Beregszaszi, "EIP-4803: Limit transaction gas to a maximum of 2^63-1[DRAFT]," Ethereum Improvement Proposals, no. 4803, 2022. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-4803.