Pages:
Author

Topic: Trezor developer coordination - page 2. (Read 8153 times)

legendary
Activity: 1708
Merit: 1066
September 23, 2013, 05:39:38 AM
#13
@Andreas

Are you thinking of adding Trezor support into Bitcoin Wallet using USB on-the-go ?
legendary
Activity: 1708
Merit: 1066
September 23, 2013, 05:31:28 AM
#12
Gary wrote a useful guide on setting up the trezor emulator here:
https://github.com/bitcoin-solutions/trezorj/wiki/Trezor-on-Raspberry-Pi-from-scratch

The operating system is on an SD yes. I must admit I bought a prebuilt one when I bought the RasPi so cannot tell you exactly what the distribution is.

To talk to it you can plug in an an ethernet cable and use SSH.

The little (micro?) USB on the RasPi is power and I think you can use either of the 2 stacked USB for the 'trezor' cable back to your PC.

I also got a HDMI cable to hook up a monitor but I know Gary uses ethernet/ssh for everything so does not bother with a monitor. I also plugged in a little wireless keyboard but again you can do without.
hero member
Activity: 483
Merit: 551
September 23, 2013, 04:13:03 AM
#11
Can we go one step back and explain how to set up the thing? For example, my Raspberry + Trezor sandwich has 3 USB ports - which one is the correct one? Do I need an SD card to boot up? I've never used a Raspberry before.
legendary
Activity: 1708
Merit: 1066
September 22, 2013, 11:36:45 AM
#10
Ha ha yes - one thing at a time !

:-)
legendary
Activity: 1386
Merit: 1097
September 22, 2013, 11:23:51 AM
#9
For issues such as 'I created a new wallet and all my labels are missing' I expect we will go down the route Electrum has taken and have a label sync system (if not the exact same one so you can sync labels across multibit and electrum HD wallets).

The idea of label syncing is perfect and we like it as well. Having description of all transactions and addresses on every client is very nice. However, as many other things in Electrum, the implementation is far from optimal. I mean that such system can be designed to work transparently, like all data can be encrypted and signed with key derived directly from the seed, so there's no need for handling the API key, email registration, password recovery and other stuff.

Shortly said, lets finalize all current project and then we can prepare new BIP for that :-).
legendary
Activity: 1708
Merit: 1066
September 22, 2013, 10:44:36 AM
#8
Yeah I think we'll have to distinquish between BOTH different seeds and different physical trezors as you suggest.

Something, somewhere will break if we don't.

For issues such as 'I created a new wallet and all my labels are missing' I expect we will go down the route Electrum has taken and have a label sync system (if not the exact same one so you can sync labels across multibit and electrum HD wallets).
legendary
Activity: 1386
Merit: 1097
September 22, 2013, 09:13:04 AM
#7
FYI feel free to use git master at https://github.com/trezor/trezor-emu . There should be always the code which passed all my unit tests, because I'm doing active development in other git branches.
legendary
Activity: 1386
Merit: 1097
September 22, 2013, 09:10:34 AM
#6
Is there anything _different_ to one Trezor wallet with a particular seed and _another_ wallet with the same seed ?

Are they distinguishable to the user ?

Yes, there's at least these settings: PIN, language, selected coin (you need to be sure that the device is in "btc" mode, as we discussed over email).

Personally I prefer the option that two devices will act as one, when they have the same master public key.

However what if user connects two devices with the same seed at the same time? :-) What if you'll have the same seed in Trezor and in software walelt? I think client should somehow distinguish between logical wallet (show history, send transaction) and physical device (factory reset, set language, ...).
legendary
Activity: 1708
Merit: 1066
September 18, 2013, 02:46:22 PM
#5
Gary has been writing the trezorj Java library which deals with the Trezor communications.

To make it a bit easier to see what is going on I have started a TrezorEmulatorUI. Once it's done you'll be able to see the messages going to and fro.
Here's what I have so far:




It does not do much for real yet.
In the great tradition of emulators it is pig-ugly. :-)

I am thinking it could either be used for:
1) wrapping the datastreams to and from your trezor (like a port forwarding network sniffer)
or
2) a full emulation (which is why I have added a field for the display and the two soft buttons "Trezor Left Button' and 'Trezor Right Button').

Slush and stick have also created a python emulator but I figure there should be one in the trezorj library. Also I reckon you don't really understand something until you can replicate it.
legendary
Activity: 1708
Merit: 1066
September 17, 2013, 01:32:28 PM
#4
Is there anything _different_ to one Trezor wallet with a particular seed and _another_ wallet with the same seed ?

Are they distinguishable to the user ?

I guess they may have a different device name and serial id (not sure that is a good enough reason to "split" the wallet) but is there anything else that is different ?
legendary
Activity: 1708
Merit: 1066
September 17, 2013, 01:24:39 PM
#3
There are the following possibilities as you state:

Same seed, different Trezor.

Alice has Trezor #1. She initialises it and write down her mnemonic phrase.   She uses it for a while and then loses the Trezor #1.
She gets hold of Trezor #2 and loads in her previous seed. When she plugs it in, would she expect to:

1) use the same wallet as she had with Trezor #1
2) have a new wallet, which then syncs so she has the same transactions (but she might lose any extra data like labels).

?

edit: or you might have two people with their Trezors programmed with the same seed e.g. husband and wife using the same wallet (?) but they both have their own Trezors.


Same Trezor, different seed.
Bob has Trezor #3. He initialises it with one seed. Uses it for a while with a particular wallet.
Reprograms it. Pretty clearly the new seed needs a new wallet.

(He could then reprogram it back to the first seed and then the old wallet would be used).

This case isn't a problem I don't think.



sr. member
Activity: 441
Merit: 268
September 17, 2013, 01:04:47 PM
#2
Another option would be:

"trezor-" + hex(hash(serial number of the device || master public key from device)) + ".wallet" (where || means concatenation)

I think we have to decide if we want to treat two different devices loaded with the same seed as the same wallet (first option) or not (second one).
legendary
Activity: 1708
Merit: 1066
September 17, 2013, 12:34:33 PM
#1
Hello fellow Trezor developers !

I presume there are a few of us "alts" working on Trezor support at the moment so I would like to have a thread where we can share ideas about implementation.

For instance:


At the moment I am looking at when the user plugs in their Trezor and they want their wallet to appear.
If they have already used that particular Trezor on this machine, I want it to reopen the previous wallet and start syncing from where it was before.

Thus I want a naming convention for the wallet file that's stored on the machine (in their user data area most likely).

I was thinking: "trezor-" + hex(hash(master public key from device)) + ".wallet"

The thinking being:
+ use the 'trezor-" prefix so the user knows what the wallet is. Also this gives some namespace for when other types of hardware wallets come along.
+ you want to have the name of the wallet based on the MPK rather than the serial id of the device as the user can:
    1. Reprogram the device with another seed.
    2. Put the seed on another device.

It's the seed that determines the wallet, not the serial id of the Trezor.

I am thinking you'd want to hash the MPK to make it a bit shorter and for privacy reasons. Not sure what length to hash it to yet. Shorter is "friendlier" but you'll get more collisions (in theory). Then convert the hash into simple hex, lowercase.


It is not really a big deal if other wallets use a different naming convention but we will all most likely be tackling the same problems. I would be interested in what other people think.
Pages:
Jump to: