SafeNet needs a completely new communication protocol

For a long time I have been trying to understand and predict how much SafeNet can change the Internet because it is much more than just a distributed network for data storage, and if so, the most important solution beyond the network layer will be a completely new communication protocol.
The topic of e-mail / messenger was going on in many threads, but without any conclusions, so it is worth helping the MadeSafe team (which I think already has an idea for communication in the SN) and discuss how a communication system including mail, quick messages, voice calls, device communication (IoT) etc. should look like.
I think the protocol in SN should work completely different than in Clearnet for many reasons:

  1. In the roadmap (Fleming Feature) states, that the QP2P functionality has the “complete” status, while the “Apps and User Experience” chapter states that the Private Messaging functionality has the “concept” status.
    Should it be understood that QP2P is an integral, ready-to-use solution at the network level, and Private Messaging requires creation a communication protocol at the application level?

  2. SafeNet is a distributed network and since it has a network protocol built in by default, I think that it should be used to handle important and permanent information (email equivalent), and the application layer should be used to save e.g. quick messages. Gossip can be deleted after the call or save locally ( E.g. @bochaco suggested implementing the Lightning Network protocol (over DBCs) for end user p2p messages, where a mobile farmer can create channels where messages will be routed through, and all separate from the nodes farmers, which take care of Safe persisted data - I think the same but In my opinion quick messages should be free - unless we want to save them to the data network.),

  3. The current Internet indexes absolutely everything, becoming at the same time a “dumpster of information”, it is probably for a simple reason - did you see in the movie how the detective throws garbage out of the garbage bag and looks for something important in it? - this is why Clearnet collects garbage, because you can learn a lot about us from it!
    SafeNet on the contrary, offers privacy and security, but it works without a servers, therefore it is worth choosing which information should be saved, and SN resources are worth saving for important data,

  4. I think SafeNet should remain an agnostic network but not create connections with outdated Clearnet protocols because it will hinder and extend the adaptation of the project and will not be conducive to network security and stability. In my opinion we do not should go towards interoperability with clearnet at all costs.

If someone is working on some messenger protocol, IoT, VoIP etc. I invite you to discuss and present your project, idea or opinion (and if it is confidential, I invite you to priv) about how communication in the SN should look like.

And if you don’t agree, constructive criticism is welcome :slight_smile:

Have a nice discussion!


I think the Safe Network can facilitate storage options for messenger software, slow commenting (blogs, social media, etc) and enable a secure way to connect clients to each other by sharing their endpoints which will be used to establish a real-time stream, which can have it’s own data tunnel and does not need to be happening on safe network as persistent data.


I wonder if it’d be possible to simply adapt an existing open-source project into SN … maybe WASM the code and add some integrations with SN and SN browser.

Not sure on the status of caching on the network, but maybe a way there to store messages for a time as well. With more and more low power always on always connected devices, maybe no need to cache on the network anyway.


When we are stable again there are a couple of us working on wasm and h3 integrations. I think this will expand as it’s a real opportunity at long long last for true interop. If we have well-formatted wire messages that are well-understood with a language agnostic serialisation then we are in a great place.

The amazing news is that this is already partly done and all of our machinery is in place to just tweak. We don’t need to build any of this in terms of message format etc. all we need to do is tweak.

What we need to build is the h3 comms part, but that is a little bit harder as web browsers do an h2 connection then h3 (i.e. they use TCP TLS1.2 (h2) then upgrade to quick tls1.3 (h3))

This is where we will have to work in a smart way that allows the web browsers to catch up.


Maybe its dooable, but it requires storage only if temporary id imagine, and requires routing through the network which will have a real world cost.

If its free how do we stop spamming attacks slowing the network.

Edit, i see you were talking of a side channel, but still surely the same things are issues even if only for the side channel.

1 Like

We could use a hashcash like mechism? i.e. the sender must send a hash that represents say 12 leading zeros that have to be obtained by adding single 0 bits to the message until the hash of the whole message plus prepended (to prevent sponge like shortcuts) with 0s until the whole thing hashes to have 12 0s.

Then all the receiver (or relay) does is quicky add the number of zeros claimed to the message start and do a single hash. The sender will have had to do a lot of work (i.e. millions of hashes which we can alter).

Our resource proof crate can enforce this and we may even use it for sending DBC transactions as a way to prevent spam.


Bitmessage might be a good candidate for converting/integrating with SN. It also has a PoW anti-spam mechanism. Importantly, it’s also pretty anonymous - unlike email. As messages go though a circuit of many users.

Nice paper covering it’s anti-spam mechanisms (and gives general overview of bitmessage too):


It’s a lot of words that says, use a hashcash like a mechanism :wink: I really like papers and feel they give value, but it’s like Engineers get a platform to talk incessantly and confusingly about a single tiny thing, and it takes thousands of words to say it.

