EIP-2046: Reduced gas cost for static calls made to precompiles

Discussion thread for

This has been previously suggested as part of EIP-1109 and EIP-1231.

However EIP-1109 was later changed to a very different approach. I have suggested to change EIP-1109 a while ago, but it seems it will stick with that approach, hence my reason creating a new EIP.

This EIP still references 1352 as a base upon which to build, but that was dropped from Istanbul. Without that, this EIP becomes open to interpretation. I’d suggest reworking it or postponing from Istanbul.

From my perspective, implementing this without EIP-1352 " Specify restricted address range for precompiles/system contracts" is at least inconvenient. The EVM will need to know how many precompiles are there and at what addresses they are deployed. I’d rather hard-code this information inside EVM based on the hard fork id. This is simplest approach but not very generic and disallows other precompiles configurations for Ethereum networks other than mainnet.

Some benchmark/analysis available here: https://github.com/holiman/goevmlab/tree/master/examples/callPrecompiles

TLDR; No objections from my side, other than that some of the existing precompiles may have to be adjusted a bit.