Hello, co-founder of Frostsnap here, thanks for making this thread and for the discussion!
there is no wonder that other apps which know nothing about FROST technique will not be able to work with Frostsnap devices.
This is true (for now). We're the first team to ship FROST in production. We implemented FROST, tailored it for bitcoin UX, and designed custom hardware around it. It'll take some time for the rest of the ecosystem to adopt, and we look forward to seeing that happen.
For your questions:
No secure element in the devicesIn some way this stems from one of our most deliberate design decisions: no PINs nor biometrics. Secure elements typically function through PIN verification: the PIN unlocks a decryption key which gets passed to the main MCU, and the secret is decrypted in regular memory on the microcontroller. Note: there is a widespread misunderstanding that signing happens inside the secure element. The SE is really just a PIN-gated key locker.
For Frostsnap, do we even want PINs? We decided no. PINs are another secret you have to remember, back up, and hand off. They brick devices when forgotten. They complicate inheritance. And they're trivially extractable under duress. We didn't want to bolt on a second secret to protect the first -- we wanted to eliminate the need for it.
We have built the entire security model to focus on one simple question:
Can you get physical access to your threshold of devices?Can an attacker? No PINs to forget, no biometrics to be unavailable for inheritance.
That said -- device secrets are not sitting around unencrypted on the device. Each device's share is encrypted using a key derived from the "root public key," and that decryption key lives in the secure element of your phone. Phone SEs are far more battle-tested than anything in the hardware wallet space. So to extract a secret from a device through physical attacks, the attacker would need to defeat the eFuse protections on the device AND break the phone's SE.
Phone malwareWhat if the decryption key is compromised by malware on the phone?
Even if someone did manage to get the decryption key off your phone, it's not a signing key that can move bitcoin. They'd still need access to your threshold of device keys to undergo a signing session. In a geographically distributed device setting, the decryption key alone gets an attacker essentially nothing actionable.
Recovery onto a new phonehow do they arrange the recovery procedure in case the given phone is lost?
why to encrypt shares with the key which can be reconstructed from media that hold these encrypted shares?
We've devised an elegant solution here. Any threshold number of devices (or backups) can share the
public images of their secret shares, and interpolating them rederives the root public key. So restoring to a new phone is straightforward: connect 2-of-3 devices to the new phone -> the phone learns the root public key -> it can now provide this key (to the device) to decrypt device shares during signing sessions.
The reason we encrypt shares with a key reconstructible from those same shares is that it collapses security and recovery into a single requirement: do you have t-of-n devices? That's what you need to spend, and that's what you need to recover. One simple rule with no extra secrets to manage separately.
PricingFrostsnap devices are priced in bitcoin. The fiat prices have shifted if you'd like to take another look.
Single manufacturer riskWe've thought hard about this and our approach is to involve your phone in every sensitive operation, acting as a second hardware manufacturer. During wallet creation, the phone verifiably contributes entropy to the distributed key generation process. During signing, the phone contributes nonces, which prevents exfiltration attacks like Dark Skippy.
So even if every single Frostsnap device were compromised, the phone (completely different manufacturer, different supply chain) would also need to be compromised. You're getting multi-vendor security without needing to juggle different wallets and interfaces.
The device firmware can be reproduced deterministically (verifying our releases), and the app is open source.
USB durabilityHas anyone wondered if the USB port will be able to take the strain from the weight of all these devices under it, or is this some sort of magnetic connection?
Haven't had a single breakage yet! The cases align tightly so there isn't much room for the connectors to bend, and we designed the board+case with a forgiving amount of wiggle room without feeling loose. That said, you only need the full daisy-chain connected during initial wallet creation. After that, signing only requires connecting devices one-at-a-time up to your threshold.
For anyone who wants to look deeper into any of this, especially the reasoning behind no PINs, no secure elements, and no airgap, see
our design decisions writeup.
Let me know of any other questions!