Blind Schnorr Signatures
Interactive Demo

Disguise a Nostr event, ask the server to blindly sign, then unblind & post!

Schnorr signatures let a signer prove they signed a message using their secret key. Blind signatures take this a step further -- you can sign a message without ever knowing the contents of what you are signing.

A user disguises their message, has the server sign the disguised message, then unblinds the result -- producing a valid signature that the server can't link back to the message it signed.

This is powerful for privacy: a server can act as an authority while remaining blind to the contents of the data it is authorising. See this article by Nadav @ suredbits for more on the math.

Follow steps 1–7

SERVER

1. Generate a nonce

The server has a private key \(x\) and public key \(X = x*G\).
(\(G\) is the generator point of an elliptic curve -- it is impossible to find \(x\) from knowing \(X\)).

Server generates a random secret \(k\) and public nonce \(R=k*G\).


Server Public Key \(X\)
Nonce \(R\)
USER

2. Choose a message

Choose a message for the server to blindly sign \(m\).


Message \(m\)

made with love by utxo.club