DOS Attack caused by Data Overload

Re obtaining names for shares, I think that could do with a whole thread of it’s own. First come, first serve doesn’t sound like a good idea to me - it would be very open to abuse.

Perhaps look to how Namecoin for potential solutions?

I prefer to use “allowance” instead of charity, because farmers are getting paid by the Network. After reading your other posts, I believe you understand why I prefer 2 types resource limits.

  • Allowance limit: for users who have no resources and cannot afford it.
  • Farmer limit: based on how much POR they make available.

This part is me thinking out loud.

A (Network Average Limit) is easy to compute and paints a broad stroke across all nodes. It is an ultimate equalizer. Does this mean a large farm who provides 20TB is limited to uploading only 2TB, while someone who provides 0TB gets to upload 2TB? The 20TB farm earns safecoins, so why would they complain? Well if they need to use those resources. They won’t be too happy with the limit.

I should note… the upload limit is only temporary until safecoins become more liquid and the network grows larger. Then farms can use as much as they provide. What happens to those who cannot afford resources? This is the problem I’m trying to solve using the most efficient way possible.

Nothing is set in stone which is why we are discussing this openly.

1 Like

I would hope this will be a non-issue in practice.
I like the Bitcoin transaction fee model. Currently transaction fees are free on Bitcoin. This is because the network pays out free Bitcoins for mining. Transactions are subsidized by the network. As time goes on, and people depend on the network, the transaction subsidy will be reduced and fees will slowly start to be incorporated.

I think the same model could work here, and this appears to be what David is trying to do.
When it is first started, the network pays out farmers for providing a resource, and the resource is effectively free to users. In effect, the network itself is subsidizing the farmers for making the storage space available. This also helps disseminate safecoin. Over time, less and less safecoin will be given out for free, and storage usage will increasingly cost safecoin to maintain. This is OK because, at that point, safecoin will be in wide use, there will be exchanges, and people will depend on the network enough to be willing to figure out how to get safecoin to pay for it.

I don’t know what the exact mechanism to make this work would look like. Here are some of my thoughts:
The gradual removal of subsidy is already in place. It will be more difficult to farm safecoin as time goes on.

In order to make this work, a user can pay the farmer directly for the storage space that is used, or the user’s payment can be destroyed (thereby making farming slightly easier). The effect is the same. Destroying the payments seems the most elegant.

Market forces should be used to set prices. You don’t want to have to centrally control the price. The cost of storage space should be based on the average cost of providing that space by the farmer, and the safecoin exchange rate. This is what markets are best at doing.

POR balancing schemes or things like, “First 1TB free” should be avoided if possible. It adds a lot of complexity for little value, in my opinion. Once the network is popular and fees start to take effect, people will be willing to pay to get into the network. The payments you earn over time should offset any costs you accrue, as long as you are providing at least equal resources as you take. You will just need a buffer of safecoin in your account to ensure it remains in the positive. This can be done by buying safecoin, or starting a node and waiting for it to earn the buffer.

I think an everything free model should work in the beginning, as long as we don’t get griefers actively attacking the network just to see it fail. There should be enough farmers that want to get in on the early easy safecoin farming to provide enough resources for the network. It worked for bitcoin…

The network has a large mass of (potential) wealth in the not yet distributed safecoin. This wealth should be spent in the most effective way to attract new users. Making storage free seems like the best way to do that, and the best way to make storage free would appear to be to pay farmers to make it available. There are so many aspects of bitcoin that are absolutely genius.

2 Likes

I hope this will be a non-issue as well.

I’m kind of late, but I don’t see how biometrics solve anything. From what I’ve understood, the idea would be to hash some biometric measurements to generate IDs.

But:

  • either these measurements are sent to other nodes and hashed out of the user’s control
  • or anyone can just send any ‘hash’ they want.

The first option is absolutely unacceptable.
The second one destroys the idea that biometric hashes represent any kind of proof of unique ID. I’ve seen someone above ask about voice alterations in software, but why go so far? I’ll just generate a random series of 0s and 1s as my ‘biometric hash’. And then I’ll generate my other 999 999 999 biometric identities the same way.

The only thing biometrics could be useful for would be as a password substitute, the way they are used on some laptops and phones these days. But certainly not as a proof of account uniqueness.

This is the key, the network takes the measurements and creates the hash. This is only possible if we can get something the network can decide is a human input and not created by AI. This is the hard part. I am in conversations with some people now and will hopefully revert with some info from industry leaders on this point.

