cip | title | author | discussions-to | status | type | category | created | license |
---|---|---|---|---|---|---|---|---|
50 |
Optional Replay Protection |
Gastón Ponti (@gastonponti) |
Final |
Standards Track |
Ring 0 |
2021-11-18 |
Apache 2.0 |
Revert one of the changes added in the CIP-35 which made the replay protection (see EIP-155) mandatory
This CIP will revert the changes made in CIP-35 and makes it optional flag to configure.
Making the replay protection mandatory breaks our compatibility with Ethereum. EIPs such as EIP-1820 depend exclusively on not having that limitation. If our biggest concern was to avoid errors or confusion between chains, that should be checked by our tooling or RPC API calls, not an EVM limitation.
This change requires activation as part of a hard fork. As of FORK_BLOCK_NUMBER
clients MUST accept transactions that had not set the chainId
. This CIP will be included in Espresso Hardfork - CIP 41
If we want to be completely compatible with Ethereum, the issue, as explained in the Motivation section should be addressed. The CIP35 changed that without being completely conscient on how that would affect EVM compatibility.
This CIP is proposed as part of Espresso Hardfork and therefore will be backwards incompatible. Hardforks in general are backwards incompatible.
TBD
This will bring again the possibility of a replay attack. Even if the majority of the tools generates transactions with chainIds, we could add some restrictions from the client side, to avoid common mistakes. For example, set a client to just allow protected transactions (as Ethereum has) or add a new rpc endpoint that will be the only way to push an unprotected tx.
This work is licensed under the Apache License, Version 2.0.