jb55 on Nostr: Silent Payments are clever: you create a shared secret (ecdh) from a utxo and a ...
Silent Payments are clever: you create a shared secret (ecdh) from a utxo and a public silent payment address. Then you simply add (tweak) this shared secret into this silent address.
The receiver then scans the entire utxo set, looking for any payments to this silent payment address tweaked with the shared secret from all taproot/pubkey inputs.
For onchain zaps, you can skip the scanning process and just send a giftwrap with the txid and the receiver can verify that you sent it and control the utxo just by knowledge of this shared secret.
To generate the shared secret from the sender side, you need the inputs private key multiplied by the silent address pubkey.
On the receiver side, you multiply the silent address secret key by the input’s pubkey.
This gives you the same shared secret which you can use on both sender and receiver side to validate the onchain zap.
The nice thing about leveraging silent payments is that the receiver doesn’t have to use nostr, they could just be using a silent payments wallet to receive the zap.
On the nostr side, all you would need is a silent payment address in your profile. Heck you could even use the users pubkey itself as a key as a less secure silent address fallback if they don’t have one in their profile.
Published at
2024-06-09 14:44:02Event JSON
{
"id": "09a0c805b788f1c75b31a12375cb8bebf303c67e7ff07757a2773a2156938c50",
"pubkey": "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245",
"created_at": 1717944242,
"kind": 1,
"tags": [],
"content": "Silent Payments are clever: you create a shared secret (ecdh) from a utxo and a public silent payment address. Then you simply add (tweak) this shared secret into this silent address.\n\nThe receiver then scans the entire utxo set, looking for any payments to this silent payment address tweaked with the shared secret from all taproot/pubkey inputs.\n\nFor onchain zaps, you can skip the scanning process and just send a giftwrap with the txid and the receiver can verify that you sent it and control the utxo just by knowledge of this shared secret.\n\nTo generate the shared secret from the sender side, you need the inputs private key multiplied by the silent address pubkey.\n\nOn the receiver side, you multiply the silent address secret key by the input’s pubkey. \n\nThis gives you the same shared secret which you can use on both sender and receiver side to validate the onchain zap.\n\nThe nice thing about leveraging silent payments is that the receiver doesn’t have to use nostr, they could just be using a silent payments wallet to receive the zap.\n\nOn the nostr side, all you would need is a silent payment address in your profile. Heck you could even use the users pubkey itself as a key as a less secure silent address fallback if they don’t have one in their profile.",
"sig": "886ba37454d65582f17c3ea29f65603b13e22dbca067f30f562be45b8da9263fe4346bb5509179d10413d0c5e379caf28328ef43b1ff352aca615a6fb18879de"
}