Author

Topic: Can the pattern of Bitcoin hashing be changed somewhere? (Read 844 times)

newbie
Activity: 2
Merit: 0
I see.  So, if I'm understanding you correctly, the only variable parameter to solo mining is the receiving Bitcoin address which changes the miner's Merkel Root?  So, if you change the mining address, you can change the Merkel Root and the subsequent region of guesses the miner will choose to try and solve the block, therefore shifting your luck?
legendary
Activity: 3472
Merit: 4801
I see.  So, if I'm understanding you correctly, the only variable parameter to solo mining is the receiving Bitcoin address which changes the miner's Merkel Root?

No. The fact that the address is unique is just how you know that you aren't working on the same data as anybody else. Other "variable parameters" are the timestamp, the specific set of transactions that you include in your block, and the exact order of those transactions. A change in any of those parameters results in a completely different block for you to work on.

So, if you change the mining address, you can change the Merkel Root and the subsequent region of guesses the miner will choose to try and solve the block, therefore shifting your luck?

You won't shift your luck at all, you'll just change the block you're trying to solve. You'll still have the same probability on each hash you attempt.

- snip -
I have not worked out any real maths on this to see if it would give you a slight edge or not.

It wouldn't. Think about rolling a die 100 times, can you improve your odds of rolling a six on any single roll if you skip the first 5 and/or last 5 rolls?
member
Activity: 114
Merit: 10
to answer something that has been kinda asked but not yet answered, yes every client I am aware of increments the nonce.  Some things take ranges of nonces to try eg 0-10000.  If you look for the code that generates the nonce range to try you may be able to try something different, eg 10000-0 decrementing. 

I am unsure that over the long haul this will give you much of an advantage because of the merkle root hash and statistically you are just as likely to find it in the last half vs the first half when  given enough runs.

One thing you can try is to do a limited hashing run.  If you take all possible nonces and chop the first 2.5% off and the last 2.5% off you have a 95% chance of finding the correct hash (if it exists with that timestamp and merkle root).  Long term you might find 5% more because you are not doing the full scan and its a low probability that it will exist in the sections you skipped.  Then again long term it may equal out because you miss the times where it would be in those sections.  I have not worked out any real maths on this to see if it would give you a slight edge or not.
legendary
Activity: 3472
Merit: 4801
If you are mining in a pool, then the pool has a different merkle root than any other pool. Therefore there is no concern that the pool is duplicating the work of other pools. Within the pool the pool operator has an incentive to make certain that they aren't issuing identical work to any participants, since they have to pay the participants, and it would decrease the pool revenue.

If you are solo mining, then you are using your own address for the block reward, therefore you won't have the same merkle root as anyone else.
legendary
Activity: 4466
Merit: 3391
What I'm trying to figure out is:  Once a block changes, do all the miners of the same equipment model running the same software start hashing in an identical way and thus repeat the work done by other miners of the same model?

The simple answer is that every miner has a different merkle root hash because the address in the coinbase transaction is different. This guarantees that no miner is duplicating work.
legendary
Activity: 1148
Merit: 1014
In Satoshi I Trust
legendary
Activity: 4466
Merit: 3391
It doesn't work quite the way you think it does.

Mining involves repeatedly computing the double SHA-256 hash of the block header until a hash is found that is less than the target value. Before each repetition, the block header is modified in order to come up with a different hash. There are three values in the block header that the miner can modify before computing a hash: the timestamp, the nonce, and the merkle root hash.

The nonce and the timestamp values are trivial to change, but the merkle root hash is much more costly to change. So, I imagine that all miners do it the same way: change the merkle root hash only after all of the possible combinations of timestamps and nonce values have been tried. If not, then perhaps they should.  (Note: I'm not an expert on mining software)
newbie
Activity: 2
Merit: 0
Jump to: