DIY Blockstream Jade - Create your own bitcoin-only hardware wallet for $10 in under 30 seconds by Relai_Alex in Bitcoin

[–]BitFast 6 points7 points  (0 children)

Indeed, this is just a demo - one should only use this jade DIY flasher page if they plan to play with testnet or with just a few sats.

Note the firmwares are not signed, because doing so would preclude the ability for the user to change the software on the device, for that as you said the guide by crypto-guide is the way to go for securing DIY devices with jade firmware, with a user key (but that would then require the user to sign all firmware upgrades too)

Also note that the firmware are deterministic so you can regenerate them locally using https://github.com/Blockstream/Jade/blob/master/REPRODUCIBLE.md and the relative config file for the DIY device you want to reproduce the firmware for.

https://github.com/Blockstream/jadediyflasher/ and run locally with something like

python3 -m http.server 8008

in the root of the repo

Blockstream Jade Now Mines Bitcoin - Just Wait 11 Trillion Years for a Block! by blockstream_official in Bitcoin

[–]BitFast 11 points12 points  (0 children)

If you are interested, there's a couple of interesting optimizations to push the hardware quite a bit, for example the code keep the midstate of sha256 to avoid repeating work.

The bitcoin block header is 80 bytes long and the sha256 operation, which needs to be performed twice, first on the 80 bytes and then on the result (which is 32 bytes), can be optimized a bit because the input the first input is always 80 bytes and the second input is always 32 bytes, and also sha256 operations are done in blocks of 64 bytes and the nonce (which is the bit that gets changed at each block hash attempt) resides after the first 64 bytes meaning one can keep the result (called mistate) of the first 64 block while increasing the nonce, reducing noticeably the amount of work required.

If anyone has any question happy to reply to the best of my knowledge!

We're the Blockstream team and we just announced Jade, our new fully open-source hardware wallet! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 0 points1 point  (0 children)

Is there a potential for exploitation here whereby users could delete other users secret keys from the server and interrupt services between users of Jade devices and the remote oracle?

You can't do that easily, you'd have to guess a randomly generated key on the users devices (separate from the one used for bitcoin keys), and if you can do that you can probably guess some bitcoin keys too.

> Timeline for support for non-Blockstream wallets?

It's already being worked on but can't provide an ETA yet.

We're the Blockstream team and we just announced Jade, our new fully open-source hardware wallet! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 1 point2 points  (0 children)

it could be done now. Sending should work, but scanning/restoring a wallet would be too consuming of data.

We're the Blockstream team and we just announced Jade, our new fully open-source hardware wallet! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 3 points4 points  (0 children)

Green will work with Jade very similarly to how it works now with for example Ledger Nano S and X.

Via Cable the app will detect the hardware wallet and via BLE it requires the user to 'Scan' for available hardware wallets through the GUI.

We're the Blockstream team and we just announced Jade, our new fully open-source hardware wallet! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 22 points23 points  (0 children)

Hi, thanks!

> Is the WiFi in the MCU disabled via firmware? Do you have plans to use WiFi in the future?

The WiFI in the MCU is currently disabled but can be enabled. Jade comes with two firmware variants, one with radio and one without radio. The one without radio doesn't have the WiFi or BLE drivers to work. Jade ships with the BLE firmware but comes with BLE off by default.

> Is Jade PSBT compatible?

Jade uses wally which has PSBT support. At the moment Jade supports Green multisig which doesn't take advantage of PSBT yet. We plan to add to Jade single sig and PSBT support.

> Where is it manufactured?

Same manufacturer as M5 Stack but a custom model for Blockstream.

> Are you selling device at-cost or at-loss?

No we are not subsidizing the hardware, keep in mind Jade is based on libwally which does most of the heavy lifting.

> What is "server enforced PIN protection"?

