Pages:
Author

Topic: BitSafe Hardware Wallet Development (Read 11214 times)

sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
March 21, 2013, 11:47:06 AM
#46
Bitsafe Hardware Wallet Development:

New Thread with new discussion and direction:
https://bitcointalksearch.org/topic/ann-bitsafe-hardware-wallet-now-shipping-152517
member
Activity: 78
Merit: 11
Chris Chua
January 04, 2013, 06:06:00 AM
#45
The different generators have their own advantages and disadvantages.

Could you please elaborate more on this topic? Just to make sure we are on the same page here ...

Here's my current understanding. It's subject to change, since analog circuits can work differently in the "real world" vs. theory.

Atmel CryptoAuthentication chip
Good: Tiny, integrated solution. This means board layout is easy (no touchy analog sections to worry about) and device size is a bit smaller. It is very likely to Just Work.
Bad: As slush has pointed out, Atmel don't say how it works. They say it's "high-quality" but don't justify it. There's no access to the raw samples, meaning that it could fail to produce enough real entropy, though it still outputs seemingly random bits.

Thermal noise source
Good: the existence of thermal noise is guaranteed by fundamental physics. The amplitude can be reasonably well estimated a priori. The particular design used (a differential amplifier) rejects common-mode noise somewhat. Noise characteristics are simple (white, Gaussian).
Bad: requires a lot of gain, which can provoke oscillation. High-valued resistors mean that it's sensitive to parasitic capacitance; this can cause bandwidth, unwanted feedback or (external) noise feedthrough problems. Requires board space for 3 op amps.

Zener noise source from zener diode
Good: components widely available. Requires less op amps than thermal noise source. Noise characteristics are probably distinctive, which makes it easier to distinguish zener noise from everything else.
Bad: noise amplitude is tiny, requiring even more gain than thermal noise source. Noise amplitude probably varies between components, complicating mass production. While zener noise is generally unavoidable, most manufacturers strive to reduce it.

Zener noise source from voltage reference
Good: Louder than zener diode. Probably more consistent than zener diode.
Bad: Once again, noise is usually unwanted by circuit designers, so chip designers try to minimise it. We had to look around for a chip which was noisy enough (the LM385 is used, which is an old chip). Voltage references aren't designed to be used as noise sources: they're designed to be used as voltage references. Slightly more expensive and bigger than zener diode.

Oh, I forgot this one: most microcontrollers have multiple independent oscillators (eg. crystal oscillator and internal RC oscillator). If both oscillators are run simultaneously, they will drift apart randomly. This drift can be measured using a suitable interrupt handler.

Drifting simultaneous oscillators
Good: you get it for "free": no external components required.
Bad: uncertain quality of random bits. Throughput is quite slow - last time I tried, I was only able to get a few hundred bits of (unknown quality) entropy per second.

Some resources:
The zener noise source circuit we borrowed from: https://mywebspace.wisc.edu/lnmaurer/web/minirng/RandomBit.jpg
Comparison of noise sources: http://ciphersbyritter.com/RADELECT/MEASNOIS/NOISMEA1.HTM
member
Activity: 85
Merit: 10
1h79nc
January 04, 2013, 01:46:34 AM
#44
That's a cool rendering of a hardware wallet.
The full rant is here: Yet Another Hardware Wallet Proposal? after a lot of thinking about viable mass-market solutions.

Quote
You mentioned you had a stencil printer; when I have everything ready to send, would you trade a stencil for a PCB and components?
Not sure how much a stencil runs; so, maybe that is unreasonable.
If you wanted to help in assembly, I would love to pass the savings on to others. 
We have this printer, for applying the paste evenly. We currently buy stainless steel stencils from Stencils Unlimited for $125 that work very well. You can also get cheaper stencils in Mylar from them, and also from Pololu. I haven't tried the mylar stuff, but it is probably suitable.

