timk225 (OP)
|
|
April 30, 2014, 05:47:39 PM |
|
I remember reading about how the bitcoin algorithm got started, with its difficulty set to be super easy at 1, and the hash to find a block had to be a certain number of zeroes followed by some other number / letter. What was that amount of zeroes?
Now with difficulty touching 8 BILLION today, how many zeroes must a hash start with, and then what letter or number after the zeroes, to find a block?
|
|
|
|
timk225 (OP)
|
|
May 01, 2014, 07:31:59 AM |
|
No one knows?
|
|
|
|
Ayers
Legendary
Offline
Activity: 2800
Merit: 1024
Vave.com - Crypto Casino
|
|
May 01, 2014, 09:29:16 AM |
|
you need terapower or something to find it in one day, but i'm not sure
|
|
|
|
timk225 (OP)
|
|
May 01, 2014, 01:37:06 PM |
|
That's not what I asked, I never said anything about one day to find a block.
|
|
|
|
|
DeboraMeeks
|
|
May 01, 2014, 02:08:58 PM |
|
This is getting out of hand...
|
|
|
|
timk225 (OP)
|
|
May 01, 2014, 06:12:25 PM |
|
To calculate a big number and somehow have it start with 16 zeroes? Yes, I'd say that is pretty difficult.
Was it one zero back when Bitcoin started and the difficulty was at 1? Or one of some other number?
|
|
|
|
jonnybravo0311
Legendary
Offline
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
|
|
May 02, 2014, 02:28:25 PM |
|
To calculate a big number and somehow have it start with 16 zeroes? Yes, I'd say that is pretty difficult.
Was it one zero back when Bitcoin started and the difficulty was at 1? Or one of some other number?
Yes, the simplest difficulty is to find a hash with a single leading zero. Difficulty is adjusted every 2016 blocks to keep the average generation time about 10 minutes per block. Therefore, as more hashing power gets added to the network, the greater the difficulty must become. To answer the original question, current difficulty means you need to find 16 leading zeroes to satisfy the requirements. Anybody can find it, from the poor guy who has a miner doing only a single hash per second to the giant farm hashing at quadrillions of hashes per second.
|
Jonny's Pool - Mine with us and help us grow! Support a pool that supports Bitcoin, not a hardware manufacturer's pockets! No SPV cheats. No empty blocks.
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
May 02, 2014, 02:38:52 PM |
|
To calculate a big number and somehow have it start with 16 zeroes? Yes, I'd say that is pretty difficult.
Was it one zero back when Bitcoin started and the difficulty was at 1? Or one of some other number?
Difficulty 1 is just as arbitrary as any other difficulty. The probability of any individual hash solving a block is (2^32)*(difficulty). On average is requires (2^32)*(difficulty) attempted hashes before one is found which is smaller than the target (and thus valid for solving the block). So at difficulty 1 it took about 4.2 billion hashes on average to solve a block. 2^32 = 32 bits. Expressed as hex one digit = 4 bits. 32/4 = 8. At difficulty 1 a block would need eight zeroes. While looking at number of leading zeroes can be useful it is important to understand the network doesn't look just at the leading number of zeroes. If it did then difficulty increases (or decreases) would be limited to a factor of 16x (when difficulty changes it could only stay the same, go up 16x, or be reduced to 1/16th) that is beacause each additional leading zero, make the target 16x less likely. A block is valid if the hash is smaller than the target. Right now that is: 0000000000000000 896C00000000000000000000000000000000000000000000 So a hash with the value 0000000000000000 912300000000000000000000000000000000000000000000 would not be valid despite "having the right number of zeroes".
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
May 02, 2014, 02:48:58 PM |
|
Yes, the simplest difficulty is to find a hash with a single leading zero. That is incorrect. Difficulty 1 represents that it will require on average 1 full nonce range, which is 2^32 attempted hashes to solve a block, not 1 attempted hash (or 16 which is what a single zero would represent). The initial target at difficulty 1 (2^256 / 2^32) is computed as 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF to store this however would require 256 bits. Bitcoin uses a truncated target to save space in the blockchain which means the actual target for difficulty 1 is 0x00000000FFFF0000000000000000000000000000000000000000000000000000 Note the leading eight zeroes. There are no block hashes in the blockchain which have less than eight zeroes. As an example here is block #1 https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048Yes Satoshi made some things a little more complex than they need to be. There is no requirement that difficulty 1 equal 2^32 attempts. Difficulty is just for us humans anyways the network works off the raw target and difficulty is computed from that. So Satoshi could have made Difficulty x = x attempted hash (on average) per block. If that were the case the original difficulty would have been 4.2 billion and today it would be 34,363,484,163,461,100,000. Yes that is 34,363 quadrillion. It means that on average to solve a block means computing 34,363 quadrillion hashes. We probably would just shorthand difficulty to "quads". "Damn difficulty is now more than 30,000 quads, it is getting insane".
|
|
|
|
jonnybravo0311
Legendary
Offline
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
|
|
May 02, 2014, 03:44:03 PM |
|
Yes, the simplest difficulty is to find a hash with a single leading zero. That is incorrect. Difficulty 1 represents that it will require on average 1 full nonce range, which is 2^32 attempted hashes to solve a block, not 1 attempted hash (or 16 which is what a single zero would represent). The initial target at difficulty 1 (2^256 / 2^32) is computed as 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF to store this however would require 256 bits. Bitcoin uses a truncated target to save space in the blockchain which means the actual target for difficulty 1 is 0x00000000FFFF0000000000000000000000000000000000000000000000000000 Note the leading eight zeroes. There are no block hashes in the blockchain which have less than eight zeroes. As an example here is block #1 https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048Yes Satoshi made some things a little more complex than they need to be. There is no requirement that difficulty 1 equal 2^32 attempts. Difficulty is just for us humans anyways the network works off the raw target and difficulty is computed from that. So Satoshi could have made Difficulty x = x attempted hash (on average) per block. If that were the case the original difficulty would have been 4.2 billion and today it would be 34,363,484,163,461,100,000. Yes that is 34,363 quadrillion. It means that on average to solve a block means computing 34,363 quadrillion hashes. We probably would just shorthand difficulty to "quads". "Damn difficulty is now more than 30,000 quads, it is getting insane". Thanks for your response and I stand corrected. Now I've learned something, too . I suppose I could have just looked at the very first block in the chain to see how many leading zeroes there were.
|
Jonny's Pool - Mine with us and help us grow! Support a pool that supports Bitcoin, not a hardware manufacturer's pockets! No SPV cheats. No empty blocks.
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
May 02, 2014, 03:56:52 PM |
|
Yes, the simplest difficulty is to find a hash with a single leading zero. That is incorrect. Difficulty 1 represents that it will require on average 1 full nonce range, which is 2^32 attempted hashes to solve a block, not 1 attempted hash (or 16 which is what a single zero would represent). The initial target at difficulty 1 (2^256 / 2^32) is computed as 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF to store this however would require 256 bits. Bitcoin uses a truncated target to save space in the blockchain which means the actual target for difficulty 1 is 0x00000000FFFF0000000000000000000000000000000000000000000000000000 Note the leading eight zeroes. There are no block hashes in the blockchain which have less than eight zeroes. As an example here is block #1 https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048Yes Satoshi made some things a little more complex than they need to be. There is no requirement that difficulty 1 equal 2^32 attempts. Difficulty is just for us humans anyways the network works off the raw target and difficulty is computed from that. So Satoshi could have made Difficulty x = x attempted hash (on average) per block. If that were the case the original difficulty would have been 4.2 billion and today it would be 34,363,484,163,461,100,000. Yes that is 34,363 quadrillion. It means that on average to solve a block means computing 34,363 quadrillion hashes. We probably would just shorthand difficulty to quads; "Damn difficulty is now more than 30,000 quads, it is getting insane". Thanks for your response and I stand corrected. Now I've learned something, too . I suppose I could have just looked at the very first block in the chain to see how many leading zeroes there were. Well there can always be more leading zeroes due to "luck". Case in point, the genesis block has ten leading zeroes, 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f.
|
|
|
|
jonnybravo0311
Legendary
Offline
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
|
|
May 02, 2014, 04:15:20 PM |
|
Agreed. It's just that you need to satisfy the target difficulty, doesn't mean you need to exactly equal it. For example, I found a block a couple weeks ago and my miner showed a 63B difficulty - well above the target 6.9B that it was when I found it.
|
Jonny's Pool - Mine with us and help us grow! Support a pool that supports Bitcoin, not a hardware manufacturer's pockets! No SPV cheats. No empty blocks.
|
|
|
timk225 (OP)
|
|
May 03, 2014, 06:24:56 AM |
|
For some reason, cgminer shows the difficulty as being multiplied by 65536.
|
|
|
|
SelbyTsang
|
|
May 03, 2014, 11:47:13 AM |
|
Agreed. It's just that you need to satisfy the target difficulty, doesn't mean you need to exactly equal it.
Yup, your block is valid if it has a hash lower than target value (equivalent to higher than difficulty).
|
|
|
|
Phosphorous
|
|
May 07, 2014, 04:43:44 PM |
|
A question to help me understand the "Best Share" stat...
At todays' current difficulty of 8000872135, what would be the largest "Best Share" I can see without actually finding a block?
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
May 07, 2014, 05:32:58 PM |
|
Best Share can be any hash value. It is just the smallest hash (smaller = harder = "better") you found. If your best share is smaller than the current target then it solved a block, if it is larger than the current target it is the "closest" you got to solving a block. Think of it as a personal best but understand there really is no such thing as better shares. They are binary. They either solve a block (lower than target) or they are worthless (not lower than the target). A smaller but not small enough hash is just as worthless as a larger one.
|
|
|
|
Phosphorous
|
|
May 07, 2014, 06:32:28 PM |
|
Thank you, and I do understand that's how it works, but I am trying to understand the numbers I am seeing. How does "Best Share" relate to the current difficulty level? Basically what I'm asking is, how do I know (which value will I see) if I come a "hair's width" from getting a block? I realize that it's worthless, but it's still fun to know how close you came.
|
|
|
|
timk225 (OP)
|
|
May 07, 2014, 07:02:30 PM |
|
Phosphorous, the answer to your question is 8000872134.99999999999999999999999999999999999999999999999999999999999999999999 9999999999999999999999999999999999999999999999999999999999999999999999999999999 99999999999999999999999999999999999. And then more nines.
|
|
|
|
DeathAndTaxes
Donator
Legendary
Offline
Activity: 1218
Merit: 1079
Gerald Davis
|
|
May 07, 2014, 08:03:53 PM |
|
Thank you, and I do understand that's how it works, but I am trying to understand the numbers I am seeing. How does "Best Share" relate to the current difficulty level? Basically what I'm asking is, how do I know (which value will I see) if I come a "hair's width" from getting a block? I realize that it's worthless, but it's still fun to know how close you came.
The target is publicly available (you can compute it from difficulty if you love biginteger math) http://blockexplorer.com/q/hextarget0x0000000000000000896C00000000000000000000000000000000000000000000 A valid block must have a hash below the target so the target is the smallest hash which would still not be a valid block. If you want to know "how close you got" You would need to divide your hash by the target and that would give you a multiple (i.e. your hash was 520x easier to find than a block). You will need a calculator that can take 256 bit bigintegers in hex format. There might be one online.
|
|
|
|
|