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"?

The cryptocurrency wallet scorecard

Gathering evidence in a structured way to support your intuition: cryptocurrency wallet scorecard

With your team, take a few minutes to evaluate these wallets and then compare notes.

Bcash: CoinText

Bitcoin: Samourai Wallet

Zcash: Freewallet

Monero: X Wallet

Stellar: Lobster

Multi: Jaxx

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)

The cryptocurrency wallet scorecard

Gathering evidence in a structured way to support your intuition: cryptocurrency wallet scorecard

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!