RFC 57: Safecoin Revised

End of Final Comment Period

The final comment period for the Safecoin Revised RFC is over, and its status will now move to ‘Active’.

Thanks for your contributions :smiley:

10 Likes

When a client pays to store or mutate data, the payment will be immediately be divided amongst farmers. Furthermore the amount paid will be matched by the client’s section (previously called the MaidManagers) by increasing the section’s farmed total accordingly. This will yield a reward which is 2 * payment amount.

Why would the network yield a reward 2x the payment amount? If I pay 1 safecoin to store 1mb of data, doesn’t that data have to be duplicated in multiple places by multiple farmers? So I would have thought my payment would have be split between those multiple farmers, not multiplied. The term “subsidy” comes to mind.

Having said that, I’ve also never really understood the economic model involved: I only have to pay once to store data permanently… but farmers have to continue to pay for storage/electricity to store that data forever. So then it seems to me it would require perpetual growth to continue to incentivize farmers to pay storage/electricity costs, which seems feasible to my little mind now… but pension systems and social security schemes also seemed reasonable to whoever started them long ago, even though they rely on perpetual population growth… which has now slowed down, and look they’re all underfunded…

Can someone help me think about this more clearly?

4 Likes

For the initial test algo (read naive) we are farming a payment for every client payment. So the 2X is this part. It is not like electricity, kinda more like writing down on paper and keeping the paper, there is a small cost, but space is something that grows as fast s data does. Not really constant growth either, just constant changing of data if that makes sense. If the world stopped creating data then the network is not really required as we could just lock everything in place have it signed and make many copies of that. Archive nodes may do some of that for data that is not changing any more.

So think more about the network as being the thing that allows us to get all data, but it does not need to be the only way to store/make available immutable data. Where it is really required is new data or mutating existing data and communications between people (this is also changing as users change where and how they connect).

It is split between the section nodes, including those farmers that store it. This is the simple start. Nodes that do not store will be killed off. so the section as a whole gets rewards for all the data being stored/mutated. It is just a simple way to start, we may target only a few nodes at some stage, but this simple pattern arguably allows a restricted attack vector for gaming the system by individual nodes.

10 Likes

Imo you have hit upon another great idea here. A ‘pay on PUT’ farming reward combined with the previously described ‘pay on GET’ reward is genius. In the first case you reward nodes for showing up and always being ready to accept new data. In the second you reward nodes for maintaining old data. The two schemes complement each other perfectly. I suspect the reward rates should be different, with the pay on GET scheme offering more for data that has been maintained longer.

10 Likes

noted.

But if we think about the value of safecoin, in terms of fiat redemption… safecoin has multiple purposes:

  • utility: redemption of safecoin in exchange for storing data on the network
  • utility: payment to farmers for providing storage/bandwidth
  • price discovery: consumers of storage space will have to purchase safecoins with fiat to get access to storage
  • store of value: speculators, savers.

And because people will be converting fiat into SAFE coins, the safe network will effectively be printing money. So does the algorithm the network uses to print money tend towards price stability, inflation or deflation? Let’s consider:

  • person X converts $1 to buy X safecoins, which buys them, say, 100mb of data.
  • the network receives those X safecoins, worth $1, then distributes 2X safecoins to farmers, worth $2.
  • If you always print 2 safecoins for every 1 redeemed then it’s not possible to destroy the coins fast enough, and you’ll hit the ceiling very quickly.
  • this leads to price inflation - that is, the fiat value of safecoins decreases, and savers/farmers suffer.

It seems to me the reward to farmers must decrease relative to the available number of unfarmed safecoins. And if you are teetering on the edge of having issued the maximum number of safecoins then the network needs to be paying farmers at most 1 safecoin for each 1 safecoin paid for storage, but probably best to pay less than 1 safecoin to allow for more liquidity, to achieve better price discovery.

Frankly I liked the economic algorithm facilitated by one of the earlier RFC’s where there was a big array (granted that didn’t support floating point transactions, which is bad). When a coin was paid for storage its address was freed up, and when farmers roll the dice to earn farming fees they would only get paid if their dice lands on an empty coin in the array. This algo had supply/demand factored into it, where rewards decreased drastically as available farming supply decreased.

For the initial test algo (read naive)

Again, noted… but I’m keen to discuss what a potential algorithm might look like, and don’t know why it wouldn’t be tested this way from the start.

