# Impact Analysis of Neutering `SELFDESTRUCT` - Dev Update #3 This is the third update for my [CDAP Project](https://github.com/ethereum-cdap/cohort-zero/blob/main/development-updates.md#albus), which is about analyzing the existing uses of the `SELFDESTRUCT` opcode in Ethereum. ## Progress since last update Based on my [analysis of the usage of `SELFDESTRUCT`](https://nbviewer.jupyter.org/github/adompeldorius/selfdestruct-analysis/blob/4647fef99e2aa0a2031b997f3166f07dfa68d7cb/analysis.ipynb), which revealed that neutering `SELFDESTRUCT` could damage certain DeFi users, I am leaning towards trying to preserve the functionality of `SELFDESTRUCT` when switching the Ethereum State to Verkle Tries. To that end, I have modified the current [Verkle tree proposal](https://notes.ethereum.org/@vbuterin/verkle_tree_eip) to support `SELFDESTRUCT`. My version is hosted [here](https://github.com/adompeldorius/selfdestruct-analysis/blob/main/verkle_trie_with_selfdestruct_eip.md). My version attempts to be the simplest possible modification that supports `SELFDESTRUCT`. The gas usage by contracts that are only deployed once should be almost unchanged, except that an additional slot `incarnation_number` in the contract header needs to be accessed. Gas usage by contracts that have reincarnated at least once is a bit higher, since each contract call needs to access at least two branches. In addition to implementing support for `SELFDESTRUCT`, I also simplified the original specification somewhat by performing the splitting of the least significant byte of each sub-tree index with the rest as part of the function `get_tree_key`. This allowed for removing multiple instances of `// 256` and `% 256` in the spec, and also shortened the syntax of the access events from the form `(address, sub_key, leaf_key)` to the form `(address, sub_key)`. ## What to do next I'm a bit unsure where to go next from here on this project. It seems that the other details about Verkle Tries needs to be finalized and implemented before adding support for `SELFDESTRUCT` will be considered. In the mean time, I will try to learn more about what remains to be done about Verkle tries, and see if I can find something to work on in that area.