diff --git a/EIPS/eip-1344.md b/EIPS/eip-1344.md new file mode 100644 index 0000000000000..e0b8db3cfc9dd --- /dev/null +++ b/EIPS/eip-1344.md @@ -0,0 +1,16 @@ +--- +eip: 1344 +title: ChainID opcode +author: Richard Meissner (@rmeissner) +discussions-to: https://ethereum-magicians.org/t/add-chain-id-opcode-for-replay-protection-when-handling-signed-messages-in-contracts/1131 +category: Core +type: Standards Track +status: Draft +created: 2018-08-22 +--- + ### Specification + Adds a new opcode at 0x46, which takes 0 stack arguments. It will return the chain id of the chain where the block was mined. It should cost 2 gas (G_base) to execute this opcode. + ### Motivation + [EIP-155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md) proposes to use the chain id to prevent replay attacks between different chains. It would be a great benefit to have the same possibility inside smart contracts when handling signatures. + The current approach proposed by [EIP-712](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md) is to specify the chain id on compile time. Using this approach will result in problems after a hardfork. + By adding the opcode it would be possible to access the current chain id and validate signatures based on that.