I’m not sure if this is already discussed, but i guess it will not harm to post my idea anyways. We all know, that sharding is a trade-off between security and scalability, because the transactions are monitored by lesser nodes. There is always an average factor of monitoring nodes per transaction which can not be changed. For easier understanding we assume that there are 5 nodes in the network and every node can process the same amount of transactions. This amount of transactions is displayed in my figure as the width of the black lines. The width of the colored lines symbolize the number of transactions issued by the different nodes. To get the constant security factor we devide the number of transactions all nodes are able to processsum by the sum of all issued transactions. In the upper two figures this security factor is 5. This means that every transaction is monitored by 5 nodes. If the sum of all issued transactions is 100 or less, we do not need sharding and every transaction is monitored by every node in the network. If you look at the figure on the right hand side and imagine a vertical line, then every colored transaction has 5 black lines (monitoring nodes) above or below.
When we need sharding because the transactions are more than every node can handle (>100%), we cannot monitor every transaction with all of the nodes anymore. We can distribure the nodes’ monitoring window equally over the transactions. But here comes my Idea.
Not every transaction needs the same level of security. Sub cent microtransactions do not need the same level of security as a million dollar p2p transaction. Additionally i assume, that nodes witch issue extremeley many transactions, send more microtransactions and a real person wich stores value sends less transactions but with higher value and needs more security. Therefore I think it would be preferable to distribute the security factor not eqally over the network but proportional to the nodes transaction volume.
To this end we calculate the nodes personal security factor: Number of transactions the node is capable of handling devided by the number of transactions the node is issuing. This factor gives us the number of nodes which are monitoring the transactions of this node.
I think this would lead to a fair resource distribution and every node can more or less decide for themselfs if they prefere more security or more scalability. I hope my idea is understandable.
Have a nice day and go on with your fantastic project.