Master Seed Generation
Protocol description and security analysis for generating the master seed from Solana wallet signature
The root of a user's identity within the Umbra protocol is a master seed, derived from their primary Solana wallet. The process is initiated by having the user sign a static, human-readable message, , with their Solana secret key, .
Signing Message
The signing message is a static, human-readable string:
M_sign = "UmbraPrivacy - Do NOT sign this message unless you are using a product by the Umbra Privacy Team or an integration with Umbra Privacy"
This operation produces a standard EdDSA signature, . The full 64 bytes of the signature are then hashed using Keccak-256 to produce the final 32-byte master seed, .
This master seed is the single secret from which all other keys and seeds within the Umbra protocol are deterministically derived.
Security Analysis
Security Proof: Pseudorandomness of the Master Seed
Goal: The master seed must be computationally indistinguishable from a uniformly random 32-byte string to any adversary who does not possess .
Assumptions:
- The EdDSA signature scheme is EUF-CMA (Existentially Unforgeable under a Chosen Message Attack)
- Keccak-256 is modeled as a Random Oracle (RO)
Argument: An adversary without is computationally unable to produce the valid signature due to EUF-CMA security. From the perspective of such an adversary, is an opaque, high-entropy value. When this unknown value is used as input to the Random Oracle, the output is, by definition, a uniformly random value.
Key Properties
- Deterministic: The same Solana keypair will always generate the same master seed
- Unforgeable: Only the holder of can generate
- High Entropy: The master seed has 256 bits of entropy from the signature
- Single Source: All subsequent keys derive from this one master seed