mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-22 16:35:52 -05:00
edit
This commit is contained in:
parent
a9d63ead4b
commit
274cb00e25
34
??.md
34
??.md
|
@ -12,18 +12,18 @@ This NIP introduces a method for spam mitigation in comments by requiring a smal
|
||||||
|
|
||||||
## Motivation
|
## Motivation
|
||||||
|
|
||||||
Spam in Nostr, particularly in comment sections, is a growing issue. Spammers can easily generate thousands of comments without cost, overwhelming users. While NIP-13 provides a Proof of Work (PoW) mechanism to mitigate spam, it has notable downsides:
|
While NIP-13 provides a Proof of Work (PoW) mechanism to mitigate spam, it has notable downsides:
|
||||||
|
|
||||||
1. Spammers with access to dedicated PoW miners can bypass this barrier easily.
|
1. Spammers with access to dedicated PoW miners can bypass this barrier easily.
|
||||||
2. Honest users, particularly those with low-end devices or mobile phones, may find PoW too resource-intensive, leading to drained batteries or slowed performance.
|
2. Honest users, particularly those with low-end devices or mobile phones, may find PoW too resource-intensive, leading to drained batteries or slowed performance.
|
||||||
|
|
||||||
This proposal seeks to create a more equitable and flexible spam prevention mechanism by requiring small Bitcoin payments (sats) to post comments.
|
This proposal seeks to create a more equitable and flexible spam prevention mechanism by requiring small bitcoin payments to comment on posts.
|
||||||
|
|
||||||
## Specification
|
## Specification
|
||||||
|
|
||||||
### 1. The Writer’s Requirement for Zaps
|
### 1. The Writer's Requirement for Zaps
|
||||||
|
|
||||||
A user posting a note can include a tag to specify that comments on their note require a zap (a small Bitcoin payment) to be accepted. This is done by adding a `require-zap` tag to their note:
|
A user posting a note can include a tag to specify that comments on their note require a `zap` (NIP-57) to be accepted. This is done by adding a `require-zap` tag to their note:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -39,9 +39,9 @@ A user posting a note can include a tag to specify that comments on their note r
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. The Commenter’s Zap Request
|
### 2. The Commenter's Zap Request
|
||||||
|
|
||||||
To post a comment on a note with a `require-zap` tag, the commenter must create a zap request event in compliance with NIP-57. The zap request includes the required amount of sats, and an `e` tag that links the comment to the original note:
|
To post a comment on a note with a `require-zap` tag, the commenter must create a zap request event in compliance with NIP-57. The zap request includes the required amount of sats in millisathoshies, and an `e` tag that links the comment to the original note:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -63,7 +63,7 @@ To post a comment on a note with a `require-zap` tag, the commenter must create
|
||||||
|
|
||||||
### 3. Zap Receipt
|
### 3. Zap Receipt
|
||||||
|
|
||||||
Upon receiving the zap payment, the receiver’s LNURL server broadcasts a zap receipt event:
|
Upon receiving the zap payment, the receiver's LNURL server broadcasts a zap receipt event:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -85,7 +85,7 @@ Upon receiving the zap payment, the receiver’s LNURL server broadcasts a zap r
|
||||||
|
|
||||||
### 4. Manual Zap Refund
|
### 4. Manual Zap Refund
|
||||||
|
|
||||||
As a social rule, if a writer requires a zap for comments, they are expected to refund the commenter if the comment is legitimate and not spam. The writer may choose to refund the zap by sending the same amount back via a new zap event:
|
As a social rule, if a writer requires a zap for comments, they are expected to refund the commenter if the comment is legitimate and not spam. The writer may choose to refund the zap by sending the same amount back via a new zap event, this time connecting the previous zap event with an `e` tag. a `zap-refund` tag is added to distinguish it from a normal zap.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ As a social rule, if a writer requires a zap for comments, they are expected to
|
||||||
["lnurl", "<lnurl-b>"],
|
["lnurl", "<lnurl-b>"],
|
||||||
["p", "<pubkey-b>"],
|
["p", "<pubkey-b>"],
|
||||||
["e", "<event-id-b>"]
|
["e", "<event-id-b>"]
|
||||||
["zap-refund", "<event-id-b>"]
|
["require-zap-refund", "<event-id-b>"]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -124,20 +124,20 @@ Upon payment, the receiver's LNURL server broadcasts a zap receipt event, indica
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Relay & Client interactions
|
## Client Interactions
|
||||||
|
|
||||||
Clients `SHOULD`:
|
Clients `SHOULD`:
|
||||||
|
|
||||||
- Display an indicator when a note requires a zap for comments.
|
- Display an indicator when a note requires a zap for comments.
|
||||||
- Help the user pay the zap invoice and create the zap request event.
|
- Help the commenter create a zap request event and pay the zap invoice.
|
||||||
- Show whether a comment zap has been refunded or not.
|
- Help the note owner (writer) to pay back Zaps for Comments easily.
|
||||||
|
- Show whether a zap comment has been paid back or not.
|
||||||
|
|
||||||
Relays:
|
## Relay Interactions
|
||||||
|
|
||||||
To mitigate spamming further, relays `MAY` ignore and refuse to propagate non-zapped comments, i.e zap receipt events.
|
To mitigate spamming further, relays `MAY` ignore and refuse to propagate non-zapped comments, i.e zap receipt events. They can also apply different strategies like returning a `NOTICE` message for the first time receiving a non-zapped comment and ignore following ones.
|
||||||
|
|
||||||
They can also apply different strategies like returning a `NOTICE` message for the first time and ignore the rest.
|
## Flexibility in Usage
|
||||||
|
|
||||||
### 6. Flexibility in Usage
|
|
||||||
|
|
||||||
Writers have full control over the zap amount required for comments, providing flexibility to adjust based on the volume of spam they encounter. If a writer continues to receive spam, they can increase the zap amount. Writers can also decrease the zap amount for more legitimate engagement.
|
Writers have full control over the zap amount required for comments, providing flexibility to adjust based on the volume of spam they encounter. If a writer continues to receive spam, they can increase the zap amount. Writers can also decrease the zap amount for more legitimate engagement.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user