Altcoins are highly susceptible to 51% attacks because they have a low hashrate, even with merged mining. But what if there was a compact parent chain with *no native token* that was used solely to pool hashrate among sidechains?
I researched this all day and could only find discussions about pegged sidechains with SPV. (Lets assume we *don't* want to peg, so each sidechain has its own native equity currency, let's ignore philosophizing about whether altcoins are good or not, let's ignore trying to come up with a new PoW scheme for each altcoin, and let's ignore the possibility of shifting external hashrate for 51% attacks, so that attacks can only occur from shifting hashrate between sidechains. Etc.)
For simplicity, consider a consortium of 10 altcoins that want to pool their hashrate, who all share this tiny parent chain in addition to their own. The parent chain block headers (there are no block bodies) are of a fixed size struct such as this:
// pseudocode
pooled_block {
height: u32,
time: u32,
parent_pooled_block_id: u256,
sidechain_block_ids: {
sidechainA: u256,
sidechainB: u256,
...
}
}
weight = hash(pooled_block)
weight = pooled_block.sidechain_block_ids.map(hash).sum() // alternative
The simplest way is for sidechain nodes to weigh their blocks with the parent chain's block id instead of their own. Mining pools would need to run a full node for each sidechain, but regular sidechain nodes would only need to run the parent chain + their own sidechain.
This way, as long as 51% of the hashrate is honest, they are securing all the sidechains (and reaping the block rewards for each) at the same time.
Another possibility is for the parent chain blocks to be weighed by the sum of the hashes of the sidechain block ids that they include.