MVKs for Individual Umbra Addresses
Protocol for deriving Master Viewing Keys for each individual Umbra address using Poseidon hash with index-based domain separation
Protocol Description
The MVK for the -th Umbra address, , is derived using the same PRF construction but with the index for domain separation.
Key Derivation Process
- Input: Master seed (32 bytes)
- Domain Separation: String encoded as a field element
- Index Parameter: Address index for uniqueness
- Hash Function: Poseidon hash function acting as a PRF
- Output: Field element in
Index-Based Uniqueness
Each Umbra address has its own unique MVK derived using:
- The same master seed
- The same domain separator
- A unique index corresponding to the address number
This ensures that:
- Each Umbra address has a distinct MVK
- The same master seed generates different MVKs for different addresses
- MVKs are computationally independent
On-Chain Registration
Each must be registered on-chain before claims can be made from the corresponding Umbra address. This registration:
- Enables Claims: Required before claiming from the -th Umbra address
- Address-Specific: Each Umbra address has its own MVK registration
- Immutable: Once registered, cannot be changed
- Public Commitment: Creates a public commitment without revealing the MVK
Security Analysis
Security Proof: Independence of Umbra MVKs
Goal: Each must be pseudorandom and computationally independent from all other MVKs.
Assumption: Poseidon-as-a-PRF.
Argument: The input to the PRF for each key is unique due to the index and the distinct domain separator strings. For any two distinct indices , the inputs to the PRF are different. Therefore, the outputs and are computationally independent.
Properties
- Independent: Each MVK is computationally independent from others
- Pseudorandom: Each appears as a random field element
- Index-Based: Unique derivation per Umbra address index
- Unlinkable: Cannot be traced back to the master seed
- Address-Specific: Each Umbra address requires its own MVK registration