sofiechan home

The plan for anonymous mutual matching dms

admin said in #2677 6d ago: 1010

Let's talk about how anonymous dms with mutuals will work. Thanks everyone for the feedback on the proposed follow functionality in >>2622. Having now thought about it and pushed up the prerequisites, it's time to plan out the details.

On reflection, the most urgent follow-based feature is anonymous dms with mutuals. We have been tossing around the idea of anonymous dms for some time, but how it would actually work never quite came together in my mind until the idea of matching mutuals. Here's how I see it now:

Alice, posting something insightful as "anon 0xbabe" gets followed by Bob, who is lurking the thread. Bob's follow does not have a nym associated with it, just an account. The feature waits until Alice, lurking a thread Bob is posting in as 'anon 0xb0b', notices that he's interesting and follows him under that nym. Now the match happens: 'anon 0xbabe' (Alice) has matched with 'anon 0xb0b' (Bob). They both get a notification mark on their "you" page, with a link to a private thread that only the two of them can see or post in, initiated with the announcement that their nyms have matched.

In the private thread, they can exchange more info to get to know each other, discuss whatever they like, exchange phone numbers or public keys to spin off onto some other platform, etc. Messages in this thread will automatically expire and be deleted after some period of time, though the thread will remain available. Either can at any time mute or unfollow the counterparty nym if they no longer wish to receieve messages. This will probably be invisible, but you can also tell them if you like.

I imagine this being used a few different ways. The surprise lurker match I describe above will hopefully be a useful way for anons who respect each other's posting to serendipitously meet and become friends. But I anticipate that often matches will be deliberately arranged by anons in the same public thread who want to continue the discussion privately. "Hey that sounds really interesting. I can help with XYZ aspect. Follow me and let's discuss further". Spammers would surely love to abuse this, so don't be shy hiding and muting people who waste your time! Maybe you guys will find other ways to use it too.

Disappearing messages for a few reasons. First of all because archived private messages are generally a liability for anons. When something private gets leaked or doxed, 90% of the time it's a retroactive screencap by ex-acquiantences often years later. As such my friends and I use signal more because of its disappearing messages than its encryption, and anything presumed private on sofiechan will be disappearing by default. Second of all, for various reasons I'm not in the business of archiving private messages. If I wish to ingest private messages as data I will let you know, opt you out by default, and give you fine-grained controls and good reason opt in.

A word addressing the for-now deprioritization of the "posters you follow are posting in this thread" feature. This feature basically requires scale to work. It's not really anonymous unless it requires that you follow many different posters before it shows you where they are posting. Otherwise it's just a de-anonymizing tracking beacon for stalkers and journalists. So you need a community of posters with many following a dozen other posters before we can even turn it on usefully and safely. If that's a very small and tight-knit community of a few dozen posters with high inter-follow density, then there's no point because many of them will be in any active thread so the feature can't give you information you don't already have. Anonymous follow only makes sense with a fairly large and sparsely connected poster community of probably hundreds of posters. I hope we get there, but we're not there yet. Until then we need features with more one-to-one utility. I'm doing mutual matching first because it works one-to-one (and helps bootstrap the network scale to do sparse many-to-many features).

What do you think?

Let's talk about how 1010

anon 0x491 said in #2684 5d ago: 66

My problem with this proposal is that at Sofiechan's current scale, I'd be tempted to just follow everyone in order to find out whether they followed me, and in order not to miss a potentially valuable private interaction. Creating this Tinder-like variable-reward swiping system is a good way to farm engagement but not great for a serious community of discourse.

Instead just allow 'dm requests' and let me see a reputation-sorted list of dm requests, each attached to a nym. This also helps decouple the 'follow' and 'dm request' signals which are conceptually separate - I understand you want DMs to be allowed only between people who follow each other for conceptual reasons, but the reverse isn't true - I might want to follow someone without having any desire to exchange private information.

If the DM requests has multiple recipients, this automatically creates a group-chat-like feature which might also be super useful. although it's not immediately clear how to allow adding/removing members, maybe this isn't necessary for now.

referenced by: >>2685

My problem with this 66

admin said in #2685 5d ago: 66

