Bitcoin Forum
May 22, 2024, 08:57:54 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How, technically, could a mining pool execute a double spend attack?  (Read 998 times)
CJYP (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 13, 2014, 11:24:33 PM
 #1

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.
franky1
Legendary
*
Offline Offline

Activity: 4228
Merit: 4490



View Profile
June 13, 2014, 11:32:37 PM
 #2

simply changing the mining code of the pool to no longer ignore duplicate transactions

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
CJYP (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 13, 2014, 11:49:15 PM
 #3

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?
Parazyd
Hero Member
*****
Offline Offline

Activity: 812
Merit: 587


Space Lord


View Profile WWW
June 13, 2014, 11:51:58 PM
 #4

Tinfoil hat! Tinfoil hat!
Don't tell people how to do bad stuff.
CJYP (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 14, 2014, 12:00:47 AM
 #5

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)
klmist
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
June 14, 2014, 12:05:52 AM
 #6

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.
Swordsoffreedom
Legendary
*
Offline Offline

Activity: 2772
Merit: 1115


Leading Crypto Sports Betting & Casino Platform


View Profile WWW
June 14, 2014, 12:09:07 AM
 #7

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

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
CJYP (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 14, 2014, 12:12:39 AM
 #8

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)
CJYP (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
June 14, 2014, 12:17:14 AM
 #9

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.
franky1
Legendary
*
Offline Offline

Activity: 4228
Merit: 4490



View Profile
June 14, 2014, 01:10:20 AM
 #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?

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.




I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
Swordsoffreedom
Legendary
*
Offline Offline

Activity: 2772
Merit: 1115


Leading Crypto Sports Betting & Casino Platform


View Profile WWW
June 14, 2014, 11:20:16 AM
 #11

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!

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
WtwkG
Newbie
*
Offline Offline

Activity: 59
Merit: 0


View Profile WWW
June 15, 2014, 06:50:10 PM
 #12

Double spending of UNCONFIRMED transactions is something every miner can do. It's called the Finney Attack.
WtwkG
Newbie
*
Offline Offline

Activity: 59
Merit: 0


View Profile WWW
June 15, 2014, 06:56:37 PM
 #13

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.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!