Digital identity is a new reality, it appears complex or wird because we have no practice on that subject. The goal of VIT is to provide a few solutions to protect your identiy without the needs of a trusted thirdparties.
A Digital Identity is simply a 32-bytes large number, often represented as a mnemonic of 12/15/24 words (to facilitate human memorization of words instead of numbers). With this large number, you are able to generate an infinite number of Wallets and public identities.
Okay, but what it means for a day-to-day life? With this secret large number, you can generate multiple digital identities: one for cash transactions, one to collect funds for a birthday, some for social networks, some are publics, some are privates.
To achieve that goal, we built a simple and deterministic API as a frictionless solution to manage your own private mnemonic.
To increase the security of your identity, we break the Mnemonic phrase (the secret large number) into 3 separate pieces (called Horcruxes). You need at least two pieces to reconstitute your identity. You decide where you want to store each Horcrux. We recommend you keep them in separate places/locations. We provide a few alternatives (do not keep all of them on trusted third parties):
- One Horcrux is stored on the device.
- One or two Horcruxes are stored on printed paper and kept in separate places/locations.
- One is stored on our Vault SmartContract, a digital and secure place.
Before storing Horcruxes on your devices or on public ledgers, we use our API to protect the content.
- Secret-Leafs (A/B) are generated client-side with the preimage of a pseudo, password, and POW.
The POW element is the puzzle result of user sha256(username, password). It's a simple way to protect against DoS attacks.- The POW element is a PBKDF2 of username and password, it's a simple way to protect against DoS attacks.
- Users can also choose to store the pseudo/password form fields on a third-party service.
- Public-Leafs (A/B) are derivated images of Secret-Leafs (A/B), These values can be used for specific online features, such as storing a Horcrux in a public blockchain.
- Public-Leaf0 is the result of sha256(leaf1, leaf2). This publicKey (leaf0) will be used as address to store a Horcrux.
This how identity is used to prepare Horcruxes of our Identity.
We propose the usage of Shamir Shared Secret (SSS) to protect your Mnemonic without the problem of single point of security. We decide to use as source of SSS the entropy that produce the Mnemonic. Shamir split entropy in 3 separate pieces (called Horcruxes). Your need at least two pieces to reconstitute deterministicaly the same Mnemonic. We recomend you keep them in separate places/locations: