SAFE network upgrades

I am not an expert in zk-SNARK, but “largely no”; at some expense it will achieve more, but not enough.

Sticking to (the knight) and the two Kings, with zk-SNARK, the Red King can ask a question to the Blue King and

  1. the Blue King can answer the Red King without revealing information private to the Blue King, but needed for answering the question
  2. the Red King can be assured that the Blue King answered the right question.

So that might buy us something, but not what you are currently after: e.g. The Red King might ask “are you stealing the SAFE-login credentials of your users?”, but the Blue King can always hire an honest monk to answer the question (read an honest client) while still (unknown by the monk) steal the user credentials. Again, all the Blue King has to to is send the Red King the answer written by the monk.

The point is, it does not work. We can make many amends, but ultimately your question is answered by: the user (and the operating system) have the final responsibility on the client they run (i.e. whether the Blue King gets to cheat).

I want the knight to return himself and report his findings. I understand that systems can lie to each other, but can they alter the knight’s mind without him knowing it? Does he not have defenses that thwart such cognitive alterations. Can what has been gathered be altered after the fact?

Another way to go about this would be as @jreighley and I were discussing. Use a SHA checker of your choosing on your machine to calculate the client hash, then go to the official client SAFE site and feed it into the site. It scans it’s database of the many clients that have accumulated and tells you it’s peer review and popularity status. This I think works but involves too many steps. Which is why I would like to automate it. So my questions above still stand.

I think you have changed the topic. The problem wasn’t downloading and running the correct version. That is everyday procedure for any nearly any software package.

The question to which the answer is “no” is "If somebody chooses to run a different client (By accident or intentionally) can the network police that?? The answer is “it can watch for non-standard behavior with the network protocols, but the network cannot know that the version is non-standard with any useful certainty”

1 Like

Ok. Moving on. My original proposal for the federate, is it viable?

I think you misunderstood. It has always been about verifying the client. Not about it version. I don’t care about versions. I see how you might have gotten that impression though.

UPDATE AND APOLOGY: I now know what you meant. It was I who misunderstood. Please forgive my assumption. :v:

[should be moved, this is super off-topic :smile: ]

while on the topic of zk-SNARK, zero-knowledge proofs are massively interesting for applications on the network!, but it works the other way around.

Let’s make the example for medical research. Say you are a doctor and you want to run a medical analysis on the medical records of hundreds of thousands of patients. What the network allows you to do is

  1. Imagine patients can agree to store part of their medical data anonymised (what links to their identity is encrypted) on the network with approval for (certain medical research, license on your data to be set)
  2. any medical researcher (that can proof to the network to be conducting under given license) can ask a zero-knowledge proof to the network. The pieces of the whole database are stored in a group, so for that piece of data, that group can perform a zero-knowledge proof on the medical data.
  3. group consensus on that zero-proof knowledge from the group ensures the researcher that the source is not lying. (The network also enforces the rights of the patient to only use their data as stated in the license - part of the application/proof).
  4. the researcher can get an answer back from the network: a) knowing it is the right answer given the data, because of the network consensus, b) never having known the patient records (greatly enabling more researchers to access more data)
3 Likes

This is where I am not aware of any technical solution that comes close. sorry. it’s not a bad thought, but I fall short

This is a viable path, but it falls under the “many ways the community can help facilitate the user to trust the client”, but in the end, it remains the responsibility of the user and operating system.

Yep yep I agree. Well thank you Ben. My mind is at ease in knowing that the answers aren’t all here. So I’ll stop the bombardment. Who knows, one day someone will figure out a way to do the automated version securely. I’ll keep searching however futile it might seem. It could be a solution to a fundamental problem. A game changer in it’s own right.

1 Like

I believe this thread has served its purpose. We are 223 posts in and I have spent far more hours following up on this, albeit interesting topic, than I can afford given some responsibility to actually code and help bring the first release out to all you guys.

If anyone wants to continue this topic, I strongly suggest you take the effort to write a new thesis as a new thread. I am “officially” renouncing (social) obligation to follow up on this thread that I started and I won’t :smile:

If the mods feel it is appropriate to close it, be my guest, or leave it open if current policy applies.

Thanks to many ideas shared and discussed; we will revisit this topic many more times, I have no doubt.

