Update 09 September, 2021

Nice write up!

General progress is going amazing as well. If that adult-elder-client loop existed in the previous Testnet along with so many other looping bugs and OMM issues then it’s amazing they lasted as long as they did. Sounds like this huge amount of updates, optimizations and bug fixes will be a massive improvement in stability and performance.

We didn’t get to hear much in denominations and whether they are performant or not.

From my uneducated view, it seems like forcing one time keys and denominations fixes the link ability issue. Blind sigs have to be used too though so Mints or elders can’t link though, correct?

If denominations are an attractive option and it’s required the number of denominations allows for obscurity then I wonder what the right amount of denominations is for unlink ability and usability.


Great update team as usual. I can see how this DBC and tokenomics work in general is super tricky.

As there were many alternative approaches listed, I’m guessing that these are all still in the discussion/debate hopper and could take some time yet to figure out and implement the most pragmatic (and hopefully best) options.

Thanks for the detailed overview - it demonstrates the level of research and thought everyone is putting into the problem and IMO, really sets the Safe Network apart from most other projects out there.

Of course we have the benefit of hindsight as many of the other successful projects out there have put these ideas to the fire - so much can be gleaned from that going forward.



Apologies to ask a dumb question and notwithstanding all the interesting updates on DBCs, can someone in layman’s terms explain what needs to happen to get to the next testnet.

Is it a case of refactoring? Integration of AE? Is there a fundamental issue with how everything works together that needs to be addressed?

As someone who has been following the project for the last 4 years, have been feeling a bit lost recently.

As always the updates are meticulously produced and written in great detail, and I hate to be the dumb dumb asking for the simplification of something obviously so complex…but in fact that is exactly what I asking.

Appreciate if anyone can help me out



No, it’s more like AE is quite a simplification to things, so with doing that we’ve more easily been able to see where some things were overwriting state w/o verification eg. And can generally see more easily where there is a loop or so, because there’s only AE messages going now, as opposed to a few different types doing different things.

And then with all that, we’re going through and making sure what we expect to be happening is happening (and for the most part it is).

There’s certainly nothing fundamentally off atm. It’s more simplifying and stabilising just now.


Just wanted to voice my opinion (not that it matters) on what I think of a couple of the other named approaches.

I think coin joins, ring sigs, are a waste of time for what little they are worth and the zk stuff though interesting, to my understanding is too computationally heavy and slow for what we would be aiming to achieve for an internet token with global use.

I’ll be reading over this many times I’m sure and hope to pick up little bits I might have missed but im already looking forward to the next write up. :slight_smile:


Thanks for the great work again!

What’s the situation with this key issue?


Thanks so much to the entire Maidsafe team for all of your hard work! The explanations above were excellent and it will be much easier to get good community support. :racehorse:



Now this makes me excited!


Thx for the update Maidsafe devs.

Really like the readup on DBCs, very insightful.

Just like immutability is a time saver, unlinkability will be.

Keep hacking super ants


Why I can’t see Farming part on github.com?

Hard to say, been following since 2014, so would also like to know.

As the team does not give time estimates we’re probably looking at : “Its ready when it’s done kind of answer” .

1 Like

Probably still not worked on, check the roadmap, not sure the team already worked on that part.

For anyone having a hard time reading the updates for whatever reasons: I find that pasting the whole update to a chat room with the closest-like friends and acquaintances (like a channel or a group) helps me understand everything better. Even if nobody in there is actually reading it with you lol. I like how this update basically proves that gold is worthless. OK well, not worthless, at all (I feel like quite a number of people here and in general likely have a strong potential bond to the concept of gold)—but what Maidsafe is doing with money/data/Internet I keep saying is the most ideal the world can get with their money. And it helps that it’s integrated with everything else. I guess ZK and Monero are already pretty good, though they’re lacking self-authentication (I think?) and everything else that the Safe Network will bring (on top of anything else I’m missing, since I don’t know much about those cryptos whatsoever, though I’d probably be all over them if Safe Net’s ideal never got known). Great work! As always.


Of course with gold, one can always just melt it down and create a new bar. Then stamp any number you wish into it, or none. That’s why gold is innately fungible, and thus why a centralized tracking technique as decribed in the update would work imperfectly at best in the real world.

With digital currencies, a tracking identifier of some sort is normally a system requirement to prevent double spending and create scarcity. Because unlike gold, a digital token can be duplicated by anyone at near zero cost. So the hard part is getting gold’s innate fungibility property back. It’s hard enough that the first generation of cryptocurrencies didn’t even try.


But one helluva opportunity for Safe. I’m glad you have such a passion to get this right @danda and that you have a deep knowledge on the subject.

Safe Network is an amazing prospect as is but this money element is so important for it to be everything it aims to be.

Private, ownerless, sound money backed by the worlds data could be just what humanity needs to free itself.


Thanks for the clear and easy explanation. :heart_eyes:


Great to hear. Truly a marathon not a spirit. In awe of the persistence of the team!


@qi_ma I was wondering when I did some modelling some issues.

One idea was to use the upper bits and flip some bits (use XOR on the bits) causing an address to be a long XOR distance from the original. Thus if you flip the top bit then that gives a determinable address in what should be a different section if there is more than 2 sections.

So this can be extended to more bits if needed and the section storing only needs to know if this is an alt xor address and what the current flip bits are.

Thus the section tries to store the chunk and if it cannot then using the “flip bits” it chooses the next in sequence (unflips with current and flips with next), sending it off to the section to store. Once the limit is reached then the chunk is considered not storable due to no space. [EDIT: obviously the bit sequence can incorporate the unflip and flip as one bit pattern EG if pattern is 1 and next is 01, then xor with 11]

The sequence of “flip bits” would most likely be
1, 01, 11, 001, 011, 101, 111, 0001, 0011, 0101, 0111, 1001, 1011, 1101, 1111 for upto 4 bits of flipping.
Obviously there is some limit to how far you go due to time and/or network effort.

The more bits used increases the chance of clash of hash from nigh on impossible to just a little less than nigh on impossible.

Benefits, it is recursive across the network, does not need state to be kept beyond what is already kept to store a chunk.


The denominations should actually have a pretty limited effect on usability, it’s more about unlinkability, and efficiency for the nodes. And as usual @danda and @mav are all over that.

All the change-making, stacking of DBCs into transactions, merging etc can be seamlessly handled by the client. Even withdrawing a specific amount as cash should be doable in a one-page, single value, kinda way.

So sending a payment will still be: type amount; select payee; boom. Writing out a cheque will still be type amount; select payee; print, and depositing it will still just be Scan code, or click link, and it’s done.


Where this data will be stored (RAM, disk) and for how long?