Thanks for your interesting insights, @Peter R . Curiously, this reminds me of the earlier discussions we had, those of equilibrium blocksize and your initial fee market paper. The one were Greg (somewhere on reddit) seemed to believe that somehow, you can create efficient mempool syncing schemes that are growing less than proportional in the number of transactions flying around.
I argued back then that due to the stochastic nature of transaction submission into and propagation within the network, there is always a certain uncertainty in the mempool. I remember that I pondered whether that stochastic nature is unavoidable, or could be avoided with some fancy scheme. I think it is unavoidable, because the stochastic timing is unavoidable. The only way out would be to atomic-clock timestamp the transactions at the edge of the network when they enter the system (so that each node can decide with a less than function on whether a transaction is before or after a certain point in time, to reduce the transaction set uncertainty towards zero).
However, such a system simply does not work under adversarial conditions (people setting their txn timestamps to whatever value) - as only Bitcoin itself is the system that does the timestamping under adversarial conditions, with its 600s mean resolution.
I expect that, realistically, the mean propagation speed q of a Bitcoin transaction across the globe is on the order of a quarter second minimum, due to processing and speed of light delays. If anyone doubts that figure (which I honestly pulled out of my intuitive ass), I challenge and welcome those to make a more detailed estimate. It is also a parameter that could be measured by cooperating nodes (@theZerg , didn't you do that before?)
The mempool homogeneity is then bounded by
h=1-(q/T)
with T block time (600s). So I expect that mempools will never be more than 99.96% homogeneous.
I think this formula also introduces a trade-off for the efficiency of subchain schemes. A subchain with faster subblocks will lower the denominator and thus increase the mempool decoherence.
I remember that @Gavin Andresen was sympathetic to changing the 600s interval in the past. I think the above needs to be considered as a trade-off, and 600s does look like a pretty sane default in that light. I rather think that something like your subchains scheme (up until the point that they are efficient wrt. mempool decoherence) would help with more instant confirmation.
I argued back then that due to the stochastic nature of transaction submission into and propagation within the network, there is always a certain uncertainty in the mempool. I remember that I pondered whether that stochastic nature is unavoidable, or could be avoided with some fancy scheme. I think it is unavoidable, because the stochastic timing is unavoidable. The only way out would be to atomic-clock timestamp the transactions at the edge of the network when they enter the system (so that each node can decide with a less than function on whether a transaction is before or after a certain point in time, to reduce the transaction set uncertainty towards zero).
However, such a system simply does not work under adversarial conditions (people setting their txn timestamps to whatever value) - as only Bitcoin itself is the system that does the timestamping under adversarial conditions, with its 600s mean resolution.
I expect that, realistically, the mean propagation speed q of a Bitcoin transaction across the globe is on the order of a quarter second minimum, due to processing and speed of light delays. If anyone doubts that figure (which I honestly pulled out of my intuitive ass), I challenge and welcome those to make a more detailed estimate. It is also a parameter that could be measured by cooperating nodes (@theZerg , didn't you do that before?)
The mempool homogeneity is then bounded by
h=1-(q/T)
with T block time (600s). So I expect that mempools will never be more than 99.96% homogeneous.
I think this formula also introduces a trade-off for the efficiency of subchain schemes. A subchain with faster subblocks will lower the denominator and thus increase the mempool decoherence.
I remember that @Gavin Andresen was sympathetic to changing the 600s interval in the past. I think the above needs to be considered as a trade-off, and 600s does look like a pretty sane default in that light. I rather think that something like your subchains scheme (up until the point that they are efficient wrt. mempool decoherence) would help with more instant confirmation.
Last edited: