5 ms·
This is awesome, but just a small comment about "Next block expected in 7 minutes". The next expected block is always due in 10 minutes, no matter when the prev
by bbosh 13y ago
This is awesome, but just a small comment about "Next block expected in 7 minutes". The next expected block is always due in 10 minutes, no matter when the previous block was generated. Mining is a memoryless process.
- kaoD 13y agoWhat do you mean? If blocks are 10min apart (actually less as the network hashrate grows before the difficulty adjustment) and the last block was found 3 minutes ago, a new block is expected to be found after 7 more minutes.
- askmike 13y agoThe 10 minutes is only an average time at which the network can solve the problem with random tries. You won't see a lot of blocks 10 minutes apart because only when measured over longer timeframes it averages to 10 minutes. Just like when you flip 10 coins they likely won't result in: head - tail - head - tail - (...). Though on average you end up with 5 tails and 5 heads.
- deleted 13y ago[deleted]
- kaoD 13y ago> You won't see a lot of blocks 10 minutes apart because only when measured over longer timeframes it averages to 10 minutes. That's why it says expected! To be 100% correct you could plot the cumulative density function as time progresses, but I think just printing the expected time is fine.
- bbosh 13y agoEach hash is essentially an observation of a uniformly distributed variable (hopefully). When you flip a coin, it's heads with probability 1/2 and tails with probability 1/2. The fact that you flipped heads on the first go doesn't change the probabilities. In the same way, the fact that your hash didn't match the difficult on the first go, doesn't change the probability it will match the difficulty on future hashes. So each hash is independent of the attempts you've already made, so there's the same probability of a match at any time step.
- kaoD 13y agoThat's technically right (yep, I know gambler's fallacy too), but it doesn't address my comment. Testing a block header is just a binary (yes/no) test with a given probability (target/max_target). Finding a block is repeating this test again and again, i.e. a binomial distribution, right? Finding a block averages 10 minutes, which means that, after 10 minutes trying hashes randomly, the expectation of finding a block is high, i.e. the CDF of the binomial distribution approaches 1. The result will deviate from the expected result? Of course! After all, it's a distribution... but this doesn't contradict the fact that as you try again a again, the probability of AT LEAST ONE hitting the target gets higher. So, yes, it doesn't change the individual probability of each outcome, but it sure does mean that more hashes have been tried, i.e. there's a greater probability of a hash being found simply because we've tried more guesses as time passes, i.e. we're measuring the CDF with a high N. To put it another way: the more coins you flip, the higher the expectation of AT LEAST ONE yielding tails (even if the previous attempts don't change the outcome probability). Think about it: even if each coin outcome is always 1/2, we're not assessing whether it's going to be tails or not in flip N, but whether after N flips we'll see at least one flipping tails, whose probability is (1 - (1/2)^N). Flipping a coin 7 times yields a 99% probability of flipping tails (or heads) at least once, regardless of previous outcomes. And I'll stop here, I think I'm repeating myself :P
- bbosh 13y agoI'm sorry, but this isn't correct. Firstly, you need to understand what Binomial is describing. It is not describing the time between outcomes. It is describing the number of times you will observe a positive result amongst n independent Bernoulli trials (Yes/No trials). By the "CDF approaches 1", what you are saying is that P(X <= n) = 1. But, we know that to be true by assumption -- we can't possibly observe more than n positive results from n trials. The continuous-time analogue would be the Poisson process -- this counts the number of valid blocks that have been generated up to a time t. The inter-arrival time -- the time between valid blocks -- is a random variable with an Exponential distribution. This is the distribution we are really looking at. And Exponential is memoryless (see Wikipedia for a proof).
- askmike 13y agoYou are right of course, a dice won't be estimated to roll on a 6 after it failed to do so 5 previous times. I think the best solution is to remove the expected next block time counter altogether. One of the reasons UX wise I went for such an expected point in the future was that after reading it you are aware a new block will come again (just like when you first load the project) and that might keep you waiting for it.
- kaoD 13y agoI think you've been misled and this is not a case of gambler's fallacy (I might be wrong). You should check my comment[1]. And please correct me if I'm wrong! [1] https://news.ycombinator.com/item?id=7159663 https://news.ycombinator.com/item?id=7159663
- yetfeo 13y ago> The next expected block is always due in 10 minutes Not if the current network speed is higher than the difficulty level due to more mining power having come online since the last difficulty change. You could estimate this by examining the block times over the last 120 (or some N) blocks, estimating the difficulty for that solve rate, and using the ratio of current network difficulty over the the estimated difficulty times 10 minutes.
- BobMarin 13y agoActually the mining aspect of the Bitcoin protocol is ahead of schedule almost consistently and because of that the mean time is about 7 min