snakecharmr1024
New Member
- Dec 19, 2015
- 1
- 3
I'm glad you bring this up, it's related to something I've been mulling over for a while. The blockchain is essentially one of many topological sorts of the transaction set, which can be thought of as a partially ordered set.What if there was a merkle tree of subblocks in the blockchain, and you could verify that X BTC had moved "into" (i.e. all transactions containing these TxOuts occur in the subblock) a subblock, Y BTC had been moved "out" of the subblock, and X >=Y. If none of your transactions occurred in a subblock, you would not need to get access it or the transaction history inside it, but you could still see that it is impossible for it to have diluted your holdings.
Along one axis, two opposite extreme alternatives would be
1 - have a different block for each transaction (essentially make txs == blocks)
2 - have a block propagate every 10 years instead of 10 minutes
Neither of these are desirable, clearly, but this illustrates how the blocksize limit is closely related with block propagation time. In other words, if we changed the 10 minutes to 1 minute, we'd effectively be able to process 10 times as many transactions with the same blocksize limit...
Another nearby idea (sorry for the nonlinear ramble): Since we really just want a topological sort or partial ordering of transactions, we don't actually need the blockchain to be linear. It could be a poset that preserves the ordering of transactions. Blocks could have multiple parent and child blocks. Block A would have a secure reference (hash in the header) back to blocks B_i for each block that had a transaction that was a parent to a transaction in Block A (excluding A itself). So this blockswarm, if you will, would facilitate downloading only relevant transactions. Also, this abstraction recurses nicely, so we could have blocks of blocks and so forth, making a tree of nested relevant contexts that all respect the ordering of transactions, with the depth parametrizing the tradeoff between resources and security.
This idea is incomplete, I'm not sure how consensus would be reached on which swarm is best (sum of work over whole swarm? sum only on relevant branches?). I'm also not sure if it introduces new difficulties in detecting double spends. Some miners would still need to see all transactions, and it might introduce a lot more orphaning. Anyways, it's a thought. Hope this didn't stray too far off topic...
Last edited: