Bitcoin Forum
November 11, 2024, 02:43:14 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: combined mining vs decentralized mining  (Read 1063 times)
yona (OP)
Member
**
Offline Offline

Activity: 92
Merit: 10



View Profile
June 04, 2013, 06:48:52 AM
 #1

hi, i don't understand much about mining, but i wanted to understand this:
if one has a big farm [mining facility], can one use it more efficiently to mine more bitcoins with the same hash rate?
could the work of calculating the nonce [with same bitcoin address] be divided by the available cpu/gpu/fpga/asic and allow less overlay [meaning less chips doing the same work but actually more chips working together] is there a limit to how more efficient a combined mining facility can be over decentralized mining?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
June 04, 2013, 06:51:03 AM
 #2

No a large miner is not more efficient than a small miner.

If you have 1% of the network hashing power in the long run you will solve 1% of the blocks.  If you have 0.1% of total network hashing power in the long run you will solve 0.1% of the blocks.
yona (OP)
Member
**
Offline Offline

Activity: 92
Merit: 10



View Profile
June 04, 2013, 08:14:36 AM
 #3

No a large miner is not more efficient than a small miner.

If you have 1% of the network hashing power in the long run you will solve 1% of the blocks.  If you have 0.1% of total network hashing power in the long run you will solve 0.1% of the blocks.

thanx for the reply, but i think i am still not convinced. i am not talking about pool vs solo mining,
there is allot of overlap in the work being done by separate miners. all of them are trying to find a hash that would fit the difficulty, they all run all the possible nonce options until they get the hash that would give them the right proof of work...
but when one machine with multiple processors does the work it divides the possible nonce options between the processors, saying: you run 00000000000000000000000000000000 till 99999999999999999999999999999999 and you run 9999999999999999999999999999999a till ffffffffffffffffffffffffffffffff [just illustrating, i don't know the values] , this way there is no overlap in the work being done. does that not make the machine more efficient then two machines that don't divide the work and both run 00000000000000000000000000000000 till ffffffffffffffffffffffffffffffff.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
June 04, 2013, 08:18:27 AM
 #4

That is incorrect.  Every* blockheader is unique because the coinbase tx is unique.  Nonce value is only 32 bit.  Today it takes roughly 20 million attempts at all possible nonces values 0 to 2^32, with each attempt using a unique header to solve a single block.

You can remain unconvinced but larger miners have no higher efficiency (in terms of hashes per solved block) that the smallest miners.
Hullabaloo
Member
**
Offline Offline

Activity: 79
Merit: 10


View Profile
June 04, 2013, 04:56:12 PM
 #5

I think I can rephrase the question: Since all miners work on the same block at the same time (same blockheader), wouldn't it be more efficient to split the nonce value (seed) between all miners in your farm so you're sure you're not going over the same hashes twice, i.e. for card one starts nonce at 0, card 2 starts at 2^30, card 3 at 2^31 and card 4 at (2^32)*3/4....

If that were the case a large mining farm would have a speed advantage.

Tips? BTC: 1PuPCtUt3pmMjbiLTgTKD6G9AkQS3FBUtD            WDC: WPmzeDfXjgoTEztP1rGCe1ZcBLLMJq7yvL
                                                        Time is Bitcoin!
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
June 04, 2013, 05:30:16 PM
 #6

I think I can rephrase the question: Since all miners work on the same block at the same time (same blockheader), wouldn't it be more efficient to split the nonce value (seed) between all miners in your farm so you're sure you're not going over the same hashes twice, i.e. for card one starts nonce at 0, card 2 starts at 2^30, card 3 at 2^31 and card 4 at (2^32)*3/4....

If that were the case a large mining farm would have a speed advantage.

I will try one more time.  All miners are NOT working on the same blockheader.  Every miner, every worker, every CPU/GPU/FPGA/ASIC core is working on a unique and independent blockheader.  If they weren't the system would be horribly flawed and weak.  Most blockheaders will NEVER produce a block.  Difficulty is 21 million that means it takes 21 million unique blockheaders (trying all 2^32 possible nonces for EACH blockheader) on average to find a block solution.   

https://en.bitcoin.it/wiki/Block_hashing_algorithm

One element in the blockheader is the merkle tree root hash.  It is hash of all transactions in the block.  One transaction in every block is the coinbase tx which is where the miner "gets paid".  The coinbase is generally speaking unique and when it isn't a miner will just increment the timestamp and thus produce a new unique blockheader with the same coinbase tx.  For solo miners their local bitcoind ensures each time the miner requests a new blockheader to work on it is unique.  For a pool it is a little more complicated but the pool server ensures that no two miners in the pool get the same work.  Between miners and pools blockheaders will always be unique because they are using their own coinbase tx.

No miner on the network is duplicating work* of another miner and as such a small miner is just as efficient (in terms of hashes per block) as the largest miner.



* Technically it is possible that two miners randomly create blockheaders with unique coinbases that happen to produce the same merkle tree at the exact same time and all other variables are the same (transactions, blockheight, timestamp, etc).  The odds of this is 1 in 2^256 so for all meaningful intents in purposes it is 0%.


Remember remember the 5th of November
Legendary
*
Offline Offline

Activity: 1862
Merit: 1011

Reverse engineer from time to time


View Profile
June 04, 2013, 05:34:27 PM
 #7

I did propose back in the day to ckolivas to implement the split nonce thing for the CPU miner, and even paid him 0.15btc at the time, he didn't do it right though.

BTC:1AiCRMxgf1ptVQwx6hDuKMu4f7F27QmJC2
yona (OP)
Member
**
Offline Offline

Activity: 92
Merit: 10



View Profile
June 06, 2013, 01:01:02 PM
 #8

thanks Hullabaloo for clarifying and also thank you Death&Taxes for the detailed answer.
now I understand why on general the system is not in favor of bigger miners.

but i do wish to observe that THERE IS a minor statistical difference

a miner which can complete 2^32 possible nonce options before block/tx/timestamp changes is in a disadvantage because assembling a new block header takes time and is not entirely dependent on the miner thus you might have some 'dead time'.
so in a sense it is not profitable to create a machine which runs all 2^32 nonces faster then timestamp changes?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
June 06, 2013, 07:25:07 PM
 #9

No.  The timestamp in Bitcoin is "loose".  Other nodes will accept a block as long as the timestamp is within 2 hours of average network time.  No mining software discards work just because the clock has incremented a second before the work was complete.

There is no difference between small miners and large miners in respect to efficiency (hashes per solved block).
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!