solidity.readthedocs.io (Link) here is the definition of
"Definition: The only way to remove code from the blockchain is when a contract at that address performs the
Selfdestructoperation. 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 using
"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 using
Selfdestructis not the same as deleting data from a hard disk."
What does exactly
Self-destruct give us and how can it help us ?