Convert EOA to contract account

contract-deploymentcreate2cryptographyprivate-keypublic-key

EIP-2026 mentions several ways of creating a new account. One way is by:

(…) converting a non-countract account into a contract account (…)

Is this a hypothetical scenario or could this be done in practice?

I know that public keys are derived from the private key using Elliptic Curve Cryptography.
And contracts are created at a deterministic address using CREATE or CREATE2. Even putting these two together, I would think you would have to break cryptography to deploy a contract to an EOA. What am I missing here?

Best Answer

The issue is in your assumption that they mean convert an EOA to a contract. Yes, deploying a contract to the same address that you have a private key to would be, practically speaking, impossible. I doubt that's what is meant by the EIP though. It doesn't say anything about EOA

I think technically what that quote is referring to is accounts that have been touched but don't have a contract yet deployed to them, i.e. you calculate the address ahead of time and "touch it" - e.g. by just sending a little ETH to it. That "creates" that account, but it's not an EOA or a contract really, just an account with a balance. Then you can create a contract there since you pre-computed it in the first place, converting a non-contract account into a contract account