Lot of people wondering what the shit this means. Maybe I can help.
The 51% attack is basically a timing attack on the hash block. Let me try and illustrate it to make it easier.
This is our blockchain. It's a global ledger of transactions.
<Block 30 - Block 31 - Block 32 - Block 33 - Block 34>
Each block is a movement of bitcoin, plus or minus some indiscriminate amount.
When a transaction is verified, you add that transaction to the blockchain, and it becomes a new block. Let's spend 100 BTC in Block 35.
<Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC)>
Without getting too much into the minutiae of Nakamoto Consensus, basically just assume that the computer that does the most work adds a block to the chain. This is the hash rate, or the speed that computers are working to solve the algorithm that governs bitcoin.
But say i'm in that hashing pool, and i'm unethical, so i've been following the chain privately since Block 30.
Here's what I have:
Public: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC)>
Private: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC)>
For Block 36, i'm going to spend some coin on the public chain, but keep my private one hidden.
Public: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC) - Block 36 (-100 BTC)>
Private: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC)- Block 36 (-0 BTC)>
We then validate both those transactions, publicly and privately.
Public: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC) - Block 36 (-100 BTC) - Block 37>
Private: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC) - Block 36 (-0 BTC) - Block 37>
Now, here's where the 51% comes in. By hashing more than the rest of the pool, we get to propose the next block. Only...we think we'll propose our private block. We propose our block to the chain, it's validated (because we did the most work and ours is the longest), and it's the new block in the chain.
Public: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC) - Block 36 (-100 BTC) - Block 37>
Private [New Public]: <Block 30 - Block 31 - Block 32 - Block 33 - Block 34 - Block 35 (-100 BTC) - Block 36 (-0 BTC) - Block 37 - Block 38>
Seeing the issue? The money spent in Block 36 on the public chain isn't spent on Block 36 in the private chain. The difficulty lies in keeping pace with the rest of the network in hash rate, and then surpassing it (51%) to make your falsified blockchain the authentic one once the spend is made.