Mazin on Nostr: The problem: when a brand new pubkey starts sending events, it can be difficult to ...
The problem: when a brand new pubkey starts sending events, it can be difficult to tell immediately whether they are a legitimate user or spam.
Our solution: accept all new user notes temporarily in a separate database. As they send events, we continually evaluate their behavior based on several rules (and eventually by a trained model) and approve/block the pubkey.
If approved, all of their old events get added to our aggregator relay and the user is immediately discoverable. Their future notes will also go directly to the relay. If blocked, the events are sent to a purged database (for transparency and evaluation) and never reach our relay.
Still an early WIP but coming along! It doesn’t solve all the issues but it is a massive improvement on our current rules.
Started working on our new spam protection for 🍷 filter.nostr.wine this week. Our repeat message filters and rate limiting helps but still leaks a lot.
We expect the new solution to be much more effective AND create less false positives. More details soon!
Published at
2024-09-18 12:54:34Event JSON
{
"id": "346b65860a7bd3fc4766c985f26ac4ad509296edcbdcb7f80c946657fac4fcf0",
"pubkey": "3d842afecd5e293f28b6627933704a3fb8ce153aa91d790ab11f6a752d44a42d",
"created_at": 1726664074,
"kind": 1,
"tags": [
[
"p",
"3d842afecd5e293f28b6627933704a3fb8ce153aa91d790ab11f6a752d44a42d"
]
],
"content": "The problem: when a brand new pubkey starts sending events, it can be difficult to tell immediately whether they are a legitimate user or spam.\n\nOur solution: accept all new user notes temporarily in a separate database. As they send events, we continually evaluate their behavior based on several rules (and eventually by a trained model) and approve/block the pubkey.\n\nIf approved, all of their old events get added to our aggregator relay and the user is immediately discoverable. Their future notes will also go directly to the relay. If blocked, the events are sent to a purged database (for transparency and evaluation) and never reach our relay.\n\nStill an early WIP but coming along! It doesn’t solve all the issues but it is a massive improvement on our current rules. nostr:note19kp6d4lmdjr8r0hn0uyx62jdreu5xcyxz7zm2pxwsrd6hcferdtqyx6nxp",
"sig": "ca5d422433a5ee4be32934999ec38cbbddcce0bb9a95955d008c8eb27133f6f9c2d42031b5ad1596854c03fe174c67d71b1df8b0b3e69119c4ebd440ffadc051"
}