New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

ETHParis: Building dApps people can actually use

ETHGlobalWed, Oct 9, 2019, 12:00 AM

ETHParis workshop: Building dApps people can actually use. Alexander Skidanov of NEAR Protocol explains how to build useable dApps for developers and hackers attending ETHParis.

Transcript

okay hi everyone i'm alex from near and that's going to be it's a tough act to follow my presentation is not as technical it talks more about how do we actually get to the mainstream adoption of distributed applications right and when we talk about the apps one use case which is very popular today is defy is decentralized finance but there's another merging use case for it sometimes application which is web 3 and I will give you actually one question I have is how many people here know sort of what's the idea behind web 3 so few so I will give you some motivation why web 3 is needed and then we're going to talk about how how every can actually happen at some point so I will I will have some news highlights one was very recent it was a very large New York Times investigation in which they found that Facebook was sharing a lot of personal data of users with third party companies including Microsoft Spotify Netflix and they go all the like they claimed that at some point Facebook shared your private messages from messenger with Spotify and Netflix to improve their service I don't know how how true that is and so so privacy relation is one big thing that happens in in the web too another big thing is lack of data ownership if you use slack your account will be banned if you just cross the border of Iran right that's like slack is is a work tool there's absolutely no reason why some some weird terms in like privacy policy of the company that transit can completely deprive you of your over tool you're using for work right another example is another reason why web 2 is not that great is that the way the way your personal data is used even when you give the consent is very non transparent and that's not the research by New York Times well they find that a lot of smaller applications which are ask your permission to track location and they actually need location usage right so it's something for example if you if you have key and you have an application which shows them where they are many of those applications send the location data to a third-party service which aggregates it and collects a huge data set of movements of people around the world right that's not something that I would prefer my person late and not be known to be collected in a way that I do not expect it to happen and like user tracking in general happens in like in some cases you know it's happening but you don't understand how how bad it is so for example Google Timeline many of you prob'ly started to write in Google Maps or if you think about it all your movements that you ever like all the secrets you know all the places you go to you don't want people know that you go there Google has all of them in an unencrypted way somewhere in their data center right that's that's actually pretty disastrous and if you go to this is a URL on Google where you can see all the information they collect about you and when you go there it looks very creepy like the sheer amount of information they collect is it's not something you would want anyone to ever see in case you know Google by accident gets hacked so speaking of hacks the in web to this all the services have all the security breaches and this is my favorite story which happened I think five years ago where someone's Apple account was compromised because someone's Amazon account was compromised because a hacker called Amazon and asked to add a new credit card to the account and all the information you need to do that is the birthday and their address because if you think about it what's wrong with adding a credit card right but then he calls immediately and now that the second time and says you forgot the password now that's a more security you know it there's got to be higher security so besides asking for your birthday and your place of birth or like where you live they also ask for the last four digits of the credit card conveniently you just edit the credit card and so he managed to get after those two calls only knowing the birthday and the location he got access to Amazon account having Amazon account now he now knows the four digits of the actual credit card of the user he calls Apple and uses that information to get full access to the Apple account including Apple Mail and she goes to Gmail which has and recovers the password to the Apple account and then accuses Gmail to recover password Twitter and he and he completely obliterates all downline presence of that person but also not to stop there they also use the Apple account to erase all their fine data as well so they completely nuked all the digital presence of a person literally knowing just the birthday and the location right and like if you think about it it's Apple and Amazon that's two out of five companies and Fang right so those should be the greatest of the greatest finally there is lack of reliability so this is an example of Google Cloud sending a message to a company that operates windmills they operated windmills and they have a monitoring system which has a very high requirement to the to the uptime because if you don't get monitoring data about windmills like they get stuck and so what Google cloud did is that they suspected a credit card in fruitland activity so they shot down all the instances and gave the company three days to send to update the payment method before erasing all the date on all the instances right that is that is not something you expect from the cloud company using right and so why is all that happening so first of all web tool is designed today in a way which promotes monopolies it promotes walled gardens and also promotes people to collect and process data in a non transparent ways because data is very it's actually the most of the values company have this data it's not code it's not services it's data they collect on you but yeah we have web 3 web 3 can solve all of that first of all in web 3 the state is open meaning that if an application has a state that's taken the state can be expected inspected by anyone so either the user encrypt state locally and then nobody has access to it and user knows that for sure or they use the state unencrypted and that state is completely public and that means that the companies cannot hide the data behind the world gardens and then again personal data processing is completely transparent you can see the backend of every service you use you know exactly what's happening with the data you sending to them and hopefully the uptime and security are significantly higher all right unless unless there's a critical bug in the client implementation the the blockchain will don't go down however if you go today let's say someone builds and your version of Instagram which is completely private and secure and and respects your data privacy if you go outside then you talk to people and you tell them yes look this is this is you Instagram its priority respects your data privacy they will not really care right and so I have this plot here on the horizontal axis I have numbers of given about privacy and on the vertical the number of people and so it's the scale is from zero to some and and so raise your hand if you think that you here that's quite a few right and so exactly because we here we all use Twitter and we're not using mastodons or people thread that's because Twitter Twitter's actually good and respects our privacy and not because Twitter banned Evan Van Ness by now four times went pumped Oh pump how many times to right we know Twitter is evil right it's not even like Google at this pretends to be good it was what I say but who is but who but who is to decide you know right and so you know but there are solutions which solve it right Macedon doesn't solve everything but Macedon was quite a while quite a bit people solve most of the problems right and I don't think any was well I guess at least some of us maybe raise your hand if you on at least one of the two we have one two three people and the problem is that if you if you bring a new product to people and you're saying use this product that product needs to be ten times bigger that is a ground truth first I think the first it was Peter to who said it but since then it was confirmed many many times and if something has to be ten times better it implies that that cannot be worse and right so today we have three it I don't know how many of you saw this video about the lemon cone by mainframe but that video represents perfectly the current state of of the web 3 and for example that's as an example use a cryptic eating keep the kick is an incredible game to play and it has a very streamlined process to acquire a cryptic if you want to start playing all you need to do is install it install the browser plugin go to command base register there go to kyc send your passport by a meter and then you have a cryptic eating right and turn of course transferred to madame ask yes and so we talk we talk to quite a few of the projects which are running to the end etherium and the drop of rate of this onboarding process is 97 percent right so you can you can be building the greatest game on earth but for as long as you only keep in 3 users out of every 100 who wants to play your game that's not going to work very well and that's exactly what we observed so this column is daily active users and this is the top etherium apps the most used Atheneum app has one point seven thousand eight daily active users that's a game when I was in high school I built an online game which had 2000 daily active users right so and you know I'm not necessarily the best game developer out there so so that's where we are today so what do we need to do I have this incomplete list of steps which we absolutely have to solve before we will gain any mainstream adoption one of them is blockchain needs to be faster but besides that people should not have to install any browser plug-ins people should not have to pay anything to use the applications and definitely people don't need to understand what a public key is and how not to lose the private key so with all of those three the first one is not what we're going to be talking about today but if you we did write a lot about law about faster blockchain specific about shredding before so if you interested to check out those things after the talk we have near the Tesla short one and short two to blog post about charging and we have a video from the graph day that's short three ok so why do we why do we actually have the gas phase keys private key like key players and meta masks and specific especially private key pairs and mathematic is because that's that is actually a requirement for high security but what those requirements are coming from the days of Bitcoin where you would store some value on the blockchain which is which is something you absolutely do not want to lose so at that point you actually do want to have as security as high as possible if we're talking about playing cryptic kitties and you know not having like keep the key to number four but just buying couple cryptic ITA's you know one dollar each you really don't need that level of security and so a good example of how you can go between security and usability is what do you actually use to access the apps on the highest security if if you plan to access if you plan to use a wallet which has you know like millions of dollars associated with it a probably good name for meta mask from source and they probably going to do one extra audit check before you before you run it I was likely a lower level of security but higher usability you will then store it install it from the from the chrome store and even think about it how many of you actually check what you installed when you install it from the Chrome store so technically the person who owns that particular plugin today they have full control over all your assets right on the highest usability level you can just use a hosted wallet right so effectively you can have someone have a database which has your private key maybe encrypted with something you store in the local storage but then it could be like a password you know and then you use that password to access all your application from any device you don't need to do any key management you just use the familiar we just use the familiar tools but now usability is incredible you don't need any browser plug-ins you just open the website and it just works right and so if I think about hosted wallet it gives it gives us no key management it is lower security and that is fine at the beginning right so let's say I'm a new person I never used crypto before and I want to play clip the keys right I go there I used the hosted wallet I'm playing for a while and at some point I have an asset which is very precious to me so at that point actually the security of the hosted wallet is not sufficient for me anymore there is no way on a theorem today to upgrade right so I the private key is already stored in their database there is no way for them to forget my private key right and so the only way for me to do it on a theorem is like is create a new account locally and transfer all the assets right but first of all it's a it's a it's an effort second of all not everything can be transferred it could be my assets a lot in some way right and there are solutions to that there's a universal login right which says which have like a contract which manages your keys but if that is implemented on the base layer of the protocol that becomes significantly that's a lot of problems so if your contract if your if your account is actually not a public key but some storage which which maintains a set of keys then suddenly you can do multi-sig way easier you can you can swap the keys you can change the key if you if you suspect it was compromised you can you can add multiple keys so that you can access the same account for multiple devices without sending the private key through in secure channels and yeah that's contract based accounts now that's that's one of that dimensions that another dimension we outlined at the beginning is gaseous why do we even have the gas phase there are three reasons one of them is to rank transactions right if the system is at capacity like a theorem is quite often today you do need to find some way to choose one transaction over another another and that is where the gas is used today and probably that's where it's going to be used always it should it should always be possible to pay more to get higher but there to more important applications is a you actually use gas to pay for people to to do work right someone actually spends CPU and and memory to process your transaction that's what you pay the gas for and finally this is the way to prevent Sibyl attacks this is how you know someone will not register 1 million accounts and start sending free transactions to completely saturate whichever resource is is scarce so let's first talk about paying for the block production work if you think about it when you use Facebook or like when you use Twitter and you twit someone also spends some CPU and memory and yet for some reason you don't have to pay or maybe you do write so this is a screenshot from Facebook on which the property of this screenshot is that there is literally nothing on it but ads right and that's an actual screenshot from Facebook so you are paying for using Facebook it's just that it is obstructed out you're paying user with your data and you're paying with your attention and there's nothing fundamental in the blockchain that doesn't allow you to do the same so effectively it could be someone it could be the app developer or it could be the sound third party that will pay for your gas and in return in return for some other way to to get value from you so a good example could be if I'm the protocol designer I actually have a very strong incentive to pay for your transactions because I need adoption or if I'm some other third party which has if I'm an ad agency I can provide you a gateway if through which I will serve you ads as you browse applications and so I get value from you by showing you up the kit so I will monetize your attention and then that third or if I'm the application developer himself maybe I have some future value in you like if I'm a cryptic it is I I want you to play for free I want you to get hooked so that later you buy a very expensive cryptic eg from me and and I get way more value from you in expectation and what I had to spend on you and then whichever third party is that if it's a if it's the protocol designer or the ad agency or the developer they can have some of chain way to prevent symbol attacks they can use CloudFlare like it is possible right however there is one important property that has to exist which is if that is the case if someone is paying for me today and monetizing something they monetizing my attention or they monetizing my some future value it should always be a way for me to say actually I don't want to do that anymore and I want to start paying gas myself I want to pay for my transactions without anyone monetizing me in any way and so effectively the front end of the application it should be something that I should be able to to get on my machine bypassing any third parties because the front and is that is how I communicate with the smart contract and that is not solved at all on the theorem today on the theorem the front end today is more often than not hosted on a central server right and so today you open idec's you might have inspected the code that they sent you and and you trust it to more you open itix they could have changed the front end that is actually being served some tracking some tracking would have been installed or they can they can issue a transaction that you don't expect to happen right so the front end ideal it should be searched from something that is decentralized so a good example is augur if you use augur the front end is Earth from a TFS so then you can actually inspect that you're receiving the file the front end you expect to receive and then you can direct access the next time but that now that significantly complicates the development process ideally I should build the app which has back end and the front end and that should be on the blockchain and anyone should be able to get the front end from the from the blockchain right and so that covers the three dimensions affected right gas fees plugins and key management that we absolutely have to solve before we get any mass adoption and so that's how people can actually use and I want to spend a few minutes to talk about building distributed applications which people can actually use because one thing is that Vic our compressibility is very important when you build applications the motivation for that is that building an application from scratch is out of work and a lot of modules that you're going to use are reused like if you think about it Twitter Facebook and YouTube they all have something in common they all have a social graph and each of them are implemented from scratch right that's something that is reusable and in majority of the large companies today that use abilities is built-in like they all use my cursor versus they used you know kubernetes deployment which deploys well to make our services which people can use and the micro services they they also have this advantage that it's not just the code that is that is reused between all the services that use the micro service it's also the state that you have a social graph the state of the social graph can be reused by by all the micro services like decentralized Twitter can use the same social graph as decentralized YouTube the problem is that in a decentralized world in the web 3 if you cannot monetize the services you will not build them even today an open source if you talk to people who maintain open source packages that's a huge it's a it's a hassle for them which doesn't pay off at all so most of the people who maintain open source packages they do that because they care about the product they build not because they they gain much from it again practically nothing it's going to be even worse if you have also deploy it on the chin and maintain it and maintain the state and and especially if it's also you who's paying for that and so that's that's going to blocking the progress without people actually people will not build if they don't have a meaningful way to monetize and that something is you on the theorem as well right the only way people found so far to monetize I guess the only popular way people found is issuing tokens but then not they did not only they need to build a service they also need to figure out token economics right and often the token a Meccano economics they figure out don't work and incentives a misaligned because you know I see what happens first suddenly have money there's no incentive anymore actually to build anything and that's exactly what we observe so what if we do a small change to the protocol what if we say that when the fee is paid doesn't matter if it's the user who pays the fee or the app developer or the third party when the fee is paid it doesn't entirely go to the miner just a percentage of it goes to the miner and the remaining percentage goes splits in some way among the owners of all the components which which were invoked now if you think about it if you deployed a social graph component and it is being used actively then like every fee every every time production is invoked you getting very little you're getting like a small percentage of the field but if it's a popular service or if you have multiple of those that becomes a meaningful way to monetize your your work all right so now suddenly you actually have an incentive to build and the incentive is very aligned you need to build something that is going to be used by people if people don't use your service you don't get paid if they use your service you do get paid so incentives are aligned you don't need to figure out any token economics it just works if it's being used so that's that's one interesting idea how to how to make development for our web 3 more incentivized so that's what we built and today on on crypto Twitter is a big I think people don't like competition so if you especially if you look at like polka dot versus a theme which is happening right now because partially because of a free-living but also like in general that's happening all the time and people talking about like our protocols are competing and our polka dot is stealing you know resources from a theorem analogy there is no competition today as we saw previously the most used application rate has 1,700 active users we fighting for 1,700 tech give users these you know so fractal what will happen is either nothing will improve and then all the protocols will die out right so when the speculation goes down the actual usage will not be able to maintain any any any value in the network and without value the remaining will become meaningless and the network will die out or we will find ways to bring more adduction right and that is not something that that cannot happen if we spend effort you know competing with each other and fighting encrypted Twitter so you know ideally we should all be friends right we're very open with the community I hope most of most of you saw the the youtube series we maintained called whiteboard serious if you never saw it it smeared oti slash whiteboard serious it's a series of videos it's a video podcast proven invite founders of other blog chains and we grilled them for one hour in front of the whiteboard and we go very deep into all the details of the protocols so we have one on a theorem where we talk a lot about charting we have one on plasma cash flow which is probably one of the coolest plasmas today with plasma group solana inter ledger cosmos it's a very nice serious for anyone who's interested in the technology right besides that stop at our booth we have for five hundred dollars bounties if you want to build an ear check out our developer tools and please follow us on Twitter we will have any t metrics thank you [Applause] it it estimates the distance to web three yeah that is wrong I think there was a blockchain called near that was doing proof of location but I don't think they exist anymore right so I agree mostly with what you're saying and the the argument here is that a even if you build a so I think sort of the world changed and like back in the day not that many great games were available and so you would have to go through the like an art roll of that I was doing that as well today there are so many free solutions available that for you to win over customers from you know from from the web too you have to provide them at least at the beginning you have to provide them like that's something we call delayed onboarding you won't don't board them eventually but you want first to prove the value to them because without that you will not attract them so the question is then is there something that blockchain provides on top like why just don't build a web 2 application and not not bad like not care at all and so it does that's specific to the point that today people don't really care that's partially because of lack of education right but before you can start educating people that privacy is violated you need to provide them an alternative and to provide the alternative that alternative needs to be as usable so this is like chicken and egg problem here so so yeah so right so I think that is more it's very hard to predict the future and see where it's going to go it's it's I think that's matter of perspectives the question is like does each particular person believe that once you actually have privacy-preserving applications that are as good as non privacy-preserving applications but but they launch later right there the disadvantage so the question is do you believe that people will actually switch to to them but until they better I'm pretty sure the answer is No so regarding the first point about not being able to delete your tweets it's it's an illusion because if you posted something a year ago and someone really wanted that like to see those tweets then they will they will persist them and like Weber kyv persisted them you know so they exist in history so when you delete them they just not easily accessible today through the through the primary interface but it's not but it's something you can do on the blockchain you can make it in such a way that the state of the blockchain does not have them anymore but the history of the blockchain does and you know in the real world today you can have that the state of Twitter does not have your tweets but the history or like web archive does right so you can you can make it very close in terms of that experience right in terms of revenue share we don't have good models in terms of how much developers can make because that also depends on how on how high the gas fees are going to be how many transactions like how much usage the systems will get and those values are completely unknown today but we were modeling how that would be structure in terms of how much is it actually goes to every service and that one itself is very hard problem we don't have it fully figured because if you make it automatic in some way whether this split is derived from some something that is computable like you know how much gas each of them spent that's very game about you just put a huge loop in front in your contract and suddenly you get all the fields right and if you're trying to do a market where services like bet on something that incentivize cloning someone else's code and then competing with them on price right which is also very undesirable property and so there we don't have a perfect answer yet but we're trying we're trying different models to see most likely there is something that that works Thanks [Applause] you

Automatic transcript — names and jargon may be misspelled.