top | item 23050160

Safe Network: Secure P2P app system implemented in Rust

68 points| indeyets | 5 years ago |hub.safedev.org | reply

51 comments

order
[+] xiphias2|5 years ago|reply
It's the MaidSAFE scam again, full of buzzwords as usual. I remember being in a Bitcoin conference being bombarded by people payed by MaidSAFE to promote their altcoin. They were really aggressive: I told them I'm not interested and they were just pushing without hearing me.

As Bitcoin price rises near the halving, I expect more scams coming online again.

Here's a link to their coin's price chart just to make this comment more interesting:

https://coinmarketcap.com/currencies/maidsafecoin/

[+] happybeing|5 years ago|reply
Maidsafe don't market aggressively, it's not their way so I think you are mistaken. They did attend a could of bitcoin type conferences in person in the early days but I very much doubt they paid anyone to promote their coin.

IMO they are an outstanding team both technically and ethically. In fact it was the latter that got me interested in the project in 2014 and my impression then has been confirmed many times since.

[+] dirvine|5 years ago|reply
If people were harassing folk saying we paid them, then that was just false (harassment or not, we don't pay for coin promotions, in fact we don't pay for any promotions).

I wish folk could discuss the project and it's goals. Incentivisation is part, but a really small part of the project. As soon as I see a cryptocurrency comment I just lose faith and have barely any energy to engage. Folk need to forget money/coins and so on and focus first on the function and vision. All you get talking cryptocurrency is "it's a scam", "it's a fraud", "somebody told me X and it was false". Then let's look at some price chart and so on. It is really just a distraction and the arguments have an infinite lifetime. When I see projects on github/lab who mention cryptocurrency way up front I also lose faith. An incentive should not be the vision or function, it's an incentive it should never be a core goal or technology.

[+] SotRos25|5 years ago|reply
That's odd seeing as (somewhat to the chagrin of many SAFE Network community members) the MaidSafe team generally does not participate in conferences. Maybe you're confusing SAFE with something like Substratum or Skycoin or some such...

Also, MaidSafe consistently shares a dev update every week Perhaps now's a great opportunity for you to read up on the current state of development. Here's the most recent update: https://safenetforum.org/t/safe-network-dev-update-april-30-...

[+] oetyng|5 years ago|reply
Hm, doesn't sound like the MaidSafe I know. Started working at MaidSafe last year, after being a community member for some years. There's only been devs at the company since end of last year. But anyway, back in the days when there was marketing people at MaidSafe, if anything I only perceived them as very discrete and humble - almost excessively so - and that was not only compared to the crazy crypto world, but to any type of business. I guess others can make up their mind about that thing by themselves.
[+] ColinWright|5 years ago|reply
So. Many. Buzzwords.

Can someone do an ELI5 of what this is, what this does, what problems it solves, how a non-developer is affected by it, and what it lets a developer do that they couldn't do before?

I'm sure I'd be interested in this, but at the moment I can't find a safe, secure foothold in the torrent of buzzwords.

Thx.

[+] joshuef|5 years ago|reply
As one of the devs, i'd say:

It solves ownership of data, and removes the need for large data centers by securely, anonymously letting users share storage space.

I'd caveat that we're still in alpha, but things are coming together very nicely.

The Safe Network (will) incentive user storage and uptime through cryptocurrency, though non-blockchain based, so avoiding a lot of throughput pitfalls there. So it can also act as a storage backed currency in some fashion.

It allows users to truly own and manage the permissions of their data without relying on any third party. And it provides enough flexibility for this to let folk make applications as well as store files.

