link: ZF Grants - Arculus Cold Storage Wallet Zcash Shielded Transaction Support
Description of Problem or Opportunity
Orchard shielded transaction support is an important factor in Zcash wallets. However, most hardware wallets that currently support shielded transactions are not the most transaction friendly hardware wallet.
The Arculus cold storage hardware wallet system is designed to bring the security of a cold storage wallet with the usability of a hot wallet. Designed to be highly transactional, our metal, credit card form factor wallet signs transactions with just a tap. Our mobile wallet apps send an unsigned transaction over encrypted NFC, and the secure element sends back the signed transaction over encrypted NFC to be broadcast to the public chain.
No charging, no plugging, no waiting. Carry-in-wallet.
We believe that Zcash plays a crucial role in driving innovation within the cryptocurrency industry. With that in mind, we aim to promote widespread adoption of shielded transactions by allowing users to securely store their shielded funds on the user-friendly and intuitive Arculus wallet.
Proposed Solution
Subject of this grant is full Arculus ecosystem support for Zcash and Zcash Orchard (ZIP-224) shielded transactions.
Solution Format
New code added to our frontend, backend, and UI.
Technical Approach
The component of the Arculus key card’s firmware that relates to Zcash will be extended to fully support Zcash Orchard shielded transactions.
Our developers will integrate backend, front end, UI changes, and node efforts to have a successful shielded user experience for ZCash.
For a technically detailed look at steps for integration, please see milestones.
Unintended Consequences Downsides
We don’t expect any hardships in this process. It’s possible, during testing, that unknown factors come up, and as usual we will iron out any bugs and release to our B2C and B2B wallet partners a fully functional update providing Zcash and shielded transaction capability.
Evaluation plan
We offer an active communication channel via Slack to ensure smooth collaboration throughout the project. This platform enables seamless reporting of any changes, roadblocks, or updates, allowing us to maintain clear progress tracking. We can also report progress within this thread.
Upon project completion, our Arculus wallet empowers users with the ability to receive, store, spend, and manage their shielded and transparent Zcash funds. (Comprehensive control over Zcash assets.)
Budget and Payout Timeline
Considering the duration, complexity, and value of the project, we have devised a proposed framework with a rate of $19,011.8 USD per month of work. As the project spans 12 months, the total cost amounts to $228,141.6 USD.
For payment distribution and timeline details, please refer to the milestones outlined below.
Milestones
Milestone 1 - estimated completion date:
08/18/2023
Milestone 1 - USD value of payout upon completion of deliverables:
$18240.00
Deliverable 1.1
Basic project structure • zk-SNARKs protocol and other primitives implementation • Unit tests of these primitives.
Milestone 2 - estimated completion date:
11/17/2023
Milestone 2 - USD value of payout upon completion of deliverables:
$34200.00
Deliverable 2.1
Adding Zcash to mobile environment (shielded and unshielded txns) • ZIP32 Orchard shielded addresses generation • Unified addresses (transparent + Orchard) • Viewing a unified address on display
Milestone 3 - USD value of payout upon completion of deliverables:
$52371.36
Milestone 3 - estimated completion date:
02/16/2024
Deliverable 3.1
- Add Orchard (Shielded) key generation to the Arculus Key Card hardware.
- Incorporate necessary cryptographic functions: PRFexpand, PRFockOrchard, and PRPd.
- Implement the Orchard-specific key derivation function for deriving internal keys.
- Include the key agreement scheme for secure key exchange.
- Implement the commitments scheme for generating commitments.
- Integrate the DiversifyHashOrchard function for diversifying payment addresses.
- Implement the signature scheme for creating spend authorization signatures.
- Utilize conversion functions for proper byte sequence conversions.
- Ensure randomness and uniformity in key generation and utilization based on specified algorithms and constraints outlined in the Zcash Protocol Specification.
Milestone 4 - USD value of payout upon completion of deliverables:
$104538.80
Milestone 4 - estimated completion date:
05/17/2024
Deliverable 4.1
- Add Orchard (Shielded) signing capability to the Arculus Key Card.
- Implement Orchard spending key and derived key generation.
- Incorporate PRFexpand for key derivation and randomness generation.
- Include KAOrchard for secure key exchange.
- Implement diversified address generation with DiversifyHashOrchard.
- Support value commitment and note commitment operations.
- Enable creation of spend authorization signatures for Orchard notes.
- Implement balance and binding signature scheme for note value verification.
- Incorporate encryption and decryption operations for Orchard notes with outgoing viewing keys.
- Generate proof for Action statements in Orchard transactions.
Milestone 5 - estimated completion date:
08/16/2024
Milestone 5 - USD value of payout upon completion of deliverables:
$18791.44
Deliverable 5.1
Write project report • Prepare and coordinate submission • Review and release to public
Total proposed USD value of grant:
$228141.60 USD