Blind Signatures Cryptography
TL;DR
Blind Signatures are the “carbon paper” of cryptography. They allow a mint to sign a token without seeing its serial number, ensuring absolute privacy for the user while preventing double-spending.
Blind signatures are the foundational cryptographic primitive behind Chaumian eCash. They allow a party (the mint) to sign a message without ever actually seeing the contents of that message.
The Carbon Paper Analogy
Imagine slipping a blank piece of paper into an envelope lined with carbon copy paper on the inside. You hand the sealed envelope to a banker. The banker signs the outside of the envelope with a pen. Because of the carbon paper, the signature transfers through the envelope onto the document inside. When the envelope is returned to you, you open it and extract the signed document. The banker’s valid signature is on it, yet the banker never saw what the document was.
The Cryptographic Process (The Math)
In the context of Cashu and eCash, the “document” is a random token generated by the user, and the “signature” represents a specific denomination of Satoshi.
1. Preparation by the Mint
The mint generates different Long-Term Public Keys (K) for each supported denomination (e.g., 1 sat, 2 sats, 4 sats, 8 sats).
K = k * G(wherekis the private key andGis the secp256k1 generator point).
2. Blinding (The User)
Alice wants to create an eCash token. She generates a random secret x (this will be the token’s serial number).
- Hash-to-Curve: She applies a one-way hash to
xto map it onto the secp256k1 curve, resulting in the pointY. - Blinding: She generates a random blinding factor
rand blindsYto create a blinded messageB'.B' = Y + r * G
- Alice sends
B'to the Mint.
3. Signing (The Mint)
The mint receives B' and signs it by multiplying it by its private key k.
C' = k * B'The mint sends this blind signatureC'back to Alice. The mint does not know the value ofYorx.
4. Unblinding (The User)
Alice receives C' and removes her blinding factor r using the Mint’s public key K.
C = C' - r * KAlice now possesses a valid signatureCfrom the mint on her original hashed secretY.- This combination of
(x, C)is the eCash token.
5. Verification (Double-Spend Check)
When Alice pays Bob, Bob takes the token (x, C) to the mint.
- The mint checks the math: does
Cgenuinely equalk * Y? If so, the signature is mathematically valid. - The mint checks its database: has the secret
xbeen seen before?- If no, the mint honors the token. It records
xas spent, and issues a completely new, blind signature token to Bob.
- If no, the mint honors the token. It records
Importance
This simple spatial transformation—moving the data into a “blinded space,” signing it there, and transferring it back to the “visible space”—decouples the issuance of funds from the spending of funds, creating an untraceable privacy system.