Hello Again Community! I’m reporting updates on Milestone 2 of the grant.
Milestone 2 - Feb 15th to Mar 15th
Github: ZWCD Q1 2024 - 2 Milestone · GitHub
Main:
- ZIP-320 Wallet Response to exchange requirements. Coordination and ecosystem outreach
- ZIP-321 Request initiated transactions (NH, Zashi, Edge, Unstoppable)
- Fixed time-boxed Allocations (see table)
Secondary:
- FROST: Human Computer Interaction aspects of FROST & Demo (ongoing)
Deliverable 2.1
ZIP-315 Initiative Lead.
Status: pending ZIP editors review
As mentioned in the Milestone 1 update, I reviewed the ZIP draft and pointed out TODOs and requirements extracted. They are pending review from the ZIP editors. Time that would have been spent in this task was dedicated to others that had a higher priority.
Deliverable 2.2
ZWCD was appointed by the Zcash Community Grants committee (ZCG) to help out with an ecosystem outreach about “Exchange Addresses”.
This is an ongoing task that will last until the selected approach from ZIP-320 is implemented and deployed in both wallets and exchange (Binance)
Status: on track
Achievements:
- We communicated with several partners across the ecosystem and consulted them for feedback on the two alternatives: UAs and TEX addresses.
- Binance decided that they would only implement the TEX approach due to policies they have on including third party libraries on their front-end.
- TEX address support is already implemented on Ywallet (Kudos to @hahn)
- ZIP-320 is finalized, merged to main branch of the zips repository and waiting for ZIP editors to upgrade its status to final
- Coordinated with ECC for them to release SDK with TEX address support as soon as possible. Developers like EDGE, Unstoppable and NightHawk have an API ready version of the SDKs for them to prepare for the next release from ECC after Zashi is launched. According to Andrea (ECC’s project manager) the TEX support release of the SDKs will be somewhere in April 2024.
- @aquietinvestor and myself have begun contacting different Zcash partners (both supporting shielded or transparent ZEC) to inform them of ZIP-320 and what are the implications for them.
- Added TEX support for Swift Payment URI library
Details of the github tracked tasks
(all tasks of the milestone can be found here ZWCD Q1 2024 - 2 Milestone · GitHub )
task | link |
---|---|
TEX support for Swift Payment URI library | [#40] Support for verifying TEX address charset by pacu · Pull Request #41 · pacu/zcash-swift-payment-uri · GitHub |
Deliverable 2.3
ZIP-321 Request initiated transactions (NH, Zashi, Edge, Unstoppable)
For this deliverable I worked on the ECC Android and iOS SDKs to add support for initiating transactions from ZIP-321 payment requests based on the new Transaction proposal API of the SDKs.
Originally, the SDKs had a sendToAddress function that would receive an address, an amount, a memo and it would attempt to perform a transaction to a recipient. The Proposal API lets wallets propose a transaction, review it and then submit it to the network. This accommodates well to ZIP-317 fee requirements where fees depend on the composition of the transaction itself so to know whether a user can afford to make a transaction, it has to be accounted its inputs and outputs so that fees can be estimated beforehand since the user might think that it has sufficient funds to make a transaction and maybe it is not the case for the variable fees.
I exposed functionality present long ago in Librustzcash (thanks to @nuttycom) and combined the Proposal API so that users of the SDKs can make a proposal from a Payment URI (for example to send a message to ZecPages).
Status: Delivered
Achievements:
- Exposed the API for the Swift (iOS) SDK and added darksidewalletd tests
- Exposed the API for the Android SDK (android does not support darksidewalletd tests as iOS does )
Remarks
- iOS functionality was merged
- Android is pending review and waiting to be merged
Details of the tasks
(all tasks of the milestone can be found here ZWCD Q1 2024 - 2 Milestone · GitHub )
task | link |
---|---|
Implement Transaction proposal for ZIP-321 URIs for Kotlin SDK | [#397] Add ZIP 321 URI parser by pacu · Pull Request #1409 · Electric-Coin-Company/zcash-android-wallet-sdk · GitHub |
Implement Transaction proposal for ZIP-321 URIs for Swift SDK | [#1379] Fulfill Payment from a valid ZIP-321 request by pacu · Pull Request #1390 · Electric-Coin-Company/zcash-swift-wallet-sdk · GitHub |
Deliverable 2.4
Human Computer Interaction and software engineering aspects of self-custody with FROST & Demo
This is an ongoing task of research and development of what are the pieces needed to support self-custody with FROST. For that I created a report which scoped is to introduce the reader to the problem of self-custody on hot wallets and propose a sovereign key custody pattern that allows users to increase safety of their daily transactions by splitting the spend authority to several devices within a threshold scheme that takes away individual spend authority to internet connected wallets making them less vulnerable to capture by adversaries without sacrificing versatility or requiring dedicated companion hardware.
Status: delivered (ongoing)
Achievements:
- Studied the current demo on the FROST book
- Studied the self custody proposal presented by ZF engineers
- Studied existing literature on self-custody challenges and key custody patterns
- Proposed a new pattern called “Shared custody with Self” that uses FROST to allow users to use ZEC without having complete spend authority within a single device, maximizing recoverability and security and minimizing risks of loss-of-funds due to malicious actors or user error.
- Missing pieces for “FROST on mobile” are identified and detailed on the report.
Remarks:
- ZF’s FROST team will review the report and we will keep iterating on the design.
Details of the tasks
(all tasks of the milestone can be found here ZWCD Q1 2024 - 2 Milestone · GitHub )
task | link |
---|---|
FROST: Human Computer Interaction aspects of FROST (ongoing) | FROST: Human Computer Interaction aspects of FROST (ongoing) · Issue #99 · pacu/zwcd · GitHub |
Deliverable 2.5
Fixed time-boxed Allocations
Status: delivered
Achievements:
- LCWG #71
- Review RFP Docs
- LCWG call notes #72
- Arborist Call #70
- Review possible RFP for zcash_address port to swift, kotlin/java, js
- [Office Hours] ZAVAX Bridge
- March 5th. 1hr.
- Topics discussed:
- use of FROST on ZAVAX validators
- potential creation of a Metamask SNAP
- March 12th. 1hr
- Topics Discussed:
- Quick research of Zcash metamask snap feasibility and things needed to achieve it.
- [Office hours] My First Zcash Chapter 6
- 2024-02-28 1hr chapter review
- Attended community call March 13th 1hr
- Wrote 80% of chapter 6 4hrs
- attended community call March 20th 1hr
- Ad-hoc PR reviews
Details of the github tracked tasks
(all tasks of the milestone can be found here ZWCD Q1 2024 - 2 Milestone · GitHub )