EthCC 2: Benjamin Bollen
Ethereum Paris·Wed, Oct 9, 2019, 12:00 AM
EthCC 2 EthCC, the Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. Follow us : @AssethFR https://ethcc.io
Transcript
good afternoon I am very grateful to be here also thank you I feel for the talk bridging the divide because today I want you to be there obviously fictional characters but they're going to help me tell the story I'm a big guy but I'm going to try to talk to you about development and [Music] I better so I'm literally bridging the divide because I've been for five years now building the centralised software and over those five years I've learned one lesson and that's a lesson I want to share with you here today and and with it also tell the story so for now just remember these characters and I'll come back to them later but so actually five years ago I was here in Paris 2014 and I gave my first presentation on decentralized software that we built and ever since this is what it comes down to as technologies we focus on our technology we think about our cute adorable puppy we love it it deserves all the attention but we very often ignore the box we don't consider how we're shipping the technology what we're building and if we don't address that problem if we don't look at how we're getting our technology in the hands of end-users it doesn't matter at the end of the day we're building for ourselves if we're not building for end-users and what do we want to build I'll take a bit of liberty and I'll say that we're all wanting to build a decentralized Internet in this room that might take different forms of what that means or which values we stand for but we will all agree on as we need to put keys in the hands of people and if we're serious about this we need to put keys in the hands of millions of people and so one approach is to consider how do we put a theorem inside mainstream applications because by definition Mainstreet the applications already have users but then how do we get there how do we go from where we are today to where we would want to be and so that's where I will want to introduce my my treat little characters we talk a lot about taps decentralized applications but what about mainstream applications Maps or moppy's and is there a variant of hybrid applications that sit in the middle and while these characters are maybe fictional what is really important is that when you're having discussions about what to build and how to build it they help you fine-tune the story because otherwise again we're building for ourselves we're not building for the end user and so mappy or a mainstream application it's an application that already serves a purpose it has tens of millions of users maybe hundreds of millions of users and these users use that application for a specific purpose they come back to it and and that's why they use that application whichever it is the developers of that application they themselves also have a very direct interest they want to increase user engagement of their application and so one way that they can increase the user engagement with the application is by increasing trust by increasing transparency and so there are a lot of mainstream applications that are very much interested in looking at how they can tokenize the value that users create within that application but that's not their core focus the core focus of these developers is to improve the experience of their application they don't have the time or the focus to to look at writing solidity smart contracts rebuilding in furor all these things they shouldn't be doing that's our job and that's also the message of my talk we should make it our job so if we have mappings we may or we can also consider hybrid applications happies and so they they already exists also if you think of wallet companies they're not the traditional company because the core logic of their service is already decentralized they're still back in that helps surface the application but at the end of the day I can take my tokens out of a wallet that I don't like and move it to another one and so they're already far that deeper down the road towards a decentralized application and then of course we all want to build decentralized applications but we have to be honest that today we cannot build that we cannot build an actual mass use application as a decentralized application and so with these three characters I want to emphasize that we can sharpen our discussions of how we build and what we build to really get to to mass adoption but then if we so if we go back to mapping right mappy has developers and so mappy has developers and mappy has end users and if we want to build for them we need a way to answer what it is they want and so one framework that I can really recommend is the jobs to be done framework it's as simple as it sounds but everyone has a job to be done it might be a functional job it might be an emotional job it might be a societal job so for example if I have a dinner date and I'm running late I still want to be want to be arriving on time so I will pull out my app and I will hail a taxi ride with a click of a button because that gets my job done my job is at that point getting to my location on time and so in general a good application gets me where I need to do go it fulfills my job where it has functional emotional like Netflix fulfills a lot of our emotional needs or societal it's a really helpful way to think about things but also app developers everyone has a job to get done they their job is to improve user engagement with their application and so that brings me to a pilot that we're launching one mainstream application that we are working with is Horner it's a gay social social network they have 25 million registered users and soon they're on it here in mainland and their end users are already using this application where the purpose they already have a job to get done they're there to chat with people meet people socialize we shouldn't get in their way they don't want to open Hornet to learn about crypto back up there 12 words that's really not going to fly but we do want to educate so we're Hornet they already have internal community points that are just points within the application and so they're now becoming etherium backed LGBTQ talkers and so we know we we want to educate both the users that they're going to have now tokens that are externally valuable and an LGBT token by itself is also an education project it's to raise awareness for the LGBT community and so when these users open their app when it updates they will see that they can claim their LGBT tokens and so we want to educate but we don't want to ask too much and we know that six digit pins work Apple has tested this almost all phones right now lock and unlock with six digit pins people can remember six digit pins and so when we want to create their wallet we ask them to create or give a six digit pin and to absolutely not forget it because then they've lost access to their wallet people get this and so the end users have a job to get done and we don't want to interfere with that and help it solve it help solve it but also the developers of Cornette have a job to get done they like we said we they want to tokenize but they don't have the time or the focus it's also not their job to and so how we solve for that is by building or have built a wallet SDK so it's an iOS Android SDK that manages eater lists keys so for the end user on the left you can see it just looks as if he has a wallet inside the application and also the app developer doesn't have to learn it or get under the hood of things and the way that we solve for that is by writing on on this concept of interest keys because now we can define different types of keys that the SDK can manage that serve different functions and I do because I met that guy I'm going to spend a little bit of time on this so we deployed three contracts for each user some of you may know gnosis so we have a multi sic contract from Gross's safe that we use to control the ownership of the account then we have an agent contract that the user can use to act within the economy we call it a token holder account because it holds the tokens and we have a third account sorry contract delayed recovery contract and so each device gets a device key it's managed by by the safe Knossos contract and it's the main owner it owns the token holder contract itself and that contract managers session keys and so session keys are something that we've had to introduce because again when the user is using this application we don't want to interact with interrupt the experience that is having no mainstream application is going to adopt a theorem if they are forced to break or reduce their user experience they might still be interested in it but they're not going to roll it out if it reduces their user experience and so for that reason we have session keys because with the session keys the user can authorize once a session by entering a spin and then the device key is unlocked from the secure Enclave and we can authorize a session key that now has spending limits automatically expires on the contract and also when the user logs out all the session keys are deactivated so this contract actually holds the users tokens so when he's acting in an app when he's liking something or or giving someone tokens or LGBT tokens then then that actually happens to true executable transactions signed by this session keys and lastly there's a unique recovery key and this one is associated with this recovery contract which will allow the user to initiate the recovery and to enter a new device key if he has lost access to to the wallet and because the space is very new explicitly the executable transactions we actually have here three types executable transactions so closest has their own safe transaction that is then used for the device keys in our case the use of VIP 1077 which was the executable transactions really started the meta transactions movement isn't the most gas efficient choice we've made but but we definitely wanted to support the community standard and standardization so what we'll learn we can now put back into the discussion around the IP 1077 and then for the recovery key it's not really a transaction it's a fight it's sufficient to to science structured data and so that's why we use VIP 712 which is a great a IP button and because we have these executable transactions now we can build a real layer service the SDK can sign executable transactions and we can relay them to a term maintenance however that doesn't work because the etherium maintenance does not have the capacity for that many users so we also have to build a layer to scaling solution on top of ethereal Manor but that all this work gives us tokens inside an application that the user didn't have to lose the experience round or learn something that was unusual to him - maybe a keels point also because of the ether list keys the company here Hornet is responsible for paying the gas prices so rather than charging the user it's a company who is charged for for the gas prices within the application but then apps get uninstalled and keys get lost and so yes we should write down to our words and yes we should have multiple devices but most people won't and I am a fervent like it should always be possible to write down your 12 words but if we insist to a mainstream application that they have - at early or later stage right down to 12 words no mainstream application is ever going to accept that in their UI because users won't like it and no mainstream application is going to sacrifice a decrease in user experience just for the sake of our vision of a new internet so we have to do better it's our job and so again if we don't solve for distribution it doesn't matter what we built if we don't scale out we can't scale out if we don't solve for the distribution product and so when you remember we created the user wallet with a six digit pin and sew a zig-zag pin you will all know is not a recovery key you can't generate a key from a six digit pin we need more entropy but here we have a unique situation because we have two entities already we have the application itself and we have a real layer service both of them can store an entropy rich secret to help to send to the user SDK when the user wants to recover and that combined with the pin is now an entropy rich recovery key but it can be brute force it can be brute force if the parties with collude or if an attacker manages to breach both the application and the relayer service this is a problem still but that's where we need a theorem because with a smart contract on a theorem we can enforce a delay on that recovery so even if the recovery is signed by the valid recovery signature and by the valid we layer then still the smart contract will enforce in this case we're using twelve hours before that recovery can actually be initiated and within that twelve hours we can notify the user the same way when you travel and you login to Gmail you get a notification was this you trying to login we can now notify the user and ask is this you want to recover the wallet if that's not the case we can abort it positive there's any suspicious behavior we can pause it or abort the user can or the relay can yeah so in more detail but that that gives us three options right so we're not excluding twelve routes by far but we can't make that a requirement and an additional very likely part that we see is that users will get a new phone and with that new phone they can carry over their wallet just by authorizing it with all four the only thing they now have to do is scan a QR code because we have the multi SiC to manage multiple devices but then very importantly as the main meat of the stalkus we should be able to recover from a six digit PIN and we now can and so bringing it back right so these three characters they've been very helpful for us over the past year and a half to solve these problems because we started from that additional question what part of the technology is missing to put a theorem inside mainstream applications and as we try to solve that question we saw we had to build all three of these little characters because we have the end users who already want to use the mainstream application and we can't reduce their user experience then we have the developers of that mainstream application that we need to cater for it's our job to make it possible for them to integrate it it's not their job in order to talk from an SDK so effectively to aetherium we need really air services and this is a hybrid application so oh s the kit that we've built is a hybrid application it provides an API where the SDK can call - but it only takes executable transactions so the core of the logic is already decentralized on chain we can cheat but then it theorem is where it is today so we also had to build a layer to scaling solution but that's a different talk we've talked about this also our different locations and so yeah thank you I hope that this the introduction of mappy happy and happy really helped us as a community move forward because if we keep talking about this broad concept of decentralized internet it's not specific enough to solve the problems that we need to start solving and so this is what we've learned I hope it's helpful and very much interested in carrying the conversation forward Thanks any questions [Applause] did you get from the users did you see a race on the awareness on the blockchain aetherium after the experiment so disclaimer it was a soon so we're ramping up now to launch this one minute and that is a rollout so that's the first pilot we have we have mal multiple in the pipeline because we're a technology provider to these partners we're second half of this year our own deadline is a little bit earlier the rollout will be to their super users first for example they are very sort of better users that 3000 people then the wider community that actively contributes translations of articles etc that's than 5,000 people so we will keep rolling this out in gradual stages and definitely we're very happy to I mean obviously we will want to relay all the learnings that we get from that but that's a lot of real-life users on a theory maintenance newly introduced so yeah I expect that later this year thank you very much for the great presentation could you please elaborate more on what value does does this bring to the whole net application like what do they get from what the users of the whole application get from from the fact that there will be an idiom so right now they're already inside the application or networks but they're just points within the application and so they can only be redeemed for a subscription or for like swag like a t-shirt with the logo etc if they're now they're going to be converted into tokens so they can be actually X their cash you can take them on to coin base or finance and sell it what is the second point sorry so yeah so with so so that's a very nice question thank you so oh s T is open simple token when we started in 2017 people had a response of like it's really easy to make an e rc 20 contract and it's true but doing a legally compliant IC o---- isn't making the software that is needed to really integrate it into a mainstream application isn't and so one the purpose that OST as a token serves is that it's white label token and so all these tokens are rebranding of the same underlying token and then later strategies will diversify that basket that underlies the lgbtq token but right now OST you can repackage it as so so you have to stake Oh s T which is own coin finance and other exchanges in order to mint LGBT token so it's a wrap wrapping contract into the new token thank you for a great presentation my question is has LGBT token or LGBT the apps like what are some the metrics the companies share with you in terms of what they want to achieve with the token like with up in terms of adoptions and other things can you repeat the question sorry sorry I guess those curious as to what kind of metrics the the the app that you're the corporate client was interested in tracking and what will they consider success to be success in terms of for the LGBT token so we have a success implementation team which I'm not part of I mean I we have those metrics but for us I think the first metric would be to see 3,000 people in the first phase of the pilot come online on a theorem the for for for the user right now the expectation is that nothing would change they're already using Hornet perks as is and they redeem it within the internal shop and so for them we're not expecting that they would notice a lot of change because they will presumably be doing the same thing what we are working towards with this project though is that it's not called Hornet token it's called LGBT token and so I specifically set up with a foundation and Hornet is the first application for it to become a payment method across any provider just as an awareness-raising project for the community as well to have their own token to pay for but that's future work that's not where we are today I hope that have answered I don't have specific numbers in my mind thank you oscy we don't manage we launch the ICO and it's just on the exchanges so that is a legitimate question so there is a potential for volatility which is a user experience problem and so how we want to address that is by not just sticking or asti against LGBT token but having a basket of different assets then the problem is of course that today there aren't a lot of theorem tokens that have negative correlation they tend to all go up or all go down and so that doesn't help much with the volatility reduction so we are looking at the more reliable stable coins to put into this basket and then also there are established normal financial techniques around rebalancing the volatility of a diverse basket asset so those are things that we are addressing but there later down the pipeline but it's a legitimate UX question that people wouldn't shouldn't be exposed to the volatility in the early freeze and so we need to address that also so do you see any caching solutions that would replace the sidechain like challenge here in terms of scaling like let's see a new hybrid app wants to get done now instead of building a new sidechain that's like a huge hurdle is there any caching solution that would I mean like that from the traditional web that would be the classic solution - in what sense you mean a caching solution so for example within the relaying service we obviously put a lot of effort into giving 10 millisecond responses back to the SDK right so one mechanism that we use obviously we have a full database of all the records so that if there's any query we don't go directly to the node we just query our own databases but the better but also if a payment comes in for example us then we do pessimistic caching so we will keep track of what payments we've already seen and then assess whether where it's like 99.9 percent likely that this payment will go through given the balance and all the messages that we've seen so far and then already respond positive - - to the SDK so that there is an almost instant response if we are 99% confident we will respond yes and then that liability we just cover as a business so basically you are very using caching then so why would you need let's say a sidechain do you expect that much traffic - yeah yeah I mean right now like the 3000 people won't cause that much traffic we could probably put them on it there a minute but the idea is very much I mean as I sort of introduced the idea is here to scale we really want to get to millions of people worldwide last question how would you measure the three show let's say from what point is like a sidechain needed like it's an interesting question I think there's again I I will I will concede I think this first pilot probably could live on 80 remaineth the only downside would be that the costs for that would be a lot higher and so specifically I think if we if we go back to the contract that we did deploy for every user here we already use the proxy model right so we deploy master copies for all for the tree contracts and then use a factory if there's a new user to deploy proxy contracts for the factory because otherwise it would even on the sidechain be entirely out of reach to pay for a new user deploy being deployed but even that I don't think we could do on a theorem a net not even for thousands of users it would already like legitimately get concerns that we would be polluting the state of the side chain of mention me not so much I think thank you last question does the token have another utility besides rewarding engagements so as is clear from from sort of hopefully the talk is that that we're building all the infrastructure to be a full payment solution and a full programmable money solution right but there's also legal concerns and so right now we make the application very strongly towards these loyalty use cases because then when they're internally we do redeemed inside the application the legal concerns around kyc money laundering payments money transmitting licenses other license requirements in different regions are a lot of work but we're also working on that we're applying for all the relevant licenses in different regions in the world we have legal teams in the different regions of the world and and we're also building out the network for regulatory exchange providers so that users can actually get to Fiat in a click if they would want to but all these things take time and effort and so we're building out first with with very compliant easily complying solutions if it has multi usage I mean why the token has a value if it has only one usage right now is to reward the users but so there's two fundamental uses to the tokens one is to lock it up on a Tyrian minute to mint the new token like LGBT token and others and then these economies should have a proper velocity right like initially the velocity of the rewards program here within Hornet is going to be rather small but other partners that we work with will have a much higher velocity so I don't see that the velocity is an issue the second use for the token is also that it functions as the base token on the sidechain so we had to build a layer to scaling solution and the OST on meyneth becomes the base token on the sidechain to pay for the gas of the transactions as well all right thank you very much I'm still around here so if you have more questions [Applause]
Automatic transcript — names and jargon may be misspelled.