Hacker News new | ask | show | jobs
by MiWDesktopHack 4904 days ago
In practice you would need far more than 50% of the mining power to take complete control of the blockchain.

The greater the hashrate of your miners, the greater probability that your miners will find a valid nonce that satisfies the difficulty equation; it doesn't magically give you the ability to find a valid nonce before any other party. As long as there is one other party mining, there is a non-zero chance that their block will be accepted before yours.

What ratio of malicious/non-useful blocks vs valid, legitimate BTC transaction containing blocks would be required before the economy fails, that is an open question.

2 comments

I think what you mean to say is that you need to match the performance of the current network. But this would put you at 50% of the global mining speed. For example the current network mines at 20 Thash/s, so you need to bring another 20 Thash/s for a majority attack, in which, an attacker can do the following: https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_...

Anyway, Titan is not powerful enough to perform a majority attack. First of all, there is no Bitcoin miner optimized for the latest GK104/GK110 Tesla and GeForce GPUs. With current miners, people report speeds of barely 110 Mhash/s on the GeForce GTX 680, which should translate to ~140 Mhash/s on the Tesla K20X (which is only 30% faster in terms of 32-bit integer ops per second.) Titan has 18688 K20X, so that's only 2.6 Thash/s total. Far from the 20 Thash/s required. It would still bring 400 coins/day, or $5600/day :)

I theorize here [1] that based on the number of ALUs and clock frequency, that a properly optimized miner should be in theory 4x-6x faster than this on GK104/GK110, bringing Titan to 10-16 Thash/s. (Nobody bothered optimizing Nvidia because everybody is mining on more efficient Radeon GPUs or FPGAs.) Still not enough to match 20 Thash/s. Disclaimer: I have only programmed AMD GPUs, never Nvidia. Maybe there is a reason this 4x-6x theoretical perf gain has never been realized, such as the inability to execute 1 32-bit integer instruction per ALU per clock due to instruction latencies greater than 1 clock, or throughput being less than 1 instruction per clock... I don't know. Theoretical FLOPS numbers published by Nvidia indicate that floating point instructions, as opposed to integer instns, can run at 1 instruction per ALU per clock. Which makes it even weirder that there would be such a huge perf gap between int and fp.

[1] https://bitcointalk.org/index.php?topic=129292.msg1381510#ms...

That's for one attempt, right? How often are the nonces found?
The bitcoin algorithm adjusts the difficulty so 2016 blocks are generated in 2 weeks, so a nonce is found every 10 minutes or so.
So every 10 minutes you have a 50% of taking over the chain? If so, sounds like a guaranteed win if you have some time to spend.
Sure, but that just lets you set the next block. You can't use it to generate false transactions because no other client would find those transactions valid.

At best you can drop all transactions that are broadcast to the network and generate blank blocks, thus freezing all future transactions.

Oh, I thought with > 50% you would represent enough "clients" to "prove" the false transactions and earn the trust of the remaining network.