Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

#2 Case study Tachyon & ICOVO App by Yoshikazu Nishimura, ICOVO's CTO

243 views

Published on

【Outline】
We will welcome two blockchain engineers to dive deep into the development of wallets.
Yoshikazu Nishimura is a creator of Tachyon wallet that supports Ethereum and all the ERC20 standard tokens.
http://tachyon-wallet.io/en/
Alex Melville is an engineer at BitGo. BitGo is a company based in Palo Alto, CA. They make variety of products such as a wallet, an offline vault and institutional custody.
https://www.bitgo.com/
It's organized by ICOVO AG. https://icovo.co/

Published in: Technology
  • Be the first to comment

#2 Case study Tachyon & ICOVO App by Yoshikazu Nishimura, ICOVO's CTO

  1. 1. Ethereum Hack Tokyo - Mobile Wallet - ICOVO AG CTO Y. Nishimura 2018.05.11
  2. 2. Agenda General Knowledge 1. What is “wallet”? 2. HD Wallet (BIP32, 39, 44) 3. UTXO vs Account Model Security 4. Private Key Security 5. How a Transaction is made Usability 6. Mnemonic Recovery 7. Add/Create Token 8. ERC20MetaInfo
  3. 3. General Knowledge 3
  4. 4. Wallet 4
  5. 5. 1. What is “wallet” 100 ETH0x7e5f4552091a69125d5dfcb7b8c2659029395bdf Blockchain Bitcoin Ethereum 15 ETH0x3738560173bade58bba4d79e1749a8b6373856 70 ETH0xb26fc5e385ed936623fb54bae4ff0b9476094d92
  6. 6. 1. What is “wallet” • • bitFlyer, Binance, Coincheck, Zaif, etc • Web • Blockchain.info, MyEtherWallet, etc • PC • Electrum, Exodus, Armory, MetaMask • • Jaxx, Tachyon, imToken, tokenPocket, Toshi, Chipher, Ginco, etc • • Trezor, Ledger Nano, CoolWallet •
  7. 7. 1. What is “wallet” API Blockchain 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3e5f....fde7 0x4c60....6dfe 0xf3afb...b94c … 0x7e5f....5bdf Wrooooooong!!
  8. 8. 1. What is “wallet” 2 2 = 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 160 160
  9. 9. 1. What is “wallet” 2 2 = 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976 160 160 Private Key Public Key
  10. 10. 1. What is “wallet” Private Key Public Key 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf ☓ ☓ (*1)
  11. 11. 1. What is “wallet” 10 10 10 48 50 80
  12. 12. 2. HD Wallet (BIP32, 39, 44) • HD = Hierarchy Deterministic • HD “ ” • http://blockchain.gunosy.io/entry/2017/12/21/165314 BIP 39 BIP 32 BIP 44
  13. 13. 3. UTXO vs Account Model Bitcoin UTXO Ethereum Account / Balance Model 1 BTC 12xCUJYdCVSJph6BpHkgfMjVzp8LuUpwas 15 ETH 0x3738560173bade58bba4d79e1749a8b6373856 5 BTC 2 BTC 2 BTC 6 BTC 80 BTC 1LaC89iueNjzQgbFMUVPoaBQeLcQJ2VZD 1 BTC 1 BTC 1 BTC 2 BTC 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 99 ETH 2 ETH 56 ETH 12 ETH UTXO Model Account/Balance Model 3 BTC 10 ETH 7 ETH
  14. 14. 3. UTXO vs Account Model Bitcoin UTXO Ethereum Account / Balance Model 1 BTC 12xCUJYdCVSJph6BpHkgfMjVzp8LuUpwas 15 ETH 0x3738560173bade58bba4d79e1749a8b6373856 5 BTC 2 BTC 6 BTC 80 BTC 1LaC89iueNjzQgbFMUVPoaBQeLcQJ2VZD 1 BTC 1 BTC 2 BTC 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 99 ETH 2 ETH 56 ETH 12 ETH UTXO Model Account/Balance Model 3 BTC 10 ETH 7 ETH 2 BTC 1 BTC 2 ETH 20 ETH UTXO
  15. 15. 3. UTXO vs Account Model Bitcoin UTXO Ethereum Account / Balance Model 1 BTC 12xCUJYdCVSJph6BpHkgfMjVzp8LuUpwas 15 ETH 0x3738560173bade58bba4d79e1749a8b6373856 5 BTC 2 BTC 2 BTC 6 BTC 80 BTC 1LaC89iueNjzQgbFMUVPoaBQeLcQJ2VZD 1 BTC 1 BTC 1 BTC 2 BTC 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 99 ETH 2 ETH 56 ETH 12 ETH UTXO Model Account/Balance Model 3 BTC 1 BTC 3 BTC 2 BTC 2 BTC UTXO 4 BTC
  16. 16. 3. UTXO vs Account Model Bitcoin UTXO Ethereum Account / Balance Model 1 BTC 12xCUJYdCVSJph6BpHkgfMjVzp8LuUpwas 15 ETH 0x3738560173bade58bba4d79e1749a8b6373856 5 BTC 2 BTC 2 BTC 6 BTC 80 BTC 1LaC89iueNjzQgbFMUVPoaBQeLcQJ2VZD 1 BTC 1 BTC 1 BTC 2 BTC 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf 0x3738560173bade58bba4d79e1749a8b6373856 99 ETH 2 ETH 56 ETH 12 ETH UTXO Model Account/Balance Model 3 BTC 0.5 BTC 0.5 BTC 0.5 BTC
  17. 17. Security 17
  18. 18. Transaction 18
  19. 19. 5. How a Transaction is made Geth (Ethereum Client) Transaction Ethereum Network transfer(A→B, 0.2 ETH) transactionPrivate Key (signTransaction) Tx Geth Console
  20. 20. 5. How a Transaction is made Transaction
  21. 21. 5. How a Transaction is made Transaction DB DB
  22. 22. 5. How a Transaction is made Transfer( →A, 10 ETH) transaction Private Key Blockchain Network Blockchain
  23. 23. 5. How a Transaction is made Ethereum Network Mobile App Web Server Geth transfer(A→B, 0.2 ETH) transaction Private Key (signTransaction) Web 2.0 Web App (UI) HTTP Private Key Tx Web Server Private Key Web Server
  24. 24. 5. How a Transaction is made Ethereum Network Mobile App Hosted Client e.g. Infura, Metamask, MyEtherWallet, etc JSON RPC (web3.js) Geth transfer(A→B, 0.2 ETH) transactionPrivate Key (signTransaction) Tx Hosted Client Tx Private Key (Local/Private Wallet)
  25. 25. Private Key 25
  26. 26. 4. Private Key Security
  27. 27. 4. Private Key Security MetaMask Ethereum Network Hosted Client e.g. Infura, Metamask, MyEtherWallet, etc JSON RPC (web3.js) Geth/Parity Web App (UI) Private Key transfer(A→B, 0.2 ETH) Private Key Local Storage
  28. 28. 4. Private Key Security Mobile Wallet Ethereum Network Mobile App Hosted Client e.g. Infura, Metamask, MyEtherWallet, etc JSON RPC (web3.js) Geth/Parity Keychain Private Key transfer(A→B, 0.2 ETH) Face ID Keychain
  29. 29. 4. Private Key Security https://docs.microsoft.com/zh-tw/xamarin/ios/platform/touchid transfer(A→B, 0.2 ETH) transaction Secure Enclave Private Key Private Key Transaction
  30. 30. Usability 30
  31. 31. 6. Mnemonic Recovery
  32. 32. 8. Mnemonic Recovery Mnemonic
  33. 33. 7. Add Token ERC20
  34. 34. 7. Add Token
  35. 35. 7. Create Token
  36. 36. 8. ERC20MetaInfo

×