DAPPCON 2018: Build Engaging dApps with User-Centric Data - Michael Sena (UPort)
DappCon 2018 · July 2018 · 15:06
Michael Sena of uPort presents building engaging dApps with user-centric data at DappCon 2018, walking through how the identity platform lets users control and selectively share their own data with applications built on Ethereum smart contracts. The talk covers uPort's approach to self-sovereign identity, framing user-owned data as a foundation for building dApps that respect privacy while still delivering personalized experiences.
Speakers
Topics
From DappCon 2018, hosted by Dappcon Berlin.
Transcript
okay thanks so you have 20 minutes I think this presentation will take about 15 which will leave us 5 or so for questions thanks for the intro but in case you're wondering my name is Michael Sena product wait at you port been working on with the team for like two or two-and-a-half years now it feels like 10 and here I'm like happy to share some updates with you and some of the new things that I've been working on so the U port that you might come to mind when you think of viewport like the mobile app and the Kinect and all that is still what the main team is working on but I'll share some new things with you today so this presentation is about building engaging adapts with user
centric data and the things we'll cover are just an ecosystem overview where are we the state of adapts we'll cover what user centric data on aetherium means or could mean some use cases for that and some resources to get started so where are we as an ecosystem we've been talking to a lot of developers asking them where's your dab what are you building what's most important to you and spoiler we heard this I'm just trying to get users on my platform right now most people couldn't even most developers couldn't even imagine a state where their platform was rich with users
and they were trying to develop a rich experience but so this chart says a lot and like there are normal like our metrics and all of those things that standard VC's will tell you to look at in the traditional web to cents but what's being added here is this intent this intent column and so basically what you have in web 3 is it's hard enough to to reach users you're basically using Twitter or medium so you're limiting your scope already and in normal web 2 you go right to acquisition so it's like a user sees a link they click it they onboard with Facebook or something and it's simple but in blockchain that intent step means a lot it means a user needs to decide they want to use it then between intent and acquisition they have to go download a wallet acquire eath
maybe past kyc or AML regulation if it's a financial platform and so the the fall off between intent and acquisition is huge and that's where we hear developers expressing this need like okay how can I get users and on them more simply and this really explains the problem and it's like the apps not many apps are making it down the funnel and those that do which we'll cover in a sec are for a very particular reason and so let's look at who has users who has volume and transaction throughput on their platform and so I pulled this from doubt radar it's pretty simplistic I think they probably count
users as aetherium accounts that are interacting with their smart contract however they figure the metrics it's decentralized exchanges games or collectibles and Casino and so what does that actually mean it's basically says that these daps are ones that have enabled users to make it through their funnel and then you say why I like what is the user behavior that drives that these daps might not be any might have no different onboarding experience than other tabs it's because they let people make money and so the financial incentive is enough to overcome the user experience barriers of downloading meta masks like I don't know if any of you have seen that crypto kitties onboarding infographic or steps and there's like 20-something steps and
three different leave the page and come backs and like no wonder why no one can actually onboard users and also the browsers and so these aren't really DAPs they're more like ways that you access web 3 and so users need to use these in order to use stats and so these are the people that are sitting in that intent to acquisition gap and so we can all and I can even throw like you port mobile wallet in there and we can say these are all barriers to acquiring new users but let's assume that the wallet providers and the browser providers the web writers will solve some of these steps like we just heard opera integrating
like web three libraries natively maybe Mozilla will do it next and I think eventually you'll see a little blurring of the lines between web 2 and web 3 browsers and in that time I think we'll see some of these onboarding steps being solved other onboarding problems like fueling transactions and acquiring eath I'm sure there will be other solutions to that such as paying with a credit card or Apple pay or fueling meta transaction services that will exist on the network to abstract it away from users and so oh my god but what about all the exciting social and community marketplaces being built well none of them have traction or they haven't launched yet and they might not have traction for various reasons if
there's a fall off between awareness and intent maybe they don't have product market fit or maybe they just haven't reached the right audience but if they're not making people through the funnel it's because there's not enough draw so basically what I'm saying is the value proposition of decentralization alone might not be enough to push social and community apps over that barrier like it's a lot to use a doubt so why should I use a decentralized app for something that is just as good on web - but what about data management and so let's return back to this it's like they're not making it through this funnel for these types of apps and so how can we help them and so I know it's hard to imagine but once we imagine that
we can once we imagine that we can acquire users without too much friction meaning like the browser and web the browser vendors and web through providers are working together and that's a seamless experience then what happens then what is web 3 need to take it to the next level and start to begin to compete with regular applications out in the normal world like not with like us in this room where we're also we're developers and end users because like we're kind of in an echo chamber and so it's about data and so really when apps think about providing engaging experiences and retaining users it's about like delivering something that's powerful engaging and that people want to come back to and so the only way you
can do that is with data and so the like decentralized nature of exchange of decentralized exchanges is a value proposition in itself it lets you make money but how did these apps keep you coming back and so it's about managing the data that's generated as a user or as an aetherium account interacts with your application as an aside like this is generally the model of identity that we take it's like an attribute based model of identity where as I interact with some other party they give me some piece of data that has resulted from that interaction whether that was me showing them my driver's license and they give me a digital certificate saying we verified that you are in fact this person or I
just like pay you five bucks because I owed you five bucks and then you give me a piece of data that's like five stars you paid me back either way there's a lot of type of application user data that's generated as they used apps so profile information which is like you go to adapt and instead of seeing Oh X one two three four you can give it a name social information like your contacts their the names you apply to them the avatars you apply to them your social graph your history of interactions with those other people on the network and platform your settings so like what's your what's the default token currency that you want to see in the DAP what are your language settings etc
defaults preferences or things you liked and disliked the history of your interaction on that platform in general and state management and cookies so all of these things we need to take a dramatic improvement on in order to start competing in the way that we need to for web 3 and so ok this types of this data is cool but like where do we store it and can't we do that today so there are two places really that you can store it you sort on the server which might be fine for some cases it has drawbacks so want it centralized and we're all here because we believe that that's probably bad and in addition web servers are siloed by DAP there's really no way for you to
share information across servers because they're designed to not do that and local storage and so this is sort of where you can just encrypt and store secrets in the browser by origin and so that's fine but it's siloed by browser and so now you can't really create cohesive experiences across mobile and desktop you're pretty limited in scope and so what I've been working on and what we've been developing and it's still pretty early stage I'll show you like a an MVP prototype that we developed what it's called three box and so what is three box it's a web 3 library that lets developers set get and remove data from a user's private data store associated to their etherium
account thereby allowing users to collect off chain data as they interact on web 3 ok so what that actually means is you have an etherium account with the seed wherever you use that if your game account on whichever browser or wallet you use it you can basically access a private data store it's like your personal data API it uses standard web 3 personal sign to authenticate taps to it and so it pretty much comes compatible with every wallet provider out of the box so how does it actually work you can give it a quick install using NPM as you can see there's like a couple functions
that you can use it's very basic at the moment it's you can get stress if extreme that you're looking for that you know you added you can get everything in there you can set a key value pair and you can remove a key in the future we'll add things like encryption and DAP sharing and so basically you can like encrypt a specific piece of data and pass a secret to adapt that has specific rights that decrypt it so you can share data across taps in a granularly permissioned way right now it's pretty basic like anything that my DAP saves in this library in this user space or three box than any DAP that has also been ranted access to that 3 bucks can see that
so the first use case we imagined for it will be like a third location for app developers to store data that's not local storage or a server and in the future we'll be all about sharing data between DAPs so really how does it work again so it stay it keeps user data synced between browsers and in the users control so this basically solves the problem of accessing crypto kiddies and status Toshi and in meta masks because right now if you set a name in one unless they're storing it on their server you won't be able to see it on other implement or on other wallets and so all of this information needs to remain synced and three boxes basically this interface that lets developers use this
functionality all the user needs to do is basically click approve when they're signing it so when a user goes to adapt they sign a message using meta mask which they don't even really need to because they can just sniff the web 3 provider which I think meta mask is thinking about deprecating in the future and so it will be like a request based opt-in to share my web 3 with the DAP and so this is a general pattern that you're seeing and so we're gonna fit right into that where you sign in with your web 3 provider and during that process you can also execute a personal sign that gives that DAP access to your 3 box interface and the data is actually managed on a PFS for now but we're exploring other options like Orbitz DB or really anything why are we doing this
just to reiterate for usability security interoperability and decentralization which is kind of hard to cover all three or all four sorry so what are these cases and I already covered some of them but I'll go through just in a bit more detail to make it clear what data should I store in three box you can store profiles in settings so you have your crypto Kitty snap you have an avatar placeholder you can add an image there yourself you can give your account a name Kitty superstar you can set a default currency you can set token watchlist like in meta masks like all of this data that's generally about you can follow you around the web
preferences and recommendations you can store information about what users like and dislike and this these preferences let you actually provide them with better recommendations so I'm using a decentralized exchange and I've previously bought a sir I've executed to trade on a certain type of pair a few times and this is really the only one that I've ever used or I've used a couple variants of that you can start to serve people better recommendations on decentralized platforms which actually increases liquidity because it solves the discoverability problem solves search gap cookies so basically you have a common location where you can store state and remember past actions taken by your users so if they're on mobile or if
they're on desktop they have the same history and experience platform history this is sort of basically taking data that's already on chain making it more available and easy to use by other apps so you can store actions taken by users on the platform this is just the transfer log and this can eventually form the basis of shared reputation shared contacts so like my crypto has the the contacts where you can basically add tags to addresses which you can use for names and they store them in local storage I think that's cool but you can only use it in my crypto here now you can save a contact list that you can use
across all of your doubts so now you on board and you don't have the cold start problem of trying to fill up and know who the other users on that platform are because you've already interacted with them and they're yours so here's the last slide you can try it out it's a new library we've just begun developing on it we've tested it it works in meta mask it works in status we haven't tested it too many other places yet but we urge you to there's some documentation on github and that's all I have for the presentation I'll open for questions I think we have a few minutes