I'm pretty sure I could help out with the assembly. Maybe a trial run of 5 boards or so on a weekend to see how it goes? How many PCBs are you planning on ordering? Are you going to be panelizing them?
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
January 03, 2013, 03:56:14 PM
#43
I'm not sure if the ICD3 will work. I'll have to look into it. If it does, you will still need an RJ-45 to a 6-pin female pin header adapter.
It looks like the ICD3 will support the PIC32 from microchip's website. Also, I have made lots of custom programming headers, since RJ-11 is a horrible choice for a programming header.

Quote
Your offer to help assembly is extremely appreciated. Stencil printing too; I'm envious, but this is really great. Whereabouts in the world you located? I'm in Arizona.

I'm in TX, whois paybitcoin.com + google if you must know  Wink... At work we do a bunch of prototyping and custom engineering work. Mostly with Linux/Android now on armv7a using CPU system-on-modules since our apps got more complex, but used to be all PIC18. We started to move off to other architectures (Cortex-M3) since MPLAB is such a bad IDE, and mostly the 4096 byte RAM limit with PIC18s. I haven't used the PIC24 or PIC32 though.


That's a cool rendering of a hardware wallet.

You mentioned you had a stencil printer; when I have everything ready to send, would you trade a stencil for a PCB and components?
Not sure how much a stencil runs; so, maybe that is unreasonable.
If you wanted to help in assembly, I would love to pass the savings on to others. 
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
January 03, 2013, 03:39:33 PM
#42
2) This price does not include a PicKit 3 which is a must at this early level of development: $45.00 + Shipping
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164130

It is possible to avoid using a PicKit 3. If the dev board is loaded with an appropriate bootloader (eg. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en554836), it should be possible to program the device using the on-board USB port.

What the PicKit3 is useful for, is if:
  • You want to develop or modify the bootloader itself (if you mess up the bootloader, you could brick the PIC32, in which case you need a PicKit3 to recover).
  • You want good integration with MPLAB.
  • You want to use debugging features like breakpoints, watches etc.

This is why it is so nice working with "someone" vs. alone. I knew it was possible to make a bootloader app with firmware, but I had no idea how feasible it was to produce in the short term. How long do you think it would take to have it ready and working? Looks much easier than I thought with that app note and all the source code available. This is really great news.
As soon as there is a working boot loader prototype, I will surely make it available to order.

 
sr. member
Activity: 574
Merit: 250
January 03, 2013, 03:15:14 PM
#41


 This is very neat and I'll more then surely purchase one. However fine tuneing ky RaspPi into what I now use as my hard wallet has been It's own labor of love.

I wanted something I could store all my coin on. abd generate keys for all the active and even dead coin. I've also setup a way to generate abd print paper for each coin. I don't plan on takeing my device outside the home. any coin I do take with me I gamble with via my android device. I only take enough with me incase an uncanny deal or item is up for grabs and I catch on to it while mobile.

basically I never carry more BTC then I have in USD in my wallet most if not all the time.  Now this may sound like overkill or complex bullshit but I stuck the board in the wall behind my TV in our family room. I built a nice mount for it and ran the power cord to an outlet where I installed a typical three prong socket with the added bonus of usb. I can remove the board from the wall clean abd clear as the mounts ride on ball bearings I had a faceplate made as well for cosmetics and when not in use a picture hangs over the entire setup.

Basically the whole project for me was the pipe dream of owning a wall safe behind a picture like in all the mafia flics. I was able to get my wife to follow along as It's super easy to plug a different SDHC card and make it a fantastic media center.

But that's just my love for my chunk of the Pi. again not saying this isn't and will not be a welcomed item in my efforts to keep abd spend crypto moneys.
sr. member
Activity: 441
Merit: 268
January 03, 2013, 01:11:38 PM
#39
The different generators have their own advantages and disadvantages.

Could you please elaborate more on this topic? Just to make sure we are on the same page here ...
member
Activity: 78
Merit: 11
Chris Chua
January 03, 2013, 07:10:35 AM
#38
2) This price does not include a PicKit 3 which is a must at this early level of development: $45.00 + Shipping
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164130

It is possible to avoid using a PicKit 3. If the dev board is loaded with an appropriate bootloader (eg. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en554836), it should be possible to program the device using the on-board USB port.

