Skip to content

Commit

Permalink
Update 4758: Move to Review (#6041)
Browse files Browse the repository at this point in the history
* Move 4758 to Review

* Fix list

* Fix section name and reference

* Add EIP link
  • Loading branch information
dankrad authored Nov 28, 2022
1 parent 3826404 commit b9529eb
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions EIPS/eip-4758.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Deactivate SELFDESTRUCT
description: Deactivate SELFDESTRUCT by changing it to SENDALL, which does recover all funds to the caller but does not delete any code or storage.
author: Guillaume Ballet (@gballet), Vitalik Buterin (@vbuterin), Dankrad Feist (@dankrad)
discussions-to: https://ethereum-magicians.org/t/eip-4758-deactivate-selfdestruct/8710
status: Draft
status: Review
type: Standards Track
category: Core
created: 2022-02-03
Expand All @@ -29,7 +29,7 @@ This EIP implements this change. Applications that only use `SELFDESTRUCT` to re

Getting rid of the `SELFDESTRUCT` opcode has been considered in the past, and there are currently no strong reasons to use it. Disabling it will be a requirement for statelessness.

## Backward Compatibility
## Backwards Compatibility

This EIP requires a hard fork, since it modifies consensus rules.

Expand All @@ -38,10 +38,11 @@ Few applications are affected by this change. The only use that breaks is where
## Security Considerations

The following applications of `SELFDESTRUCT` will be broken and applications that use it in this way are not safe anymore:
1. Any use where `SELFDESTRUCT` is used to burn non-ETH token balances, such as ERC20, inside a contract. We do not know of any such use (since it can easily be done by sending to a burn address this seems an unlikely way to use `SELFDESTRUCT`)

1. Any use where `SELFDESTRUCT` is used to burn non-ETH token balances, such as [EIP-20](./eip-20.md)), inside a contract. We do not know of any such use (since it can easily be done by sending to a burn address this seems an unlikely way to use `SELFDESTRUCT`)
2. Where `CREATE2` is used to redeploy a contract in the same place. There are two ways in which this can fail:
- The destruction prevents the contract from being used outside of a certain context. For example, the contract allows anyone to withdraw funds, but `SELFDESTRUCT` is used at the end of an operation to prevent others from doing this. This type of operation can easily be modified to not depend on `SELFDESTRUCT`.
- The `SELFDESTRUCT` operation is used in order to make a contract upgradable. This is not supported anymore and delegates should be used.
* The destruction prevents the contract from being used outside of a certain context. For example, the contract allows anyone to withdraw funds, but `SELFDESTRUCT` is used at the end of an operation to prevent others from doing this. This type of operation can easily be modified to not depend on `SELFDESTRUCT`.
* The `SELFDESTRUCT` operation is used in order to make a contract upgradable. This is not supported anymore and delegates should be used.


## Copyright
Expand Down

0 comments on commit b9529eb

Please sign in to comment.