I really wish there was a drive for simple language single paragraph explanation of concepts, rather than,

  1. Here’s a non descriptive intro
  2. Here is a history of bitcoin
  3. Here are some results before our paper
  4. Here are some heuristics and logarithms and English bent into formulas
  5. Here are some results, look a graph!
  6. We conclude this improves the state fo art and will tell folk that

All to say. Ok the system uses hashcash, it sets these parameters X and we think tweaking one of those improves it, but which one? well we called it alpha and you need to dig hard to find what we call alpha :slight_smile:

I am not getting at these authors at all, but in general papers hide more than explain. It’s like a club for special people at times and they are very very special :smiley: :smiley:


wish we could apply the anti spam cost of hashing to Ctl + C and Ctl + V when people are typing up documents and papers.

1 Like

!! Hope I didn’t waste your time with it … I just skimmed it and looked like it covered the basics of what bitmessage is and how it the anti-spam works.

Also as it uses Hash-cash like method, I thought it was an additional proof that it works in practice for this purpose.


Not at all it was worth a read for sure. It’s just patents and papers are always 90% fat and 10% substance :slight_smile: I just wish the 90% did not exist at times.

Still, though, it’s the game we are all in and we do need to be in it and work with it.

Never feel we should not share such papers, cause you never know!


In fact, Dawid had already responded, but the topic has been discussed many times - you can create, for example, a contact list and communicate only with selected message senders. Quick messages should be free, e.g. so that they can persuade Signal users to abandon the security promise (client-server solutions) and switch to guaranteed security (SAFE distributed application) :slight_smile:


If its not needing the main network nodes id agree.
If it is, there would be a cost to those nodes, for no reward, then i dont see it as sustainable if it became a very popular thing.
If it costs , it needs paying for somewhere.

You did write.

So if its dooable as you describe, great.

That would be like using the network without using the network, which confuses my mind, i dont understand how that would work , but i can live with that.


Thinking about it, admittedly im still a bit asleep, how does not storing the data on normal farming nodes but allowing direct connection to each other not break anonymity and the security of using the network.

If this were possible why would the network even be necessary? ( i guess persistant data that lasts )

Or is this basically a side network of volunteer nodes who are working for free?
Afaik lightning nodes get paid and its why they do it.


I’m happy to be corrected here but, I’m not certain how anonymous the network is anymore in the first place. The data is still secure and transfer of tokens should also be strongly anon, but general browsing on the network may not be strongly anon unless you take extra steps -using a VPN for instance.

A good communications layer though should add extra hops or circuits.

I think strong anonymity with browsing is a trade-off with speed. Perhaps a “strong anonymity” switch could be activated for browsing also - to use a hop circuit - much like using tor or a VPN @dirvine ?


Msybe your correct, but it sounds here like ( to me anyway )

A direct tunnel completely bypassing any routing.

Which i feel is a great deal less security and anonymity.

At that point why not just use email or sms and encrypt it?

As for vpn, most that say they dont log do, i have little faith in them.
Or their security / keys are compromised.


I didn’t see anything about this? What did I miss?

1 Like

I don’t recall where it is, you might have to do some searching. I think the original plan was for users to have a hop between nodes to obfuscate their IP address when requesting data (someone correct me if I’m wrong).

But because this really slows things down (and maybe other reasons?), that hop wasn’t included in current code. So when you request data that request can be tied to your IP address (unless you are using a VPN of some flavor).

Again, happy to be corrected, but that’s my understanding at the moment.

EDIT: also not sure if this affects the upload of public data? Maybe?


Yeah, I think the removal of proxy nodes and all the extra hops were resource intensive or too many messages and latency etc.

It would be cool if proxy nodes were allowed to be compatible or an option so there was a more strictly anon option.

Actually, I don’t think that too much has changed for clients but for Elders rather. They don’t have scrubbed IP’s anymore if I recall. They were routed through proxies before to scrub IP’s after first hop.

Admittedly it’s been awhile since this has been discussed so it’d be good for us all to get refreshed. I’ll search a bit but if anyone finds a gem, please share!

Edit: thread I’ve found so far. Dated 2019 though Anonymity and Proxy Nodes - #7 by dirvine


Personally I’m happy with this approach. As most people prefer faster speed over higher anonymity.

If that were simply the end of it though I would NOT be happy. However I think it’s easily possible for SN to have sub-networks (of people using add-ons/plugins) that could allow a whole range of additional functionality on the network.

Having a Tor-like subnetwork that one could simply activate with a click would then grant anonymity instantly to any who want it. Such tools (addons/pugins) may also be a way to earn tokens too.

There is a long thread around here on future SN plugin’s that could explain the general plugin concept in more detail.


At this time (assuming things have not changed again) the flow of chunks is

client <----> elder <-----> adult

Elders know the adults in every version of the flow.
client now knows the elder(s) of the section with the chunk - this changed from hopping between client and elders

There is still anonymity for the nodes (adults) that hold the data from the clients. Running a client will not give you the IP addresses of the adults holding the chunk