What the PicKit3 is useful for, is if:
  • You want to develop or modify the bootloader itself (if you mess up the bootloader, you could brick the PIC32, in which case you need a PicKit3 to recover).
  • You want good integration with MPLAB.
  • You want to use debugging features like breakpoints, watches etc.

Also, looking at the BOM + schematic, I see the Atmel IC as RNG, so all of the 'Universal Hardware RNG' components would go away, correct? Or would it be an assembly option?

The story is: we had a few ideas for hardware random number generators (the Atmel chip, thermal noise, zener noise from zener, zener noise from voltage reference). Instead of choosing one, all of them were included. There are a bunch of 0 ohm resistors to facilitate switching between circuits. The different generators have their own advantages and disadvantages.
member
Activity: 85
Merit: 10
1h79nc
January 03, 2013, 02:50:09 AM
#37
I'm not sure if the ICD3 will work. I'll have to look into it. If it does, you will still need an RJ-45 to a 6-pin female pin header adapter.
It looks like the ICD3 will support the PIC32 from microchip's website. Also, I have made lots of custom programming headers, since RJ-11 is a horrible choice for a programming header.

Quote
Your offer to help assembly is extremely appreciated. Stencil printing too; I'm envious, but this is really great. Whereabouts in the world you located? I'm in Arizona.

I'm in TX, whois paybitcoin.com + google if you must know  Wink... At work we do a bunch of prototyping and custom engineering work. Mostly with Linux/Android now on armv7a using CPU system-on-modules since our apps got more complex, but used to be all PIC18. We started to move off to other architectures (Cortex-M3) since MPLAB is such a bad IDE, and mostly the 4096 byte RAM limit with PIC18s. I haven't used the PIC24 or PIC32 though.
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
January 03, 2013, 01:24:22 AM
#36
Update OP: 02/02/2013
Minor note - You are a month too late in your date! Don't slip the schedule just yet!!!


I'd be in for a development kit. I can do all the soldering as well if that is an option. I could possibly assist with some assembly on the production run as well, I have the basics to do prototypes and short runs available at work. (stencil printer, reflow oven, small tweezers & steady hands Smiley)

What is included in the dev kit? I am assuming just the board and components? I already have an ICD3...

You should also quote USB extension cables from monoprice.com, for only $1.79/1qty (+shipping)

Also, looking at the BOM + schematic, I see the Atmel IC as RNG, so all of the 'Universal Hardware RNG' components would go away, correct? Or would it be an assembly option?

Thanks!

Fixed the date. Thanks!

I was hoping to have both HRNG on the PCB before sending it out (The Atmel will be on there for sure). The circuity for the other one is very flexible and I'm unsure what the final values will be.

I'll update the price for the USB extension. Thanks again!

I'm not sure if the ICD3 will work. I'll have to look into it. If it does, you will still need an RJ-45 to a 6-pin female pin header adapter.

Your offer to help assembly is extremely appreciated. Stencil printing too; I'm envious, but this is really great. Whereabouts in the world you located? I'm in Arizona.
member
Activity: 85
Merit: 10
1h79nc
January 03, 2013, 12:53:45 AM
#35
Update OP: 02/02/2013
Minor note - You are a month too late in your date! Don't slip the schedule just yet!!!


I'd be in for a development kit. I can do all the soldering as well if that is an option. I could possibly assist with some assembly on the production run as well, I have the basics to do prototypes and short runs available at work. (stencil printer, reflow oven, small tweezers & steady hands Smiley)

What is included in the dev kit? I am assuming just the board and components? I already have an ICD3...

You should also quote USB extension cables from monoprice.com, for only $1.79/1qty (+shipping)

Also, looking at the BOM + schematic, I see the Atmel IC as RNG, so all of the 'Universal Hardware RNG' components would go away, correct? Or would it be an assembly option?

Thanks!
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
January 02, 2013, 10:55:37 PM
#34
Update: 02/02/2013 01/02/2013 Tongue

