Skip to main content
20 events
when toggle format what by license comment
Nov 23, 2023 at 6:08 comment added MWB You don't need the probability that N=2 are found in 0.5s. You need a conditional probability, that a block will be found within 0.5s, given that another block has just been found. And since they are largely independent, you basically need N=1. 0.5/600 seems like the correct estimate here, or very close to correct.
Nov 22, 2023 at 14:31 comment added Pieter Wuille I'm wrong. 1-exp(-lambda L) is the probability that at least one PoW-valid block is found in a window of length L after a given accepted block. But that's not what we want; there could be multiple such blocks in that window, and their expected value is just lambda L. Therefore, the percentage of discarded blocks per total PoW-valid blocks is (1 - 1 / (1 + lambda L)). Still 0.166% for L=1 though.
Nov 22, 2023 at 13:48 comment added Lee @PieterWuille neatly done, thank you. Perhaps you should add it onto your answer..
Nov 21, 2023 at 16:55 comment added Pieter Wuille The time between blocks is a Poisson process, so follows an exponential distribution (with lambda=1/600s). If latency is L seconds, and every block found within L seconds of an accepted block is discarded, then taking the CDF (1- exp(-lambda x)) in x=0 and x=L, we obtain the difference 1 - exp(-lambda L) discarded blocks per accepted block, or (exp(lambda L) - 1) / (2 exp(lambda L) - 1) discarded blocks per total blocks, which is 0.166% for L=1.
Nov 21, 2023 at 15:18 history edited Lee CC BY-SA 4.0
added 3 characters in body
Nov 21, 2023 at 15:12 history edited Lee CC BY-SA 4.0
added 118 characters in body
Nov 21, 2023 at 14:58 history edited Lee CC BY-SA 4.0
added 118 characters in body
Nov 21, 2023 at 14:40 history edited Lee CC BY-SA 4.0
added 116 characters in body
Nov 21, 2023 at 14:32 comment added Lee @PieterWuille thanks, will check for rounding errors etc in the Python code.
Nov 21, 2023 at 14:19 comment added Pieter Wuille Hmm, yes, I'm wrong in my reasoning, sorry. Still, the number you obtain is clearly wildly off. You expect something in the order of 1/600 (or 0.5/600, for half a second propagation time).
Nov 21, 2023 at 14:13 comment added Lee @PieterWuille agree on OP, but forgive me, the valid_block_failure_probability value is not per second. The time units drop out on multiplication by the period, in this case the mean_block_propagation_time (units of seconds).
Nov 21, 2023 at 14:09 comment added Pieter Wuille OP is asking for the percentage of successful PoW hashes that don't get included. You're computing the rate at which successful but discarded hashes happen per second, but you need to divide that by the rate of successful hashes per second, to obtain the ratio of discarded hashes per successful ones. 0.000007% is just far too low; with 1s propagation delay and 600s blocks, you expect a number with an order of magnitude close to 1/600.
Nov 21, 2023 at 14:06 comment added Lee @PieterWuille I'd add that the per block aspect is included via the hashrate estimation and target values.
Nov 21, 2023 at 13:55 comment added Lee @PieterWuille Paraphrasing OP "Given a miner has found a valid block, what is likelihood it fails to reach consensus chain"? The per second value can be modified to any period by multiplying by a number of seconds. I chose the mean block propagation time as a modifier as this approximates the time a rival has to "gazump" the successful block. You could well be right about the factor of 2; I'm thinking on it....
Nov 21, 2023 at 13:42 comment added Pieter Wuille You have computed the probability that in a given 1s interval two get computed, but that's not what OP is asking for. You need the frequency of that happening per block, not per second. Also, you need to divide by two because the order of the two found hashes within the 1s interval does not matter.
Nov 21, 2023 at 13:24 history edited Lee CC BY-SA 4.0
added 436 characters in body
Nov 21, 2023 at 13:10 history edited Lee CC BY-SA 4.0
added 135 characters in body
Nov 21, 2023 at 13:05 history edited Lee CC BY-SA 4.0
added 135 characters in body
Nov 21, 2023 at 11:55 history edited Lee CC BY-SA 4.0
deleted 82 characters in body
Nov 21, 2023 at 11:40 history answered Lee CC BY-SA 4.0