Skip to content

Moderated channels with membership invite links#1273

Open
AndrewRyanChama wants to merge 3 commits into
nostr-protocol:masterfrom
AndrewRyanChama:thing
Open

Moderated channels with membership invite links#1273
AndrewRyanChama wants to merge 3 commits into
nostr-protocol:masterfrom
AndrewRyanChama:thing

Conversation

@AndrewRyanChama
Copy link
Copy Markdown

@AndrewRyanChama AndrewRyanChama commented May 30, 2024

This NIP defines a way to create channels that have restricted membership, where members may invite other members and only members can send messages. This depends on #1242 - this nip requires a mandatory bot for managing the channel computation.

This nip allows the implementation of permissions systems similar to Telegram or Discord, and the creation of easy-to-use invite links. By enabling an invite-only system but giving easily spreadable but revokable invite links, this can greatly mitigate spam problems while also not adding unnecessary friction.

View here

Sample implementation will be released soon tm

@staab
Copy link
Copy Markdown
Member

staab commented May 30, 2024

This is different from #875 but you might give that a read through if you haven't already. It includes a mechanism for invites to private groups and member lists. If you have a bot with an admin key managing membership and moderation, you could probably build what you're creating on that spec (although moderation isn't yet specified).

Clients must not show kind 42 events without approval.

This is a repeat of the fatal flaw of NIP 72. Those communities tend to die, because moderators disappear, and no posts ever get approved. I would recommend defining moderation more loosely as in #1024

@AndrewRyanChama
Copy link
Copy Markdown
Author

AndrewRyanChama commented May 31, 2024

#875 but you might give that a read through if you haven't already.

This is semi-compatible with #875, I may consider rewriting this to be an explicit extension of that rather than being its own thing. Right now though I want to keep separate any discussion of message encryption or forward security, as that is besides the point of this NIP.

This is a repeat of the fatal flaw of NIP 72. Those communities tend to die, because moderators disappear, and no posts ever get approved.

The point is that the nip explicitly requires a bot to handle this. There must not be a human in the loop.

@staab
Copy link
Copy Markdown
Member

staab commented May 31, 2024

The point is that the nip explicitly requires a bot to handle this. There must not be a human in the loop.

Seems unenforceable, and like it would raise the bar for people who want to create their own channels without running infrastructure. But I've definitely had the same thought — in fact, I built triflector in an attempt to automatically manage group membership. It's not really complete, but it has support for both relay invites and group invites.

@AndrewRyanChama
Copy link
Copy Markdown
Author

it would raise the bar for people who want to create their own channels without running infrastructure.

It is intended that end users do not run their own infrastructure, but instead a variety of providers implementing this nip will be available. Though that definitely wasn't clear before - I updated the nip and explicitly added a way to create new channels.

I built triflector in an attempt to automatically manage group membership.

The fundamental problem I see with relay-based access control is that any access to controlled resources must necessarily pass through only a single resource. The same events passing through a different relay would be uncontrolled.

By decoupling the auth-rule black box from a relay and turning it into a bot, controlled events can and should be stored and transmitted through multiple relays.

@staab
Copy link
Copy Markdown
Member

staab commented May 31, 2024

The fundamental problem I see with relay-based access control is that any access to controlled resources must necessarily pass through only a single resource. The same events passing through a different relay would be uncontrolled.

Not necessarily, you could have two relays controlled by different people, both implementing access control. It's basically the same situation as with a bot, except you can use commodity relays. The choke point is the admin's key, which is needed for moderation.

But on another once-over of this NIP, it looks like the moderator may not necessarily be intimately tied to the group, but is simply a reasonably trusted third party? That could be interesting — moderation as a service. You could even ask multiple moderators to watch your messages simultaneously for redundancy.

@AndrewRyanChama
Copy link
Copy Markdown
Author

That could be interesting — moderation as a service.

Yep exactly

Not necessarily, you could have two relays controlled by different people,

Hmm I need to read the approach in more detail - what I said mainly applies to nip29. Is there a nip that describes triflector?

@staab
Copy link
Copy Markdown
Member

staab commented Jun 4, 2024

Only #875, but the way it works is you basically set up the group to point to two relays which are run independently, each of which enforces auth. Increases possibility of event leakage, but reduces possibility of censorship by the host.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants