diff --git a/EIPS/eip-1884.md b/EIPS/eip-1884.md index 19faa3578d7cda..e1b2d8ba223e3f 100644 --- a/EIPS/eip-1884.md +++ b/EIPS/eip-1884.md @@ -36,6 +36,7 @@ At block `N`, - The `SLOAD` (`0x54`) operation changes from `200` to `800` gas, - The `BALANCE` (`0x31`) operation changes from `400` to `700` gas, +- The `EXTCODEHASH` (`0x3F`) operation changes from `400` to `700` gas, - A new opcode, `SELFBALANCE` is introduced at `0x46`. - `SELFBALANCE` pops `0` arguments off the stack, - `SELFBALANCE` pushes the `balance` of the current address to the stack, @@ -91,6 +92,15 @@ opcodes: `EXTBALANCE(address)` and `SELFBALANCE`, and have two different prices. * As for why it is priced at `5` (`GasFastStep`) instead of `2` (`GasQuickStep`), like other similar operations: the EVM execution engine still needs a lookup into the (cached) trie, and `balance`, unlike `gasPrice` or `timeStamp`, is not constant during the execution, so it has a bit more inherent overhead. +### `EXTCODEHASH` + +`EXTCODEHASH` was introduced in Constantinople, with [EIP 1052](https://eips.ethereum.org/EIPS/eip-1052). It was priced at `400` with the reasoning: + +> The gas cost is the same as the gas cost for the `BALANCE` opcode because the execution of the `EXTCODEHASH` requires the same account lookup as in `BALANCE`. + +Ergo, if we increase `BALANCE`, we should also increase `EXTCODEHASH` + + ## Backwards Compatibility The changes require a hardfork. The changes have the following consequences: