Bitcoin Forum
May 17, 2024, 07:37:22 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Greedy miners?  (Read 2685 times)
davida (OP)
Sr. Member
****
Offline Offline

Activity: 585
Merit: 250



View Profile
March 09, 2014, 05:19:55 PM
Last edit: March 09, 2014, 06:41:13 PM by davida
 #1

I've been thinking about how pooled mining works, there are a couple of thing which have left me wondering how fair it all actually is.

1.  Is there anything preventing a (dishonest) expert coder from modifying his mining software, allowing it to only submit his work that doesn't discover a valid block for the pool, but when the time comes that he actually finds a valid block the modified software will disconnect from the mining pool and submit the block by himself, therefore he gets to keep the entire 25btc block....   It would seem like a pretty major flaw to pooled mining if this worked, so I'm sure there is something preventing it from happening, if so what is it?


2. Staying on the topic of greedy mining. I'm pretty sure I have read somewhere that it doesn't matter how many transactions miners include in each block, it shouldn't take any extra computational time to produce each hash, I don't understand that.   So again, if the same expert coder rewrote his mining software to only include 1 transaction in each block, am I correct in thinking this wouldn't provide any advantage over including the standard 100-1000 transactions in each block?

os2sam
Legendary
*
Offline Offline

Activity: 3578
Merit: 1090


Think for yourself


View Profile
March 09, 2014, 08:52:57 PM
 #2

I've been thinking about how pooled mining works, there are a couple of thing which have left me wondering how fair it all actually is.

1.  Is there anything preventing a (dishonest) expert coder from modifying his mining software, allowing it to only submit his work that doesn't discover a valid block for the pool, but when the time comes that he actually finds a valid block the modified software will disconnect from the mining pool and submit the block by himself, therefore he gets to keep the entire 25btc block....   It would seem like a pretty major flaw to pooled mining if this worked, so I'm sure there is something preventing it from happening, if so what is it?


2. Staying on the topic of greedy mining. I'm pretty sure I have read somewhere that it doesn't matter how many transactions miners include in each block, it shouldn't take any extra computational time to produce each hash, I don't understand that.   So again, if the same expert coder rewrote his mining software to only include 1 transaction in each block, am I correct in thinking this wouldn't provide any advantage over including the standard 100-1000 transactions in each block?



1.  This has been discussed many times and has been answered by experts on the subject, which I am not.  So try searching for it.

But to answer in laymen's terms, no the block cannot be kept by the dishonest miner.

But yes they can stop a block solve from being submitted.  It's called a withholding attack.  This risk *ALONE* should be reason enough for pools to not offer PPS.
Sam

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
davida (OP)
Sr. Member
****
Offline Offline

Activity: 585
Merit: 250



View Profile
March 10, 2014, 09:40:05 AM
 #3

I've been thinking about how pooled mining works, there are a couple of thing which have left me wondering how fair it all actually is.

1.  Is there anything preventing a (dishonest) expert coder from modifying his mining software, allowing it to only submit his work that doesn't discover a valid block for the pool, but when the time comes that he actually finds a valid block the modified software will disconnect from the mining pool and submit the block by himself, therefore he gets to keep the entire 25btc block....   It would seem like a pretty major flaw to pooled mining if this worked, so I'm sure there is something preventing it from happening, if so what is it?


2. Staying on the topic of greedy mining. I'm pretty sure I have read somewhere that it doesn't matter how many transactions miners include in each block, it shouldn't take any extra computational time to produce each hash, I don't understand that.   So again, if the same expert coder rewrote his mining software to only include 1 transaction in each block, am I correct in thinking this wouldn't provide any advantage over including the standard 100-1000 transactions in each block?



1.  This has been discussed many times and has been answered by experts on the subject, which I am not.  So try searching for it.

But to answer in laymen's terms, no the block cannot be kept by the dishonest miner.

But yes they can stop a block solve from being submitted.  It's called a withholding attack.  This risk *ALONE* should be reason enough for pools to not offer PPS.
Sam