Has anyone done any quantitative analysis on the supply/demand function of this? Do you plan on getting some monetary/economic analysts to look at this?

10 Likes

Explained in the rfc as “For now, we will use an algorithm which would eventually deplete all farmable coin, but which is simple to implement while we gather further data from testnets.”

Good question, no answer yet. Glad to see more people thinking about it!

I’ve done a lot of exploration but it gets very complex very quickly and I found myself building my own terminology etc and by that point it’s basically impossible to make that work public.

If you have any ideas would be great to hear.

Anyone particular you have in mind? Would be interesting to see their thoughts.

6 Likes

I’ve lost track of this topic due to time constraints (and mental capability constraints), but it all seems over complicated for something that should basically be an internal market to balance available resources with demand.

Is there any way to track back from all of the complexity and just have a simple market mechanism to balance supply & demand, so that put price tends up if resources become scarce & down if they become abundant, based around a target for optimal spare capacity?

Basically, why’d we have to go and make things so complicated… trying to figure out Safecoins dynamics makes me frustrated :wink:

2 Likes

That certainly was the initial intent and somehow I feel that most suggestions for improvements have been towards giving control to those who have more than others. This includes the bidding since those with bigger vaults have more say. Also making it more complicated and/or involving people gives greater opportunity for unforeseen attack.

The network is the one that knows its needs/requirements better than people who after all for the most part want more income for their efforts.

I do think having a formula for network health and using that as one of the factors in reward/cost rates is good, but is more complex.

4 Likes

An internal market is not as simple as it sounds.

I’ll add a bit more about my understanding of the difficulties of rfc-0012 / rfc-0057 style reward and storecost algorithms.

There are some pretty clear heuristics we can look at implementing which I think are not too controversial, and these make the algorithm seem pretty simple.

  • aim for x% spare space, which then implies
    • membership
      • if low on spare space, allow more vaults to join
      • if excess spare space, stop allowing more vaults to join
    • rewards
      • if low on spare space, increase the reward
      • if excess spare space, decrease the reward
    • storecost
      • if low on spare space, increase the storecost
      • if excess spare space, decrease the storecost

So far so good, everything seems simple.

The uncertainties are

  • what should x be?
  • when should we use membership vs rewards vs storecost to achieve the goal? This is the hardest uncertainty to answer in my opinion.
  • the direction for rewards and costs are clear but what should they actually be, what magnitude, and why?
  • can spare space be measured? How accurate does that measurement need to be?
  • what if spare space turns out to be less important than spare bandwidth or spare compute cycles?
  • who decides these things? How do we know the decisions are reflected in the network (in the rules and in the behaviours)? How does that decision change or be updated in the future?
  • what event should cause reward? GET or PUT or both? Responding from cache? Signing and passing on a message for routing? Reporting malicious behaviour? Taking part in consensus? How are rewards distributed between these actions?
  • how long should it take before all coins are issued? What rate of inflation or deflation should be chosen? Should coin supply be able to shrink or only grow (eg storecost > rewards)?
  • how does the algorithm affect security and incentives? Can it be abused and if so at what cost to the attacker and what cost to the network?
  • should pay-the-producer and pay-the-developer be included and how should that work?

I would love to say ‘x = 50%’, but then get stuck on what the reward and storecost should be. I honestly cannot answer that. No algorithm seems appropriate. I’m totally open to new algorithms (see next step of a safecoin algorithm and exploration of live economy) and feel it’s a solvable problem (see health metrics), but so far nothing seems sufficiently sustainable to me. Perpetual Auction Currency feels like the closest thing we have right now to a working sustainable algorithm (although this is not without controversy!).

13 Likes

Sorry if this is in the wrong place or cluttering up important discussion …I’m really just wondering if there would ever be a chance or how viable it is for safe coin to ever become a digital currency to buy and sell goods etc other then storage.

I get that a few on here are diehard optimists thinking it could one day replace the dollar :yum:. But in reality I just don’t see how they could really become truly a source for dual usage. Sure it can still be traded etc but with the price for storage being set in safe coins how could this possibly at the same time become priced at anything other than that.
Maybe once it settles down and the network becomes somewhat stable? But storage fees / puts etc surely act -or should?- in a non linear correlation to other services / economies.

1 Like

Considering that there is some uses of other crypto currencies for buy/selling then safecoin will join the fray and be used. “Fee Less” transactions will play a role in the use of safecoin too.

As to adoption there is a lot riding on the safenetwork being accepted and used by people. The more used the network then the more one expects safecoin will be used for transactions of goods.

As to replacing fiat then you are probably right for the foreseeable future.

6 Likes

Ok thanks, like I simple economics it’s actually anything but simple -for me- and I’m going to have to think this one through.

I guess what my instinct was telling me is that the value of safe coin would be pegged in some way to the perceived or even programmed value of storage fees. So if storage came down rapidly in price for whatever reason but inflation (in price of food and say dollar bill was rising massively) elsewhere was going on, it would not be easy to reconcile!?
Anyway thanks for input as I say will think through this more but still not convinced it can act as both general currency and value of storage.

1 Like

(preamble)Randomly came across a website called the eye when a friend was asking about ebooks… Anyway I have no knowledge other than looking on the front page of their site the other day.

This made me think about storage fees:
On the site going by quote
As of June 2019, the site is seeing 182 million+ requests amounting to over 1000 terabytes+ of data served each month. We currently pay around $600 /month to cover our services and are entirely community funded

Firstly I don’t know what the going rate is or even if this is factual. So in theory say storage is getting cheaper and cheaper (for sake of arguement like Moore’s law). But then at the save time there is a massive inflationary spike in everything other then tech and digital services… They would appear to simple me to be going in different directions.
Anyway sorry don’t have my thinking cap tightly in today and will leave to think deeper about and return to.

1 Like

Not really sure, no - this stuff is hard to predict. Most economic analysts look backwards at data to understand the relationships - much harder to look forward for something with completely new dynamics.

But since the Maidsafe team is based in the UK I’d try to get Alisdair McLeod involved! :laughing::ok_hand:

Hmm that’s a really good point, something I’d not considered before.

1 Like

I hope you are joking. He comes from the old school economics point of view and doesn’t believe in cryptoeconomics AFAIK.

Maybe someone more appropriated should be Saifedean Ammous; Much more in tune with the dynamic of free markets and the new kind of economics that it’s opening right now in front of our eyes.

https://twitter.com/saifedean

2 Likes

Very interesting questions.

Regarding your stated hardest question (among many hard questions!), I wonder if it can be simplified.

Is there a reason why membership can’t be left to farmers to decide? People will naturally provide more nodes if rewards go up, and add fewer nodes if rewards go down.

If the network doesn’t need to worry about regulating membership, then there’s only store cost and rewards to consider. These should be two sides of the same coin if the market is to function efficiently.

Total outflow of rewards (however they’re split) should equal or be proportionate to total inflow of revenue from users, so that when capacity deviates from x, rewards and store cost adjust in tandem to guide the network back toward x.

I can’t imagine why it would be beneficial to incentivise users to store more by dropping store cost without also reducing the incentive of farmers to add more resources by reducing rewards, and vice versa.

Many interesting points to think about!

3 Likes

It may be beneficial for the network to be greedy over the long term and always desire a certain percentage of the total safecoin supply in reserve to even out transient spikes in demand or supply. So therefore :

Total Outflow Rate + Total Reserve Rate = Total Inflow Rate

The initial conditions of the network will give it ~95% of total coin supply in reserve.

There may be non-linear relationships between supply and demand. A possible scenario is one where the network observes that the rate of new farmer’s joining the network is maximized when it offers a particular GET price. Simultaneously it may observe that content is being maximally uploaded at a particular PUT price that is lower than the GET price. In the interest of maximizing short to medium term growth, it can access its reserves to balance things out. Opposite price conditions allow it to add back to its reserves for a rainy day.

2 Likes

Another resource for pricing / fees (but more complex to read) is the Amazon Web Services pricing for their Simple Storage Service

1 Like

Just a random thought about biases:

farmers are interested in higher payout;
users are interested in lower payout;
but developers are perhaps most interested in the health of the network.

So, would it be possible to poll Safe Network developers for info on farming costs? Or would that influence PtD as well - i.e. is PtD some fixed percent of farmer payout?

1 Like

The developer rewards negate this supposition
They will want good returns too and cheats will want maximum and probably more cheaters than legit app developers since they will sock account their cheats a lot.

1 Like