Please login or register.

Monero support for Trezor

Who wants Trezor to support Monero? Sadly it doesn't currently. I think it would be awesome and would like to work on this.

I'd like to raise at least 500XMR so I could make it happen. Want to beef up your Monero wallet security? Show your support by donating and help make Monero support for Trezor a reality!

  • Address for donations: 49hGzzV9XtNZKHAe1kNuXkRfhws12ZHipavhffm2gXDXR3aGxiLzt9GRBFPqL6Vgp6hEnpsiT285v5v4XmrUC93PSTaML5r
  • View key: 2a2e69948dfcc5a3198ee0288494a729c65069611cf0146f8f31013dd2a0ac0c (if anyone wants to keep an eye on the account)
  • Escrowed by our very own fluffypony

What I plan on doing

  1. Modify the Trezor firmware to support generating private keys for Monero & support signing transactions using spend key.
  2. Add Trezor support to simple_wallet command (or create new trezor_wallet utility)

How will the funds be used

  • The raised money will go towards buying a Trezor I could use for development purposes and compensating for some of the time I put into this.
  • If we don't manage to raise enough to even buy a Trezor for me, I will not be undertaking this project. All moneros received will be sent to [email protected] in this case.
  • I will not be touching the money raised before I have managed to add Monero support to Trezor. Should I fail to deliver, the funds will be sent to [email protected].

Edits

  • 13th April: Changed donation destination to account escrowed by fluffypony.
  • 14th April: We're funded! Check out the progress of this project here.
Replies: 24
fluffypony edited 8 years ago Weight: -520 | Link [ - ]

I donated 50 XMR towards this, transaction 7be96e398536a1112b9453ffed8e5deba46ec383917a5de860a182e2693d5813 (no payment ID)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

UPDATE: I'm escrowing this on roosmaa's behalf.

Deposit address: 49hGzzV9XtNZKHAe1kNuXkRfhws12ZHipavhffm2gXDXR3aGxiLzt9GRBFPqL6Vgp6hEnpsiT285v5v4XmrUC93PSTaML5r
View key: 2a2e69948dfcc5a3198ee0288494a729c65069611cf0146f8f31013dd2a0ac0c

roosmaa will move the funds donated thus far to that escrow account, and I will confirm receipt once received.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVK8NRAAoJEFVDLfMczU/N++sH/iOTObE6iiBlhaz7pUgMx3tB
WM49xGvVCtSlxcJX/zwX/K5zeaF5NeNMgsOx5RU0+z9zvnM4O/3X5S1OhxzrcosM
3OE4r8Z/+eMfW0o+567HkXxg7Q5E7hMN9GgJVLxcuQ4fDhXlxjr6m7wXgZG/tdLj
bpCiQI/VXnhg/iDy++vb7zshuTh/H8QmgPDPkKWaSQD66oozi9vi629g2ytWBBCE
5tygq+liI6+1a+sHWq/2HFi7Yq+5a99gz5Gm5AX/thFoodGgeAeXXAOhTMN7QGEx
ieTuqBm3+okUOvOztHT7pNLXvSiPrGKAtOJ9IvuCI0u/lLRKNeXnU96NmymQ2t8=
=DwW/
-----END PGP SIGNATURE-----
Kazuki edited 8 years ago Weight: -521 | Link [ - ]

I would like to see this happening, donated 10 XMR 21b14c9d26253270bd6bf921a9671d9cc3116a10f3742c38a98bdf544aae58fd

binaryFate edited 8 years ago Replies: 1 | Weight: -521 | Link [ - ]

This is a nice idea, of course!

However in all honesty, I warn everyone about donating without the funds being in escrow. I am reasonably familiar with the trezor code, and I'd estimate the cost of supporting Monero to be much more than 500 XMR. I find this unrealistic pricing to be a red flag.

Reply to: binaryFate
roosmaa edited 8 years ago Replies: 1 | Weight: -521 | Link [ - ]

I'm not really trying to make a profit as it is an interesting project for me. 500 XMR is just the minimum amount for which I'm willing to take this on. Mainly it is to gauge the community's interest for such a thing - if people really want this, then they are probably willing to take a small risk.

And in case the Trezor code does get the better of me and I fail to deliver the funds will go to Monero core team. But this is again the problem of "do we trust this random dude and his word".

It does seem to me that we should really establish some pointers for this sub-forum for people like me :) How to be transparent about the money raised, who are the people willing to provide escrow whom everybody trusts, etc. For the transparency part, fluffypony did say he's working on viewkey import for MyMonero, which would be awesome :)

Reply to: roosmaa binaryFate
binaryFate edited 8 years ago Replies: 1 | Weight: -521 | Link [ - ]

I don't see any rational reason for which you would refuse to use a trusted escrow.

Reply to: binaryFate roosmaa binaryFate
roosmaa edited 8 years ago Replies: 1 | Weight: -521 | Link [ - ]