Cheers Ben

7 Likes

it sounds like you would be a very good person to update SAFE’s FAQ - Attacks
the SAFEnetwork.wiki

I have started posting text to the wiki channel on slack. It feels good to be contributing.

1 Like

Could I just poke my nose in here just briefly. I’ve not read whole thread and got to go to work, but to try and clarify the nub of the dispute between Tonda and others.
I think there is confusion around this bit:
The actual SAFE code is “checkable” as to what it does -github etc
The only issues seem to be whether you are downloading the actual SAFE client, or whether Maidsafe have created an alternative dark side SAFE.
Please ignore if irrelevant. and I’m mistaken :smiley:

You say you believe it can be done, with little detail as to the mechanism, and no explanation if how to overcome some obvious problems.

I immediately recognise problems with this approach and explain one, giving you the opportunity to look more deeply at the obvious flaws in the idea. I also suggested a way this might be overcome by the way.

I can see more such problems, even if the the initial malware objection could be overcome using zkSNARK. But you have said you don’t want this kind of constructive critique. That’s not creative or constructive IMO.

Moderator comment

The above was my personal response, the following is as moderator. I don’t have time to clean up this thread today, so I am just going to comment.

As a result of @Tonda’s objection to the nature of the responses from several members, and the resulting back and forth, we have yet another thread bulging with off topic asides, and calls for the mods to impose order and filter the chaff.

We mods are volunteers who put a lot of time into this, mostly unseen, and can’t police or guide or tidy up, every discussion. Not least because moderator intervention often creates just as much flack and push back from a spirited community suspicious of authority and commited to freedom of speech. Damned if we do and damned if we don’t.

So it is also up to the community to learn from this.

@Tonda, you are new here but you are already telling longstanding members how to discuss things. It’s a credit to the community that the responses have remained measured, civil and largely objective, because I think you need to learn more about this community and find a way of expressing your wants without inviting people of topic, or telling people what is and is not OK here.

Let’s all do better

All of us can do better in this respect, definitely me included, so I’m not preaching. (Actually I have learned from the recent cafuffle and discussions with many concerned, and have mods and members to thank for finding ways forward here.)

If you value healthy on topic discussion, or wish to pursue new lines of thought, don’t deviate from the OP on the thread of the OP. And don’t invite others to do so either by including niggles about others, personal slights, condescension etc. (No accusations there, just examples of things that can trigger people to go off topic).

Instead: stay with the OP, or reply by PM or with a new topic.

If you wish to respond to this moderation, please reply to a new topic :smile: in the meta category and we can contribute to building the best community forum from everyone’s ideas, experience and good will.

6 Likes

I’ll poke my nose too here. @Tonga, I’m completely against checking the client with a hash or anything else. It’s an intrusion to my private life, like the Blue Knight always coming and look over me every time I want to do something. The source is open and many people can tweak the code depending on the environment they run it there. Example, like me, I have 32 GB of ram and can tweak the code to increase let say chunk cache (my assumption). And like someone else said , the code can be rewritten completely to another language and I suspect it will happen. Another thing people can fork the code and make modification about having more detail about the network activity (the one I would like) to better monitor what happen.

For the network upgrade, for me, it was already said, is having version with backward compatibility. Version 2 will act has 1 if connected with version 1 and 2 if both are version 2. I give my vote on this. People will mostly upgrade all their client when they found a new version here, on the SAFE Network site or MaidSafe anyway. Or even on the official SAFE Network site on the SAFE Network itself. Upgrading should not really be a problem in that way.

Having a kind of AI, I’m against that. It’s sound very complicated and can make the system hard to maintain.

I leave my nose now.

2 Likes

Previously acknowledged and appreciated.

On the contrary, I prefer the criticisms that clearly enumerate all the possible attack vectors while at the same wracking the mind to discover solutions if any. I suggested several mechanisms that I thought were workable. I attempted to brainstorm. My only frustrations were that some would pop in without first reading the previous bulk material, then making claims about what I wrote that were untrue or reflective of their failure to read what I had already clearly stated. If one felt as though there was only one answer to the problem, I would have preferred that the first iteration had been the only one. Instead reiterations kept appearing. You @happybeing then come along and prove there are other ways of looking at it. That was my point all long. :smile: Thank you for being who you are.

