Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2018
1,440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.00 KB | None | 0 0
  1. =====
  2. UPORT
  3. -> users have control of their identity
  4.  
  5. self-sovereign identity
  6. log in without passwords
  7. digitally signed transactions
  8. interaction with Ethereum blockchain
  9.  
  10. you build the trust withou reaveling any much information -> reputation systems
  11. ______________
  12. login example:
  13. https://eidenaiethereum.firebaseapp.com/?#/
  14. "Login with uPort"
  15. scan QR code with smartphone app
  16. app will ask for permission to log in
  17. after login, the website shows your info/credentials
  18. name, country, public key, other information
  19.  
  20. you can decide with information to share
  21. ______________________________________________________________
  22. (1) identity within blockchain x (2) blockchain for identity
  23. 1. identities with private keys are required to interact with blockchains
  24. challenges today:
  25. key management lots of wallets > lots of identities
  26. persistent identity
  27. authenticating the user (link to 'real world')
  28.  
  29. 2. self-sovereign identity can be realized with blockchain and smart contracts
  30. self-sovereign identity:
  31. majority of our identities are controlled by Google and Facebook (and the data associated with it)
  32. challenges today:
  33. identity ownership
  34. data ownership
  35. reputation fragmentation
  36. password management
  37. _____________________________
  38. identities today are isolated
  39. users identities are isolated in differente centralized servers across organizations
  40. ex: vital records office, car registration authority, healthcare system, tax authority
  41. leads to issues:
  42. - for organizations
  43. limited information sharing prevent collaboration, interoperability & efficiency
  44. ciberattacks: insecure centralized data storage increases vulnerability to hacking
  45. - for users
  46. physical identity docuements
  47. repetitive account creation, inconvenience of remembering passwords > ex: different exchanges
  48. personal information stored in various services
  49. indentity theft vulerability
  50.  
  51. users want to use apps, not worry about networks and gas
  52. _________________________________
  53. solution: self-sovereign identity
  54. secure, cost-effective, interoperable blockchain identity
  55. - identity and personal data is stored with the user
  56. - claims and attestations can be issued and verified between users and trusted parties
  57. - users selectively permission to data
  58. - data only needs to be verified a single time
  59. _____________________________
  60. decentralized identity system
  61. -> leads to a very flexible, universal, robust identity that empowers its users
  62. . user's mobile mobile generates keys, maps to smart contract
  63. . decentralized smart contracts blockchain: role as trust provider, decentralized PKI
  64. . govts, apps, businesses issue credentials to users
  65. _____
  66. uPort
  67. mobile self-sovereign identity solution and secure sign-on tool
  68. built on Ethereum
  69. iOS: Apple AppStore
  70. Android: https://play.google.com/apps/testing/com.uportMobile
  71. features:
  72. - identity rooted by Ethereum blockchain
  73. - passwordless, single sign-on
  74. - simplified user centric key management keys are not with uPort team -> stored on smartphone (pk never leaves device)
  75. - legally binding signatures (depending on jurisdiction)
  76. - user friendly blockchain transaction card
  77. - push communication protocol
  78. - upcoming: Mobile SDK
  79. - upcoming: gateway for private chains
  80. uport makes ethereum easy:
  81. . all your ethereum app accounts in one place
  82. . create a complete user profile
  83. . store credentials, verifications and badges
  84. . mobile factor authentication and signatures
  85. __________________
  86. smarter login flow
  87. 1. user - i want to log in
  88. 2. app - do you have an account for this app? if not, i'll make one for you
  89. 2. user - i already have one. here it is
  90. ___________________________
  91. gasless onboarding and apps
  92. uport makes gas disappear for users
  93. . onboard new users without requiring them to get and use Ether
  94. . enable transactions without requiring users to interact with gas
  95. HOW???
  96. all the transasctions that go through uport are automatically fueled
  97. transaction fueling service handles this
  98. -> this way users don't have to worry about it
  99. __________________________
  100. whats is a uPort identity?
  101.  
  102. permanent blockchain identity
  103. 1. self-sovereign identifier (is a smart contract on Ethereum to which you control the private keys)
  104. 2. collection of data credentials acquired through everyday interactions
  105. 3. controlled by the user with a private key
  106.  
  107. collection of data
  108. . verified data or claims - that belong to the individual (certificates, visa, citizenship)
  109. . standard schema - for attribute data that can represent legal facts, receipts, etc.
  110. . represent a person's reputation
  111. ex1:
  112. Coinbase gives you an attestation that you are level 3 verified user
  113. you can use this attestation to go to another provider
  114. ex2:
  115. attestation that says you are over 18 and have a driver's license
  116. you don't have to share the details of this data, just the attestation
  117. _______________________________
  118. core concepts & smart contracts
  119. uPort -> controller contract > proxy contract > application contract
  120.  
  121. controller contract:
  122. has a social recovery mechanism
  123. you set a social recovery network (same you can do with facebook)
  124.  
  125. proxy contract:
  126. makes the identity permanent (you don't that to change)
  127.  
  128. uport uses a smart contract identity model:
  129. https://imgur.com/a/YfoCB2e
  130. - upon smart contracts
  131. your identity -> proxy contract
  132. control + recovery contract
  133. - your smart contracts
  134. app contract 1
  135. app contract 2...
  136. ________________________________
  137. multi-chain account architecture
  138. today uport support multiple accounts across multiple networks
  139. mainnet, rinkeby, ...
  140. multiple accounts to handle multiple dapps (e.g. Gnosus, Status...)
  141.  
  142. _________________________________
  143. bridging ethereum and server apps
  144. account management
  145. "web 2.0"
  146. servers
  147. INFURA
  148. IPFS your IPFS data
  149. Ethereum your smart contracts / upon smart contracts / other contracts
  150. ________
  151. who uses uPort?
  152. end-users
  153. developers
  154. dapps
  155. exchanges
  156. enterprises
  157. governments have approached uPort team about identities
  158.  
  159. ______________________________________________________________
  160. developers want to issue badges and other credentials to users
  161. design credentials and issue them to users:
  162. - user does something (like attending an event)
  163. - you issue a badge
  164.  
  165. _______________________________________________
  166. developers want to request credentials by users
  167. ex: KYC check for token launches
  168. - you request a KYC badge issued by any trusted source -> exchange, bank
  169. - user shares KYC badge they received from Coinbase
  170.  
  171. credentials that you want to know:
  172. . is the user over 18?
  173. . does the customer have valid documents?
  174. . valid drivers licence?
  175. . certificate valid?
  176. . uber reputation?
  177. . airbnb reputation?
  178. _________________________
  179. sample business use cases
  180. - P2P market places
  181. regulation network:
  182. interoperable user reputation data between services for more secure, trustworthy interactions
  183. perfect for the on-demand economy
  184. - social media
  185. user lifecycle management:
  186. improve onboarding and user lifecycle management without having to store personally identifiable information
  187. - consumer finance
  188. shared data and KYC:
  189. improve customer insights and KYC processes for greater operational efficiency
  190. - digital media
  191. portable preferences:
  192. users bring preferences with them for increased content personalization, smart recommendations and simplified onboarding and UX
  193. - ecommerce and retail
  194. boost conversion:
  195. reduce customer dropoff, cart abandonment and fraud with verified, secure single sign-on and formless checkout
  196. - regulated finance
  197. secure credentials and KYC:
  198. reduce fraud, improve KYC process and benefit from shared credential marketplace with other trusted providers
  199. ____________
  200. case studies
  201. city of Zug
  202. allows citizens to self-register using uPort
  203. this way they officialy verify thei decentralized ID by visiting a local Certification Authority (CA)
  204. citizens can log in into the citizen web portal to securely access government services such as e-voting or tax payments
  205. .
  206. citizen first log in on the web portal with uPort
  207. inform more details
  208. the web portal then tells citizen to go be verified by the Zug office
  209. after verification, citizen can then use the cities services logging in using uPort
  210. -> on the Verifications tab the citizen have a "Zug Digital ID" verification
  211. .
  212. https://medium.com/uport/first-official-registration-of-a-zug-citizen-on-ethereum-3554b5c2c238
  213.  
  214. ministry of planning
  215. citizens can upload document for signature and notarization from other parties
  216. combination of public + private chain implementations
  217. notarization of documents via IPFS
  218. _______________________________________
  219. uPort documentation and getting started
  220. developer.uport.space
  221. all in one documentation website
  222. - learning guides & live embedded examples
  223. - libray documentation
  224. - app manager (register your app)
  225. - developer chat (Gitter)
  226. - engineering blog
  227.  
  228. ________________________
  229. HOW TO SETUP FUCKIN DAPP
  230.  
  231. we're gonna use truffle boxes they help you configure less
  232. fucking cool
  233. truffleframework.com/boxes
  234.  
  235. npm install and shit
  236.  
  237. we're using react-uport -> truffleframework.com/boxes/react-uport
  238. uport javascript libraries
  239. redux to manage the state we're requesting from people's smartphones
  240. attestations are not stored within centralized servers
  241. -> they are stored on people's smartphones
  242. request of attestation: you phone provides them
  243.  
  244. $ truffle unbox react-uport // trhe 'truffle unbox' command does a lot. doesn't need 'npm install ...' and shit
  245.  
  246. to register the dapp:
  247. https://appmanager.uport.me
  248.  
  249. we're gonna create a new dapp, register on the ethereum blockchain
  250. and store some files about it on IPFS (inter planetary file system)
  251.  
  252. approve:
  253. some smart contracts are gonna be deployed
  254. we're gonna register an identity on the ethereum blockchain
  255. we're gonna send a file through IPFS - via INFURA endpoint (they help dapps that you don't want to run the ethereum nodes -> quick connect to those nodes)
  256.  
  257. this is a simple example, for demonstration purposes, so we're gonna put this on the browser
  258. but in non trivial applications, we want to keep it:
  259. hide it on a backend server, private server
  260. make request on that, sign transactions, despatch them back to the browser and shit
  261.  
  262. $ npm run start
  263. this will spin up a local webpack server - that also includes hot reloading
  264. with this we can edit the code, add new stuff, etc.
  265. it will automatically rebuild itself -> and we're gonna be able to see those changes on the browser
  266.  
  267. the uport-react box is simple: doesn't have menus and a lot of pages
  268. it is meant to show you how to login with uPort + consume some of the data (or information that comes with attestations)
  269. -> display that within the browser application, manage it via redux store
  270.  
  271. code1: https://pastebin.com/raw/5f9MNxFf
  272.  
  273. src > util > connector.js
  274.  
  275. at the moment if you scan it, it won't do anything, cause code has nothing yet
  276.  
  277. !!! the most important part is bring over your credentials
  278. this is what allow you to sign transactions from your dapp, to your smartphone, confirm those transactions and then send them back to the browser application
  279.  
  280. in the code example we are showing the SimpleSigner key on the browser:
  281. great for demonstration purposes, great for hackatons... but not a best practice
  282. in fact is a NO NO PRACTICE:
  283. > people could take your simplesign key, pretend to be you - people can get tricked and shit
  284.  
  285.  
  286. code2: https://pastebin.com/raw/mVngHCe9
  287. now we just connected our uport react truffle box with the uport decentralized identity platform
  288. now is gonna do shit! :D
  289.  
  290. network: 'rinkeby or ropsten or kovan',
  291. these 3 networks is because uport has deployed registries in multiple test nets
  292. so depending on your identity you have to specify
  293.  
  294. now when we'll se a bigger QR code => more data being passed
  295. now the Dashboard shows a greeting page that you just logged in using uport :)
  296.  
  297.  
  298. code3: we are now requesting some data of the user
  299.  
  300. https://pastebin.com/raw/VmCJkMMJ
  301. or
  302. https://pastebin.com/raw/DpYgCVzu add this code to function requestCredentials()
  303.  
  304. src > user > ui > loginbutton > LoginButtonActions.js
  305.  
  306. now uport will ask for your permission to show these data of you
  307.  
  308.  
  309. code4: let's show more user data
  310. src > layouts > dashboard > Dashboard.js
  311.  
  312. on
  313. <p><strong>Congratulations, {this.props.authData.name}! </strong> ...
  314. add
  315. <p><strong>Congratulations, {this.props.authData.name} from {this.props.authData.country}! </strong> ...
  316.  
  317. log in again...
  318.  
  319. NOW WE'RE ON, MOTHAFUCKA! =)
  320.  
  321.  
  322. ----
  323.  
  324. ok, but how do we get more information?
  325. attestations!
  326. uport allows you to make attestations so you can store more than just the name, country, phone, email... ON THE USER'S SMARTPHONE!
  327. you can store any amout of information that you want
  328. so in the future when you application needs it, you can show it :)
  329. awesome, huh?
  330.  
  331. GETTING NINJA:
  332. https://developer.uport.me
  333.  
  334.  
  335. ------------------------------------------------------------------------------------------------------------------------------------------
  336.  
  337. developing user-friendly Ethereum apps is hard
  338. . account management and login
  339. . onboarding new users without Ether/Gas
  340. . know your user / KYC
  341. . transaction history
  342. . reputation
  343. . key management
  344.  
  345.  
  346.  
  347. _____________
  348. TO TALK ABOUT
  349.  
  350. presentation
  351. account recovery
  352. account backup
  353. login into dapps
  354. credentials / reputation
  355. verifications
  356. badges
  357. ex: attending on devcon
  358. -> badge: attend on GoBlockchain uPort presentation (at the end)
  359. digital passport for crypto valley
  360.  
  361. ======
  362. SLIDES
  363.  
  364. https://www.youtube.com/watch?v=6bSOAl1i8bw
  365. https://www.youtube.com/watch?v=PmSWI6S4TkQ
  366. https://www.youtube.com/watch?v=z6n62j_JC1c
  367. https://www.slideshare.net/
  368.  
  369.  
  370.  
  371. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement