I'm new to blockchain technology so I'm sorry if I'm using wrong terminology. This is not a Bitcoin question, but a general blockchain question.
Imagine a theoretical blockchain that uses gradual proof-of-work - instead of finding a single
nonce that gives a hash smaller than the
target, you have to find 10
nonces that give hashes that are smaller than
target * 10.
(Edit: more complicated algorithm can be used, for example the first hash includes the block-header and the first nonce, the second hash includes the
block-header, the second nonce, and the previous hash, etc. - so calculating the hashes must cannot be done in parallel).
If you discovered 9/10 good nonces, you will try to find the last nonce even if some other miner has already published a complete block. This kind of blockchain will encourage arbitrary mining forks - where two miners publish a mined block with the same previous-block-hash (i.e. the same index in the chain), which looks like:
B1 ←- B2 ←- B3 ←- B4 ↑ +----- B4'
The way current blockchains (that I know of) solve this problem is by letting the miners pick which of the forks to continue, and because only the longest blockchain is the "true blockchain", all the miners will eventually work on a single fork, and all the work that was done on the other forks will go in vain.
Now imagine that each block could have contain more than 1 previous-block-hash. For example, a new miner could try mining a block like:
B1 ←- B2 ←- B3 ←- B4 ←- B5 ↑ | +----- B4' ←---+
With one important condition: the transactions in B4 must not contradict the transactions in B4' (no double-spending, etc.). Assuming there are many unrelated transactions in the mempool, this will be a very common scenario.
Miners can even be incentivised to include more previous-block-hashes in the next block. For example, if the miner of B4' notices that B4 was already published, he can offer to pay some fee to the following miners (of B5) that include B4' too.
This algorithm will be much more power efficient (in the case of a gradual proof-of-work) because miners can keep mining the same block even if some other miner already found a good block. It can mine more transactions in parallel without increasing the block size. It is different than choosing an easier hash function (for the proof-of-work), because it has no effect on the blockchain's length or growing speed.
Do you know of any proof-of-work blockchain/cryptocurrency that does something similar, like a blockchain that can split and merge? I know that IOTA is not using blockchain at all, but I never delved into the details.