Tldr: I’ve warmed up a lot to the “store only when capacity is needed” idea. No solution will be perfect and can be adjusted to reach a good equilibrium. There’s substantial risk though that an adversary can use any weakness in the token economics to afford to upload a lot of data and flood the network with sybil nodes. This risk can be countered by ensuring that it’s highly costly for any one party to amass a large amount of tokens (whether by farming or buying on the markets) and that farming is highly popular and easy to partake in (so that the sheer number of nodes from average people overwhelm any one adversary).
The goal being to have as large a network as possible, which would provide capacity and be better able to absorb any attempt by a byzantine party to take over the network, I didn’t like the idea of only allowing more nodes onto the network when current member nodes are full. So I was going to suggest that MaidSafe run the network until a very large size (1,000’s of nodes) then allow trusted forum members to also add a large quantity of nodes. Then after that stage, with the network having 10’s of thousands of nodes, it should be open to everyone so that going forward all nodes are accepted. A problem with this approach is that it would provide a substantial advantage over the long term to insiders and early adopters, but no solution is going to be perfect.
But thinking more about it, I now like the “accept nodes when capacity is low” quite a bit. The strategy is essentially employing economic cost for sybil defense, which is one of the most effective sybil defenses (if not the best). The strategy has a second benefit, i.e., it essentially is also pushing farmers to bootstrap storage on the network (i.e., if you want to become a farmer faster, you either store data onto the network yourself or you advertise the network so that others store data on it). Now, how do we ensure the network grows to a very large size without first waiting for its services to be first popular? Because the economic cost for sybil defense strategy here is a bit different from that used in say Bitcoin with pow, several factors need to be accounted for including:
1) Limit on node size
This will be important to estimate how much data should be uploaded to obtain membership. Such visibility will be helpful to farmers as they would have a consistent formula for obtaining full membership onto the network. Setting a limit on node size will also allow the network’s growth rate as well as its economics to be modeled more accurately.
2) Definition of node fullness
Great that it moved from 80% to 50%. It probably should decrease even further. I don’t know what the right value should be. 1% so that if the standard node size is 100Gb, a farmer would have to upload a maximum 1Gb of data to ensure that at least 1 member node becomes full? I feel an optimal number can be modeled as a function of the upload cost and the token emission to ensure that the number is sufficiently high to be costly for an adversary to “fill” member nodes at scale but sufficiently low to ensure an average person can “fill” a member node in order to become a farmer.
3) Cost of upload
Needs to be sufficiently high so that an adversary cannot afford to flood the network with data and thus with its nodes. Risk that there’s an initial high cost for an adversary but it’s essentially free after that (i.e., as long as they can afford to upload a large enough amount of data and get their nodes on, they can now earn enough tokens to continually upload more data and have even more nodes accepted). Token supply and emission (item 4 below) can help here as well as popularity of farming (item 5).
4) Distribution of the token
Needs to be very difficult for one party to be able to accumulate a large amount that they could then use to flood the network with data and thus nodes. Serious consideration need given to the pros/cons of having the vast majority of the token supply be earned by potentially dormant adversaries that can later use it to attack the network versus ensuring that the maximum that can be earned by farming is the same or less than the proportion distributed amongst MaidSafe, early backers, ICO participants, and market participants over the years for the proxy token. The latter option doesn’t preclude that there might be a potential adversary who’s already acquired a large amount of the proxy token, but is that likely considering how many left the project for dead and more importantly is it more likely that an adversary, now seeing that the network is actually possible, can try to acquire a large proportion of tokens to wreack havoc if the supply or its emission aren’t controlled.
5) Popularity of farming
If farming on Safe Network is popular, it would help counter any one party’s attempt at taking over the network by diluting their nodes with the sheer mass of nodes from everyone else. How can that be achieved? Marketing? High token price to attract droves of traditional crypto miners? How about data hoarders, tech-minded, hobbyists, futurists, torrent seeders? How should they best be reached so they can support the network with nodes?
This factor (and 6 below) can blunt can blunt the other risks substantially.
6) Ease of participation
If it’s very easy to join the network / become a farmer, the average person will more readily help the network versus an adversary who will be advantaged by a difficult to join process as they will more likely have the patience, know-how, and resources to overcome any such difficulty (and at scale).