You are reading content from Scuttlebutt
@Lenny Abramov %ByFx9DHSBgj++XuQaW9NKy44A6UxMCBI3e1vO1uw+UI=.sha256

Idea: Completely Subjective Groups

Yes, this is yet another idea for groups! I think it could be implemented in Scuttlebutt, but that's not my main concern now. I'm more interested in your opinion about the general concept.

TL;DR: You have several identities, one for each group. Groups have no objective existence at all: members may disagree on the group's name, its description, and even who's a member and who's not. That's why I call them completely subjective groups.

I think this idea is well aligned with social reality and with Scuttlebutt's principles. The mechanism is sufficiently basic and flexible to build a whole social network on. Ideally all communication would happen through groups (or "contexts", as I call them below).

Below I describe the proposal in more detail. The terms in bold are important - if you don't agree with the words I chose or their definitions please let me know.

Premises

I hold the following to be true:

  • Place is a bad metaphor for a group. Places (even virtual ones!) are scarce resources: they can be vandalized, taken over, squatted.
  • There's no such thing as a person's social network. Every person is part of several social networks.
  • The social identity depends on the context.
  • Ordinary social groups have no formal governance.

Primary Concepts

  • Identity is what makes you recognizable in a given context: your true name, nickname, avatar, profile description, what you say, how you behave, etc. It's both a set of markers and an agent. (Indicated by Latin letters: a, b...).
  • Context is the collection of the identities who are recognized by a given identity a. It may have attributes like a name, description, etc. (Indicated by Greek letters: α, β...).
  • Recognition is the public acknowledgement by an identity a that another identity b exists in a given context α. (Indicated by an arrow: a → b).

Comments

  • A context, being a collection of identities, includes everything about them, including their posts.
  • For each context there's one and only one identity and vice versa. So we can indicate context α with α(a) to make explicit which identity is associated with the context.
  • The name of the context and its description are defined by the identity. The UI would provide convenient means to copy this information from other identities, so that agreement would be the default.
  • The agent is the identity, not the person. You never interact with people, you interact with identities.
  • Self-recognition is implied. A context may have only one identity (like a blog).
  • The context of you and I privately talking to each other also deserves its own identities. In the description of the context we could write how we met.
  • No need for a specific blocking mechanism, since identities effectively don't exist for you until you recognize them.

Secondary Concepts

  • Listening is implied by recognition: if you recognize someone you listen to everything they say.
  • Mutual recognition is the relationship between two identities that recognize each other. (Indicated by a double arrow: a ↔ b).
  • Group is the collection of identities in mutual recognition with a given identity a.
  • Person is the set of identities that state they belong to the same body. (Indicated by uppercase letters: A, B... Belonging: a ∈ A).

Comments

  • Since mutual recognition is an intransitive relation, groups don't form an equivalence class, i.e. they're not objective. They depend on the identity, they're subjective.
  • Since groups have no objective identity of themselves they can easily split or merge.
  • Identities can disclose they belong to the same person (sameAs).
  • The separation of contexts and sameAs allow for a gradation of privacy.

Tertiary Concepts

  • Private group is a group in which messages are encrypted.
  • Confiding is sending an encrypted message to someone. It is implied by recognition in private groups.
  • Tight group is a group in which mutual recognition is transitive.
  • Subcontext: β(b) is a subcontext of α(a) iff the corresponding identities a and b belong to the same person, and a recognizes b but not vice versa.

Comments

  • In private groups recognition implies not only listening but also confiding. You may confide something to someone, but they may not be listening. They could start to retroactively listen to you at a later time, though.
  • Tight groups form an equivalence class, so they're objective.
  • With the appropriate UI, visualizing contexts and subcontexts would be convenient. One would be able to create a subcontext without realizing that a new identity is being created.

Quaternary Concepts

  • Observing is listening without confiding within a private group.
  • Organization is a (likely tight) group with formal governance.

