Without much research or a white paper, I’d like to initialize a conversation concerning an alternative data structure to blockchain, dubbed “blockgraph”.
A blockchain is a linked listed of blocks; a block is a verification scheme for data. Each block has data that is transactions and an exclusive (single) reference to a previous block. This inclusion of the previous block means a block verifies another block and by extension the data it contains. Over time, a particular block within the chain is expected to receive an aggregate of verification. Combined with other details, blockchains have proven themselves to be secure.
I propose discussion around the concept of a blockgraph: a directed-acyclic-graph of blocks. By modifying a block to have more than one previous block reference, we get a DAG data structure. Given a DAG data structure, there will be multiple tips or blocks with the same height however block reward could incentivize multiple references through coinbase (currency emissions) for each block reference and/or transaction fees allocated within the referenced block. Miners would be incentivized to included multiple block references causing the count of highest blocks to converge to 1.
Let’s discuss the motivation behind a blockgraph. With multiple blocks at a given height, we allow for the set of transactions to be verified by more than one miner. This could enable more localized verification and shorter block times without undesired forks. The motivation is to achieve a more granular verification scheme for transactions. A transaction could receive a less secure but quicker validation by the network of miners while still receiving the same amount of security over time.
Consider block times on a typical blockchain. A transaction with less payment volume may require less amount of time than the blockchain’s block time. With a blockgraph, could a small transaction could be considered confirmed more quickly with because of shorter block times?
Footnotes and Considerations
I understand there is a model from IOTA called the Tangle, however this concept does not include PoW or miners. You could say I am proposing a tangle-like data structure with PoW mining consensus, and that’s a fair statement. Though, I would not adopt the name “tangle” as “blockgraph” is a more appropriate name within reason.
It may be required that a block’s reference list to be limited due to data footprint concerns.
It may be required that a block can only be referenced once. If a block could have multiple references, how would reward be shared? Though, this leads to potential for graph forks (two miners competing for the same reference blocks). Possible solutions I’ll leave up to be discussed.
If we consider a block to be referenced more than once, reward would need to somehow be divided amongst miners.
Block heights should remain in a contiguous order (block with height 123 can only reference blocks with height 122). This can prevent building a fork without significant amount of work. Otherwise, non-contiguous references could be allowed given a path weighting scheme.