|
September 17, 2015, 03:08:23 PM Last edit: September 17, 2015, 04:59:54 PM by monsterer |
|
There are two main reasons we get orphaned blocks in blockchains:
1) N miners simultaneously solve a POW for a block, each submitting a new block with the same parent (which is what causes the fork) 2) Double spend attempts
1) occurs because we have linked list of blocks 2) occurs because of fraud, or broken wallets
Simply using a DAG instead of linked list (and one transaction per block) will improve the orphan rate because the number of allowable DAG heads is greater than 1, but this is still not optimal, since the orphan rate will only reduce by a factor of the number of heads.
Optimally (for orphan reduction), each unspent output is a DAG head. If you and only you can mine your own transactions, you can never get an orphaned block (except in the case of a double spend). This would lead to maximum possible transaction throughput.
The huge problem with this is that once you do this, you completely lose the chain of consensus, because you can't build on someone else's UTXOs. The question, then, is this: is there another way around this? Can you do something like have a parallel consensus chain consisting of only major miners collecting only the block reward and doing no transaction verification, or bundling. Then, when a transaction is sent, it is built referencing the best block of the consensus chain?
|