Open source with secure elements
Open-source technology has spurred innovation and has also allowed various applications to maintain security as well as garner interest from the developer community to further the technology. In the world of web3 wallets, open-source technology especially is important since verifiability around key operations is a primary concern. Although open-source software has been a boon, there are security concerns that come with a project being open-source - especially when it comes to cryptocurrency wallets, where sensitive information could be at risk.
There are essentially three main risks that come with using open-source software from a security perspective:
- 1.Open-source software development is decentralized. This means that there is essentially no authority that is ensuring the safety of any given fork of the software.
- 2.Crypto wallets inherently access sensitive information, and vulnerabilities discovered in the source code can be exploited by attackers before a patch is released.
- 3.Electronic chips that allow the firmware to be open-source generally lack security measures that can be used to secure data stored on them.
To mitigate security risks, crypto wallets take the closed-source approach and utilize a component called a secure element that is required to generate and secure private keys. For the most part, secure elements require NDAs between the wallet company and the manufacturer of the component which restricts wallet companies from making their wallet code open-source. However, the risk of closed source systems is also valid, where the company could be privy to a zero-day attack. So, how can a system be open-source, but also be highly secure?
Cypherock X1 has a unique architecture when it comes to managing private keys because, unlike other wallets, the private key does not suffer from a single point of failure. Cypherock uses an algorithm called Shamir Secret Sharing that splits the private key upon wallet creation into 5 cryptographic parts, which are independently stored on 5 hardware components - the X1 Vault and 4 X1 cards. Each individual component has a secure element, but their nature in regard to NDAs is different. The X1 Vault utilizes a secure element called ATECC608A which does not require NDAs to be signed by Cypherock whereas, the X1 cards possess an EAL6+ secure element which does require NDAs to be signed by Cypherock but is significantly proven to be more secure than ATECC608A.
The advantage of this architecture is that Cypherock can make the X1 Vault code open for review while keeping the code for the X1 cards proprietary. Making the X1 Vault open source ensures that anyone can verify the wallet operations performed with the private keys while ensuring that 4 out of 5 parts are stored securely on the 4 X1 cards which have EAL 6+ secure elements. Hence, any associated risks of being open source become futile for the Crypto private keys secured through Cypherock. Since the private keys are split into the X1 Vault alongside the X1 cards, keeping the X1 card code proprietary, and not upgradeable helps Cypherock be open source, as well as secure.