Comments

  • Observing is necessary in private groups that want to talk about an identity without talking to them. For instance we could make a group to privately discuss about a publication like The Butt Summaries.

  • I find the idea of fractal groups/identities exciting and even necessary, but I think they should be built on top of a more basic, informal kind of groups. Because of their necessary formal governance system, they should be called organizations instead of groups. An organization could give itself a traditional structure, with some leaders/representatives. The representatives would be part of a public subgroup of the main private organization, which would serve as a public channel for announcements. Or the representative could be a bot, which would only announce the outcomes of votes, etc. Then the bot could be a member of a higher level group, and so on.

User has not chosen to be hosted publicly
@Lenny Abramov %CKiThGY/ndWMK7RtMTpJpFKNGBEzjet1cLW+zr1231Q=.sha256

Hey @MistyWrites, it's fine you didn't read the whole post, the most important stuff is at the top. Have you gotten to the part that says you can link identities together, by stating they belong to the same person? That means you could use this system by setting the same name and profile picture in all your identities, and link them all together, so that when you interact with the same people in different contexts they always know it's you.

The main focus of this proposal is the context. Contexts are clearly separate, but they can easily overlap by containing the same people. A colleague can also be a friend, after all. But when you're with your friends you usually refrain from talking about work - or #category-theory. I believe that comes natural and requires zero cognitive effort. It has nothing to do with acting or being a spy. That's what my proposal is about.

I use the word identity in a rather technical sense, although I believe it's quite close to a sound definition of social identity. When you are in different contexts you have slightly different identities, because you dress different, you talk different and about different things, etc. That's normal and a very well known fact about social life. My proposal is to acknowledge this fact and allow to tweak your profile according to the context. Your work identity could state your full name and job description, for instance. That's about it.

So it's true this concept is somewhat "forced and separated", but I believe forcing a single context per person is much worse. I also agree the Scuttleverse is an awesome community, but that's what it is - a community - and that's not the way it's supposed to be. It's currently more a Scuttleville than a Scuttleverse. As far as I can tell many of us sorely need groups.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Lenny Abramov %/UAWaYR6wletz8Wwf6lGf0RB9KhZkhobdLN8u/+MZ+U=.sha256

@iago

naming: maybe "identity" should steer towards "persona".

You're right, "persona" might be easier to understand, but keep in mind that the core of the "persona" is still the key pair. I also think the word "identity" should be demystified: we should stop using it in the metaphysical sense ("who you really are") and begin to use it in the social sense ("what makes you recognizable") when talking about social networks.

naming: "groups" vs "places" -- can't both be vandalized/etc?

Anything with an objective identity can be vandalized or taken over. Imagine an online community with democratic governance, which gets taken over by a group of externals that manage to gain the majority but don't share the original values of the community. The founding members will have to move to a different "place". That's not necessary in my concept because groups can simply split, and there won't be an "original" and a "new" group. There's nothing identifying the group beyond its members.

how likely is it that this could this be applied to both this tech (effort) and community (pioneers)?

You mean to Scuttlebutt? I have no idea...

User has not chosen to be hosted publicly
@Lenny Abramov %woNMfPNAXQsdYVaIzdYpYL6t9gOJFnxIbC876UDAWUo=.sha256

@Greg K Nicholson Sure! There are several possible use cases, but let me try with a basic example.

Let's say we're colleagues, and we talk about our job on Scuttlebutt, in the context named "Work". I have my work identity, and so do you. I also have another identity, linked to the context I named "Dreams", in which I recount what I dream at night. One day you discover my "Dreams" identity through my "Work" profile, you have a look at some posts, and you decide you want to be notified whenever I post something. So you click the "Join" button next to my "Dreams" context. In the background a new identity is created for you, prefilled with your default data, and associated with a context that is a copy of my "Dreams" context, with the same name and description. You immediately update your context description, stating that you're "Just reading". (This is what I called above "recognition"). So I receive a notification that you joined the "Dreams" context, I read your context description saying you're "Just reading", and I understand you're not going to post anything, so I don't "recognize" you back. For a while you just read my posts but never post anything yourself. You're a passive follower.

