Workshop: Privacy in Mobile Wallets
Session A
Zcon0 Day 2, 13:00-14:00
Justin Smith | @rusticbison
Agenda Session A
- Introduction and objectives (5 min)
- Introduction to evil (5 min)
- Adversarial thinking challenge 1 (10 min)
- Rules for Developing SCWs (5 min)
- Adversarial thinking challenge 2 (10 min)
- Evaluating SCWs (20 min)
Communications privacy always involves some form of compromise
Developers of cryptocurrency wallets have an ethical obligation to ensure the cost of violating user privacy is as high as possible, without compromising security or usability.
Introduction to evil
10 Minute adversarial thinking challenge:
In the context of SCWs, what other techniques can you think of to get access to the user's data? Assume you don't have a friend at Apple or Google that is willing to help.
Rules for developing SCWs
- Provide an interface to the protocol, keys generated on device
- One user, one fully validating node
- Zero knowledge of the user
- Open source, accessible to all
- Provide interoperability where possible (XCATs)
10 Minute adversarial thinking challenge:
How could you exploit a SCW which connects to a "remote node"?
With your team, take a few minutes to evaluate these wallets and then compare notes.
Discussion
- How did you rate each SCW?
- Which wallets would you consider using, and for what purpose?
- Is there any criteria missing from the scorecard?
Session A Summary
- Think defensively, anticipate social attacks as well as technical exploits
- Don't limit yourself to thinking the only way to solve the problem is through general purpose computing hardware
- Quality projects will be attacked, especially socially
- Remember who you must trust on each layer of architecture (physical, network, etc.)
Workshop: Privacy in Mobile Wallets
Session B
Zcon0 Day 2, 14:10-15:05
Justin Smith | @rusticbison
Agenda Session B
- Review of Session A (5 min)
- Review of SCW scorecard (5 min)
- Formal verification thinking challenge 1 (15 min)
- Sustainable business thinking challenge (15 min)
- Bonus challenge: swaps (10 min)
- Optional brief survey (5 min)
Developers of cryptocurrency wallets have an ethical obligation to ensure the cost of violating user privacy is as high as possible, without compromising security or usability.
Rules for developing SCWs
- Provide an interface to the protocol, keys generated on device
- One user, one fully validating node
- Zero knowledge of the user
- Open source, accessible to all
- Provide interoperability where possible (XCATs)
10 Minute Challenge: Formal Verification
How could you encourage users to verify the integrity of their software on Android? Could you encourage them somehow to build from source on iOS?
10 Minute Challenge: Sustainable Business with Zero Customer Knowledge
How could a SCW product finance itself, creating a pefectly efficient organization with development expenses that scale linearly while usage grows exponentially?
The software may not, by design, know anything about its users.
Bonus Challenge: Swaps
Users who do not trust each other and who are physically located in two different countries want to swap cryptocurrencies. They both control Zcash and Bitcoin, and both are using the same SCW software. How could they swap ZEC and XBT without any
counterparty risk?
Survey: building institutional knowledge to help guide how smartphone cryptocurrency wallets are developed in the future.
Survey Link
Session B summary
- Very difficult problems exist at the UX/business level
- SCWs, like the underlying protocols, are a convergence of commerce/law/software
- Define industry guidelines/recommendations: convince people to use quality SCWs!