As far as I can tell, PoW allows multiple parties who don't trust each other to agree on an order of transactions. The fact that every transaction has a hash of the previous block means that you can always verify that the ledger hasn't been tampered with.
My question is twofold:
1) If there is a 51% attack, and a party forks the blockchain after 6 blocks after a merchant confirmed his money, then there will automatically be realised by the nodes, since suddenly they will have to replace 6 blocks in their chain.
2) Given this, why not just have one miner who publishes blocks, then every node can detect whether this miner has forked the blockchain (since the database is untamperable, he/she has to remove the top blocks on the chain). The miner would never lie since if she did, it would be detected and everyone would lose trust in the network.
Presumably, I misunderstood something quite fundamental.