Trezor support for Zcash shielded transactions

Dear community,

we would like to share with you the background story of the Trezor support for shielded transactions, and explain the situation with the grant.

In 2021 the Zcash foundation reached out to us regarding the possibility to implement Zcash Shielded transactions. We are big fans of Zcash and anything that improves privacy and we definitely wanted to help out. We found a fantastic developer in Tomas Krnak who was willing to help us get started as at the time, we were not able to do it in-house. The grant helped to make this possible, and the development started. The grant consisted of five milestones:

  1. Research
  2. Firmware part I
  3. Firmware part II
  4. Suite
  5. Documentation

1, 2 and 3 were finished by Tomas and we were super happy with his work. See the Pull requests here: Pull requests · trezor/trezor-firmware · GitHub

This finished the first 3 milestones and these specific milestones were delivered and paid for. The milestone payout was paid to Tomas since he did all the work in milestones 1-3. For Milestone 4-5, we hit certain roadblocks and these were not delivered and were never paid for.

At the time, on our side we looked at the possibilities as well on how to support this from all angle’s to help make Tomas’ work and the Zcash foundation’s ambitions become a reality. However, we found several blocking points internally.

  • The size of the support in FW would take up all the space we have available, limiting our capacities to do anything else.
  • A high amount of internal resources needed to develop this, which would block other prioritised activities.
  • A lack of 3rd party wallets which support Zcash shielded transaction with Orchard support.

In the past the Trezor team reached out to Zcash to explain the situation and there was a mutual understanding and agreement around the situation, below was the post:

Hi Zcash Community,
We met with the Satoshi Labs team on March 21st to discuss their priorities, roadblocks, and see if there is anything that we can do to enable forward progress on the Trezor grant. Simon and Jan from Satoshi Labs discussed how the grant initially began with a different team who performed the work for the on-device integration. That work is now completed. What remains is to integrate this work with a user interface that enables shielded transaction functionality. The next grant milestone expects that shielded Zcash would be integrated into the Trezor Suite app. However, SatoshiLabs does not currently have the capacity to prioritize integrating this app into Trezor Suite. Getting the UX right is obviously more complex than the existing Zcash experience in Trezor Suite. SatoshiLabs noted that they would prefer if we could find an existing 3rd party wallet to integrate their app into a UI. Once this is complete, the UI is more fleshed out, and adoption is apparent, then they would look to finish integrating shielded Zcash into Trezor Suite. We plan to draft an RFP seeking proposals from existing Zcash wallet developers who are interested in integrating support for Trezor. Simon shared some libraries that may possibly be leveraged for the integration below and noted that Exodus wallet already has a Trezor integration for transparent ZEC and may be interested in performing this work.

Why are we posting this? Because we really wanted to support the Zcash community, but we could not get away from the roadblocks and we are sad to see negative commentary and misunderstanding on the grant situation which we prefer to be transparent about and clear things up as much as possible!

Currently, due to the reasons listed above we want to be clear that we do not plan to implement shielded transactions in Trezor Suite, or in the firmware unless we have a new architecture set up that can take care of this in a manageable manner. We truly value privacy in everything we do and think highly of the Zcash efforts, Tomas’ work and the good intent to bring this to users all over the world, but we also have to strike a healthy balance for the Trezor roadmap and feasibility.

To conclude, If there are still concerns with what we explained above, we would be able to refund the foundation for the amount of the grant that was given to Tomas out of our own pocket. This will then be with the condition that we stop to try and find new ways to make this happen in the future when the technical situation and resource prioritization allows us to do so. To re-iterate again we would like to state that the work has been done in the milestones agreed, and that this were paid out to Tomas for the successful delivery of the first 3 milestones.

TLDR:

  • Tomas worked on and delivered the first three stages of the Shielded implementation in Trezor and we were very happy with the work done.
  • We could not fulfil phase 4-5 as during the process technical challenges emerged.
  • We (SatoshiLabs/Trezor) did not benefit from the grant.
  • We currently don’t have a concrete plan to implement shielded transactions unless we have a new architecture set up that would solve the technical challenges.
13 Likes