So far it seems like anti virus tech, a solution is followed by another AI break and the cycle continues. This make me feel the core algorithm for this is wrong and there may be a simpler solution. [talking about human recognition, not an individual, just a unique human].

In any case this will be a project in parallel and not be in time for launch for sure. It is worth some head time though I think.

I dislike biometrics for access passwords etc. as I think they are nowhere near accurate enough to be decentralised. I just know saying that will mean one comes out of the blue (I would love that :smile: )

One thought on this is that if the “network basic allocation” is not too small, I doubt that people will be swarming to fill it up. I never did fill up my free Dropbox 2gbs (prior to dropping it due to Condi Rice being put on their board), and the 50 gb with Mega I haven’t even a vague idea of utilizing. A lot of stuff people will still keep on their own storage, especially if a lot of other stuff becomes available for public access.

That then leaves the question of a malicious attack of bots creating millions of minimal accounts and dumping crap.

A captcha system for creating accounts would seem to me to be the best sort of handling for this.

Beyond that it could be straight POR for above the minimum user allocation.

[edit addition]

If a pay-for-space system is utilized, I think it would be best to introduce the dormant token for that purpose, rather than make is payable in safecoin directly. The potential value of safecoin could be handicapped by tying it directly to network maintanence, especially as it might float in relation to other currencies. I see safecoin as a tremendly important facility that could float very high in value, making farming very highly incentivized, and probably thus alleviating the need to have pay-for-space at all.

Are we still talking about biometric measurements?

Anyhow, I’m not sure this matters. I’m not comfortable with the idea of having the network handle any data coming from my machine that would allow it to ‘fingerprint’ me. That’s the opposite of fostering privacy.

The network can (hopefully) be trusted as a whole, because no single node can do anything on its own, but I certainly won’t trust personal information to any single node.

The way I see it, proving user uniqueness and fostering privacy work in opposite directions.

Now, proving that the user is human is something else. Was it what you were talking about, David?

Sorry, I just realized there’s a thread about that here: Proof of unique human - Features - Safe Network Forum

Yes this was the issue. Its a registration issue I think, more than any monitoring (not for access). So only then would the proof of a human be required. Possibly a voluntary thing for voting, ranking etc. ?

Ooops me to.

This is more related to economics. But I’ll respond here.

I see the same thing happening as well. If Safecoin were to rise in value, say $500+ USD, then it would be more profitable to buy a hard drive and farm safecoin rather than using safecoin to buy storage. It does get tricky because Safecoin is capped. Once we reach 4billion, the safecoin generation will decreased to zero. What then? If there is very few people using safecoin to buy storage, there will be very little safecoin paid out to an overwhelming number of farmers. Kinda like how Bitcoin is today. This effect is great for the Network because we will have an abundance of storage space available. It is very likely people will just contribute resources to use the Network, even if they aren’t making much safecoin. Therefore, safecoin’s use as payment for storage will fade out.

Please note a farmer cannot sell/transfer POR directly to another user without the POR Token System. This means people will have to buy storage directly from the Network using their safecoins. The Network burns the safecoin which reduces the circulation amount and farmers can re-farm it, in a manner of speaking.

But if the above situation comes to fruition, then there is really no need for safecoin to buy storage. More likely, safecoin will be used like Bitcoin to buy other goods and services on the SAFE Network.

It is because of this reasoning, that I favor the (resource given = resource taken) model. And have modified it to include an (allowance) portion for those who cannot afford resources. The Network encourages you to be charitable by paying you safecoins on the allowance portion. Unfortunately, this is more complicated and could be maintenance intensive for the Network.

Sorry for delay in response, dyamanaka.

The reason I like the term charity is because it is the bit of storage that farmers would give away free.

If they share 900gb for Safecoin and give 100gb away for free, then the 100gb part is charity. They are not selling it or receiving Safecoin for it.

If each farmer was asked to choose how much to give away, the net amount would be what the network could give users for free.

Edit: typo

No problem,

If we prevent/reduce spam and DOS attacks, which is my main concern, then a (Network Storage Limit) could be the most efficient. The Network won’t have to calculate/verify individual nodes, making it a faster user experience for everyone! Also, we do have some ideas for garbage collection, data that is rarely accessed or abandoned. Users who need storage above the NSL can always buy more storage directly from the Network, using safecoins they farmed or bought from the exchange. Fast, easy, and clean.

