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.

Edcon - Hardware wallets and smart contracts

1,047 views

Published on

Edcon - Hardware wallets and smart contracts

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Edcon - Hardware wallets and smart contracts

  1. 1. Hardware Wallets and Smart Contracts EDCON February 2017 Nicolas Bacca @btchip
  2. 2. A trust layer between the blockchain and the physical world For industrials, enterprises and consumers Securing the first and last mile LEDGER TECHNOLOGY
  3. 3. Without trust, data has no actionable value node node node node nodeCloud servers User on a PC or a smartphone Industrial sensor / IoT node node node Connected object Blockchain/IT trusted zone Physical world absence of trust Is this really you? Am I allowed to executethis transaction? Critical temperature data Did the driver got switched?
  4. 4. Hardware Wallets - high level overview Public data Do you want to roll the dice for 3.1337 ETH ? YES NO Operations on private data, with user validation and proof of user presence
  5. 5. The Smartcard (198x) Not convenient (reader mandatory and multiple middleware / drivers) Not designed to operate in a hostile environment (turns into an oracle) Not developer friendly (Java Card (2000) or bust)
  6. 6. The USB Smartcard (2005) More convenient (self reader, drivers preinstalled or no driver necessary) Not designed to operate in a hostile environment (turns into an oracle with user blind approval) Not developer friendly (Java Card or bust) User Presence
  7. 7. The Hardware Wallet (2012) Plug and play (self reader, no drivers necessary) Designed to operate in a hostile environment Developer friendly (Native code, Open Source) User Presence and validation
  8. 8. Why ? Cryptocurrencies come with built-in bug bounties #SFYL Lost keys Malwares, viruses - direct financial gain Ransomware 2.0 - indirect financial gain Because Why Not
  9. 9. Ransomware 2.0 - Be Your Own Thief Derive private key on path 44’/60’/0’/0’/0 (BIP 32) 44’/60’/0’/0’/0/entropy Do you want to send something to yourself ? It really belongs to you, no problem here, I checked it all Hey I got some entropy to sell you Ok, seems legit
  10. 10. Safe Smart Contract interaction Bare minimum : verify that you’re performing the right action with the right contract Extension : verify the action parameters Not necessary / meaningful for all actions Different UX might be necessary for individual contracts and actions
  11. 11. Trustless / Networkless is complicated Associate an address to an ABI ? Knowing the ABI is not enough - an example with ERC-20 0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7 A9059CBB Keccak(“transfer(address,uint)”) 00000000000000000000000070faa28A6B8d6829a4b1E649d26eC9a2a39ba413 Destination address 0000000000000000000000000000000000000000000000000000000000000001 Amount with decimals specified at contract instance creation
  12. 12. Mini Trusted ABI proposal Decorate a BSON version of the original ABI to mention : Methods for which the data can be ignored (Addresses that shall or may be internal) (Data components to convert to addresses that shall or may be internal) Add the nonce used when creating the contract Sign with the creator address Device can check contract address = Keccak(recovered creator address, nonce) (Device requires the path along with addresses that shall or may be validated)
  13. 13. Need more ? You can build your own app Native application 1 Native application 2 Native application 3 Microkernel User seed MMU lock User modeSupervisor mode System call Dashboard application Starts
  14. 14. Want to dig into it ? Commit showing ERC-20 integration into our ETH application https://github.com/LedgerHQ/blue-app-eth/commit/0c094f4fe6e2c2fedd6d05094072c 8cdaab9f21c Nano-S resources : compiler and SDK - https://github.com/ledgerhq/ledger-nano-s Developer Slack : http://slack.ledger.co Join us and discuss :)
  15. 15. Thank you @btchip

×