I wonder if the following sharding strategy would make sense?
Imagine that we split the bitcoin network in 256 subnetworks (shards), depending on the second byte of the address in the unspent output (the first byte is already in use for other purposes).
Addresses in network 0 can only be spent to other addresses in network 0. Same for network 1,2, 3, ... 255.
Miners keep mining in each of the sub-networks for the current coinbase divided by 256. They will receive the transaction fees for just the block in sub-network.
This sub-network affinity of funds sounds annoying, but it is probably less annoying than it looks like.
If you hold funds on network 47, and you need to pay to network 12, it means that there needs to be an atomic swap network, with atomic swap servers, where you can automatically swap network-47 funds for network-12 funds. You will have to pay an atomic-swap fee to the swapping server, but since it is a free trade, this fee should be rather minimal. The swapping can be completely automated between your wallet and the swapping server. After swapping for funds in network 12, the wallet can proceed automatically with making the actual payment.
Hence, you will potentially need to make three blockchain operations: an atomic swap (=two operations) and a normal payment. This will take twice as long as usual.
Still, your wallet can also indicate in what sub-network you have the largest amount of funds. From there, you can notify your payee your preferred sub-network for making payments and let the payee generate a payment address in exactly that sub-network. That will spare you the wait for the atomic swap and the swapping fee.
The advantage of using shards, is that it scales pretty much infinitely.
You just need to shard by one more byte, to multiply capacity again by 2⁸=256. So, sharding by two bytes, results in 65536 sub-networks. Sharding by three bytes, in 16777216 sub-networks. There should always be enough online, atomic swapping-server capacity available, because swap servers will find themselves attracted to growing swapping fees, in case of shortage. Your wallet will automatically pick the cheapest swapping fee.
Concerning instantaneous payments (lightning network), lightning nodes should be able to rout payments from your fund commitment in one sub-network to recipients in another sub-network. The existing contracting system should therefore remain the same. In fact, all existing smart contracts will continue to work. The only requirement is that the addresses involved in a smart contract must be valid for the sub-network in which the smart contract is being entered. It will just create a principle of "smart contract sub-network affinity".
Do you think that a sharding strategy for bitcoin could be viable? If not, let me know your objections!