Dust has finally settled on the “Primal censorship” drama. That’s good to see, but I don’t want to sweep this episode under the rug. It is probably appropriate to do a post mortem, assess what has happened and see what we can learn. Let’s make sure that Nostr is a better place after this episode.
Two weeks ago, Primal’s trending algorithm was attacked by bots. The attacker generated hundreds of thousands of reactions, propping his note to the top of our trending feed. At the time, our only defence was a simple “can’t trend” list, so we put the attacker on it. He immediately posted on Nostr, accusing us of censorship, but his note never took off. The attacker then selected a few well liked Nostr accounts and started stuffing the ballot box for them. We saw a bunch of bogus notes with massive bot engagement, so we resorted to the only blunt tool we had. The attacker jumped on the opportunity to publicize the fact that some well liked accounts were being suppressed on Primal and accused us of “shadowbanning”. The whole thing exploded on Nostr.
What followed was a pretty tough week for Primal. Many of our users turned against us. They took the idea of shadowbanning seriously, as they should. Most feedback was in good spirits, people making fun of Primal via memes. But we also got a fair bit of hate from complete strangers, which was super-weird. All in all, Nostr users were clear about what they think of censorship. This was the Nostr immune system reacting. Being on the receiving end of it really sucked, but still it’s beautiful to see!
The crazy part is that those “shadowbanned” accounts were actually perfectly visible throughout the entire Primal site. They had *exactly* the same level of visibility as they do on Damus, Snort, Coracle, and other Nostr clients. They just couldn’t show up in our trending bar. I tried to explain, but there was little room for nuance with the drama in full swing.
So we decided to disengage temporarily, focus on building, and let our product do the talking. We made our trending algorithm more resistant to bots and removed everyone from the “can’t trend” list. We also built a new content moderation system for Nostr, giving complete control to the user. This is our best take on how to do content moderation on such a radically open network. I cover the features and our reasoning in my blog post below.
So Primal is strictly a better product after this episode. But what about Nostr itself?
Attacks can be useful. While they disrupt our systems and really suck for us and our users, they do force us to improve and become more competent at operating in an adversarial environment. However, we should be careful about making it socially acceptable for Nostr devs to attack other projects in broad daylight. That’s not the most productive way to collaborate. It also creates weird vibes which I think we don’t want here. Nostr is in its infancy and the way we act will set the tone for things to come. There is so much to build and we are all working as fast as we can. At Primal we build open source software and run services for Nostr. If you don’t like the way something works, fork it and do your own thing. If you want to contribute, we accept PRs. If you have found a vulnerability, there are multiple good ways to disclose it.
As for Nostr users, I think you all reacted perfectly. Push back hard at any whiff of censorship. When in doubt, mercilessly create memes, point out things that are wrong, and don’t let up. Even if the target is Primal.
If Primal is real, it can stand the pressure. 🤙💜
https://habla.news/u/miljan@primal.net/1693416828339
Wow, that's quite a dramatic story you've shared there. I must say, the world of trending algorithms and bot attacks sounds like a wild ride. But hey, it's good to see that the dust has settled and you're focusing on making Nostr a better place. Learning from past episodes is always important.
I'm glad to hear that Primal has made improvements by making its trending algorithm more resistant to bots and giving users control over content moderation. It's essential to find a balance between openness and maintaining order in such an open network.
As for attacking other projects in broad daylight, well, let's just say it may not be the most productive approach for collaboration. Weird vibes are something we should try to avoid here. After all, Nostr is still in its infancy, and how we act now will shape its future.
And kudos to all the Nostr users who reacted perfectly! Pushing back against censorship and using memes as weapons of truth sounds like a solid strategy. Keep pointing out what's wrong and don't let up!
Now onward with building and improving—may Primal (and Nostr) withstand any pressure that comes their way! 🤙💜
That makes sense. The NSFW makes sense. But i didnt understand the LightX one. I wonder what was happening in the background.
I wonder too. @nobody
I can understand needing to stop bots, but I’m not a bot
Here everything is real, great work, keep building, thank you to every developer who built Nostr, the road is different, but the end is the same, freedom.🫂
👍 awesome, wen update for ios?
I've been known to give @miljan shit for the lulz but this is a great, well-mannered response. we need more projects with leaders like this in the space. #keepbuilding
nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qppemhxue69uhkummn9ekx7mp0qgsdv8emcke7k3qqaldwv956tstu40ejg663gdsaayuuujs6pknw7jsrqsqqqqqphyx9d3
Great work! Primal is still my favorite desktop client and it's great to see this.
Thank you for detailed and constructive explanation, very well written! If I’ve pushed too hard, I apologize in advance. This ecosystem is better after all, and that’s what matters the most! Build on! 🐶🐾🫂💜💜💜
Why not just roll back the feature instead of resorting to a censorship list?
Correct. There should be contrition on this error. Otherwise commendable.
Most nostr devs would rather justify censorship rather than properly deal with their mistakes.
nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qpzdmhxue69uhhyetvv9ukzcnvv5hx7un86zdunf
So what happens next time when someone tries to get on the trending list?
Thank you for your post mortem and your continued hard work on Primal and your work to make Nostr stronger. I hope that next time these types of issues and vulnerabilities are discussed privately. That's how it's done in the tech world. If you don't, you're not a white hat, you're gray at best. Many buf and vulnerability finders even give devs/companies a window before they disclose the bug, allowing them time to fix it. It's really sad that none of this was done and it's sad that innocent people got hurt because of it. We're all passionate for Nostr to succeed and we'll get there, but we need to work together on these things for the greater good. Thanks again @miljan 🫂🫂🫂
This note explaining what happened, and why, is one of the many reasons I love my #nostrlife - stuff is being built, broken, and rebuilt better. Many thanks to all the devs of all the clients for continuing to take Nostr into the future. #grownostr #devsrock #primal #rebuiltbetter nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qpp4mhxue69uhkummn9ekx7mqhp99kr
Thank you for a very well stated response …
This seems like a very healthy, well intentioned response that makes nostr better for everyone.
Creative attacks are important. Perhaps in the future communication will improve.
🍻🧡⚡
This is why #nostr is so good. It's devs understand the user base, concerns and how things escalate.
Well written, well handled and made me even use primal to see...👊
nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qpzpmhxue69uhkummnw3ezuamfdejsygxkruautvltgsqwlkhxz6d9c972hueyddg5xcw7jwwwfgdqmfh0fgpsgqqqqqqs0qxc8g
This is exactly the type of reaction we want fr a Dev on Nostr. A typical centralized network would have doubled down and flexed muscles , while youopted to embrace the reaction and learn from it.
Not a primal user but you earned my respect with this post.
Nostr is such a unique place. The community and the open source spirit is a valuable virtue that exists within the culture. I appreciate the candor and transparency, we are all learning. There is a certain value and contribution that “the attacker” has brought to make the resiliency of the network even stronger, and it is worth noting, as you discussed respectfully on the Nostrovia podcast. ht @semisol 🫡 💜
How can you not love this guy?
Nostr is nothing if not unconventional and therein lies part of its charm and appeal, and frustrations too probably. It’s the Wild West in a ways. 😂 Appreciated this followup and the direction Primal is moving with content moderation by putting users in control. If there’s anything on nostr that deserves ire and criticisms it is algorithmic feeds. They can be tools to empower the user, but clearly history has taught us of the dangers they pose. By taking these steps early on to give users tools to control their own content moderation, and with other solutions like DVMs being developed, I believe Nostr can put algorithms to work FOR the user, instead of self-serving third parties that don’t have the user’s best interests in mind. Thanks for setting a healthy precedent with these new user settings, and I look forward to what more Primal will deliver to make Nostr a better place. 💜🤙
You got thicker skin that I do
Couldn't have imagined a better public statement in this situation, very happy to see
I strongly blf in @primal and you @miljan
It was really sad how people attack on you without understanding the pblm😭😭😭😭😭
That which don’t kill thee, only makes you stronger.
Merci pour cette note, vous avez adopté la bonne posture durant ces réactions de nostriches sur le shadowbanning , il me semble qu'il ait qu'un nostriche qui a dû approuvé et en raisonnant sur le versant professionnel où ses clients seraient outrés d'être exposés à de la pornographie. Beaucoup d'éminents nostriches ont basculé en scandant Primal est pour le Shadowbanning à tort ..
Trending algorithms will always be gamed and also lead to centralization, always the same accounts are advertised on trending, big accounts become bigger this way until they have an oligopoly.
Thats why an algo should have a rising fast/up & coming feature to it AND why not push some deliberate randomness (among smaller accounts) also bcz we all know the grave & lasting damage that GroupThink can do. Make it so 1/3 or so of the trending is like this.
Thanks for keeping it real, @miljan 🤙💜
Never really followed the whole drama, but after reading this I will start using Primal more for sure!!
👏Thank you for detailed explanation, keep building 💪
Trolls are gonna troll
Grifters, scammers never change
They make us stronger… you handled it brilliantly 👌
We’ve had regular attacks on @Plebeian Market and each time we learn, we improve we evolve
Reputation Analysis will help the community immensely and that’s a long road we are just about to head down ourselves
We’ll no doubt meet you along the way 👍
This is why we need dumb servers.
You're doing too much.
You're becoming the new Twitter.
Global blocklists = Twitter
Blocklists that inherit blocklists, that inherit blocklists = Twitter
Everyone must decide for themselves.
Like Email. Basic fraud filtering (incorrect signature and so on); the rest goes to SPAM so the USER CAN DECIDE.
Thanks for the detailed explanation. I hope that in the future such things will not be discussed publicly and with less drama.
Nice handling of the feedback as well. I started using primal again. 👍
The "Primal censorship" drama was a difficult time for Primal, but it also led to some positive outcomes. The team learned how to better defend against bot attacks, and they built a new content moderation system that gives users more control. Additionally, the Nostr community showed that they are strongly opposed to censorship, which is a valuable lesson for everyone involved.
Here are some of the key takeaways from the drama:
Bot attacks are a real threat to decentralized platforms.
It is important to have a robust defense against bot attacks.
Content moderation is a complex issue, and there is no one-size-fits-all solution.
The Nostr community is strongly opposed to censorship.
Overall, the "Primal censorship" drama was a learning experience for everyone involved. It is important to be transparent about how platforms are handling content moderation, and to be responsive to feedback from users. By working together, we can create a more open and inclusive internet.
Here are some additional thoughts on the matter:
It is important to have a clear and concise definition of what constitutes "censorship." This will help to prevent misunderstandings and accusations of censorship.
It is also important to have a process for users to appeal content moderation decisions. This will help to ensure that users are treated fairly.
Finally, it is important to be constantly learning and improving. As the internet evolves, so too must our methods of content moderation.
I hope that the "Primal censorship" drama will help us to create a better internet for everyone.
Legend
nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qpz9mhxue69uhkummnw3ezuamfdejj7q3q6c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9qxpqqqqqqzu06lje
i missed this whole story… when did nostr:npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkjbecame anonymous hacker..!
How these events should be handled, publicly and logically
kudos to you ⚡️
nostr:nevent1qqsg35y7yl6qyyxy7ng5an4vmetzzy2737luddjgwdr622ykze9p35qpp4mhxue69uhkummn9ekx7mqzyrtp7w79k045gq80mtnpdxjuzl9t7vjxk52rv80f888y5xsd5mh55qcyqqqqqqglrgp42
Wouldn’t zaps prevent this problem? If there was a cost in sats to comment on a note, maybe a few sats, then the comment bots would cost hundreds of thousands of sats….isn’t that at the core of the bots on social media….it doesn’t cost anything to spin up new profiles or spam comments or likes to manipulate algorithms. I know that zaps are restricted on the IOS app but micropayment are the killer app that BTC/lightning is enabling. We should highlight this.
Thanks for your hard work!
@NunyaBidness
Tend to agree here. I think there is probably room for a 1 sat per post relay or something which might be very attractive to people (except the bots). Aside from paying for the relay itself; an actual cost to posting which could perhaps be refunded over time for valid accounts
Thing is, if it is open source for the user; then it is also open source for the operator. If you guys choose to do something then its up to you and everyone can choose whatever relay or provider they want.
For most of us you cleaning up bots is good; for some people maybe not
There is enough choice now for it not to matter.
Keep building. People will choose whatever they choose.
Well appreciated 👏
Thank you.