Probably a very naive question, but when attacks occur such as the etherdelta one yesterday, what's stopping having a system in place to basically freeze assets in a certain address before the attacker moves funds? I.e. Each node submits a vote to blacklist a certain address and when consensus is reached, nodes refuse to include any transactions from that certain address. Does something like this exist (on any chain), if not why?
If voting were free and part of the protocol, there's nothing to stop a sybil attack from blacklisting legitimate accounts or removing malicious accounts from a blacklist.
If voting had a cost, because accounts are free to create, there's nothing to stop someone from splitting up an attack to create a huge cost for members of the network to blacklist the accounts -- another attack on the network.
If voting were free and not part of the protocol (such as an external voting system that resulted in a hard fork), then the system would be unresponsive to attacks. TheDAO attack was only able to be countered on the mainnet without rolling back any transactions because of the waiting period for withdrawal of ether in TheDAO contract.
If voting were restricted to manipulation of the protocol (such as via miners censoring transactions by refusing to mine/relay any transactions involving the to-be-blacklisted account), this would have the same effect as above, except that the network could soft fork if miners are hard-headed enough. Then the cost of voting becomes one's ability to acquire hashing power (or staking power) -- which then falls back into the second case.
Ironically, if users act individually, they can resolve this problem. One can ignore tainted ether/tokens and treat them the same way an honest person would treat counterfeit cash: by disposing of it. This can be done by burning the tokens. One can also declare that tokens sent by an account (or via a tainted address) will be burned. For example, Changelly blacklisted the address for the Parity wallet theft earlier this year. Any tainted coins thus become destroyed like being sent to a tar pit. If users individually agree that a particular account should be tar-pitted, then they ought to respect transactions sent from an account that was tainted but then burned the coins. If these users are the majority, then there is a strong individual incentive to burn the coins to prevent one's accounts from becoming tainted/blacklisted. If these users are in the minority, then one is burning coins for nothing (except, perhaps, one's own conscience and for transacting with the rest of the minority).
It cannot be done. The reason being it opens a DDOS vector. The malicious address can be hidden by creating a program of very high complexity and then running this program would result in no gas going to miners due to the block being excluded. This is because it's impossible to perform statics analysis of a turing complete program.
Also, an attempt a stealth fork (such as collusion by top 5 miners) would create orphaned blocks and forked chains and this would be obvious to the rest of the community when high gas transactions don't get processed or are processed on a smaller chain.