Mainnet
Type Attack on contract
Summary An (as-yet) unidentified attacker using account 0xf35e2cc8e6523d683ed44870f5b7cc785051a77d
created a contract with some code that was executed by TheDao contract when using the contract splitting functionality. The recursive call of this contract enabled the attacker to take 3,641,694 ETH due to a bug in the contract whereby the authors assumed atomicity of a TheDao balance change.
Period(s) Starting at block 1706609 until around block 1720000
Remedies
- Creating a hard fork to nullify transactions made to TheDao contract, thus preventing withdrawal of funds. Transferring funds from TheDao to a withdrawal contract to allow TheDao token holders to retrieve ether proportional to their ownership of TheDao tokens.
Aftermath
- The fork was contentious and not everyone moved to the new fork. The original chain is known as Ethereum Classic.
- Replay attacks between the two chains existed; EIP155 and the Replay-Safe splitter contract were used to rectify the situation.
State-bloat attack
Type Attack on protocol
Summary Underpriced EVM instructions allowed an attack to slow the processing of blocks, especially for nodes using HDD for storage. The amount of storage required to store the current state also grew.
Period(s) ? until block 2463000 with some residual effects afterwards.
Remedies
Aftermath Syncing is slow for a large number of blocks on the blockchain in the period of the attack and the clean-up contract's execution.
Parity multi-sig wallet July 2017 theft
Type Attack on contract
Summary
Period(s)
Remedies
- Recommended transfer of "secured" assets to new multi-sig wallet.
Aftermath
Parity multi-sig wallet November 2017 freeze
Type Attack on contract
Summary
Period(s)
Remedies
Aftermath
Ropsten testnet
February 2017 PoW attack
Type Attack on network
Summary Because Ropsten has fewer miners, an attacker was able to disrupt activity on the testnet with access to relatively little mining power.
Period(s)
Remedies
Aftermath