Personally, I would stay within the NSL and manage my usage. I hope most of the world will do this as well. I truly believe we must take responsibility for our own actions. But in order to do that, we need to be given the opportunity to be responsible. The NSL indicates our resource threshold.

If the Network can’t manage the above threats, then we will have to use a (resource in = resource out) system. This is the POR Token System we are trying to avoid. It is already in place as a back up.

2 Likes

System viability (resource surplus) can be guaranteed only via incentives and disincentives. I believe that Safecoin’s main role should be to create those incentives via bounties and penalties.
Penalizing or charging net users would incentivize them to clean-up, contribute more resources or pay up. This will prevent data overload.
People don’t have to have Safecoin, they can provide more resources instead.
Am I missing something?

Most people seem to be in favor of a pure POR system. (Resource In = Resource Out)
The problem the MaidSafe Team encountered is it’s Network slowing. This is a huge maintenance for the MAID managers. A slower network negatively impacts the user experience. Also, the POR system excluded people who cannot afford safecoin and do not have resources.

I’ll try to summarize current NSL (Network Storage Limit) solution.

  1. Provide free storage for mass adoption. This is the NSL amount. Many free cloud storage services also have limits. Users who create an account start with “0” NSL initially. They can farm/pay 1 safecoin in order to receive the NSL amount.

  2. Enable users to increase their storage limit by paying safecoins. Because the POR token system is disabled, users can ONLY purchase more storage directly from the Network, using safecoins. The safecoins are then burned by the Network, allowing farmers to re-farm it. We can have the Network adjust the safecoin cost to rise if available storage approaches zero. And it can lower the safecoin cost if the available storage increases. If storage costs rises, most people will not use safecoin to buy storage. They would become farmers, thereby reducing the storage cost. If the storage costs lowers, then we know specialized vault farmers are having a positive effect. Either way, users have this option, which will be fast, easy, and cleaner than an auction system. Again the user experience is an important factor.

  3. Increase Network efficiency. The Network makes 1 calculation for the NSL instead of counting each individual node. At the same time, the Network can also sell excess storage on a case per case basis, directly to users.

I like the NSL because it tells users where they are in the spectrum of their resource usage. It allows them to be responsible and clean out their own storage space from junk or data they no longer need. As more powerful drives become available, the NSL will scale along with it.

Here’s the achilles heel… We still need to deal with bad actors making multiple accounts to spam and NSL abuse, which would lead to DOS attacks. The solutions for this part are being discussed on the “Proof of Unique Human” thread, started by David Irvine. The NSL is a compromise. So far, this one seems to have more positives than negatives.

4 Likes

Great, I like the smell of money burning:). I think Captcha is fine to make sure that accounts are not created automatically as part of a malicious attack. However, it doesn’t solve the problem of multiple accounts by humans and I don’t believe that we should limit people to one account. What I suggested in the past is to also limit the time of free resources for clients to one year so that on the long run it is not feasible to cheat by having multiple free clients.
Could you explain a little more about the Maid managers problem? What if we just sample it once a day randomly?

The Maid Managers problem should be answered by @dirvine.
But I’ll take a shot. Imagine 1 auditor who counts the individual storage portion of a group of 10 users. Easy, no problem. Now tell that 1 auditor to count the individual storage portion of a group of 10million users. That takes some time. Rather than counting the individual, the auditor just asks, how much total storage do we have? Okay everyone gets the average amount. If I butchered the explanation, I apologize.

The NSL solution “discourages” people from making more than one account. Here’s why… if people keep making multiple accounts, they will just end up reducing the NSL amount as well as burning more safecoins. This causes a diminishing return effect. So greedy people and bots end up paying more and gaining less each time they try to game the system. It is not a perfect solution, but it makes this kind of activity manageable.

The storage space allocated for the SAFE Network to sell is not affected. I haven’t worked out an exact formula yet, and should discuss this with the MaidSafe Team, if they decide to use this solution. Basically there will be 2 allocations: the NSL (Network Storage Limit) and the NR (Network Reserve).

One of the concerns from the Proof of Unique Human thread was compromised accounts. I don’t like the idea of locking people down. Everyone should have the ability to defend themselves, and that includes starting over with a new login account. So that option should always be open.

If we have a greedy community, the Network responds accordingly.
If we have a charitable community, the Network responds accordingly.

I’m a fan of voluntary human incentives.

1 Like