Skip to content

EIP 3607 - Prevent transaction from non-EOA account#905

Merged
sorpaas merged 2 commits intopolkadot-evm:masterfrom
moonbeam-foundation:jeremy-eip-3607
Dec 1, 2022
Merged

EIP 3607 - Prevent transaction from non-EOA account#905
sorpaas merged 2 commits intopolkadot-evm:masterfrom
moonbeam-foundation:jeremy-eip-3607

Conversation

@nanocryk
Copy link
Copy Markdown
Contributor

https://eips.ethereum.org/EIPS/eip-3607

I extended the logic to also prevent transactions from precompiles, as projects like Moonbeam have precompiles that interacts with other contracts which will expect calls from precompiles to be legitimate.

@nanocryk nanocryk requested a review from sorpaas as a code owner November 17, 2022 16:03
@sorpaas sorpaas merged commit 24dc7b1 into polkadot-evm:master Dec 1, 2022
abhijeetbhagat pushed a commit to web3labs/frontier that referenced this pull request Jan 11, 2023
@koushiro
Copy link
Copy Markdown
Collaborator

koushiro commented Mar 9, 2023

@sorpaas @nanocryk Why do you merge this, go-ethereum has not implemented this EIP 😕

@sorpaas
Copy link
Copy Markdown
Member

sorpaas commented Mar 9, 2023

Its EIP status is already "Final" so I believe it's already on-chain (or is it Shanghai upgrade?)

Anyway, I think it mostly shouldn't matter -- this EIP is mostly security precautions. In practice, EOA never has code (if it has then something is wrong).

We can also add config options to disable this EIP if you really need it.

@koushiro
Copy link
Copy Markdown
Collaborator

I just found that some behaviours of the frontier compatibility layer are not consistent with geth.
Maybe we need to provide some backwards compatibility for EIP-3607.

Clients might choose to disable this rule for RPC calls like eth_call and eth_estimateGas as some Multi-Sig contracts use these calls to create transactions as if they originated from the multisig contract itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants