Personas

A persona is an identity component that is defined by a set of cryptographic certificates. The persona concept represents the technical foundation of digital identity applications. Personas are self-created and self-maintained through the use of the blockchain and additional public-key cryptography operations.

Note that the concept of a persona is described as an identity component and not a digital identity. Whereas a digital identity is a contextual, social construct that entails the association of a digital identifier and other attributes with a real-world person, a persona merely fulfills the role of the digital identifier.

A Keychain user may create and maintain multiple personas, each of which may be used in different application and social contexts.

Active Persona

Most keychain gateway operations, such as encrypting and decrypting messages or adding and removing contacts, require a persona. The gateway treats the target persona as a context rather than a parameter to these methods, meaning to perform them there must be an "active persona". The gateway exposes operations to retrieve all personas, get the active persona, and set it from the list of available ones. In this manner multiple personas can exist in a single gateway and have different contacts or be responsible for different actions.

Persona Life Cycle

The persona life cycle encompasses several states and state transitions. These are all automatically handled within Keychain.

Creation

When the persona is created, application-level public and private keys for it are created within Keychain. This is a local operation to the device running the gateway.


Created


Funding

The public keys associated with the persona must be stored in the layer-1 store (the blockchain). Blockchain transactions typically require a fee for processing, so the funding phase of persona creation involves obtaining the required protocol tokens, if/when necessary, from a faucet/wallet.


Funded


Broadcasting

Once the internal wallet for the gateway receives sufficient funds for its blockchain transaction, the transaction is constructed internally and broadcasted to the blockchain through the blockchain query servers.


Broadcasted


Confirmation

The persona’s transactions are confirmed on the blockchain, and the gateway receives and records the confirmation meta data locally.


Confirmed


Expiration

When the persona certificate approaches expiration, the state goes to EXPIRING and finally once its expiration is passed it goes to EXPIRED. Renewing certificates is possible through the gateway, which resets the expiration to a future date.