mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-13 02:46:24 +00:00
use "deniable event" instead of "ephemeral event" to avoid confusion
This commit is contained in:
parent
9a8431cf19
commit
de5450cd75
18
404.md
18
404.md
@ -1,8 +1,8 @@
|
|||||||
# NIP-404: Ephemeral Events
|
# NIP-404: Deniable Events
|
||||||
|
|
||||||
`draft` `optional`
|
`draft` `optional`
|
||||||
|
|
||||||
This NIP introduces a protocol for creating ephemeral events that are weakly tied to a public key, allowing ephemeral interactions without permanent attachment to the author's identity.
|
This NIP introduces a protocol for creating deniable events that are weakly tied to a public key, allowing ephemeral interactions without permanent attachment to the author's identity.
|
||||||
|
|
||||||
---
|
---
|
||||||
### TL;DR
|
### TL;DR
|
||||||
@ -45,7 +45,7 @@ Nostr is decentralized, meaning that once an event is published, it becomes a pe
|
|||||||
|
|
||||||
As AI progresses, however, the content of an event alone becomes insufficient to prove authorship. Instead, people increasingly rely on cryptographic mechanisms to verify authorship.
|
As AI progresses, however, the content of an event alone becomes insufficient to prove authorship. Instead, people increasingly rely on cryptographic mechanisms to verify authorship.
|
||||||
|
|
||||||
This NIP introduces a protocol for creating temporary events that are weakly tied to a public key, enabling ephemeral interactions without permanently binding them to the author's identity.
|
This NIP introduces a protocol for creating deniable events that are weakly tied to a public key, enabling ephemeral interactions without permanently binding them to the author's identity.
|
||||||
|
|
||||||
We aim to produce events that are weakly tied to other public keys — events that are **probably** associated with that public key (e.g., Alice's) but cannot be **proven** to originate from it.
|
We aim to produce events that are weakly tied to other public keys — events that are **probably** associated with that public key (e.g., Alice's) but cannot be **proven** to originate from it.
|
||||||
|
|
||||||
@ -61,10 +61,10 @@ a hint for the **challenge event** -- that is signed by Alice's main key.
|
|||||||
|
|
||||||
The challenge involves mining an `NSec` that generates an `Npub` beginning with the hint provided in Alice's challenge event.
|
The challenge involves mining an `NSec` that generates an `Npub` beginning with the hint provided in Alice's challenge event.
|
||||||
|
|
||||||
Whoever mines the `NSec` can publish an **ephemeral event** signed by the mined `NSec`. This event references the challenge event,
|
Whoever mines the `NSec` can publish an **deniable event** signed by the mined `NSec`. This event references the challenge event,
|
||||||
enabling verification of the solved challenge.
|
enabling verification of the solved challenge.
|
||||||
|
|
||||||
The **ephemeral event** public key is, therefore, completely detached from Alice's main key, making it impossible to
|
The **deniable event** public key is, therefore, completely detached from Alice's main key, making it impossible to
|
||||||
prove that Alice was the solver.
|
prove that Alice was the solver.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -76,7 +76,7 @@ There is no really good reasons to lie about the timestamp.
|
|||||||
1) If she picks a timestamp in the future, she will give more time to others to solve the challenge, so
|
1) If she picks a timestamp in the future, she will give more time to others to solve the challenge, so
|
||||||
people can impersonate her more easily.
|
people can impersonate her more easily.
|
||||||
2) If she picks a timestamp in the past, clients will see that the **challenge event** is old and will know that
|
2) If she picks a timestamp in the past, clients will see that the **challenge event** is old and will know that
|
||||||
the **ephemeral events** that reference it are less likely to be from Alice.
|
the **deniable events** that reference it are less likely to be from Alice.
|
||||||
|
|
||||||
Alice controls the time window of the challenge in two ways:
|
Alice controls the time window of the challenge in two ways:
|
||||||
1. By selecting the **challenge event** timestamp.
|
1. By selecting the **challenge event** timestamp.
|
||||||
@ -86,7 +86,7 @@ add a lower bound -- this is useful if you want to respond to a previous event.
|
|||||||
---
|
---
|
||||||
### Client Behavior
|
### Client Behavior
|
||||||
|
|
||||||
Clients can display a warning indicating that an event is ephemeral and uncertain. They can also show how much time has
|
Clients can display a warning indicating that an event is deniable and uncertain. They can also show how much time has
|
||||||
passed since the challenge was published. Clients may choose to stop displaying events that are too old or uncertain.
|
passed since the challenge was published. Clients may choose to stop displaying events that are too old or uncertain.
|
||||||
|
|
||||||
This feature can integrate with [NIP-44](40.md) to enhance the user experience.
|
This feature can integrate with [NIP-44](40.md) to enhance the user experience.
|
||||||
@ -111,13 +111,13 @@ This feature can integrate with [NIP-44](40.md) to enhance the user experience.
|
|||||||
- `["hint", "<first_n_digits_of_Random_NPub>"]`: Provides a hint for the solution.
|
- `["hint", "<first_n_digits_of_Random_NPub>"]`: Provides a hint for the solution.
|
||||||
- `["ref", "<previous_event_id>"]`: References a previous event. (Optional)
|
- `["ref", "<previous_event_id>"]`: References a previous event. (Optional)
|
||||||
- `["challenge"]`: Indicates this is a challenge event.
|
- `["challenge"]`: Indicates this is a challenge event.
|
||||||
3. Alice (or anyone) solves the challenge and publishes **ephemeral events** signed by the `Random NSec`, containing:
|
3. Alice (or anyone) solves the challenge and publishes **deniable events** signed by the `Random NSec`, containing:
|
||||||
- `pubkey`: The `Random NPub` if Alice solved it, or a mined `Npub` if someone else solved it.
|
- `pubkey`: The `Random NPub` if Alice solved it, or a mined `Npub` if someone else solved it.
|
||||||
- `content`: The usual event content.
|
- `content`: The usual event content.
|
||||||
- `tags`:
|
- `tags`:
|
||||||
- `["p", "<Alice's NPub>", "author"]`: Tags Alice as the author.
|
- `["p", "<Alice's NPub>", "author"]`: Tags Alice as the author.
|
||||||
- `["challenge", "<challenge_event_id>"]`: Links to the challenge event.
|
- `["challenge", "<challenge_event_id>"]`: Links to the challenge event.
|
||||||
- `["ephemeral"]`: Indicates this is an ephemeral event.
|
- `["deniable"]`: Indicates this is an deniable event.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user