Later you start to tell your dreams, and you update you context description to "I'll tell you all my dreams". I get a notification of your context updated, and I decide I want to know about your dreams, so I "Join" you back. We now "mutually recognize" each other. We have formed a group.

After a while many people join our "Dreams" group. People start to interpret each other dreams. At some point everything becomes about dream interpretation and psychoanalysis. There are big fights between the Freudians and the Jungians. The group finally breaks up, with the Jungians excluding all the Freudians (i.e. they don't "recognize" them anymore). But the Freudians keep on receiving the Jungians' posts (they still "recognize" them) because the have fun mocking them. You don't care about all that crap and you just exclude everybody, except me and few others that just tell their dreams. I keep everybody in my context because I struggle to fall asleep and reading of psychoanalysis makes me sleepy. You and I still call our group "Dreams", while most Freudians call theirs "Interpretation of Dreams", and most Jungians call theirs "Archetypes". There are now three groups. Which one is the original one? Only we know.

One day you discover that a friend of yours is member of a group similar to ours. You add all the members to your group, and so do I. They all return our "recognition", so the two groups fully merge.

This example shows several features of the Completely Subjective Groups (CSG):

  • the UI can hide most of the stuff related to identities, focusing more on contexts/groups
  • when a group gets invaded by strangers, the original members can just ignore them
  • nobody can take over a group
  • a group can split, without any one party prevailing over the others
  • two groups can join on equal terms
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Dominic %uvju2kotLNtGUPJ9+FbDDIuY/PkhNGEYUNH6oljhbQA=.sha256

@lenny abramov dropping some notes here:

group: is the collection of identities in mutual recognition with a given identity a

hang on, when I first read this, I thought it was a clique (graph theory: a set of vertices that are fully connected to every item in the set) but I realize reading this again, it's a<->b, a<->c. the group is a,b,c so the context for this group is context(a) (I'm not gonna use greek letters) but if there was also an edge b<->c then context(a) == context(b) == context(c).

Is there a way to (securely?) refer to a group? would you just point to the/a context's root identity?

one thing I may be confused about: do I use a different key for each group I am a member of? if so, if I am in two or more groups with the same human, how can I keep track of that?

Also, I didn't understand why groups do or do not form an equivalence class?

I am :100: behind all of your premises, btw.

@Lenny Abramov %3sHehSmQUKHwY5l3Jq2D5eoUy1q4n0DSJyqQku6FMhc=.sha256

@martin ➬
I haven't thought much about the challenges of turning this idea into concrete UI/UX. I guess it's doable, but let me know if you have specific objections!

I do wonder if we couldn't use #Keyp for the idea you've drawn out for us…

I understand the general idea of Keyp, but how would that work together with Scuttlebutt? It seems easier to just use Scuttlebutt identities, and optionally associate them to Keyp identities.

@Alanna
Yes, it would be possible to have private (encrypted) groups. So CSG would serve both purposes, of private spaces and G+ circles or FB lists. However contexts would be quite different from circles / lists (as I understand them - I'm not on G+ or FB), because contexts have a name and a description that are negotiated among users, so the focus is more on "what we talk about" than "who can see my private stuff". More like ordinary social contexts, I believe.

@Dominic
You got that right, a group is not a clique. For "clique" I used the expression "tight group", but clique is much nicer, let's use that instead.

(I'm not gonna use greek letters)

:flushed: sorry, you're right... Let's use uppercase letters for contexts: A(a), B(b)...

Is there a way to (securely?) refer to a group? would you just point to the/a context's root identity?

I'm afraid there's no other way than pointing to one or more identities. You could point to a few identities who belong to a clique. Or you could identify a group by the pair identity-timestamp, so that a user could retrieve the history of that identity and reconstruct what the group was like in that moment.

do I use a different key for each group I am a member of? if so, if I am in two or more groups with the same human, how can I keep track of that?

Yes, one key per group. If you and that human link your identities with sameAs you'll be able to recognize each other (how exactly it's a matter of UX).

Also, I didn't understand why groups do or do not form an equivalence class?

Right, that wasn't rigorous. I should have said that the relation of mutual recognition is not an equivalence relation, and so groups can't correspond to equivalence classes defined by mutual recognition. That's why a group must be tied to a specific identity, that is to say it can't be objective. On the other hand cliques correspond to equivalence classes. The caveat with cliques is that an identity can belong to several cliques (e.g. in your example a belongs to the clique {a, b} and {a, c}).

It's a little counter-intuitive that groups are not cliques, but I still think "group" is the right word. It sometimes happens that two of my friends stop talking to each other, but that has little effect to way I treat them. I talk to them as if they were going to talk to each other anyways, also because that's probably going to happen in the future. So in a way I consider them part of the same group even though they think otherwise.

@Lenny Abramov %3mpDBbCUd8nscuhAiAZSocQmrfTzuWHonXSxKQe1Qnc=.sha256

On the other hand cliques correspond to equivalence classes. The caveat with cliques is that an identity can belong to several cliques

This doesn't make any sense. Cliques are not equivalence classes, but they are objective.

@mmckegg %GwblU6DvtshVIzstT4zsxtykT5snlnQI5QL0lya9r+Y=.sha256

@Lenny Abramov I am (on behalf of the #patchwork client) in full support of this!

Excellent thread :grinning:

@andrestaltz %u1nx+tw7+er2Zr8MZt+qG0QgYuWtnCf6Y352oydv6n4=.sha256

@Lenny Abramov I partially understood your ideas, I guess I saw mostly definitions but not how those definitions are put in practice. These ideas are related a lot to "personas" (a way I have called it before), "scoped follows" (a way Matt has called it before), and isolated scuttlebutt regions (see these notes from the p2p github call we did).

I'm warming up to the idea of having a main persona (definition: a persona is your keypair and your ssb log) and many sub personas, one for each subjective group. I even considered that encryption is not necessary for these groups, as long as the privacy boundary is simply refusal to replicate. With refusal to replicate, you achieve privacy.

For instance, let's say I have my cooking persona and my snowboarding persona. My main persona declares a "sub persona" msg (this is basically like sameAs messages, but just indicate that one persona is owned by another, not that they are equivalent in the same subjective group) for each cooking and snowboarding groups: AndreC and AndreS. Also on AndreC and AndreS I declare a "owner persona" msg pointing to my main persona. As real life analogies, you can consider the main persona as the person's passport, and their sub personas as their identity in a subjective group.

Now, AndreC follows some people, and those people follow AndreC. Let's suppose you're also in the cooking group. So LennyC is friends with AndreC, and you can discover that AndreC is actually andrestaltz (the main persona) but nothing beyond that. However, it so happens to be you also have the LennyS persona in the snowboarding subjective group, and after 3 months you discovered AndreS and followed him. Now you can conclude that AndreS was actually AndreC because you can match their main persona messages. But if you were not in the snowboarding group, you could not have accessed it, because a subjective group is just a subjective interdependence of personas. Even if you scanned the main persona, you could discover the public key of persona "AndreS", but that tells you nothing about the group's topic and who else is there. In other words, you don't have AndreS's feed neither an invite code to replicate with them. This in my opinion is sufficient for group privacy.

@Lenny Abramov %wBhJZZ+2nM/DrJobQce81kE8o7+RRqIAam7yXMGftBk=.sha256

@andrestaltz

I guess I saw mostly definitions but not how those definitions are put in practice

Yeah, sorry... I was planning to write a blog post about identity in social networks, and then another one about this proposal, with examples and such. But I know it would have taken me months. So here I am, with an idea I meditate a lot, but I'm only able describe piece by piece. My apologies.

Anyways, it's great ya'll already had very similar ideas! It's a real challenge for me to translate your concept in terms of mine and vice versa, but I'm sure at the end we'll come to a kick-ass synthesis :smiley:

a persona is your keypair and your ssb log

That's precisely what I call "identity". If there's general consensus around the word "persona" it's fine for me to use it. But that means "identity" will become a purely metaphysical concept with no socio-technical applicability at all, so I'll ban it from my vocabulary - and so should you, I believe.

From what I understand the main way our concepts differ is in the way privacy is achieved. There are three parameters that control privacy:

Isolation of personas. For you the only way you can discover that two personas belong to the same person is to independently replicate their logs, which happens when you become a member of the two groups. For me personas can actively advertise their other alter personas. Of course they can do so selectively, so for instance if I'm a professional cook I'll link my work persona LennyW with my LennyC, but not with LennyS because if my boss knew I can break a leg they would fire me.

Replication of logs. For you following = replicating. For me there can be a mismatch between the personas you follow and those you replicate. After all we already replicate private messages that are not directed to us, because we just help our peers. I would advertise to my peers all the alter personas of a persona I follow, and I would replicate them if some of my peers follow them, by I wouldn't show them in my UI.

Encryption. In your proposal encryption is almost never necessary, because personas are strongly isolated and replication is very selective. In my proposal encryption is necessary if you want to hide sensitive information, while if you just want to avoid spamming your colleagues with your holiday pictures the weak separation among your personas should be sufficient.

So these three parameters must vary together. Both of our proposals seem consistent to me, but yours makes it harder to connect the various sides of someone's sociality. It seems more spy stuff than regular social life. For instance when I discover that AndreC and AndreS are the same person, is it okay for me to mention you like cooking in the snowboarding group? Maybe snowboarders think cooking is uncool and you'll hate me if I mention you like cooking. How can I know? If instead you explicitly link your snowboarding and cooking identity I'll know it's fine to mention it. I understand this is very much debatable, but that's my perception.

you can consider the main persona as the person's passport, and their sub personas as their identity in a subjective group.

I don't see how a main persona would be useful. For instance it makes it impossible to have two completely isolated sets of personas. What are the positive sides?

User has not chosen to be hosted publicly
@Lenny Abramov %9ypRTzMpj8SdKLKuxPo8XSqmbfXpZYJ5dSHzBhgt4UY=.sha256

I am somewhat proposing that #Keyp could become a UX/UI for this!
@martin ➬

Sounds interesting! I think that in something like Patchwork it would be better to de-emphazise identities and focus more on contexts. So users would create "contexts" and "subcontexts" (these words seem fine for a UI) and modify the "profiles" associated with them. The words "identity" or "persona" need not appear in the UI, and identities wouldn't exist independently of contexts. If the social UI hides identities, Keyp can be a complementary interface to deal with identities directly.

@Lenny Abramov %+SYoMSGjnMUGLvDVasZywuxkq6e4B637fQ9rFKonbrI=.sha256

The rando problem

Let's say there's a "Feminism" context. Most members set as the context's description something along the lines of:

Feminism
We are a group of feminist activists and scholars. Our brand of feminism is queer and intersectional. We discuss about our lived experiences, activism, and theoretical issues.
Please respect the following code of conduct:
[...]
Please direct you membership request to @substack or @marina. Your profile description must include a section named "Why I'm a member of the 'Feminism' group".
This group is not meant to challenge feminism. If you have skeptical questions, please refer to our FAQ. If you want to disprove feminism please go ahead and create your own group.

Presented with such a description, an external who wants to be accepted in the group has no other chance than do as the group description instructs. If new members pretend to agree with all the terms but then violate them with their posts, they will be expelled on the grounds of their own broken commitment. If their stated reason to join the group is deemed unproductive by the administrators they simply won't be accepted. As a result the stable members of the group will be sufficiently like-minded.

This is an example of a group with rather strict rules. But even with no explicit rules, joining a context always implies a commitment. That's an implementation of the basic social mechanism of mutual recognition: I acknowledge the context in which we find ourselves, I recognize you and your motives, and you recognize me and my motives. This is the prerequisite for healthy interaction.

Environments that don't require mutual recognition for interaction breed toxic behavior. For instance driving in a crowded city, or Twitter.

I believe my proposal would solve the rando problem in an intuitive, organic way. There would be no need for fancy AI filters or other technical tricks.

@Dominic %EXKjr8dU9IXBKXUcZ0Fy8j5o/vW+ZD3yRWAi5YAq7u4=.sha256

@lenny abramov I'm still confused about the "equivalence group" stuff. I looked up equivalence class and wikipedia said "these triangles are equivalent, because they have the same angles, but have been scaled, rotated, and flipped" that makes sense, but I don't understand what is equivalent or not equivalent about these groups.

User has not chosen to be hosted publicly
@Lenny Abramov %mECMrXS3FkhhJw/iAxWXyJc4f432xGo5AWb1TFqhO1o=.sha256

@Dominic
I've put myself in a hole, I'm afraid I'm gonna dig deeper... :laughing:

Let's consider the relation "being born in the same town". It is:

  • reflexive: you're born in the same town as yourself;
  • symmetric: if A is born in the same town as B, B is born in the same town as A;
  • transitive: if A is born in the same town as B who's born in the same town as C, then A is born in the same town as C.

Hence it's an equivalence relation and so it partitions the set of people into equivalence classes. Equivalence classes have some nice properties:

  • any member identifies the whole class;
  • an individual belongs to one and only one class.

This means any person points to something objective, in this case a native town.

Now take the relation of "being in mutual recognition". It's reflexive, symmetric, but not transitive, because if A recognize B, and B recognizes C, that doesn't mean A recognizes C. This means that:

  • You can't take any member of a group and reconstruct the whole group by following the mutual recognition relation, because depending of the specific identity you start with you'll get different groups. So groups are not objective.
  • The sets of identities in which mutual recognition happens to be transitive (clicques) don't partition the universe of identities into exclusive sets. So an identity may belong to several clicques.

This is all just a fancy way to say that an identity can't be objectively assigned to exactly one group or clique. You can't think of a group as a room, because a given identity may or may not be in the room depending on who you ask. With cliques the problem is that a person may be in several rooms at the same time.

@moid

Yes, it's all correct.

For me a context is an environment in which some things are appropriate and some are not, according to a given identity a, in the terms indicated by the context attributes (name and description and perhaps a picture).

I've briefly looked up situation semantics but couldn't find a definition of context. Is it defined explicitly? Do you think it's related to the way we mean it here? It would be nice to give some theoretical depths to this concepts.

User has not chosen to be hosted publicly
@Lenny Abramov %2wSist/q1/K518ymFkDUJe3foUZM+1AOPcieSsw2FaI=.sha256

Wow, @moid, that's super interesting! You're opening a whole new world for me. I'll try to understand more, but on first sight it seems indeed closely related to what we're discussing here.

You mentioned governance, and that makes me wonder whether my example about the "Feminism" group was misleading. I don't think groups must have code of conducts or administrators, but that's definitely a possibility. In small groups consensus would be reached through informal discussion, and bigger groups would likely split up sooner or later. That's the way informal groups are supposed to work, I think.

User has not chosen to be hosted publicly
@Dominic %Fhg18uLyR/F5opgVp+uVVdmgvW0W73emxT6ln0khFcI=.sha256

@Lenny Abramov got it, thanks for explaining that!

@Lenny Abramov %GvrKUFT3DVDdP0CuQridblo8H298GWjTIczwuGExJBc=.sha256

Rectifications of clique, tight group, and subcontext

Dominic mentioned that a clique is a graph where each vertex is connected to every other node. I liked clique better than tight group because it has both a mathematical and a social meaning. But now I realize my definition of tight group is different from that of clique, so I would keep both concepts and update the definitions in this way:

Clique is a subset of a group in which each identity is in mutual recognition with all the others.

Tight group is a group which is also a clique.

I also noticed the definition of subcontext is incomplete. Here's an update:

Subcontext: B(b) is a subcontext of A(a) iff:

  • a and b belong to the same person
  • a recognizes b but not vice-versa
  • a recognizes every identity that b recognizes

It's necessary that all the identities recognized by b are also recognized by a, as in this graph:

subcontext.jpg

Now I see this creates the potential for making a total mess. But if the UI lets you create subcontexts and manages the identities for you (e.g. if you add f to B it's
also automatically added to A), things should be okay. Problems might arise when identities in the subcontext recognize someone in the main context, e.g. if e recognizes c it may happen that e replies in the subcontext to a message posted by c in the main context. Maybe an intelligent UI would detect such inconsistencies and suggest fixes (e.g. move e in the main context). It would also help to be able to copy someone else's graph, and to be notified of modifications in the graph by the members, so as to keep everybody more or less aligned. That would be useful even without subcontexts.

Despite the potential complications I think this is the right way to implement subcontexts and subgroups. For instance B might contain posts about Patchwork and A posts about Scuttlebutt in general.

Subcontexts wouldn't require any additional mechanism beyond the basic ones required for contexts. However, it would be good that UIs support some specific features to make users' lives easier.

User has not chosen to be hosted publicly
@cryptix %AYMCvZan7Gy0/8KbWMGnMb+/Ooq84k+WCAXwu9BF0sQ=.sha256

@elavoie this helped me a lot! Even though I studdied some math, I never got used to using the vocabulary fluently, like @Lenny does. Especially in other non-pure math contexts.

That beeing said I'd love to hear from him if you summary is complete or missed some aspect. My biggest problem was that I'm not sure I really understood everything in it's context. Like ignoring a small nuance could actually be a factor that can be used up-side-down as a feature for something different.. Hope that made some sense.

@Lenny Abramov %wBmfw8W0MpN7/9pZH7cA3ThBGxZc5dvYUpZFbNLqYJs=.sha256

Great summary, @elavoie! It seems we agree on the core ideas, but there are a couple of details we may want to discuss. As @cryptix said, small nuances can make a big difference.

In my view a group is not only made of connected identities, but it also has a (subjective) name and a description. (Since each identity corresponds to one group this data would be akin to the other attributes of identities). In your summary you left out this detail. I believe it's important that groups have at the very least a name, which is public and subject to negotiation among the members through various mechanisms (disagreement, notification of modifications, etc.), so that an identity/purpose, when it emerges, can be explicitly and concisely stated. However I agree a group could be named "Friends" and have no purpose at all.

On top of those subjective groups, we may define an objective group as the set of users that are indirectly connected through the social links they share: i.e. a transitive closure in graph theory.

I think it's better not to model objective groups (= transitive closures). Say you and I are friends, and I'm friend with Elsa, but you and Elsa aren't friends. What's the purpose of considering you and Elsa members of the same objective group? How is the objective group interesting to you? To what social entity it corresponds?

Of course, indirect connections among people are socially meaningful. For instance obesity can be socially contagious not only among friends, but even jumping two or three degrees - apparently there are "asymptomatic carriers" of obesity. But those things happen on their own and there's no need to model them in software. I think a social network should only model direct interactions, like "talking to someone", "listening to someone", etc. An exception is gossiping, which should extend beyond direct connections. The only other motivations for following the social graph are scientific research, user profiling, advertising, and the like, which I think are out of the scope of Scuttlebutt clients.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
Join Scuttlebutt now