Ok, as mentioned before there are 50 kits being prepared to be distributed to developers, early adopters, and beta testers.
I've calculated a final price today for DEVELOPERS ONLY: it's $28.00 per device. This price
excludes the time and/or money that will go into the final fabrication and assembly. It's my gift to Bitcoin.
At this price, I just might break even with all the money I've personally put into the project.
(Assuming I don't have to re-spin some PCBs: wishful thinking, but I will personally eat the costs)

The final price for early adopters and others interested in having the latest cool gadget is $45.00 Dollars.
It takes a lot of time, special equipment, and skill to manually assembly a project like this with quality.

NOTES:

1)The price does not include a USB extension cable which is HIGHLY RECOMMENDED for
developers: $4.05 + Shipping
http://www.amazon.com/Black-Foot-USB-Extension-Cable/dp/B001G4ZA6I/ref=pd_bxgy_pc_img_y
2) This price does not include a PicKit 3 which is a must at this early level of development: $45.00 + Shipping
http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164130
3) There will be some testing of each device, but minimal.
4) Price for Developers and others does not include shipping costs.
5) 30 day money back, but shipping is paid by buyer both ways.

Total Developers COST: 28.00 + $4.00 + 45.00 + Shipping = $77.0

So, am I ready to take orders? Not even close!

So, why did I update and bump my thread?
Well, I need to get a list of all interested developers.
This will help me get an idea of how many night and weekend hours I'm going to be assembling boards for free. PLUS, I would appreciate
if potential DEVELOPERS that are hindered by the price offered would allow me to post a unique BTC addresses for donations on their behalf.

Thanks.
legendary
Activity: 1078
Merit: 1003
December 05, 2012, 01:06:27 PM
#33

Since you are interesting in how long, I think Someone42 and I will have a few boards assembled for validation only in 6 to 8 weeks.
I'm plan on staying at the validation phase for a while. Don't want to rush boards to everyone without finding the HW bugs first.


Sounds excellent! I really can't wait until both your hardware wallet and the piglet become available and make secure handling of bitcoins with ease accessible to any user.
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
December 05, 2012, 12:55:05 PM
#32
Clarification: "50 kits being prepared"

What I mean by this is I'm sampling, ordering, and gathering all the components right now for at least 50 kits. I'm not at the PCB assembly stage.

-Allten
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
December 05, 2012, 12:52:08 PM
#31

I got a quote for 65. Not sure if it is the best price, but seamed pretty good
for a low quantity order. Let me know if your interested in the company I ordered from.
sr. member
Activity: 455
Merit: 250
You Don't Bitcoin 'till You Mint Coin
December 05, 2012, 12:45:21 PM
#30
Wait, you finished the hardware wallet?

That would be nice. More like I hit another milestone.
I now have a good idea of what the component price (not the same as the TOTAL PRICE) will be for my goal of getting 50 boards ready.

Here's what I have left to do:
        Order Components
        Request Samples
        Put Finishing touches on PCB and also make it more friendly for production
        Order PCBs
        Assemble a Couple boards
        Validate the Design (this will take a while and if anything needs revised its a set back of a three to four weeks and ~$200 USD with the PCB Fab house I'm considering)
        If all goes well with first board design (usually wishful thinking) then I will see how fast and cheap I can get the rest of the boards assembled.

Since you are interesting in how long, I think Someone42 and I will have a few boards assembled for validation only in 6 to 8 weeks.
I'm plan on staying at the validation phase for a while. Don't want to rush boards to everyone without finding the HW bugs first.
legendary
Activity: 1386
Merit: 1097
legendary
Activity: 1386
Merit: 1097
December 05, 2012, 07:05:53 AM
#28
Look what I discovered:
The first time the name "BitSafe" was used can be found here:
https://github.com/rb1205/BitSafe

"Bitsafe needs a device of at least 4 gb with decent write speed."

I understand it is "standard" desktop wallet, using USB flash disks just as storages.
legendary
Activity: 1078
Merit: 1003
December 05, 2012, 06:49:11 AM
#27
Wait, you finished the hardware wallet?
Pages:
Jump to: