According to solidity.readthedocs.io
(Link) here is the definition of Self-destruct
:
"Definition: The only way to remove code from the blockchain is when a contract at that address performs the
Selfdestruct
operation. The remaining Ether stored at that address is sent to a designated target and then the storage and code is removed from the state."
While this definition sounds allowing possibility of erasure feature (that is one of the main challenges of incompatibility of GDPR (General Data Protection Regulation) with the blockchain. (Link to Right to erasure in GDPR)); however after definition of Self-destruct
, there are following Note and Warning:
"Note: Even if a contract’s code does not contain a call to
Selfdestruct
, it can still perform that operation usingdelegatecall
orcallcode
.""Warning: Even if a contract is removed by
Selfdestruct
, it is still part of the history of the blockchain and probably retained by most Ethereum nodes. So usingSelfdestruct
is not the same as deleting data from a hard disk."
What does exactly Self-destruct
give us and how can it help us ?
SELFDESTRUCT
will not exist anymore.