I will in the future try much harder to keep things under control on my end, even going so far as to avoid joining discussions if I can predict my future frustrations. I am new here and will try to conform (within reason) to the operational flow of this community. Dissent is sometimes necessary though. :wink:

2 Likes

I agree. I was just hoping someone would chime in with a solution while I drove myself nuts trying to do the same. I want the best of all worlds if I could have it. Although I already knew how unlikely that was.

Then you have projects like Maidsafe that come along and show you that however unlikely something may seem, there is possibly a solution. This project has inspired me in various ways. Now I’m not so easily deterred from trying to solve technological problems even if just at the conceptual level:smile:

2 Likes

I’ll definitely try. Lead the way! :grinning:

1 Like

Dissent is always ok, we as a community just need to be mindful of the effect of our off-topic comments and invitations have on the quality of threads. Mixing meta comment with debate, or letting our feelings stray into personal remarks, always clouds the discussion though, and frequently ruins it. We all do it [my hand is up], and we have a spendid team of mods and experienced members to chip in and remind us when we mess up. :smile: Hopefully we’ll learn from this and other recent dogs breakfasts we’ve made of otherwise interesting discussions. I’d certainly like to see the issues that sprung out of this thread revisited, in more than one OP so hopefully someone with more time for that than I will have an itch and scratch it.

Moderators or Self Moderation?

As moderators we can encourage people to use “Reply in linked topic” much more, or to PM when that’s even better. I think we’ve not really tried that so everyone have a go now and see how it pans out!

Mods do also clean up threads by gathering together a bunch of replies and spinning them off new topics from time to time but this is time consuming, or just impractical because they are too mixed up with the OP to separate in a meaningful way. So it is still best if the community can help out as above - new folk then pick it up as they see others already doing so - so less work for mods, and less people feeling we’re police in a place that’s supposed to be about freeeeeeeeedom! :smile:

In the mean time @Tonda, welcome to this amazing community. We’re all learning, all of us, all the time, me especially, and that really is one of the most important contributions any of us can make here. Willingness to learn.

3 Likes

Never be deterred but also some of this stuff is really hard. I am working on a small if statement relating to xor and linear addressing just now in routing, been all last week, all weekend and today. Sometimes it’s just that the answers are so deep, initially complex then as we know more they become simpler and then an answer. It’s very rare fast thinking and blasting out fast ideas works, not that it won’t ever, but we have considered a huge amount of things over time and not all easy to explain.

Epiphanies do happen, just not to often perhaps, no matter how much I would love it to be the case. In my current quest I won’t even mention it to others until it’s less of a haze and more a concrete mechanism. By then I hope it’s simple code, but may mask a pretty complex feature of mixing non linear and linear sorting of addresses in a message route.

Not that it won’t happen, but fast and quick shouts seldom find the utopia we all want, so perhaps a wee bit of deeper digging would help. Unfortunately some of the best suited to answer are flat out, but the community themselves are incredibly able to bounce things about, generally with a lot of caution.

Hope that helps, not a critique, just an observation of my own experiences.

10 Likes

BenMS, the reason I linked to the Wikipedia entry was to indicate that there is EMPIRICAL evidence to suggest that BDFL regimes in open source projects have produced surprisingly positive outcomes. I surprising outcomes should always be accorded serious attention. Given the “communitarian” bias of open source it is surprising that a large proportion of successful projects have been BDFL run. The most important letter in BDFL is, of course, “B” for benevolent. I would also point out that the notion of “dictator” is often taken in modern times to be synonymous with “tyrant”. This is historically inaccurate. See, for instance:

The fact that David would be a RELUCTANT dictator is perhaps an essential qualification for the job :wink:

While I’m sure that most of us here are dedicated neophiles, I think it is important to remember that no matter how modern and innovative technology is, human nature has not changed since ancient times, and the insights of such intellects as Plato still apply.

Given the modern bias towards democratic systems, what concerns me is the tendency towards Ochlocracy,
whether this is applied via states or via software protocols.

It should also be borne on mind that the ancient dictatorships of Rome were not totalitarian. They depended on the support and assent of a numerous aristocratic senatorial class. In the modern case this would correspond to the class of Github committers perhaps :smile:

1 Like