Must be some mighty sophisticated malicious agents.
If I'm reading tacotime's analysis correctly, it's not clear that the *attacker* would have had to solve the second block(s) after finding the first one. To wit:
If half the network accepted the block with TX_1 and TX_2 (block A, accepted by set 1), and the other half had accepted TX_3 and TX_4 (block B, accepted by set 2),
then couldn't the attacker simply generate the corresponding *transactions*, and let some other miner(s) generate blocks that contained them? The fork happened as soon as the nodes in the network had accepted conflicting sets of transactions. Block A would not be accepted by nodes in set 2, because they had a double-spend and so those nodes would keep trying to mine their own block. Those nodes in set 2 would only include TX_3 and TX_4 in a block they tried to mine, because TX_1 and TX_2 are invalid.
Correct.
edit: Though I will note that these tx had non-standard fees of 0.000000000001, which no mining node on the network would have included using any version of the reference code, so the attacker did for some reason mine the second block on both forks (to what end I'm not sure, maybe just to impress us).
How was he able to mine the next block?
Is Smooth correct, that there is another possible and non-obvious purpose here? I don't want to start a conspiracy chain of discussion, but you have just added another dimension which, in the context of the sophistication of the attack, might suggest something else is going on?