Overview
This document specifies the Double-Blind Threshold Signature Scheme - a novel modified Schnorr blind signature adapted for threshold signing with key morphing. The construction achieves three simultaneous properties:
- Signer-blindness. The threshold signers (ORKs) learn neither the message , the verification key , nor the key morphing scalar .
- Verifier-blindness. The verifier (vendor) cannot link the verification key back to the user's master public key , or correlate identities across vendors.
- Key morphing. The ORKs hold shares of master key , but the signature verifies under a vendor-specific derived key - without any party reconstructing either key.
The output is a standard Schnorr signature that any verifier can validate against , paired with a Vendor User ID (VUID) that is mathematically unlinkable to the user's master identity or to identities at other vendors.
The scheme is pending joint publication with RMIT University. All blind-signature operations use a specialized twisted Edwards curve (), not Edwards25519.
Loading diagram...
The Problem
The SWE needs to obtain a Schnorr signature on token message , verifiable against a vendor-specific public key , using partial signatures from ORKs that hold shares of master ineffable key . Three constraints make this non-trivial:
-
Key morphing. The verification key is , where is vendor-specific. The ORKs hold shares of , not shares of . The blinding must incorporate so that partial signatures over produce a valid signature under .
-
Signer-blindness. The ORKs must not learn , , or . Any of these would leak which vendor the user is authenticating to or allow cross-session correlation.
-
Verifier-blindness. The vendor must not link back to , or derive - either would enable cross-vendor correlation.
Preconditions
Identity Recovery (from PRISM sub-protocol)
Before blind signing begins, the SWE must have recovered the user's vendor-specific identity. This occurs during the Convert phase, in parallel with PRISM authentication (Protocol: PRISM).
Each ORK returns an encrypted identity share as part of its Convert response:
encrypted under the PRISM verifier - coupling identity recovery to successful password verification. The SWE interpolates these shares and applies voucher deobfuscation:
The result equals after deobfuscation - the user's CMK public key projected through this vendor's identity space. At no point is the private key reconstructed.
Per-ORK State
Each ORK holds:
- - Shamir share of the joint private key.
- - the user's master public key (public value, computed during registration).
Nonce Commitment
During the Convert phase, each ORK generates and commits a fresh nonce:
ℤ
is returned to the SWE. is cached server-side and destroyed after use.
Protocol Flow
Blind Message Preparation (SWE)
After recovering , , and (Algorithm 1), the SWE aggregates nonces and prepares the blinded signing request.
The blinded challenge absorbs three values the ORKs must not learn: the real challenge (encoding , , and ), the key morphing scalar , and the blinding factor . To any ORK, is indistinguishable from a random scalar.
Partial Blind Signing (per-ORK)
Loading diagram...
Each ORK computes a standard Schnorr partial signature structure - its Lagrange-weighted nonce plus its Lagrange-weighted share multiplied by the blinded challenge. The ORK sees only (opaque) and uses its own and . No inter-node communication is required.
Rogue-key resistance: The SWE sends a single to all ORKs; each computes Lagrange coefficients locally from , preventing a malicious dealer from injecting crafted coefficients.
What the ORK verifies before signing: PRISM authentication succeeded. The voucher is valid. It has not already signed for this session (nonce cache destroyed on use).
Signature Aggregation and Unblinding (SWE)
Algebraic correctness proof:
By Shamir reconstruction, (joint nonce) and (joint CMK private key) - both reconstructed only as implicit terms within the sum, never as explicit values.
Substituting :
Unblinding:
Verification (standard Schnorr, any party holding ):
where . The signature is mathematically indistinguishable from one produced by a single holder of private key .
Curve Architecture
The protocol operates over two elliptic curves with strict separation of purpose:
| Curve | Used For |
|---|---|
| Curve25519 | PRISM password verification, ECDH session keys, challenge encryption (Protocol: PRISM) |
| BEd255475 | All blind-signature operations: nonce generation, partial signing, aggregation, verification |
Curve Parameters
The BEd255475 specialized curve operates with the following parameters:
| Parameter | Value |
|---|---|
| Curve form | Twisted Edwards: |
| Field prime | = 57896044618658097711785492504343953926634992332820282019728792003956564819493 |
| Coefficient | |
| Coefficient | |
| Subgroup order | 14474011154664524427946373126085988481619609633285553862260303847718958643849 |
| Cofactor | |
| Generator | (52206735679238871955591785439564750012055913480585550766900356151549289562200, 6) |
| Generator (compressed) | 0600000000000000000000000000000000000000000000000000000000000000 |
Design notes:
The coefficient matches Edwards25519, permitting the same optimized twisted Edwards arithmetic (extended coordinates, unified addition formulas). The coefficient defines the curve's distinct algebraic structure - the group of points on this curve and the group of points on Edwards25519 are mathematically independent, which is the property that makes cross-domain signature transfer impossible.
The subgroup order is approximately twice that of Edwards25519's subgroup order (), yielding a marginally larger security margin under Pollard's rho (both curves fall within the ~128-bit security class).
The more significant practical advantage is the cofactor. At (compared to Edwards25519's ), the small-subgroup structure is simpler: fewer low-order points, fewer edge cases in point validation and signature verification, and a smaller cofactor clearing multiplier during verification ( rather than ). The cofactor-8 complications that motivated the Ristretto abstraction for Edwards25519 are reduced - the curve requires standard cofactor clearing but not the additional algebraic machinery needed to safely handle an order-8 cofactor group.
Why curve-level domain separation is required:
Without it, a malicious Secure Web Enclave (SWE) could craft a blinded message that, when signed by the ORK swarm, yields a valid standard Ed25519 signature on an attacker-chosen payload - weaponizing the signing network as a general-purpose signing oracle with no verifier able to distinguish the result from a legitimate signature. Standard domain separation techniques (hash prefixing, DOM flags) operate within the same algebraic group and were found to be malleable by a malicious SWE during adversarial analysis at RMIT University. Curve-level separation places the blind-signature ceremony in a mathematically distinct algebraic structure, making cross-domain signature transfer impossible regardless of SWE behavior. The specialized curve also provides a larger number space and better performance for the blind-signature operation.
Double-Blind Analysis
Blind Toward Signers (ORKs)
The ORKs see only . To extract any useful value, an ORK would need to separate three unknown scalars multiplied together:
- Message is hidden. It is an input to . The ORKs know but not , so cannot compute . Without or , the hash cannot be computed.
- Verification key is hidden. Same reasoning - it is a hash input, never transmitted to ORKs.
- Key morphing scalar is hidden. Multiplied by random in . Recovering requires , held only by the SWE.
Blind Toward Verifier (Vendor)
The vendor receives , , and . It can verify the signature but:
- Master key is hidden. Standard Schnorr DLP hardness.
- Master public key is hidden. The vendor sees . Recovering requires , derived from . The vendor knows but not , so cannot compute or derive .
- Cross-vendor correlation is impossible. Different vendors have different values, producing different , different , and different - all unlinkable under DLP hardness.
Bidirectional Identity Isolation
The derivation chain enforces strict compartmentalization:
- CMK ORKs hold only user key shares (, ). They have no data about which vendors a user is associated with - the identity shares are obfuscated by voucher tags and indistinguishable from random curve points.
- Vendors and VVK ORKs hold and for their own users. They have no knowledge of which CMK ORKs serve their users, and no vendor knows which other vendors their users are associated with.
- Compromised password, limited reach. Even with a correct password, an attacker who compromises the PRISM product can derive for a specific vendor (the one whose voucher was used) - but cannot discover which other vendors the user is associated with, because that requires separate vouchers from separate vendors.
Malicious SWE Analysis
A malicious SWE controls , , , and . After receiving , it can produce a valid signature on any message under any of its choosing - but only on the specialized curve.
Without curve separation: The SWE could set and , producing a valid Ed25519 signature by the user's master key on an attacker-chosen message. This turns the ORK swarm into a general-purpose Ed25519 signing oracle.
With curve separation BEd255475: The signature is valid only on the specialized curve. No standard Ed25519 verifier will accept it. Within the Tide system, a rogue signature for a fraudulent vendor produces an identity bound to that fraudulent vendor's - it cannot impersonate an honest vendor because and are derived from the vendor's own public key via the voucher system.
Standard domain separation techniques (hash prefixing, DOM flags) were evaluated during adversarial analysis at RMIT and found insufficient - they operate within the same algebraic group, and a malicious SWE could craft inputs to bypass them. Curve separation places the ceremony in a distinct algebraic structure, making cross-domain signature transfer impossible regardless of SWE behavior.
Notation Reference
| Symbol | Description |
|---|---|
| Generator point on specialized twisted Edwards curve () | |
| Scalar-point multiplication | |
| SHA-256 unless stated otherwise | |
| , | Joint CMK private key / ORK 's Shamir share |
| User's master public key: | |
| Vendor-specific key morphing scalar: | |
| Vendor-specific authentication public key: | |
| Vendor User ID: | |
| User's CMK projected through vendor's identity space: (after deobfuscation) | |
| Vendor's long-term public key | |
| , | ORK 's nonce scalar / public point: |
| Aggregate nonce point: | |
| Random blinding scalar (SWE-generated) | |
| Schnorr challenge: | |
| Blinded challenge: | |
| Lagrange coefficient for ORK | |
| Token message: | |
| Vendor session public key (DPoP binding) | |
| , , | Total ORKs / threshold / responding ORKs |
Actors & Trust Assumptions
| Actor | Role | Trust Assumption |
|---|---|---|
| Secure Web Enclave | Generates , prepares , aggregates and unblinds partial signatures, performs local verification. | Potentially adversarial. Malicious SWE can produce blind signatures on arbitrary messages - but only on the specialized curve. Cannot weaponize ORK swarm for Ed25519 signing. |
| CMK ORK Swarm | Each computes partial blind signature using its share and committed nonce . | Up to may be malicious. Learns nothing about , , or . |
| Vendor (Verifier) | Verifies standard Schnorr signature against . | Learns and for its own users only. Cannot link to master identity or other vendors. |
Security Properties
| Property | Mechanism | Assumption |
|---|---|---|
| No party holds the signing key | CMK Shamir-shared; never reconstructed; only exists in the SWE | Threshold assumption. DLP hardness on specialized curve |
| No party can forge a token | Forgery requires 14 simultaneous compromises within a single ceremony window | Threshold + DLP |
| Double-blind construction | absorbs challenge, morphing scalar, and blinding factor into a single opaque scalar. ORKs cannot decompose; vendor cannot recover from | DLP hardness. Blinding factor randomness |
| Vendor-unlinkable identity | and derived from ; different vendors yield different, uncorrelatable identifiers | DLP hardness. Voucher-enforced vendor binding |
| Bidirectional identity isolation | CMK ORKs: no vendor metadata. Vendors: no CMK ORK metadata. Compromised password: no vendor discovery beyond the specific voucher used | Structural property |
| Malicious SWE containment | Rogue signatures valid only on specialized curve; rogue identities bound to attacker's own | Curve independence (distinct algebraic groups) |
| Signature domain separation | All blind-signature operations on ; cannot be repurposed as valid | Curve independence |
| Rogue-key resistance | Each ORK computes Lagrange coefficients locally from declared participation set | - |
| Nonce security | Per-ceremony fresh ; cached and destroyed after single use; blinding prevents ORKs from predicting aggregate | Nonce randomness. Cache destruction |
Call Summary
| Call | Direction | Payload (Blind-Signature component) | State Change |
|---|---|---|---|
| Convert | SWE → all ORKs | Receive: , encrypted | ORK caches |
| Authenticate | SWE → participating ORKs | Send: , . Receive: | ORK destroys cache |
Between calls, the SWE recovers identity (Algorithm 1), derives credentials, and prepares the blind message (Algorithm 2).
References
- Komlo, C. & Goldberg, I. (2020). FROST: Flexible Round-Optimized Schnorr Threshold Signatures. SAC 2020.
- Hall, J. L., Hertzog, Y., et al. (2023). Manifesting Unobtainable Secrets: Threshold Elliptic Curve Key Generation using Nested Shamir Secret Sharing. arXiv:2309.00915. Presented at AustMS 2021.
- RMIT University - Double-Blind Threshold Signature Scheme. (Paper pending publication.)
- Tide Developer Documentation: docs.tidecloak.com
Related Protocol Articles:
- Protocol: PRISM - The companion sub-protocol providing distributed password verification.
- Protocol: CMK Authentication - How PRISM and Double-Blind TSS are orchestrated into a 2-round-trip flow.