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.

Using Blockchain in "Regular" Web and Mobile Apps

360 views

Published on

DApps are often held up as the future but full decentralization is far more extreme than most real-world apps actually need and it's not likely to be the bridge to mainstream usage anyway. How can app creators use blockchain for what it's best at while taking everything else off chain? How can -- and when should -- you integrate blockchain with an existing application?

More broadly, what does blockchain actually give you and what use cases fit it best?

In this meetup, we'll walk through the high level use cases for blockchains in the context of apps that aren't fully decentralized. It's intended for an audience of mixed backgrounds, meaning that anyone from designers to entrepreneurs to product people to developers will get value from it. We'll use plain English to provide the conceptual models and then dig a bit deeper into the technical side.

We assume you know what a blockchain is and have a high-level overview of what a decentralized application looks like (the subject of the previous meetup).

**About the Blockchain Onramp Series**

Blockchain Onramp is a series of events covering the full spectrum of knowledge necessary to operate effectively within the blockchain ecosystem as a designer, developer or product person. After participating in these events, you should be able to take your functional expertise in any of these areas and apply them to blockchain projects.

We are doing this to provide a key -- and currently missing -- plain-English onramp for people of all functional experience who are interested in building real businesses on this new technology.

The format of each event may differ slightly but they will be a combination of expert talks and discussions with industry practitioners.

The rough Blockchain Onramp Series roadmap is:

+ Product Series: Ecosystem, DApps and Strategy
+ Design Series: Onboarding UX, Best Practices
+ Development Series: Developer stack, Building on TestNets, Security, Best Practices
+ Startup Series: Marketing, Business Models, and Fundraising