I hope that helps some? I'm trying to avoid buzzwords :) I know that site has any. It's also worth noting that the dev hub is a bit out of date (things are still moving pretty fast.) But the community (https://safenetforum.org/) is very friendly!

Let me know if I can get more specific, I'll be about for a little longer.

(Oh, also there's some other links in another top level post I made that may be helpful)

[+] joshuef|5 years ago|reply
One of the devs here.

For those interested in reading more, I'd recommend the more up to date https://safenetwork.tech for a brief overview. And [the Safe Network Primer](https://primer.safenetwork.org/) for a much more in-depth overview

The forum (https://safenetforum.org/) is a great community that will happily answer any questions.

There is a test network available of the current iteration. But it's worth noting this is all still alpha level, and not finalised.

You can see more detail on the "baby-fleming" test net here: https://safenetforum.org/t/baby-fleming-public-shared-sectio... .

And the CLI implementation for any other curious folk: https://github.com/maidsafe/safe-api/tree/master/safe-cli

[+] api|5 years ago|reply
I love the goals of this, but I have two hopefully constructive criticisms:

(1) The on-ramp involves downloading and installing a bunch of stuff. Very few people are going to do that. Is there any way I can try it in a browser or via a tiny download? I'm talking just looking around. WASM is a thing, so even a fat slow WASM app that let me test things out would be a good way for me to see what this stuff is really like.

(2) I feel like this and a lot of other similar projects are too monolithic. They feel less like the WWW and more like Project Xanadu. This one is actually not the most complex I've seen, but it's up there. Projects like this either never fully ship or have steep learning curves.

Lastly...

(3) Anything like this is going to need a killer app to drive initial adoption. Unfortunately a lot of the P2P killer apps in the past have been black or grey market related, which has tended to pigeon-hole them as that and harm more widespread adoption later. You should look for something this can do that other things do not currently do well. It doesn't need to be some massive niche like social media. It could be a small niche with a small group of users who would be enthusiastic about it. In fact sometimes that's better for initially bootstrapping something.

[+] jimcollinson|5 years ago|reply
I'm part of the team working on this thing, so I hope I can help out.

On (1): keep an eye out in the dev updates on the forum for the Safe Network App, this will fit the bill for what you are describing. Although remember, the network isn't complete yet, but we are on the trajectory for launch, so a fully featured version of the Safe Network App is on that same timeline.

On (3), I see what you are getting at, and this has been discussed a lot over the years. I'd make the distinction that there are killer _features_ of the network which will blow up, and enable all manner of amazing individual apps to be built on top.

There are a lot of features to highlight in that regard, as it's such a multifaceted project, but one I've aimed to highlight in this YouTube video is the 'Perpetual Web' which will have some pretty big implications:

https://www.youtube.com/watch?v=_GJZYS7ZJYs

And then there are some other really cool aspects that get me personally very excited, such as the serverless, infrastructure free nature of it (from a web dev pov), the possibilities for it to be a middle-man free ecommerce platform, and that's not to mention the private communications strand too.

[+] happybeing|5 years ago|reply
1. This is a fair point right now but it is only temporary. There's a SAFE Network App which will be the key to the network, providing a single point of contact, installing other things, seeing up a vault if you want to farm, create a wallet, updates etc. Most people will just download that and go from there.

2. Is also a reasonable point to make, but the nature of the goals here means it has to do a lot more than just sit on top of the existing protocols. It's a secure, decentralised, autonomous network/platform, which needs to be built from the ground up in order to solve the many problems we have with the existing web.

I'm not sure what you mean by monolithic. The ideas are new and can take a while to grasp but it's worth it.

3. The community have had long discussions about this so many will agree with you. But the best response I've heard to this point was from Tim Berners-Lee when he and David Irvine were at the Decentralised Web Summit in 2018. Someone said something similar to your point 3 to David and Tim jumped in and answered that it wasn't necessary by saying: and what was the killer app when I invented the web? Or something along those lines.

I'm not dismissing your point and many of us aren trying to come up with ideas for such killer apps.

Personally I suspect we already have some - take a look at the SAFE fundamentals for example. But it may well be something nobody anticipated. It's fun thinking them up though :-)

[+] the_duke|5 years ago|reply
So the landing page emphasizes a "network" aspect. Which really confused me, since I thought this was some VPN/Wireguard alternative.

The header on "Start Developing" is more informative: "The SAFE Network is a scalable, distributed application platform"

It seems to be something like IPFS or Dat, with app development tooling, monetization, SSO, and a "privacy-first network".

[+] joshuef|5 years ago|reply
It's a tough one to categorize. (I say that as a dev on the project)

It's similar to IPFS in terms of the goal of distributed file storage. But it incentivizes users to store in non-blockchain way, sidestepping a lot of the size and throughput issues there.

Connections are indeed anonymized. But as you can work with and update data in a distributed fashion, there's a lot of scope for applications. (We've previously built a simple twitter clone, using RDF data on an older testnet: https://github.com/maidsafe/safe-patter-js)

Things are still very much in development. Still Alpha stage. But There are things available for users to try!

The Safe Primer (maintained by community members) may be a good place to start:

https://primer.safenetwork.org/

The dev hub is sadly out of date with current things. The forum is very friendly and open to new folk and answering any questions: https://safenetforum.org

The main network website has more generalised info: https://safenetwork.tech/

Hope that's helpful!

[+] poletopole|5 years ago|reply
My hat is off to you sir, we need more projects like these. I'm working on an analogous protocol, called "iota" also implemented in Rust, however, it's not ready for primetime yet.

I have a few questions for the devs if you guys/gals don't mind answering them, and don't feel obliged to answer all of them:

1. What algorithms do you use to measure information entropy and consistency efficiently?

2. How does your protocol handle or adapt and recover from network partitions?

3. How do ensure that a user's data will not be shared or leaked to unauthorized 3rd parties once it leaves the network?

4. How are applications that use your protocol sandboxed?

5. Does your protocol use conflict-free replicated data types or does the protocol offer an alternative means of merging and reconciling data?

6. How does your protocol self-certify requests and authorize them?

7. Does your protocol employ ML in any facet to work?

8. Lastly, what provoked you to start on your protocol in the first place? Just out of curiosity.

#8 for me personally: I realized after a decade in the software industry that programming sucks because there is a lack of protocol diversity and no means of reasonably and quickly developing new ones, and the consequence is that our application code ends up very convoluted and hard to reason about and hard to maintain.

[+] dirvine|5 years ago|reply
Hope I can help.

1. Not 100% sure what you mean here. Our data goes via our self_encyption process. That chunks the data and stores it as immutable where the name == sha3 of content. This is self validatable data to us.

2. Small partitions are not a huge issue, but partitions that are long-lasting and over 60% or so are. This is not detailed yet, but all data is signed by a section chain. The section chain is the BLS aggregate of the section elders. All sections in the network have such a chain back to the genesis key/block. This allows data to be republished if necessary and really helps with partitions. This is allowed as data is signed by a valid network section key that is held in the section. However, transaction data is very different and we don't have a final conclusion there as theoretically one side would get consensus and the other does not. This seems to be a decent answer, but it can be much better. We are currently looking at some crdt types here, such as nonzero counters and so on, so that could allow transactions to happen on both partitions, but it's not trivial and we need to consider is partition permanent or even long enough that so many members change that quorum is lost. Again not the end of the world, but there is no final conclusion there just yet.

3. Our fundamental is all data is chunked and encrypted. So the data is encrypted by self-encryption (a take on convergent encryption), but perhaps easiest to think the user strongly encrypts data and only they have the key. Even public data is like this, but the passwords to decrypt are held by the user in a map that names each chunk with a created password (that comes from the data itself, not created by the network). For public data, chunks are still encrypted, but this data map is held in immutable state.

4. At the moment they are not sandboxed, this should not be the case on launch.

5. CRDT is what all data on the network should follow, this is being formalised more right now and we hope to see more containers in rust-crdt as well as a bft-crdt extension to this. It's an area we are currently looking to provide and it's coming along well.

6. Requests are signed by the client (we use BLS there to allow multisig). Network node events are signed by the p2p nodes (ED25519 there). Network agreed events (consensused) are BLS aggregate signed.

7. No, not at this time.

8. I worked in large scale network design from the 90's and hated novel/NT etc. as they we way to complex and for small companies horrendous. I created a project called eboxit, an all in1 linux intranet/internet box in 1996 but could not fund it. I realised during that process that these boxes could collaboratively back each other up if they used encryption etc. I then realised it was mental to do that and folks computers could collaborate to create a server like device. Then I realised it was not novell/NT etc. at fault, it was any server and any centralised and controlled by humans system that was at fault. Then 2002-2006 I worked on some form of a first step, little did I know how involved it would be or how difficult funding and building teams from the West coast of Scotland would be. However now OSS has really moved on and with a community it's easier to attract great Engineers. Not geniuses or the best in the world, but the comitted to the vision, just get it done Engineers. That agreed vision make them the best in the world for this specific project ;-)

8 We share that and more. I also believe that AI/neuroevolution/SGD etc. will make huge strides soon and do so with a bang. I am desperate to get time on that, but SAFE is needed first, either this project or another that frees and secures the worlds people to learn, create and communicate without any loss of privacy.

Oh yea, grit, determination and sacrifice are so important. Especially when we got into crypto (btc etc.) as this brought huge amounts of people, but also scammers and folk calling fraud, scam etc. That takes a personal toll when you have already given so much, but the project is important so the price has to be paid.

[+] goindeep|5 years ago|reply
SAFE is the way of the future. Especially with what is going on now....If you can't see it, too bad for you :)...but suggest you give it a read or watch, plenty of videos too if that is your thing. Interesting too in 2008 the last financial catastrophe we witnessed the birth of Bitcoin and Blockchain technology emerge. This time, 2020 we have the same yet there is also a weird Orwellian/Huxley type aspect to it with all the worlds governments pushing forward with all kinds of Draconian measures and here we are on the cusp of team Maidsafe about to hit the launch button on the SAFE Network.... ;)
[+] vertex-four|5 years ago|reply
In the README of their "consensus protocol":

> Upcoming features

> Foolproof handling of malice

[+] dirvine|5 years ago|reply
(project dev here) There are several levels of consensus. Parsec is a strict order (CP) algorithm. There are also AP (strongly eventually consistent) algorithms in play here. These are more concurrent consensus (think CRDT and causal order). Now if we back out a wee bit there are some places where strict order is an easy answer, but I personally feel these are all likely to become much more AP like in the future.

Then malice, it's a different module/behavior and requires we either prove the code (SGX etc. which currently is a bit too early) or we add malice detection across the board. This means nodes must not only be on-line or accepting messages, they must not create invalid messages etc. and this is not to difficult to deect. Then add to that the hard detection which is did the node process and forward/reply correctly? This is hard and requires a syncronicity assumption. I belive many projects focus on async everything meaning a node can reply at any time in the future and this is a bit tricky if you have memebrship changes (look at swim etc. for gossip). So for us we make the sync assumtion and have moved to allow a period (of events) that nodes must message (vote etc.) correctly. Then we apply the message malice detection. So malice detection is system wide and a very large area of decentralised networks at this level.

[+] iancoleman|5 years ago|reply
The technical side of this project is pretty interesting.

There's TOR-style anonymity using Reliable Message Delivery [0] (and to a lesser degree also Secure Message Delivery [1]). The whole routing aspect of this network is quite the fascinating rabbit hole.

Sybil attacks are addressed with Node Age [2] rather than proof of work, which should be very energy efficient but is maybe open to bribery or collusion (still an open question).

Sharding (to use the ethereum term) is implemented using Disjoint Sections [3] which splits the content-addressable data into sections so nodes only store part of the total data, making it much more efficient from a storage point of view than blockchains like bitcoin or ethereum1.

Unlike most cloud storage (eg storj, s3 et al) the network does not use erasure coding, instead relying only on redundancy. It'll be interesting to see how this plays out since there's a lot of existing research detailing the benefits of erasure coding [4].

The economics of the network are still very far from being finalised and will be challenging to get right. One of the key motives for the project is free-to-access (so anyone can browse) so that means storage nodes are not directly rewarded by clients for the necessary bandwidth to serve that data. It's not clear exactly how this is going to work but given the success of torrents (which are not directly rewarded for seeding) it seems that this particular motive should be possible to achieve.

This is just the technical aspects I think HN people will find interesting. The social impact of truly permanent data and truly private user-owned data will also be unique aspects of this network.

[0] https://github.com/maidsafe/rfcs/blob/bebf53550bb2171deadb76...

[1] https://github.com/maidsafe/rfcs/blob/bebf53550bb2171deadb76...

[2] https://github.com/maidsafe/rfcs/blob/bebf53550bb2171deadb76...

[3] https://github.com/maidsafe/rfcs/blob/bebf53550bb2171deadb76...

[4] https://maisonbisson.com/post/object-storage-prior-art-and-l...

[+] nkot2020|5 years ago|reply
From someone who has done their due diligence on this project, I have to inform you there is another project using the name Safecoin @ safecoin.org that is scammy and IS NOT related in any capacity to Maidsafe OR the SAFEnetwork project. That said, the SAFEnetwork project has impressed me a great deal with their technical progress towards making an autonomous self healing network that is centered around security, privacy, data ownership/control and usability. Obviously something we can all agree is (possibly over) ambitious and mouth watering fodder to those of us understanding in which ways the large tech monopolies silo and steal user data, track us, off our backs for their gain. The projects proposal almost seems like a bait and switch no? Maybe too good to be true? Maidsafe has been at it for over a decade, it has to be a scam. Just riding off the back of Bitcoin! No. The idea has been around since 2006 before bitcoin and though even up until mid 2019 the way in which this vision would be achieved had been R&D’d for the umteenth time, that stage is over and the engineering has been nothing short of brilliant.

There are at home tests that can be run through the command line of the first iterations of a working network that prove this technology. Check out the [baby Fleming release](https://safenetforum.org/t/safe-network-dev-update-march-26-...)

Or for the less technical crowd you can get your hands dirty with either a network gateway tool called the SAFEnetwork App, the desktop or mobile SAFE Browsers, using Maidsafe’s shared section of the third iteration of baby Fleming. Check out the latest downloads [here](https://safenetforum.org/t/download-safes-latest-versions/30...) and the mobile browser can be found [here](https://github.com/maidsafe/safe-mobile-browser). Once you are connected visit safe://sites to see a few sites others have tinkered with and published or publish one yourself.

Some might think the amount of available content is a bit lack luster at first but there is a growing amount of app developers working to publish their apps to a live network.

When will the network be fully live? No one can fully answer that and that includes Maidsafe but the R&D is done. The fundamental technology and different working parts are proven and working together but now the focus is on optimizing performance, concurrency and guarantees, and some additional features (such as multi-sig, and later RDF/Linked Data). All the while a professional and intuitive user interface is being designed to converge with the end product that will allow for full access and control of your personal data and web publishing, data sharing abilities. This is one area that is under served in the “crypto” space and one area that Maidsafe is underestimated and will surprise many. The lead designer at Maidsafe has a few things up his sleeve and how the network is uniquely built enables a lot of functionality.

Don’t over look or underestimate this project. SAFEnetwork has a very bright future.

[+] ddrdrck_|5 years ago|reply
If safecoin.org is a scam, why aren't maidsafe and/or sagenetwork representatives trying to :

- shut down safecoin.org,

- if not possible : change the name of their own coin and/or project to make it clear it is not related in any way with safecoin.org

- in any case : advertise this issue more largely and more clearly ?