I did try searching for the answer to 1, i read the forum a lot also but just never came up with the answer to that question....  Specifically, what is there to stop the person announcing the block through their own node and withhold it from the the pool they were mining with.  In other words it would be solo mining but submitting all your failed work to a pool and receiving payout for it.
os2sam
Legendary
*
Offline Offline

Activity: 3578
Merit: 1090


Think for yourself


View Profile
March 10, 2014, 10:06:37 AM
 #4

I've been thinking about how pooled mining works, there are a couple of thing which have left me wondering how fair it all actually is.

1.  Is there anything preventing a (dishonest) expert coder from modifying his mining software, allowing it to only submit his work that doesn't discover a valid block for the pool, but when the time comes that he actually finds a valid block the modified software will disconnect from the mining pool and submit the block by himself, therefore he gets to keep the entire 25btc block....   It would seem like a pretty major flaw to pooled mining if this worked, so I'm sure there is something preventing it from happening, if so what is it?


2. Staying on the topic of greedy mining. I'm pretty sure I have read somewhere that it doesn't matter how many transactions miners include in each block, it shouldn't take any extra computational time to produce each hash, I don't understand that.   So again, if the same expert coder rewrote his mining software to only include 1 transaction in each block, am I correct in thinking this wouldn't provide any advantage over including the standard 100-1000 transactions in each block?



1.  This has been discussed many times and has been answered by experts on the subject, which I am not.  So try searching for it.

But to answer in laymen's terms, no the block cannot be kept by the dishonest miner.

But yes they can stop a block solve from being submitted.  It's called a withholding attack.  This risk *ALONE* should be reason enough for pools to not offer PPS.
Sam

I did try searching for the answer to 1, i read the forum a lot also but just never came up with the answer to that question....  Specifically, what is there to stop the person announcing the block through their own node and withhold it from the the pool they were mining with.  In other words it would be solo mining but submitting all your failed work to a pool and receiving payout for it.


The work items a pool gives to a miner is unique to the pool.  So if you submitted said block solve via your local bitcoind it would not be accepted in the block chain.

Similarly in your item 2. pools select the transactions that are included according to their own criteria.  The more transactions that are included the greater chance a pool has of loosing an orphan race.

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
phillipsjk
Legendary
*
Offline Offline

Activity: 1008
Merit: 1001

Let the chips fall where they may.


View Profile WWW
March 10, 2014, 09:10:38 PM
 #5

The work items a pool gives to a miner is unique to the pool.  So if you submitted said block solve via your local bitcoind it would not be accepted in the block chain.

Not quite true: the block may be valid if you relay it yourself, but it will still be paying the pool. P2Pool works this way: each miner individually relays the block.

What prevents cheating is that the "proof-of-work" is a cryptographic hash of the block header. Change the block, and you change the resulting hash. It is unlikely that the new hash would meet the block-target without re-doing all of the "work" (repeated hashing, incrementing a nonce).

James' OpenPGP public key fingerprint: EB14 9E5B F80C 1F2D 3EBE  0A2F B3DE 81FF 7B9D 5160
irrational
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
March 11, 2014, 03:42:29 AM
 #6

The work items a pool gives to a miner is unique to the pool.  So if you submitted said block solve via your local bitcoind it would not be accepted in the block chain.

Not quite true: the block may be valid if you relay it yourself, but it will still be paying the pool. P2Pool works this way: each miner individually relays the block.

What prevents cheating is that the "proof-of-work" is a cryptographic hash of the block header. Change the block, and you change the resulting hash. It is unlikely that the new hash would meet the block-target without re-doing all of the "work" (repeated hashing, incrementing a nonce).


#truefacts!

Also, on topic #1, withholding the winning share might not directly profit the miner, but it can be used as a method of causing pools to become "unlucky".
joethejudge77
Jr. Member
*
Offline Offline

Activity: 42
Merit: 20


View Profile
March 11, 2014, 04:16:54 PM
 #7

"Greed is good"
Well best luck with mining coins  Wink

Don't let me be misunderstood.
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!