Key & Address Architecture
Linker and Memo Key Derivation
Protocol for deriving linker and memo keys from Individual Transaction Keys using domain-separated PRF calls
Protocol Description
Each ITK is used as input to a Key Derivation Function (KDF) to produce two final keys using domain-separated PRF calls.
Key Derivation Process
Linker Key Derivation
- Input: Individual Transaction Key
- Domain Separation: String encoded as field element
- Hash Function: Poseidon hash function
- Output: Linker key
Memo Key Derivation
- Input: Individual Transaction Key (same as linker)
- Domain Separation: String encoded as field element
- Hash Function: Poseidon hash function
- Output: Memo key
Domain Separation
The use of distinct domain separator strings ensures:
- Independence: Linker and memo keys are computationally independent
- Uniqueness: Different inputs to the PRF for each key type
- Security: Prevents cross-contamination between key purposes
Key Purposes
Linker Key
- Transaction Linking: Links transactions to specific recipients
- Deposit Linking: Links deposits to Umbra addresses
- Claim Linking: Links claims to specific commitments
- Privacy Preserving: Appears random without the ITK
Memo Key
- Memo Encryption: Used for encrypting transaction memos
- Metadata Protection: Protects sensitive transaction metadata
- Optional Information: Can store additional transaction details
- Independent Security: Separate from linker functionality
Security Analysis
Security Proof: Independence of Linker and Memo Keys
Argument: The use of distinct domain separator strings ensures that the inputs to the PRF are always different for the two derivations. Therefore, the outputs and are computationally independent and pseudorandom to any party not in possession of .
Properties
- Independent: Linker and memo keys are computationally independent
- Pseudorandom: Both appear as random field elements
- ITK-Dependent: Only derivable by holders of the
- Purpose-Specific: Each key has a distinct cryptographic purpose
- Domain-Separated: Uses different domain strings for security