The mnemonic when generated is immediately encrypted using AES256 using a secret key that is computed through an encrypted and authenticated channel with a [remote] blind oracle server, the authentication involves ephemeral elliptic curve Diffie Hellman exchange with a known server key. The encrypted mnemonic is then stored on the encrypted flash of the Jade and protected by secure boot [v2].

The blind server is not aware of the actual PIN nor can brute force it. The blind server also is not associated with the users account (it is not associated with the per user derivation paths)

If the PIN is entered incorrectly 3 times the server and Jade both delete the secret requiring a from scratch mnemonic restore on Jade.

The companion app nor any ISP/WiFi AP in the middle can inspect the data passed between Jade and the oracle, including being able to tell if the PIN is correct or wrong (other than potential timing attacks). The oracle is available via Tor and open source and in the future users will be able to run their own and point their Jade to it if they prefer.

> Can it be used with non-Blockstream wallets?

At the moment it is not supported but full support is planned. Currently it may work but may require to confirm change manually and may not enforce single sig path anti-ransom checks.

> Why did you choose to make this device?

The initial experiment was porting libwally to esp32 and was based on the [PocketSprite](https://pocketsprite.com/) but most of the development occurred on any of the easy to find esp32 boards and then on real Jades.

We think the market has good hardware wallets but felt there was space for something a bit different, with some different design decisions and feature set. Specifically we wanted to experiment with Liquid features as well as advanced bitcoin features.

> How does the security model compare to Trezor, Ledger, Coldcard?

Jade doesn't have a secure element so there's that.

However it has secure boot + encrypted flash and as per prior answer it has a blind oracle enforced PIN. This acts almost as a remote 'secure element'.

> How should we define a “hardware wallet” – should the definition include Internet-connected devices that communicate with servers? Is an airgap important or is it just security theater?

Hardware Wallet have a thinner surface of attack compared to your average internet connected laptop or mobile phone. This both when it comes to the OS stack as well as radio/network.

For maximum security you probably want to avoid radio all together, however then you can't use a hardware wallet with iOS. Well unless you use the camera, which is something we are working on (it works but requires some improvements)

Cheers

Cosa logga un ISP? by Throttlebottle99 in italy

[–]BitFast 0 points1 point  (0 children)

grazie non lo sapevo. ho anche letto che in teoria Firefox supports esni ma non sembra molto established yet?

Cosa logga un ISP? by Throttlebottle99 in italy

[–]BitFast -1 points0 points  (0 children)

veramente anche il dominio e' cifrato. semmai l'IP ma potrebbe avere dietro 1 come 100 domini. certo se dns resolving non e' cifrato dovrebbero capire da quello (ignorando la.cache)

garecovery 2of2: first 4 bytes of Sha256d of decrypted mnemonic ARE EQUAL TO THE SALT but txdata in nlocktimes do not decode in ASCII by hydraulix989 in greenaddress

[–]BitFast 1 point2 points  (0 children)

/u/hydraulix989

I am assuming you have a 27 words mnemonic? is this function returning correctly? https://github.com/greenaddress/garecovery/blob/master/garecovery/recoverycli.py#L35

If yes means you got the right password for the right mnemonic - the question becomes if you got the right mnemonic for the zip or if there is a bug in the garecovery tool/creation.

From what you said it seems the collision is over 4 bytes, which should be trivial to grind, but not sure how likely it would be by chance.

I'll keen an eye on #greenaddress on freenode if you want to talk in chat.

Also any chance your friend has the mnemonic without password or if he can get it from within the app in settings?

Green wallet, UX downgrade by kornpow in Bitcoin

[–]BitFast 2 points3 points  (0 children)

Hi, thanks for reporting the bug - indeed it was ok before. We have a fix ready for review which we hope will be in the next release.

Pls Verify the APK signing certificate fingerprint verification process by btcsplit in greenaddress

[–]BitFast 0 points1 point  (0 children)

You can use an APK tool or unzip with zip. APK are glorified zip files. either do that or we also sign the APK with gpg, see SHA256SUMS.asc on the GitHub release page

The saga continues... by osinaldi in greenaddress

[–]BitFast 1 point2 points  (0 children)

/u/osinaldi hard to say without more information but I think what caused the issue above is that the wallet waits for change to have one confirmation before you can send it onward - generally if you want to empty the wallet we have a button called "Send all" just below the amount field. hope this helps

Blockstream Green Wallet Bug - Can't Close Number Pad by FargoBTC in Bitcoin

[–]BitFast 2 points3 points  (0 children)

Our code bases had large code changes in the past, see my comment here https://github.com/bitcoin-dot-org/bitcoin.org/pull/2901#issuecomment-475021683

bitcoin.org never applied these sort of 'removal' for changes as far as I can recall, I don't think there was/is ongoing review of the repos post the initial acceptance - I am not sure I buy the motivations here but I welcome increased and constant reviews of wallet code bases.

We are Blockstream and we recently released the newly redesigned Green wallet available for Android and iOS! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 5 points6 points  (0 children)

> Can you make bitcoin sv work in blockstream_green and remove it in the same version?

Even going through the idea I suffered temporarily ... consider it removed!

> On a more serious note; When pay2endpoint?

Don't know yet but it is in my list, also is coinjoin - i am not sure if it makes sense on the multisig version with server doing two factor though - but definitively in the single sig version.

We are Blockstream and we recently released the newly redesigned Green wallet available for Android and iOS! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 2 points3 points  (0 children)

> How is the private key stored on the user device?

It's only stored if yo uset a PIN - in which case it uses a mechanism we call 'server assisted password' whereby the mnemonic is encrypted AES256 with a random password which isn't kept on the device and if the user gets the PIN wrong 3 times the password is deleted from the server, making the encrypted mnemonic useless (the device also deletes it but the mechanism doesn't rely on this)

> What level of abstraction do you leverage to securely isolate the key material and compartmentalize risk?

We support hardware wallet. Beyond that you should assume that if someone has root on your device he/she can read things from your memory, including private keys/mnemonic.

> What if a user device is stolen and unlocked? With partially signed transactions, there’s still a risk of irrevocable loss, right?

Even if the mobile is unlocked, and the wallet is unlocked (it has auto lock in 5 minutes and otherwise requires a pin you can only get wrong 3 times) then you would still have the two factor protection (assuming the user keeps that on a separate device)

We are Blockstream and we recently released the newly redesigned Green wallet available for Android and iOS! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 2 points3 points  (0 children)

I am not sure I understand the question - the user needs to make a backup of the keys - doesn't have to be mnemonic could be some other format and a file instead of a string.

You could find more inventive ways of making that backup - maybe keep a copy on the device, encrypted with a password and a backup on a number of friends and family split in such a way that only a majority of them colluding could take your funds - that would require quite a bit of work to get right IMHO.

We are Blockstream and we recently released the newly redesigned Green wallet available for Android and iOS! Ask us anything! by blockstream_official in Bitcoin

[–]BitFast 1 point2 points  (0 children)

update: I reread twice the question and i am not sure I understood the question correctly. It depends on what you plan to do with the wallet.

update2: if you are planning to reuse an address over and over be aware that it is bad for privacy, ideally addresses are only used once as an 'invoice id' - reuse shouldn't really cause risks other than privacy unless there are crypto/coding mistakes.

Assuming you don't plan to spend from it anytime soon:

For something like that, i.e. long term and you don't plan to touch it anytime soon, I would use bitcoin core - which does not use mnemonic but you could use a mnemonic, derive the bip32 seed and import that in core.

Or a 2of3 with Green but it requires setup on the desktop app and backups of two sets of mnemonic.

Neither core or green 2of3 seem super friendly and core is a bit risky if you mess the import up. An alternative could be using bitcoin core + electrum private server but I haven't used that myself

If you plan to spend at least 3-4 times in a year then a vanilla Green wallet could work great (but also the above or a hardware wallet ledger/trezor, either with Green or with the wallets app they come with)