Why have proof of work? 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.
You have the right idea when you wrote:


  allows multiple parties who don't trust each other


Then you proposed:


  just have one miner who publishes...


That would mean that everyone has to trust and rely on that one miner to publish accurately and correctly. 

But the whole point of the system is to not trust anyone.

Proof of Work (POW) is the mechanism that creates a trustless system without any central node.


P.S.  There are potentially lots of ways to tamper with a block chain other than forking.   There are double-spends, re-writing old transactions, forging new transactions, and denial of service attacks.  So far, the POW scheme seems to be an effective defense against all of these attacks.