How BC Vault is building a hardware wallet from scratch
BC Vault is a truly revolutionary crypto wallet from REAL SECURITY. It allows you to securely manage all your cryptocurrencies in one application without any compromises.
However, we didn’t get there overnight, so, we’d like to share our design process from start to finish.
Step 1 – Analyze the market
We analyzed the market and tested existing products, what we found was:
- The current products are secure
- The current products are difficult to use and clunky
- The current products don’t offer some critical features
- The current products rely on browsers to function
- The current products use an extremely limited number of deterministic wallets
- The current products use small, hard to read displays
- The current products have desktop software that’s very inconvenient for normal use.
From these conclusions we decided that:
- BC Vault must be just as, if not more secure than any current product
- BC Vault must be easy to use
- BC Vault must simplify adoption for users new to cryptocurrency
- BC Vault must be visually appealing, not look like a USB stick or a garage door key
- The BC Vault Application must do as much work as possible for the user, save the user time
- BC Vault must work as the user expects
After several meetings we got to work.
Step 2 – Divide and Conquer
Immediately we divided the users into two types, knowledgeable users and novices. Our goal from then on was to make a product that both types of users would know how to use. We made it as easy as possible for novices, but we kept in advanced features that we know users more familiar with crypto look for. Everything had to be intuitive and behave as an average user expected. We worked with experienced designers to create a beautiful GUI that is also incredibly functional and practical.
Some very advanced features were left until we decide how best to implement them, to not clutter the user interface, but are otherwise functional. These features may be coming in future updates:
- Custom transaction inputs
- Custom transaction outputs
- Custom transaction details
- Smart contract parameters
- Searching using regular expressions
Step 3 – Prototype phase
Prototypes are crucial for a successful product, especially in terms of design. Our first designs were printed on Alen’s personal 3D printer, which allowed us to check how the prototype felt in the hands and settle on a user input system.
Based on this input we prepared a circuit and 3d model of the enclosure ready for industrial production.
Step 4 – Hardware Development
Hardware development was quite involved, there were many decisions we needed to make, each with its own implications for BC Vault. Each of these bullet points will be explained in detail in coming posts.
- Considering e-paper
- Testing screens
- Testing early electronics
- Handling user input on the device
- Deciding display size
- Flash vs FeRAM
- Random number generation
- Backup system – user friendly and secure for a huge number of anonymous wallets
- The great USB-C decision
- Dual firmware, safe & secure update
- The open source question
- On ‘secure’ chips
One of the first major hurdles was one we came across while testing the device, which at that time used flash memory, like Trezor. We found a problem with testing huge amounts of different wallets. Not only was flash inconvenient from a hardware standpoint (block-only control amongst others) but it also stopped functioning after an unacceptable amount of writed. This would lower the lifespan of BC Vault tremendously, so we decided on FeRAM. This provided us with several advantages from a hardware point of view, it allowed our hardware experts greater control over device storage, and allowed us to provide incredible value for you, the customer.
BC Vault is unique in the fact that the device itself can be stored nearly indefinitely, i.e. in a safe, without any data loss from being unpowered, over 200 years at 35C or 10 years at 85C(although we don’t really recommend storing it in a place that hot!)! That gives you gives you longer term storage than Flash, Hard drives, Solid state drives, floppy disks and Magnetic tapes, all for free! We are planning on making a section of the FeRAM accessible for user storage sometime after release!
Randomness was an issue, specifically getting enough entropy to make user’s private keys really secure. We initially used a game that the user would play upon initializing the device, from which we would obtain user input timings as the source of entropy. Unfortunately users would have to play for an extended period of time before we could be sure of enough variations. Searching the market for existing true random number generators proved futile, the only ones that existed were either bulky, badly documented, or available by custom order only. We decided on an accelerometer instead as it provides a very high degree of randomness, and as a bonus feels much more natural to use.
Step 5 – Release
We are very proud to finally announce BC Vault to the whole wide world! As it stands right now, the hardware is finalized and ready for production and all that remains is to test the software and firmware to make sure they meet our rigorous security standards. We hope to have convinced you of the merits of BC Vault and that you are as excited as we are about the upcoming October 1st release!
Feedback & Learn more
If you’d like to learn more about BC Vault or the development that went into BC Vault, you can read some of the other entries in this blog. You can also follow us on Twitter and Facebook for instant updates when they happen. If you’re interested in behind-the-scenes photos and videos you can check our Instagram!