>>2684
I had a good discussion with someone about this earlier today and came to this thought: we should have something like an option to be open to other people requesting follow-back (and thus an open channel of communication). So I follow you and send the request, you get a ping, look at my nym and decide to talk to me (or not), follow me back, someone starts the thread, and away we go. That way you can just accept such requests without pre-emptively following everybody (who is everybody? I already have hundreds of nyms).

I do want dms gated on mutual "follow". Really follow is a bad term given that we won't have the actual follow part for a while. We can come up with a better one. Point being it's a sort of endorsement-for-communication "I am interested in hearing from this person", which we take both privately (they can send you messages, you hope to see their posts) and publicly (you support them as part of the poster community). It's expectation of information. I want you to be able to express this endorsement, and to be able to interpret it as such for the purposes of the platform.

The flipside is that if you are unhappy with someone's dm (spam, creepy, scam, etc), you can then retract the follow and even mute them, and they both go away and get punished in the algorithm. So there's an incentive to send messages that you expect to be well received.

You are right that following someone doesn't have to be equivalent to actually opening the dm thread. Maybe you get a notification that you have a new mutual, and then either of you can open the thread from there, or not. I like that idea.

This all sounds esoteric and complicated right now, but I think it will be intuitive once built. You'll see (I hope I can make it work).

I don't like ad-hoc groupchats and probably won't be building such a feature, except possibly for introductions. I do have some other possibilities in mind for private groups. But that's all later.

referenced by: >>2707

I had a good discuss 66

admin said in #2700 5d ago: 44

Thinking further, there seems to be a tricky combinatorial problem in the match algorithm. What if I like many of your nyms, and then you like one of mine? Which ones match? What if you then like another?

The straightforward thing is that your like matches with one of mine, randomly. Ok we have an open line of communication! But then what about those others? You don't know that that's actually the same guy, or that the one match has ruled out those other matches. Now maybe you're hoping to match with someone you've already matched with, waiting for another match that won't happen. Is this a problem? I think so.

Instead of doing that, we could match you with all possible matches. But that's N^2, and actually de-anonymizes those secondary matches by association. If we match and I get a big block of matches at the same time, I now know that all the other nyms of yours that matched when you liked one of mine are the same person, because they all showed up together.

We need to introduce some kind of uncertainty or limit or timing delay or optional disclosure somewhere in the process to work around the accidental de-anonymization problem. Granted most of what you want to do with matching is de-anonymize each other, but I insist on the possibility of making that decision deliberately.

We could try one-sided matches like "you can now match with this nym, which of these would you like to use for DM?" where we list the nyms they liked. That vibes will with the above anon's request for separating DM initiation from follow. But then the set of nyms might become a unique fingerprint unless we randomize or limit in some way. Am I overthinking this?

Anyways it's a puzzle to think through.

referenced by: >>2703

Thinking further, th 44

anon 0x493 said in #2703 5d ago: 88

>>2700
The way I see, there are only two coherent possibilities. Either you are really matching with:

1) the IRL person, not the nyms (and so would auto-match with the N^2 nyms), or
2) the nyms, not the IRL person.

You already said that you don't like 1) because it de-anonymizes too much.

Therefore, strictly go with 2). One nym matches with another, and it absolutely does not matter what other nyms belong to either party. The matching code literally does not need to know about the ownership of any nyms not being matched. Problem solved.

referenced by: >>2706

The way I see, there 88

anon 0x494 said in #2704 4d ago: 00 33

Aa

Aa 00 33

admin said in #2706 4d ago: 44

>>2703
That requires specifying which nym is doing the following in each case, and reduces probability of match drastically. Match takes two user-to-nym follows and produces a nym-to-nym match. One such match can be produced without any complication. It's what to do about the possibility of subsequent matches between the same users that I'm puzzled about.

referenced by: >>2707

That requires specif 44

anon 0x491 said in #2707 4d ago: 66

>>2706
I see the problem. I think your concepts of "follow", "dm request", and "match" are together incoherent so one or more needs to be adjusted. My suggestion would be to get rid of the concept of the 'match' entirely. Once you have dm requests as in >>2685, you no longer really need matches at all?

Follows can remain user-to-user, retaining the semantics of 'the person behind this nym seems a valuable source of information'. But there's no concept of a 'match' needed, just dm channels between pairs of nyms. and yes 2 accounts could maintain many separate DM conversations under different pairs of nyms and not know they are talking to the same person.

