Slide 1

Slide 1 text

UX for Key Management Shuichi Nagao | Co-founder of Credify [email protected] Updated 11/2019 blockchain.tokyo 29th, Nov, 2019 1

Slide 2

Slide 2 text

About Me Shuichi Nagao @Tokyo/Ho chi minh @ngo275 2019 ~ Co-founder 2017 ~ 2018 Software engineer 2016 ~ 2017 Software engineer 2

Slide 3

Slide 3 text

Using Dapps is very difficult for beginners, isn’t it?? 3

Slide 4

Slide 4 text

Can you remember the first time you used Dapps? 4

Slide 5

Slide 5 text

Binance Dex 5

Slide 6

Slide 6 text

Binance Dex 6

Slide 7

Slide 7 text

Which option should I take?? 7

Slide 8

Slide 8 text

Binance Dex 8

Slide 9

Slide 9 text

Binance Dex 9

Slide 10

Slide 10 text

Binance Dex 10

Slide 11

Slide 11 text

What is mnemonic?? 11

Slide 12

Slide 12 text

CryptoKitties 12

Slide 13

Slide 13 text

CryptoKitties 13

Slide 14

Slide 14 text

What is MetaMask?? 14

Slide 15

Slide 15 text

CryptoKitties 15

Slide 16

Slide 16 text

How do I use this app on my mobile?? 16

Slide 17

Slide 17 text

MetaMask 17

Slide 18

Slide 18 text

Shit…!! I lost my private key!! 18

Slide 19

Slide 19 text

There are many pains around key management. 19

Slide 20

Slide 20 text

User pains around key management Users have to understand what mnemonic is. There are many ways to manage your private key. Users have to understand what wallet is. Key sharing between mobile and web is hard. Memorizing mnemonic is too demanding. 20

Slide 21

Slide 21 text

The root cause is signing TX is too complex. 21

Slide 22

Slide 22 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 22

Slide 23

Slide 23 text

Sign tx using MetaMask 23

Slide 24

Slide 24 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 24

Slide 25

Slide 25 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 25

Slide 26

Slide 26 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 26

Slide 27

Slide 27 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 27

Slide 28

Slide 28 text

Sign tx using mobile wallet app (TrustWallet) 28

Slide 29

Slide 29 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 29

Slide 30

Slide 30 text

Sign tx using Key management native app 30

Slide 31

Slide 31 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 31

Slide 32

Slide 32 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 32

Slide 33

Slide 33 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 33

Slide 34

Slide 34 text

Sign tx using Key Management native app 34

Slide 35

Slide 35 text

Sign TXs on Google Chrome (Brave) Extension (e.g. MetaMask) Sign TXs on a mobile wallet app Sign TXs on a hardware wallet Import Mnemonic / Keystore File to the app Sign TXs on a Dapp Browser app (e.g. TrustWallet, MetaMask) Sign TXs on a Key Management app Import Mnemonic / Keystore File to the app Use a private key stored in this native app Redirect to Key Management app, and sign TXs on it, redirect to the Dapp native app again How to sign tx with your private key 35 It’s not seamless at all!!

Slide 36

Slide 36 text

Dapps are exclusionary services due to their complexity. 36

Slide 37

Slide 37 text

We need to simplify the UX. 37

Slide 38

Slide 38 text

Ideal UX No mnemonic 38

Slide 39

Slide 39 text

Ideal UX No mnemonic No friction between web and mobile 39

Slide 40

Slide 40 text

Ideal UX No mnemonic No friction between web and mobile No need to learn 40

Slide 41

Slide 41 text

Ideal UX No mnemonic No friction between web and mobile No need to learn Secure 41

Slide 42

Slide 42 text

Ideal UX No mnemonic No friction between web and mobile No need to learn Secure Easy 42

Slide 43

Slide 43 text

Ideal UX No mnemonic No friction between web and mobile No need to learn Secure Easy Easy 43

Slide 44

Slide 44 text

Ideal UX No mnemonic No friction between web and mobile No need to learn Secure Easy Easy Easy 44

Slide 45

Slide 45 text

Ideal UX No mnemonic No friction between web and mobile No need to learn Secure Easy Easy Easy Easy 45

Slide 46

Slide 46 text

70 million smartphones are lost every year. 46

Slide 47

Slide 47 text

Can we trust device security? 47

Slide 48

Slide 48 text

What if we use AWS/GCP Key Management Service? 48

Slide 49

Slide 49 text

Cloud KMS Use Case 49 Signed Tx Key Access Request Sign Private Key Cloud Function Cloud KMS SMS/Password based session This process is volatile Secure Key Manager Interface is same as non-Dapps

Slide 50

Slide 50 text

Pros & Cons No MetaMask, nor Wallet apps to use Dapps. Easy and simple UX can be achieved Same interface as familiar web/mobile services 50 Pros Cons We need to trust GCP/AWS If users deal with a big amount of money, this will be uncomfortable Custody, or exchange wallet is not suitable

Slide 51

Slide 51 text

Conclusion Dapps need users. Dapps impose complex key management on users. Cloud KMS can make Dapps easier and simpler. 51