I guess my last post was slightly unclear. What I described there, was what I was thinking when I was writing the first post in this thread. Since I did not know any better and since the 500XMR is more of a gesture of support rather than any significant amount of money (as you said yourself there is no way this amount will even begin to cover the time I will have to put into this) I did not really think anyone would care so passionately about escrow.

So, who do you trust? I hope you trust fluffypony...

Reply to: roosmaa binaryFate roosmaa binaryFate
binaryFate edited 8 years ago Replies: 1 | Weight: -520 | Link [ - ]

Undoubtedly fluffypony is trusted (by me but more importantly by the community at large so people would be more willing to donate for your project!). :)

Technical remark: you'll need to adapt some code PC-side, additionally to the device firmware, to have it working. Also you'll have to update the trezor crypto library to work with a different type of ECDSA signing too, which is incredibly critical to write yourself so I strongly suggest you take the code from a known and trusted library.

antw081 edited 8 years ago Replies: 1 | Weight: -520 | Link [ - ]

I've donated 100 XMR towards this project.

Tx ID: c44babb72e22dd741fe540ff09650dea253f26b974cf8cafb5b62c6e81dacc67

Pay ID: a29a82c47346bfc13fafdf723ae7994095c3ad7389717a9fc44a24fad72c01b8

You would probably get more donations if you used a trusted escrow.

Reply to: antw081
roosmaa edited 8 years ago Weight: -520 | Link [ - ]

Thank you! Fluffypony agreed to escrow this, just waiting for him to setup everything up. :) Will let everyone know when it's done.

Reply to: binaryFate roosmaa binaryFate roosmaa binaryFate
arnuschky edited 8 years ago Replies: 1 | Weight: -520 | Link [ - ]

AFAIK Monero uses ECDSA with a different curve, which should be fairly easy to modify.

The rest is the hard part: the crypto libraries that deal with transactions. Worse, you have to do it at two ends (the pc end and the embedded code).

As binaryFate, I am quite familiar with the Trezor code and architecture. (Actually, we took it apart together :)). This will be a considerable undertaking. Not impossible, but you need knowledge from a bunch of different fields which makes it hard.

If you don't have solid knowledge in C, python, embedded programming, general crypto and monero specifics, you won't go far. If you do, great - good luck and god speed! :)

Reply to: arnuschky binaryFate roosmaa binaryFate roosmaa
roosmaa edited 8 years ago Replies: 1 | Weight: -520 | Link [ - ]

Yup, you are right - Monero uses the more widely used security curve Ed25519 (SSH, etc) so finding a library that works in an embedded setting should be indefinitely easier than for the Bitcoins curve (which was pretty much unused before Bitcoin started using it).

From my brief review of the Trezor source it should be feasible to implement Monero transaction signing without changing the communication protocol that it uses to communicate with the USB host. (Though some things will be slightly misnamed.) Trezor will contain the viewkey and spendkey, viewkey will be made available to the USB host (like the xpub key for Bitcoin). Spend key will remain private, as it should. The host will then use that viewkey to scan through the blockchain (like the current simple_wallet does). For sending payments the transaction is prepared and Trezor signs it.

Of course there will probably be bumps in the road ahead (due to wrong assumptions), but so far it seems doable. I haven't done embedded programming in ages, but considering trezor-mcu is mostly fairly high-level C we should be good.

Reply to: roosmaa arnuschky binaryFate roosmaa binaryFate
arnuschky edited 8 years ago Weight: -519 | Link [ - ]

I agree wrt to the communication protocol; it's using protobuffers and should be fairly easy to reuse/adapt.

Not sure how much work simplewallet integration would be. If I am not mistaken, there is no support for viewkeys yet. Maybe a plugin for the upcoming graphical wallet would be a better choice? (It would certainly be much cooler!)

If you did some embedded development before, great! (It's often kind of a rude awakening for "normal" devs.) Trezor uses the normal gcc arm toolchain, so there are no big surprises there.

roosmaa edited 8 years ago Replies: 1 | Weight: -519 | Link [ - ]

Good news everyone!

Fluffypony will be escrowing the funds for this project from this point forward.

So far 186.97524732 XMR have been raised. I have transferred them over to the new account (187.167749733811 XMR in b9e709ba550a142ee789586a7fd85bec109c0f99a60da1c6e4508b42af1d82f8 & 0.055 XMR in 831633a754fd0e4828820341ea4aacb4ad67ca95ffec0f56492210a794b64d3b). 0.02XMR remains on the account due to some discrepancy between actual fees and what MyMonero thinks the fees will be. Fluffpony can confirm (using the original viewkey) that all of the funds were transferred from the original account.

Donations thus far:

pa edited 8 years ago Weight: -519 | Link [ - ]

320 xmr sent, transaction 00b0adb52b63e5b8dcc050a9df2b530f0bf9a6abf3eb2ef5f64d7b573ffa61fb; good luck!

Lloydimiller4 edited 8 years ago Weight: -518 | Link [ - ]

I know we are over the minimum, but I still want to donate to this project. Just sent 250 xmr eb44a68e15a3f33eb48815ae77c1b524d9cbe34d5299ffa9dcf0be77d06e937e