This also preserves the anonymity of a 'follow' signal which has some downstream benefits.

referenced by: >>2709

I see the problem. I 66

anon 0x491 said in #2708 4d ago: 66

Interestingly Twitter doesn't have a hardcoded concept of matches but "mutual followers" are an important cultural construct in certain communities - e.g. people will invite their "mutuals" to hang out at a real life bar, and more generally consider themselves to be in some relationship of trust with their mutuals but not with unilateral follows or followers.

I can see the benefit but on balance this emphasis on mutuals is a result of anti-aristocratic norms and doesn't seem to fit with the aesthetic of sofiechan. you want to differentially attract great philosophers who will follow almost nobody but be followed by many, not a dense backscratchers club of mutuals.

referenced by: >>2709

Interestingly Twitte 66

admin said in #2709 4d ago: 44

>>2707
>>2708
Interesting points anon. Maybe we don't need any such concept as matching, given dm requests. Maybe it's too tpot. I will think on that. But first, I must present the solution to the matching problem assuming we want matches:

When two users match, we pick the latest two follows that exist at the time of the match and match those nyms IFF they are both unmatched between the two of you.

That's it. Here are the consequences: No follows earlier than that point will be matched (by default), even though they are otherwise valid in principle. Another match will only be produced if you both subsequently follow each other's nyms again (because of the "both nyms unmatched between you" clause). Only then do you get a new match for multiple matches with the same person.

So you can get multiple matches reliably, but you never get a combinatorial explosion and I'm pretty sure anonymity is never significantly compromised. If you think matching is too gay you can turn it off and only use direct dm requests, but I'm still convinced it'll be an interesting experiment.

This default match algorithm has a few kinks: first of all as the other anon says, you might want to have a "dms open" policy or just a feature whereby you can receive and accept unsolicited matches so that you don't have to be quite so aggressive following everybody you might want to be open to talking to. I envision that like this: you turn that on (maybe it's on by default), I follow you and send you a match/follow request linking one of my nyms. You check me out and accept the match (which follows me back), now we can dm.

The other kink is that if you and I are in a thread and we want to match the two nyms in that thread for further offline discussion, the presence of a previously unmatched follow on one of our parts could interdict and prevent that match, because we get this apparently unrelated match instead without knowing that they are the same person. It turns out this has the same solution: to be sure of the particular match, you can send an explicit match request with that particular nym attached, which will override the "unmatched" clause if accepted. Solved.

Third kink, again same solution: suppose you were really curious about that old follow you did and you really did want to talk to that guy. Unbeknownst to you, you've already matched with him under another nym. But you want closure on that one nym. Again, send an explicit match request. It will override the default match selection algorithm if accepted. All of these uses are indistinguishable to you from simply requesting contact with a total stranger and them accepting. The feature has the same meaning whether its overriding the default match selection or soliciting a follow from a stranger.

We could also have the option to risk more anonymity in exchange for the full n^2 explosion of possible matches, but I actually don't believe this is necessary or useful given the above. It would also be a lot more complexity for this unclear gain, so we'll avoid it and try the above relatively simple matching algorithm. The above algorithm has a strong default plus the option to manually intervene to solve cases the default doesn't naturally handle, without almost any compromise of anonymity at all.

In light of your skepticism, anon, let me defend the default match algorithm like this: sometimes a serendipitous suggested meeting is a welcome input. That's really what this does: it generates serendipitous suggested meetings in exchange for a bit of labor tagging which anons you find interesting (and as a byproduct, fleshing out the vouch graph to help distinguish qualityposters from noise).

My apologies for all the long winded autism over this feature but this is what it takes for me to figure out good solutions.

referenced by: >>2713

Interesting points a 44

admin said in #2713 1d ago: 33

>>2709
Well I got it working on the backend. It finds matches. But we don't have the code yet to actually support notifications or private threads. Nor have I built the manual matching mechanism. This is all going to be monstrously complex. Several hundred lines of extra code at least. It's unclear whether the whole vouch graph, follow, match, dm, etc set of features is going to be really worth the complexity, but we can pare it down in future if it turns out not to be useful.

Well I got it workin 33

You must login to post.