Nighthawk Wallet maintenance + server costs

Background

Nighthawk Wallet for Android & iOS needs regular maintenance, bug-fix and security releases over the next few months till MGRC activates. Since launch, Nighthawk has:

  • Removed unnecessary analytics for end users
  • Added the option to use the lightwalletd server of one's choice
  • Deployed our own lightwalletd server infrastructure
  • Added biometric authorisation for spending
  • Enabled links to easily swap less private coins to the user's shielded address
  • Fixed bugs, improved compatibility & customized theming
  • Launched Nighthawk Wallet for iOS on TestFlight

Motivation and overview

High level goals are to make Zcash accessible to every smartphone owner in the world. Starting with the most widely used Android OS, followed by Apple iOS. And in line with Zcash Foundation Grants: "to create tools that help sustain open networks, enabling anyone and everyone to protect their own privacy on their own terms. The essence of privacy itself is being able to choose what is or isn’t shared with others." Nighthawk plans to create, maintain and add features to the apps to enable everyone with a smart phone to protect their finances & data(via memos) privacy, on their own terms by releasing non-custodial applications. And the humans using the app will choose what information is shared with anyone.(setting the defaults to not share info with third-parties). Nighthawk Wallet will initially serve audiences who are aware of the importance of privacy in the age of data leakage. And with time, as more features are added to make access to Zcash easier, a regular user who has never heard of Zcash will be able to get set up with the app and owning Zcash in under an hour.

Technical approach

The technical approach has its roots in the strong rust based libraries provided by ECC and re-using as much of the existing work as possible, and

  1. Focussing more efforts on the delivery side. i.e. Improving the app's usability via user feedback from public channels & private user studies.
  2. Fixing production bugs, keeping up with changes to the Zcash protocol/spec and having functional app for all the users
  3. Supporting as many devices as possible
  4. Collaborate with ECC's Light Client Working Group to maintain best practices around Zcash use
  5. Server side: keeping the lightwalletd server & Zcashd up with high availability
  6. Working with Zcash engineers to patch 0-days as soon as they appear, we recently had one issue fixed within hours of it the server getting excess requests, worked with Taylor Hornby from ECC to get it fixed https://github.com/zcash/lightwalletd/commit/1906e1d1eb304d3060c657d0e4e74aaf214f63b5
  7. Be an open channel for end users to connect to us via twitter, email, z2z for help with Zcash usage related questions or resolving issues specific to users.

Approach: With the goal of keeping the stable app up and running, Nighthawk will test out experimental features and get feedback from a small group of Zcash users(maybe from ZF) & ECC mobile leads before deploying it to the majority audience. And help light clients coordinate the required changes across platforms(recently got a reduced fee ZIP 313 going https://forum.zcashcommunity.com/t/zip-reduce-default-shielded-transaction-fee-to-1000-zats/37566)

Components: Android codebase in Kotlin with deployments at the Google Play Store along with the security angle of release key management. iOS codebase in Swift with security managed via the nighthawk apps team account. Lightwalletd & Zcashd: running the unmodified code from the source.

Workflows: With a public facing application, most of the development & maintenance will be driven by feedback from the users, followed by feasibility of delivering it, the scope of changes and how it affects rest of the promises of privacy.

Execution risks

A prolonged unresolved bug that affects user, A 0-day where the user does not upgrade the app. Delays in updating the app with much needed fixes. Contingency:

  1. Add a public notice pop-up in the app.
  2. Need to add an easy way to buy Zcash(WIP).
  3. Need to add user tutorial so they learn how to use the app & Zcash.

Downsides

Managing the load on servers for stability, managing communication with legal/law/government inquiries, tech debt. to stay in line with reference wallets.

Evaluation plan

Increase in app downloads aiming to the millions of users & z2z usages going up month over month.

Tasks and schedule

The initial version of Nighthawk on Android are up and running, iOS is in TestFlight en route to App Store by end of year.

Budget and justification

The maintenance costs are: $4,000/month, broken down as:

  • $3500: Android & iOS maintenance costs (50 hrs per month @ $70/hr)
  • $200: Devops costs to upkeep and monitor lighthttpd service, certs
  • $300: AWS large instances for zcashd and lightwalletd

Total: $4000 * 5 months = $20,000

Tipping

Tips Received
???  
ZEC

Campaign

Started
a month ago
Funding
$20,000 
Funded through  
1
Nighthawk Wallet Support & Maintenance

Nighthawk Wallet Support & Maintenance

Reward: $20,000
The team was awarded $20,000 in ZEC as an initial payout on Nov 10th, 2020, 2:37 am.
This grant is intended to cover ongoing maintenance (bugfixes, security releases, and cloud computing costs) from October 2020 through March 2021.