Here is a general concept for an EIP. It could also be an ERC, but that would require more work on the application side. The basic idea is that one could mark their own account as compromised so that tools would know not to trust this account in the future. There could be other features, but the game theory is that no one would mark their own account as compromised if they want to maintain their reputation. Therefore, accounts would only ever be marked as compromised if they were compromised or if someone were self sabotaging themselves in which case they should also not be trusted. If someone does not want you to trust them you should not trust them. Therefore you can reliably assume that if an account has ever been marked as compromised that you should not trust it.
Right now if your private key is leaked you can transfer all your funds out of your account, but your account can still be used to log into and sign message, basically until the end of time. There is no way to let the world know that at some point in the past this account was compromised.
Here is how I think it could work:
-
A special transaction that ads a flag to an account that it has been compromised.
-
Funds could still be transferred, but future tools can deny service or mark this account as unsafe on their end.
-
If you wanted to go further accounts could have a backup account that would be the only account that could receive funds, but that seems heavy handed.
NOTE: It would NOT be a good idea to have a “forward” address of the new trusted account as a hacker could have compromised that one as well. One must establish a new reputation on a new account independently.
This could either be accomplished with some kind of account flag or maybe a deployed asset like a soulbound token. A soulbound token would be easy to deploy, but then anyone who cared would have to make a query to an NFT indexer every time they cared to know. That seems like tech debt. I’d be curious if anyone has any other ideas how this could be implemented.
Thoughts?