What I have devised so far is that each block is limited to 50 transactions (arbitrary number, could be higher or lower based on Bitcoin's throughput, but this figure works for Litecoin currently), and once there are 50 transactions in the mempool, they are grouped together into a work unit, and sent to a specific miner/pool for hashing.
Isn't that centralisation now? Bitcoin doesn't have a consistent mempool through the network. Every node has a differing mempool with differing rules. How would you know if a miner is not hashing transaction A at the same time as you?
With a fixed difficulty, crunch time is based purely on that miner's hash rate, but is ideally less than a minute. Once hashing is complete on that block/workunit, it is broadcast to the network and added to the chain. However, before being added to the chain, that block must be crunched and verified by 5 other, randomly selected miners. So, each time a work unit is created by the network, it is sent to at least 6 totally random miners (not based on hash rate, wallet balance, etc.), and the block must have 6 results that jive before being added to the blockchain. The miner selection is done by group consensus of all core nodes (each randomly votes 10 miners, top 6 are selected by popular vote). Additionally, the top 6 miners are prevented from working on the block following the one they worked on (same miner can't crunch two blocks in a row). This prevents an entity running several malicious nodes/miners from taking control of the blockchain.
The way Bitcoin currently works is that nodes and miners are treated the same. It is impossible to tell which node is a miner and which node isn't. Why can't a node be verifying it though? Just like how it is.
Just for the record, nodes currently do not trust each other and independently verify the blocks and its content.
The transaction fee is hard-coded at .1% of the transaction amount.
So I can easily send a 1BTC transaction with a 1MB transaction size with a 0.001BTC fee? That'll surely spam the network up.
The first 10 valid hashes submitted would get an equivalent BTC amount to what each of the 6 miners received in transaction fees. So, in total, 16 miners would receive .0041667 BTC each for a total reward of .0666667 BTC for that block, and of that, .0416667 BTC would be new to the network. As market cap reaches 100% in circulation, the number of "follower" miners would be reduced, similar to how the block reward halves currently. The timeline for market growth would then be tied to transaction activity, not time.
As said, there is no way of telling the actual transaction volume. The best would just be having a singular node with an extremely good peering. Even with that, its not accurate.
I don't get this part.
Blocks come as fast or slow as transactions are happening, and the next group of 50 transactions can only be confirmed once the previous block has been fully verified by the 6 random miners. And if there are insufficient transactions in the mempool, block creation has a backup timer that kicks out work units 5 minutes after the previous block in case 50 transactions haven't occurred since then. This transforms the network from having a fixed throughput to being driven by network activity (the bottleneck then becomes how fast 6 miners can be selected and for those miners to crunch the transactions and make a block). So, what does this mean for miners? While this part is above my knowledge, it likely means that CPUs would become dominant again, as they are likely to sit idle most of the time, making ASICs far too power hungry to be profitable. Even GPUs may not make financial sense.
If you don't eliminate the ASICs and only make CPU mining profitable, anyone with sufficient motivation could execute a 51% attack easily.