Status: OPEN proposal. P0/P1/P2 are undefined discussion labels, not adopted profiles. IAM 1.1 still specifies identity KDF v1. This document changes no parameters, namespaces, keys, wire rules or test-vector expectations.
Choose the identity-derivation design before a product issues real identities under it. Confirm whether any production keys, records, integrations or recovery instructions already depend on the published derivation; this repository is not an authoritative deployment inventory.
If no real identities depend on it, a new design can avoid migrating existing users’ keys. That does not remove versioning and implementation costs. A published derivation still needs an unambiguous name, exact inputs, archived old rules and new vectors. Wire v2 identifies record-validation rules; it does not prove how a signing key was derived.
Changing the KDF inputs or parameters generally changes the master seed and root public key. An old public key cannot supply the missing incantation or master seed to a migration tool. Users retaining the required secrets can derive a new key, but that key is a new identity. Software must not silently relabel the result as the old identity.
KDF v1 uses Argon2id version 0x13, 65536 KiB total memory, three passes,
parallelism 1, 32 output bytes, empty optional secret/associated data, the
name-derived salt and HKDF namespace given in IAM.md.
There are no P0/P1/P2 parameter definitions or target-device measurements in this repository. Do not assume three profiles are necessary, map them to “bots / corporations / states”, or treat a profile label as a security result. First establish the user-secret model, intended devices, recovery workflow and acceptable latency/memory budget. A single well-defined profile remains a candidate if multiple profiles have no justified use cases.
A PR proposing profiles must specify:
Argon2 parameters are inputs to the derivation itself, including parallelism; they cannot be locally retuned while expecting the same output. RFC 9106 §3.2 defines that binding. HKDF domain separation binds uses of key material, but does not add entropy to the input secret. RFC 5869 §3
The current identity model is deliberate: an identity is its root public key. Changing that key creates a new identity. Existing edges retain their original key endpoints; social recovery requests new acceptances rather than transferring old trust automatically. Device replacement through personal ACCEPT/REVOKE does not rotate the owner’s identity.
A stable random root seed encrypted under a changeable password-derived key would be a different design. It can change password protection without changing the root, but requires stored recovery material and an explicitly specified encryption/authentication and backup scheme. It must not be introduced silently as if it were the current stateless phrase-to-identity derivation.
Submit concrete alternatives through proposals/ with a threat-model mapping,
measurements and recovery vectors. A proposal is not adopted because a label
exists or a sample benchmark passes. See SECURITY.md and the
threat model for the current protection boundaries.