From 5e2ad4b3bbd68b36960e38203b5ab26a854fcf97 Mon Sep 17 00:00:00 2001 From: pablof7z Date: Sun, 20 Oct 2024 01:04:11 +0100 Subject: [PATCH] add note about timing analysis --- 22.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/22.md b/22.md index 02ff3ab..28dc420 100644 --- a/22.md +++ b/22.md @@ -45,7 +45,7 @@ A sender publishes a series of `kind:2444` or `kind:20444` where the `payload` i Event `kind:2444` has the exact same format as the `kind:20444`, the only difference being that it's not ephemeral, so it can be used to route events that are expected to take longer to route. `kind:2444` events SHOULD include an [[NIP-40]] `expiration` tag. -Routing pubkeys MUST look at the `created_at` of the event they need to publish and wait until at least that time before publishing. +Routing pubkeys MUST look at the `created_at` of the event they need to publish and wait until at least that time before publishing. Using future `created_at`s allows the sender to increase their privacy by preventing timing analysis by mixing different time delays at each hop. When a routing pubkey receives a routing request event it should decrypt the content, redeem the cashu and publish the event in the `event` field. If the cashu cannot be redeemed the routing pubkey MUST NOT publish the event. This is useful as a way to **cancel** a routing event where the sender uses a future `created_at` timestamps and chooses to cancel the publication. @@ -139,3 +139,4 @@ function assemble_onion_route(final_event, path) { } } ``` +