Author

Topic: How, technically, could a mining pool execute a double spend attack? (Read 1023 times)

newbie
Activity: 59
Merit: 0
Double spending of CONFIRMED transactions (a transaction with six or more confirmations) is NOT something mining pool can do as they are broadcasting their blocks that they solve. To double spend against confirmed transactions, pool would need to have that 51% mining a private fork and then release those blocks once they've got the double spending completed.
newbie
Activity: 59
Merit: 0
Double spending of UNCONFIRMED transactions is something every miner can do. It's called the Finney Attack.
legendary
Activity: 2884
Merit: 1115
Leading Crypto Sports Betting & Casino Platform
That or if they control the blocks generated they can ignore a blocks result and let those transactions fail then do a double transaction of that same block with the outcome they prefer
Such as when gambling a large amount and losing the first time then sacrificing that block and processing the block that has a winning result

That would work for a pool containing 100% of the network (any less than that and they'd be losing money quickly). Though the pool could be set up such that every miner can just relay valid blocks.

I recall it was done before by a pool as Franky pointed out
The reason their are concerns about this issue right now is that Gigahash did a double spend on a dice game which is what I was referring to
https://bitcointalk.org/index.php?topic=327767.0;all

Simply put it can be done with less than 100% of the network at least that's how I read that topic.

__
5. And the last thing to spot:
GHash.io, being about 25% of network back then, didn't find a single block to its address between 25th and 27th of september!
legendary
Activity: 4410
Merit: 4788
What do you mean, mining code of the pool?
Each individual miner has his own code, and they submit shares to the pool - or am I mistaken?

in a pool the individual miners do not form the block.

the pool accepts or rejects transactions. and forms the cod that needs to be cracked, the miners just crack the code. send their solution to the pool. and if correct the pool gets the reward and publishes the finished block to all the miners. and the miners relay the solved block out to general public.

the pool then splits up the reward..

individual solo miners code is totally different then mining pools. for instance eligius has cod at the pool side to ignore a majority of zero fe transactions. and to give priority to large fee tx's. where as other pools do not have such rules.

yet the individual miners do not make this choice or need to download special code dependent on whichever pool you are on. its the pool owner that does all the protocol rule changes.



member
Activity: 112
Merit: 10
That or if they control the blocks generated they can ignore a blocks result and let those transactions fail then do a double transaction of that same block with the outcome they prefer
Such as when gambling a large amount and losing the first time then sacrificing that block and processing the block that has a winning result

That would work for a pool containing 100% of the network (any less than that and they'd be losing money quickly). Though the pool could be set up such that every miner can just relay valid blocks.
member
Activity: 112
Merit: 10
Miners just blindly accept work from the pool.. they would quite happily go to work on mining a block containing a doublespend tx if the pool assigns it.

That could actually be changed if people cared.. the end miners could maintain their own view of the blockchain and refuse to work on anything that goes against it.. however that isn't the current situation.

That's a sensical answer. Thank you.
(pm me a bitcoin address and I'll donate a bit)
legendary
Activity: 2884
Merit: 1115
Leading Crypto Sports Betting & Casino Platform
simply changing the mining code of the pool to no longer ignore duplicate transactions

That or if they control the blocks generated they can ignore a blocks result and let those transactions fail then do a double transaction of that same block with the outcome they prefer
Such as when gambling a large amount and losing the first time then sacrificing that block and processing the block that has a winning result
newbie
Activity: 35
Merit: 0
What do you mean, mining code of the pool?
Each individual miner has his own code, and they submit shares to the pool - or am I mistaken?

Miners just blindly accept work from the pool.. they would quite happily go to work on mining a block containing a doublespend tx if the pool assigns it.

That could actually be changed if people cared.. the end miners could maintain their own view of the blockchain and refuse to work on anything that goes against it.. however that isn't the current situation.
member
Activity: 112
Merit: 10
Tinfoil hat! Tinfoil hat!
Don't tell people how to do bad stuff.
I strongly disagree with that logic.
People who want to do bad stuff will figure out how to do it on their own. Especially an attack like this - it already requires a lot of sophistication, so for an attacker to get to this point then not have a plan for how to perform the final step would be ridiculous.
Meanwhile, as a community, knowing how this attack works would allow us to look into solutions and maybe even prevent it. (again, this is the situation where one pool has a majority, but not one individual miner)
hero member
Activity: 812
Merit: 587
Space Lord
Tinfoil hat! Tinfoil hat!
Don't tell people how to do bad stuff.
member
Activity: 112
Merit: 10
What do you mean, mining code of the pool?
Each individual miner has his own code, and they submit shares to the pool - or am I mistaken?
legendary
Activity: 4410
Merit: 4788
simply changing the mining code of the pool to no longer ignore duplicate transactions
member
Activity: 112
Merit: 10
I'm only interested in the technical side of things here. I am not interested in the legal, ethical or motivational sides. Nor am I interested in having a discussion about probability of this happening. This is entirely hypothetical, so please bear with me and accept my assumptions.

Assume:
- One pool has 100% of the network hash rate.
- No individual miner controls more than 10%.
- The pool operator is malicious, but none of the individual miners are.
- No individual miner can react fast enough to stop an attack (maybe they're all asleep when it happens, or something - this is just to invalidate 'they'd all immediately form a new pool'), despite the fact that they don't want the attack to occur.

Given this situation, how could the pool operator initiate a double spend attack? Or, alternatively, make any rule change the miners don't approve of? That would require the mining software of 51% of miners to accept whatever rules the pool proposes, rather than just generate blocks with the coinbase transaction being paid to the pool address.
Jump to: