How Cypherock generates your 24-word seed phrase

Seed phrases, introduced by BIP39, are a recovery method that allows an individual to recover their assets in the case of loss of their crypto wallet, or any other case that would inhibit access to the wallet. The very first step in creating a seed phrase is to generate entropy. Entropy in the case of wallets is a large, random binary number that is generated. Entropy and randomness are synonymous in the sense that the more entropy that exists, the less predictable the seed phrase in eventuality is going to be. In the BIP39 standard, there are different lengths of seed phrases that can be generated, most commonly wallets generate 12/18/24 word seed phrases - each with their corresponding lengths of entropy in bits. For example, a 12-word seed phrase has 128 bits of entropy, whereas a 24-word seed phrase will have 256 bits of entropy. In a 24-word seed phrase, there are 2^256 combinations of seed phrases possible. In comparison, there are 2^166 atoms in the universe. So, guessing a 24-word seed phrase is next to impossible. It is due to this magnitude that Cypherock will always generate a 24-word seed phrase.

How entropy is generated in Cypherock X1

Cypherock X1 generates 256-bit entropy by utilizing True Random Number Generators (TRNG) which are FIPS compliant. The TRNG is built into the secure element of the device, as well as the MCU. For further clarification, Cypherock uses the following secure element and MCU respectively: ATECC608 and STM32L4. The secure element, alongside the MCU each generate 32 bytes (256 bits) of entropy which are then combined using the XOR method. The XOR method is a fail-safe designed to ensure that even if either of the components, the MCU or the secure element has a backdoor in their random number generation, the seed phrase generated will still be random, hence avoiding the single point of failure here as well. Normally, in other wallets, the output is stored in a single place - usually the secure element of the device. In Cypherock's case, once the entropy output of each of the chips is combined, Cypherock applies Shamir Secret Sharing at the entropy level to ensure that your seed phrase does not face a single point of failure.

Shamir's Secret Sharing

Shamir's Secret Sharing (SSS) is a secret sharing mechanism for distributing private information into cryptographic parts such that a certain threshold of parts is required to recreate the secret. This is done to avoid any one party involved in the sharing scheme compromising the secret. Cypherock applies SSS at the entropy level during wallet creation. What this means is that the 256 bits of entropy are split into 5 cryptographic parts which are stored in the X1 Vault and the 4 X1 cards. A threshold of 2/5 is applied, meaning that any two - X1 card and X1 Vault, or 2 X1 cards - can be used in conjunction to reveal the secret, which in this case would be the seed phrase.