Frequently asked questions

Can the person checking a signature tell who actually signed it?

No — that is the whole point. A valid signature proves the message was signed by one of the keys in the ring and the only way to narrow it down further is to make guesses based on the content of the message; as far as the mathematics is concerned, every member is equally likely to have been the signer. The more keys in the ring, the larger the crowd you are hidden in.

Do I need permission from the other people in the ring?

No. This is the part that people misunderstand most often. You build a ring out of public keys, which are public by definition. Only your own contribution to the signature is real, no one else has to agree to it, and in some cases may never even know they were named.

So anyone can be placed in a ring without consenting?

Yes. The only way to be certain you are never named in someone's ring is never to publish a public key, which on a network like Nostr would mean not taking part at all.

Can someone tell that two different signatures came from the same signer?

The only way to enable this with OstrichSign is to post from a dedicated pseudonym (which you should do in any case), and for the body of the messages to endorse that pseudonym or include a normal signature from it.

How is this different from a "group signature"?

A group signature has a manager who sets the group up in advance and who can, if it comes to it, unmask the signer. A ring signature has no manager, no setup, and no one who can ever reveal who signed. You assemble the ring yourself, on the spot, from whatever public keys you choose.

Does anything leave my browser? Are my keys sent anywhere?

No. Generating keys, signing, and verifying all happen locally in your browser. No key, message, or signature is transmitted anywhere by this page. If you want to confirm it, turn off your network connection and watch everything keep working.

Is it safe to rely on for something that actually matters?

No. This is experimental software that has not yet had a formal security audit, and it is meant for learning, testing, and exploration. Treat anything it produces as a demonstration rather than a guarantee.

If I post a signature on Nostr, am I really anonymous?

The signature itself hides which member signed, but the act of posting can expose you in other ways. Make sure to create a separate dedicated pseudonym from which to post the message. Relays can see the address and timing of whoever uploads or reads a note, so anyone who needs genuine cover should connect through Tor or a VPN and think carefully about which relays they trust. Also anyone who can view your network traffic can see you loading this site, so ideally you would download the console page via Tor and/or on a less surveilled network.

What are npub, nsec, and the hex keys?

They are different ways of writing the same keys. An npub is a public key in Nostr's bech32 format, an nsec is a private key in that format, and "hex" is the raw hexadecimal. The tool can also show public keys in x-only (Nostr style), compressed (Bitcoin style), or uncompressed form — all three describe the same underlying key, just written differently. Importing an nsec adds you to the ring as a possible signer; importing an npub only widens the ring.

Will signatures from this tool work with other implementations?

Not byte-for-byte. The cryptography follows the same SAG scheme and the npub/nsec handling matches the Nostr spec, but the way this tool packages a finished signature — its ringX format — is its own and is not interchangeable with the upstream Rust crate. Verify signatures made here with this tool.

Still curious? The introduction walks through the idea from the start, and further reading points to the original paper and related tools.