This is very important! I'll donate 10 XMR now and when finished I'll donate 90 more :) payment ID: cc16c5f96957d9604d93a3051664923c7963d0009dec7fcbaa36ba5ca78b0ee6
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:
- View key:
2a2e69948dfcc5a3198ee0288494a729c65069611cf0146f8f31013dd2a0ac0c(if anyone wants to keep an eye on the account)
- Escrowed by our very own fluffypony
What I plan on doing
- Modify the Trezor firmware to support generating private keys for Monero & support signing transactions using spend key.
- 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]
- 13th April: Changed donation destination to account escrowed by fluffypony.
- 14th April: We're funded! Check out the progress of this project here.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Looks like we're fully funded (over funded, in fact!) - [wallet 49hGzz]: balance balance: 782.472749733811, unlocked balance: 782.472749733811 Take it away, roosmaa :) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJVLMrAAAoJEFVDLfMczU/N/ggIAII5TfHOv3Do3yLC4bFXV0T7 PFnBFRmWlAsw42BJGFveGiI9Zp1L3lmN+ZdqYKGlrRMu+7Kv/hsPo+N7NFzocfih K6BtwTLFGVCKLXCdNyi0fJ4QwjQlMo93Vc/GqAwHFaLIenjQ7QDyMfQUeuzyw3bw Aks+5UBMyBAALhME7giKpm8P3KOKIevfwvhaaVMObsYZmVjFM5brX/I2gAptxC7K UjtDuhZgisjmSWK4eyJ6rSFaogaKJNs6RAWDIvGT+JAaWiF60GcGd3QQat/sdWZQ ThS50FBxaIRi83lWPoz/MhknOIUreyCL56LZ23Xnz1tAUArDBi3MM8kl27GyIQ4= =EKDN -----END PGP SIGNATURE-----
Awesome! I missed to donate, but I can chip in with Trezor knowledge. roosmaa, contact me if I can help out our you're stuck with something.
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:
- unknown - 0.267502413811XMR - 3b6c9edfc99d64cd3a530092bc7614121632d949909b537357f547d31d7ca6ad
- antw081 - 100XMR in c44babb72e22dd741fe540ff09650dea253f26b974cf8cafb5b62c6e81dacc67
- Kazuki - 10XMR in 21b14c9d26253270bd6bf921a9671d9cc3116a10f3742c38a98bdf544aae58fd
- saddambitcoin - 25XMR in 0fc8358c1887d072781e16e448f488b4c8f0310cbc2cee8a5fbc98cb5efdc8a4
- fluffypony - 50XMR in 7be96e398536a1112b9453ffed8e5deba46ec383917a5de860a182e2693d5813
- test tx from me - 1.97524732XMR in 249aeb0c1f3a84b79294ecd03f7bd947492ba4eda7d68b1dc681dbde73cf49dc
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-----
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.
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.
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 :)
I don't see any rational reason for which you would refuse to use a trusted escrow.
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...
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.
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! :)
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.
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.