Here is what I have estimates on: There exists hardware capable of 60 gigahashes per second. Over the next few months, X amount of these will be mining bitcoins.

Difficulty is recalculated every 2016 blocks. X * 60,000 megahashes = Y terahashes to total mining.

At current difficulty it will take a machine calculating at 60 gigahashes about 3.6 days to solve 1 block. With just 700 of these machines each solving 1 block every 3.6 days, difficulty will be at Z within a week, where difficulty is then recalculated to even out the time period of solving blocks (if I understand correctly).

The variable I have is about what the implications are of the algorithm for difficulty. Is it intended for there to only be a finite number of blocks solved in a certain timeframe?


Is it intended for there to only be a finite number of blocks solved in a certain timeframe?

Yes. The intended rate is 1 block per 10 minutes, which is 144 blocks per day, which is 2016 blocks every 2 weeks.

To estimate the difficulty, flip around the "time to generate a block at a hash rate" equation

difficulty=((Time for a block to be found in seconds)*(hashes per second))/2^32

Where the time is 600 and the hashrate is whatever you want.

  • Okay, so I believe 516355284882773000000.00 will be the difficulty once 600 new machines processing at 60 gigahashes/sec come online. Does this look correct to you? I simply added it to an existing hashrate of 3.6134E+13 and it doens't take into account a drop in participants
    – CQM
    Mar 13 '13 at 2:22
  • 1
    @CQM - I do not see how you are getting that result. Doing (600*(34Thash+36Thash))/2^32, I get 9,778,887. 34Thash is the current rate and 36Thash is 60Ghash*600. It's somewhat more than double the current difficulty (4,367,876), which is what one would expect from somewhat more than doubling of the network hashing rate.
    – Compro01
    Mar 13 '13 at 14:26

This is a old question, but I'd like to give some precisions:

  • You can calculate the new difficulty with the very simple formula newDifficulty=currentDifficulty*600/averageTimeBetweenBlocksSinceLastDifficultyChange; your question is about calculating it from hash speed, the formula given by Compro01 is correct

  • averageTimeBetweenBlocksSinceLastDifficultyChange can be computed from the hash power with the formula powerInHashesPerSecond=currentDifficulty*2^32/averageTimeBetweenBlocks ie averageTimeBetweenBlocks=currentDifficulty*2^32/powerInHashesPerSecond which are the exact same formula Compro01 said

  • 1
    Please don't refer to other answers in your post. Put everything into your own post that is needed to understand it, so it stands by itself, or comment on the previous answer that you wish to add information to. (Just imagine that there were a dozen answers and a reader would first have to look for the answer you are talking about to understand your own answer.) :)
    – Murch
    Oct 24 '13 at 0:46
  • 1
    Everything needed to understand my answer is in my answer, despite references to another answer.
    – Vincent
    Oct 27 '13 at 13:41

The important thing to consider is how the game changes with Butterfly kit in very short term. Their order book is currently in the 60,000-100,000 units range, even if we assume most of their units are ""'low end'"" at say 10GH/s then there is conservativly about 1,000,000 TH/s of new capacity coming online in next two - three months (and possibly double that),

That totally swamps existing network capacity of about 70 TH/s, and should force about a 10,000 fold increase on the 'DIFFICULTY FACTOR'.

People with GPU rigs will be wasting their time, and people paying butterfly will be playing catchup all the time as they issue faster and faster rigs. Bitcoin mining is becoming a mugs game very quickly, better off designing ASIC's and selling them to mugs!

  • sort of, there are other cryptocurrencies and bitcoin can also switch to a different algorithm for hashing new sequences, rendering all sha-256 asics worthless immediately.
    – CQM
    May 12 '13 at 20:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.