Published in: Technology
  • ...My Scandalous Secret to Crushing The Odds So Effortlessly... ◆◆◆ http://t.cn/A6hPRSfx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Ordinary Guy Retires After Winning The Lotto 7 Times ➤➤ http://t.cn/Airf5UFH
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Using Blockchain in "Regular" Web and Mobile Apps

  1. 1. http://www.meetup.com/blockchain-product-design-development/ Using Blockchain in “Regular” Apps Product, Design and Development January 9, 2019 #blockchainonramp
  2. 2. Blockchain Product Design and Development Do we really need to decentralize everything? 2
  3. 3. Blockchain Product Design and Development About Me I’m Erik Trautman and I run operations at NEAR Protocol, a scalable, developer-friendly blockchain on a mission to bring the technology to a billion devices around the world. I also care deeply about creating great products, educating people and building rich ecosystems. My background is in markets, open-source software development, startup leadership and education. And general nerdery. Learn more about NEAR at http://www.nearprotocol.com 3
  4. 4. Blockchain Product Design and Development Roadmap 4 1. The Decentralization Spectrum 2. Primitive Use Cases 3. Wallet Use Cases 4. Tying it All Together
  5. 5. Blockchain Product Design and Development Roadmap 5 1. The Decentralization Spectrum 2. Primitive Use Cases 3. Wallet Use Cases 4. Tying it All Together
  6. 6. Blockchain Product Design and Development What is a “regular” app? 6 Today’s web and mobile apps are generally controlled by single companies and accessed via a web browser or mobile app. The developers of these apps can continuously change them and you never really know what’s going on behind the scenes. Browser Server Database
  7. 7. Blockchain Product Design and Development How a “regular” app works 7 1. The front end (what you see) of the app is served from a server controlled by a particular developer or company. It’s probably cloud-hosted today. 2. Requests from front end are run on ONE server. 3. The data from that server and all your interactions with it flow to the company’s ONE database. The server and/or database might be distributed across multiple data centers or the cloud but it’s still run once and controlled by one individual or company. Browser Server Database
  8. 8. Blockchain Product Design and Development What is a “decentralized” app? 8 1. The application still needs the same front-end stuff (HTML/CSS/JS) served from somewhere, eg. a cloud or a static hosting site or P2P network. 2. The front end talks to the Smart Contract using its API (via wallet). 3. The Smart Contract runs code and stores data on the blockchain network. This data is generally stored on behalf of the user. Browser Hosting Blockchain Network Smart Contract
  9. 9. Blockchain Product Design and Development What is a “decentralized” app? 9 A decentralized app runs almost completely independently on the blockchain. It is (generally) accessed via a blockchain-based browser or by using an extension for your browser. Developers deploy the app and then generally give up control of it forever (they cannot change its back end). Browser Hosting Blockchain Network Smart Contract
  10. 10. Blockchain Product Design and Development (...yes) Can you use blockchain in a “regular” app??? 10 +
  11. 11. Blockchain Product Design and Development Centralized + Facebook + Google + Uber + Amazon + Etc... Decentralization is a spectrum ...and most “decentralized” apps aren’t fully decentralized anyway [Infura!] 11 Decentralized + Augur + CryptoKitties + FOMO + Dexes + Etc...
  12. 12. Blockchain Product Design and Development Centralized + Facebook + Google + Uber + Amazon + Etc... The middle ground is massive 12 Decentralized + Augur + CryptoKitties + FOMO + Dexes + Etc...
  13. 13. Blockchain Product Design and Development A rough scale of decentralization and blockchain usage 13 1. Fully Centralized (no blockchain) 2. ...also uses blockchain as a database or log 3. ...also uses a few blockchain features (eg cryptographic primitives) 4. ...also interfaces with wallets (to store tokens or items or data) 5. ...also uses some smart contracts and token economies in main app flows 6. Fully Decentralized (all logic is in smart contracts) Note that we’ve assumed blockchain is analogous to decentralization which isn’t true but is a useful simplification for now.
  14. 14. Blockchain Product Design and Development Let’s see what’s actually possible with these blockchains 14
  15. 15. Blockchain Product Design and Development Roadmap 15 1. The Decentralization Spectrum 2. Primitive Use Cases 3. Wallet Use Cases 4. Tying it All Together
  16. 16. Blockchain Product Design and Development 1. Identity: Everyone gets an account which gives them a bucket of stuff to hold onto, sort of like a safety deposit box that lives on the chain. 2. Transactions: The idea of transferring tangible and intangible goods is fundamental to blockchains. 3. Cryptography: Chains only exist because of cryptography and they expose it to anyone’s use. Blockchain primitives (aka “what it gives you for free”) 16
  17. 17. Blockchain Product Design and Development Everything on the chain gets assigned to an account. 1. Accounts: Accounts can represent a person, company, app or even a thing (eg refrigerator). 2. Ownership: That account has total control of its money, its digital goods and its data (which can represent real-world things like identification) 3. Login/Reputation: Every account’s transaction history gives it reputation which you can tap into. In today’s web, developers have to custom code these. Blockchain IDENTITY primitives 17
  18. 18. Blockchain Product Design and Development Everything on the chain gets assigned to an account. 1. Direct: Anything can transfer directly between accounts without a central authority (allowing peer-to-peer marketplaces or transfers) 2. Instant: Financial and digital-good transactions have near-instant finality. 3. Micro: Negligible fees make high frequency and/or small amounts okay. 4. Conditional: It’s easy to add logic like escrow. Blockchain TRANSACTION primitives 18
  19. 19. Blockchain Product Design and Development Cryptographic primitives give anyone easy ability to: 1. Verify Activity: Did you do a specific thing or have specific data on a specific date? Eg supply chains, ad activity, transfers. 2. Verify Process Integrity: Is this “random” algorithm actually fair? 3. Privacy: All of this can be done privately. This is because it’s easy for anyone to use their account’s private key to “sign” transactions or data. Blockchain CRYPTOGRAPHY primitives 19
  20. 20. Blockchain Product Design and Development Let’s start with the simplest cases The most basic cases just use blockchain’s primitives for a single specific task 1. Blockchain as an immutable ledger 2. Verification of activity 3. Verification of process integrity 4. Instant transactions End users don’t actually have to know there is a blockchain back there at all. 20
  21. 21. Blockchain Product Design and Development Example: Blockchain as an immutable ledger 21 Primitive Shipping Group gets audited by the US Customs office so, to lower their accounting and insurance costs, they decide to save the logs of their cross-border activity to the blockchain (but otherwise change nothing). They submit the logs to an API which writes to the chain on their behalf. This allows their auditor to guarantee that one fraud vector -- changing records -- is addressed. Primitive(s) used: Blockchain as an immutable ledger.
  22. 22. Blockchain Product Design and Development Example: Verify activity 22 Primitive Ad Network is part of a consortium of networks who are trying to coordinate who shows which ads to which users to avoid bidding wars. It’s a game theory problem that only works if they’re *all* being honest. They take a snapshot of their logs every minute and save a hash of this to the blockchain (which is timestamped) so later random audits can prove the logs weren’t modified in the time between. This is called checkpointing. Primitive(s) used: Cryptographic verification of activity
  23. 23. Blockchain Product Design and Development Example: Verify process integrity 23 Primitive Lotteries runs a state-level lottery where people choose their numbers and buy tickets at local stores. They want to prove that their lottery is actually fair by running it using the blockchain. The winning numbers are chosen after all numbers have been added to an independent smart contract, which randomly chooses among them. Each ticket holder can verify that their ticket serial number matches their numbers and the algorithm can be independently certified true. Primitive(s) used: Cryptographic verification of process integrity
  24. 24. Blockchain Product Design and Development Example: Instant transactions 24 Bestern Union suddenly slashes their costs for cross-border remittances from the US to Colombia from 5% to 0.1% and allow for instant pickup by the recipient because they integrate a simple stable coin as an intermediary behind the scenes. Primitive(s) used: Instant transactions
  25. 25. Blockchain Product Design and Development Roadmap 25 1. The Decentralization Spectrum 2. Primitive Use Cases 3. Wallet Use Cases 4. Tying it All Together
  26. 26. Blockchain Product Design and Development Adding wallets Everything more involved requires an account with a “wallet” (public/private keypair) for the user to handle their own tokens, items or data. 1. Universal login 2. Item ownership 3. Peer-to-peer transactions 4. Micro transactions This is definitely a bigger hurdle for adoption since it requires users to think/learn. 26
  27. 27. Blockchain Product Design and Development Example: Universal login 27 You land on the website for a new social network for people with beards and decide to sign up. They provide you with 3 options: “Sign up using Facebook”, “Sign up using Google”, or “Sign up using NEARwallet”. All of these function using the same principle -- you login using your existing account on that service. But only the last one gives you full control of what information is read and modified and the ability to own future items. Primitive(s) used: Universal login
  28. 28. Blockchain Product Design and Development Example: Item ownership The mobile game Kandy Krush decides they want to do a promotion where everyone receives a unique prize after completing the last level. A notification informs one user they have been given a Special Kandy called the Butter Block. They can click the button to “cash out” their Special Kandy, which asks them which wallet they want to link to their account. Primitive(s) used: Accounts, Item ownership 28
  29. 29. Blockchain Product Design and Development Example: Peer-to-peer transactions 29 You just finished a great book on your Kindle e-reader. You’re talking about it with your friend and she says she wants to read it too. You pull up the book on your phone’s wallet app, tap it to their phone, and it’s transferred fully over so they can read it on their Nook e-reader. Primitive(s) used: Accounts, item ownership, peer-to-peer transactions
  30. 30. Blockchain Product Design and Development Example: Micro transactions 30 You load up your cell phone with a pay-as-you-go plan which works across carriers. As you drive to work and pass multiple towers, your phone pays fractions of a cent per minute to each of the tower owners and network providers. Primitive(s) used: Accounts, wealth ownership, peer-to-peer transactions, micro transactions
  31. 31. Blockchain Product Design and Development Roadmap 31 1. The Decentralization Spectrum 2. Primitive Use Cases 3. Wallet Use Cases 4. Tying it All Together
  32. 32. Blockchain Product Design and Development Example: Tying many together 32 You go to the NEARkat Madness website and use your wallet to log in. You play the game for awhile and unlock the Kung Fu NEARkat, congratulations! You ‘bump’ it over to your friend by touching phones. The friend gets tired of looking at Kung Fu NEARkat and sells it in an auction on the NEARkat markeplace to the winning user directly. Primitive(s) used: Accounts, Item ownership, peer-to-peer transactions, conditional transactions, instant transactions
  33. 33. Blockchain Product Design and Development The wallet is usually the dividing line 33 The simplest use cases either use the most basic pieces of blockchain (eg its ledger or cryptography) or use it as a medium of exchange behind the scenes to avoid interfacing with cumbersome financial infrastructure. The more complex use cases generally require the user to actually interface with the blockchain by setting up an account themselves (using a wallet).
  34. 34. Blockchain Product Design and Development More about the wallet 34 A user’s “Wallet” contains the cryptographic key which allows them to sign (verify permission for) transactions for a particular account (or accounts). The wallet typically then propagates that transaction to the blockchain network (usually by either running its own node or using a trusted node. ...So every time we have a transaction that needs permission, it must go through a wallet. Wallet Smart Contract
  35. 35. Blockchain Product Design and Development Wallets unlock accounts not just money 35 Remember -- accounts contain ANYTHING. The wallet could contain token balances but also crypto collectibles, identity data or anything else that’s linked to your account ID. Any time we want to get something unique from the user, we need their permission to access that data from the blockchain on their behalf.
  36. 36. Blockchain Product Design and Development The rub 36 None of the use cases above were decentralized. They added blockchain to regular businesses and apps. Some more than others. This is what we’ll most likely see to drive actual adoption on blockchain. Users probably aren’t ready for a fully decentralized system but can benefit from blockchain *today*. Be ready for this path!
  37. 37. Blockchain Product Design and Development That should take the pressure off! 37
  38. 38. Blockchain Product Design and Development A vision of blockchain-based services 38 Browser Server Database Smart Contract Services Accessed via API calls like any other service but are verifiably better (uncensorable, use blockchain primitives)
  39. 39. Blockchain Product Design and Development Thank you! 39
  40. 40. Blockchain Product Design and Development Blockchain Primitives 40 #1: Identity #2: Transactions #3: Cryptography ● Identity verification ● Universal Login ● Wealth ownership ● Item ownership (or access to services) ● Accounts (for users, corps, things) ● IRL identity tracking ● Direct / P2P ● Micro $ ● Instant ● Conditional (escrow) ● Verify activity (checkpointing) ● Verify process integrity ● Privacy

×