Zcash is anonymous but you have to trust that they don’t print more coins.

Will users be able to verify the supply of safecoins? If yes how does maidsafe solve the Zcash problem?

This is a good question that is very topical. I’d be interested to hear the thoughts of people with technical knowledge of the Safe network to see if Safecoin will be able to avoid some of the criticisms that are being aimed at Zcash.

My understanding is that it will not be possible to audit the supply of Safecoin, so some people may be uncomfortable with it in the same way they are with Zcash.

I’m not sure if there could be some public and audit-able method for the Safe network to declare the rate of Safecoin creation & consumption so that the supply at any given time can be known while keeping balances and transactions completely anonymous?

Another criticism I’ve heard of Zcash is that if the central 6 Zcash signers colluded, they could increase the supply of Zcash without anyone else knowing. The Safe network’s consensus mechanism doesn’t have any central signers who could do this with Safecoin even if they wanted to.

I’m sure this has been discussed before - I’ll add a link here if I can find any relevant discussion.

Each Safecoins has a unique 32-bit address; I don’t know how you could specify the available supply stricter than that.

I don’t think you can figure out the total supply of Safecoin on the network based on each coin having a unique 32-bit address, given there’s no public ledger of which Safecoins exist in the network.

It does tell you that there can’t be more than 4.3bn Safecoin in total, but those certainly won’t all be issued on day 1, and given that people buy network resources with Safecoin, a portion will always be held by the network until they are re-issued to farmers.

Sorry, now I see what you meant; I was confused anyway because I didn’t expect a regular member to not be aware of this

Actually, it’s pretty simple to guess the current number of coins: just start looking up random coins and count the hits. If you have 20 hits out of 1000 attempts, you can assume about 2% of the current supply is allocated, and the more addresses you tried, the more sure you can be this number is close to actual ratio.

Not to audit with 100% precision. But as a farmer in a group you could check the last 1000 farming requests from Farmers in your group. If if 44 out of 1000 are rejected by the group responsible for the farming attempt from the coin’s perspective you know 4.4% of all coins is mined. It might differ a bit, but bigger farmers will be part of several groups as nodes with quite some age so they can middle that number from several groups.

So you are assuming the way the new addresses are generated for new safecoins are well distributed in the address space, is this a right assumption to make?

…I guess you could also use the same random function to pick the addresses as the random function used for generating the new safecoins’ addresses…

Will one be able to actually monitor what their vault is doing in order to do this?

I imagine this could be coded in to the core safecoin implementation so that the such a stat could be polled from various groups from time to time. The number would never be exact, both because different nodes would likely have slightly different results and because the number is always changing overall, due to farming and deleting safecoins when recycled in exchange for PUTs.

As far as I know, the address for the new coin (to be awarded to a vault) is generated and agreed upon by the close group. If it’s already taken, nothing happens. But the point is, it’s not any single client’s decision what the address will be.

That function has to be as random as is feasible (keeping the code simple and fast) otherwise the farming will target a subset of the coins at a higher rate than other coins. This would mean that getting a coin from a farming attempt will be harder than it should be.

You could also target a range of 100,000 coins and check say 5000 a day, and then each month you would get a reasonable idea of available coins. Remember though that while the creation of coins maybe random the usage of coins for PUTs payment (destroying) will not be random.

So a 100,000 range might give you a 60% confidence, 200,000 might give you 80% confidence of the number of coins currently existing. (figures used are for making a point and not accurate in any way)

Basically, we’re dealing with a Bernoulli distribution, and we want to estimate `p`

from a given number of samples (which is easy), but we also want to know how sure we can be in our estimate (not so easy.)

Using Jeffrey’s interval we can draw up a Beta distribution for the probabilities for our probability.

In R, you can do this:

```
hit = 50
try = 1000
library(stats)
library(magicaxis)
x = exp(seq(log(1e-6*exp(1)),1,length.out=1e3))/exp(1)
d = dbeta(x, hit + 1/2, try - hit + 1/2)
plot(x,d,type="l",log="x",ylab = "", xlab="", xaxt="n", yaxt="n")
magaxis(grid=TRUE)
```

And you get this:

EDIT: I replaced the original image to add another curve for if you had 5 hits out of a 100 tries. Your “best guess” would still be 5%, but you would be a lot less sure about it. EDIT2: sorry i got randomly curious so i added the case for 1 out of 20 (red) as well apparently, the most likely outcome is that we have

lessthan 5% of the coins allocated

I used a logarithmic horizontal axis because it makes more sense for small p values, e.g. when you got 5 hits out of a 100,000 tries: