Managing private keys securely is critical to the safety of user assets. Capsule employs advanced distributed Multi-Party Computation (MPC) leveraging distributed key generation (DKG) and distributed signing to ensure that user keys are never all stored in a single location susceptible to attack, as well as that neither applications nor Capsule have access to user private keys. This also allows Capsule to be able to perform key refreshes & rotation.
Capsule's key management system relies on a 2-of-2 MPC system comprised of a Device Key and a Cloud Key. In addition to these, an Enclave Key is also generated.
The Device Key(s) are custodied by the user, acting like a hot wallet and are accessible in the browser. These keys provide the user with immediate control over their assets while interacting with crypto applications.
The Cloud Key is managed by Capsule and stored securely in cloud hardware-security modules (HSMs). This setup provides a secure off-device backup of the user's key, safeguarding the assets even in the event of device loss or compromise.
The Enclave Key
Most modern smartphones come standard with hardware secure enclaves, a dedicated area within the device's main processor used for storing and protecting sensitive data. However, keys generated in these enclaves primarily support the secp256r1 elliptic curve, contrasting with the secp256k1 curve used by most modern blockchains.
To navigate around this issue, Capsule generates a separate Enclave Key. This key is used to authorize access to the Cloud Key, enabling biometric authentication and signing on the secp256k1 curve. This process ensures users can leverage their device's hardware security features while interacting seamlessly with blockchain networks.
Capsule's approach to key management delivers a multi-layered security structure. It leverages the benefits of both hot and cold storage solutions while offering a broad range of recovery options. The end result is a platform that puts user security at the forefront, without sacrificing usability or functionality.