Interview with Aaron Davi of Metamask at DEVCON1 in London

15 Dec 2015 · 21:50

Recorded at Devcon1 in London, this Epicenter interview features Aaron Davis, known online as Kumavis, an early developer of MetaMask. He explains what a dapp browser is and why Ethereum needs one, walks through MetaMask's core components, and contrasts the project with Mist, the Ethereum Foundation's own dapp browser at the time.

Speakers

Topics

Transcript

hello everyone right now I am with aaron davis who also goes by the name of kuma vez he is building an alternative to mist called meta mask for viewers that don't know if mist it's supposed to be a dap browser first before going into what that browsers are let us have an introduction from aaron hi my name is aaron Kubik morris i've been working on minam asked for the past year i recently joined consensus and we're trying to bring aetherium to everyone get it in the hands of every single person on the planet and as soon as possible so fundamentally tell me what is a dab

browser and why do we need one right so what is the DAP browser well let's take that even a little further what is what is a DAP and and what is etherium sometimes sometimes I describe aetherium as a sort of a new neighborhood on the internet a new I described aetherium as a new neighborhood on the Internet and it's sort of the the way you interact is is a bit different there's new rules it's a new space to explore and similarly to the Internet you're familiar with we we make web apps and we make these these points of interaction

that talk to other agents on the internet and in the case of the DEP what would be traditionally the server in your client-server model of a web web site like Facebook or whatever we use in place of a server an agent on the on the blockchain and we can use this as for small storage for important things like identity and reputation and things like this and so there's basically two new elements to to a Def and that is one all transactions are signed unlike on a traditional web page you don't have a

username and login and we have unified identity across the whole Syrian Network and and all your actions are cryptographically signed as opposed to starting a session authenticating a session and then interacting during that session like you're doing the traditional internet the other thing is access to the blockchain data in in a normal situation like like Facebook or your all the data you just get from Facebook and that's that's your only option that's so you know Facebook has the power to to censor and do whatever they like really in the case of the etherium internet you have

all these all these peers holding the data and you can you can pull it from anyone you want and so to run a DAP you need access to this this key management system so you can sign your transactions sign your interactions with the internet and you need you need access to the data to begin with and so similarly to with Bitcoin you would have a wallet application the etherium core developers have produced a project called mist which is a sort of web browser and wallet combined it manages your keys you can sign and send either but you can

also do more complex interactions with the with the network much like interacting with the social network betting in a prediction market what have you and miss mrs. fantastic is a very very interesting project but unfortunately the adoption story is a little difficult if I'm doing some crazy crowdfunding thing where we're people who participate in the crowd fund get equity shares and have voting rights or something like this it's easy fairly easy to build this on top of aetherium but the hard part is hey don't you want to participate in my crowd fund just download this web this Web browser first this is a serious adoption issue and and

to tackle this I started med a mask when I mask is a set of tools - just to make this easier and to make to help you access the etherium internet from your normal web browser so so really I'm really interested about meta masks but first let's what is the exact difference between a Bitcoin wallet and for aetherium or that browser so why didn't we need smart contract browsers or bitkha no scripting language of its own why didn't we need like browsers for accessing Bitcoin we just had wallets yes so it's changes in etherium that

that then I start to need a browser like that yeah yeah that's an excellent question and so if you're familiar with Bitcoin you you know how you need to send transactions up to the network to make a change but these the the sort of state of the system is quite simple in Bitcoin it's just it's effectively how much Bitcoin do you have access to and you know the implementation details are not really important but it's just you have this number I have this number and that number changes in if if cerium describes a much more complex arbitrarily complex state so if I can make something like a name registry and you can start writing names to my register you can do things like that you can it can be a sort of market where you

can have order books and things like this you can have my friend is working on a project called boardroom that runs an entire organization on the blockchain and you have proposals and votes and you know board members and recursively you can have subcommittees and do all this crazy complex stuff so the point is that the the state that's stored on the blockchain is more complex and therefore when you try to make when you propose changes to the state you need a more semantic way you need a better way of exposing that data to the user and a better way of suggesting or allowing the user to make to that data so in the sense what what

is happening here is because the kinds of things that reside on the etherium network like profiles or domain registrations or you know particular markets or exchanges these are very complex entities yes so like in a software sense they are very very complex entities so you need a bigger set of graphical user elements exactly in order to represent in order to have like a good representation of these complex entities on the user yes absol so ultimately the way the way you can think of it is like what's happening inside the computer in in in JavaScript is like this skeleton but then you need

a face that is the normal browser so in the HTTP web you you need a face to that computation precisely and now because displaying just a balance is is fairly simple you can do that now a very easy text-based format but if you want to describe proposals and votes and sending these sorts of things it's it's much more complex and you need these complex visuals okay so as far as I'm aware there have already been a lot of technologies for displaying complex visuals the the things that comes to my mind is like at the basic level your scalable vector graphics then you have things like frameworks like d3 which can allow you to do very complex graphical

representation why can't these be repurposed for aetherium why do you need a separate software for it also actually all of these are our purpose of all for aetherium the plan is we didn't want to you know reinvent the way someone builds apps someone builds interactive tools so we chose the web standard and the the spec for a adapt like a front-end is is simply that you have the normal browser environment with the JavaScript you have your HTML and your CSS and in just in the JavaScript environment you have an an actual object you can interact with

and that is for talking to the blockchain both reading from the blockchain and suggesting transactions for the user to make okay so so now so basically when I have add a browser yes that is the deb browser also a theorem known yes currently that browser is a full-width theorem node but it could just as well be a light client or something like this and that you definitely want that if for a mobile device so now let's get into what meta mask-like maybe there is going to be a family of Deborah's in the future so and meta mass will be one of them so let's get into what meta mask is and what is what differentiates my damask from mist right so as I described before

you you have the normal sort of web development experience and you just have this extra goal which which ties into reading from the blockchain and ties into transaction signing and so we need a sort of a new environment beyond the the default browsers that we have today to sort of just inject that little access in there and so certainly in the future Firefox and Chrome could could just adopt these standards if they really like them and then they would be available there but in the meantime we either need a special web browser that you have to download or we need to come up with another solution and so that's where meta Mask enters the picture so

the first that will be released is a little plugin in a little Chrome extension and that injects this this global into it into the JavaScript environment and so then adapt can start reading from a blockchain and and letting you interact with it okay so so walk us to an example application like you mentioned this apply application called boardroom yeah perhaps that can be viewed on meta mask yeah absolutely so let's say you load a boardroom in some a theorem enabled browser like Chrome with the meta masked extension there's the first thing you would see on a normal website would be your login

forms we get to skip this immediately because your browser knows who you are and has can access the whole range of the blockchain data so the first thing it does is it pulls up the relevant say boards that you're a member of that you're participating in and it's just going to read sort of you know the models what are the boards and then when you click on one of the boards it'll read what are the proposals that are currently underway and wonder the historical proposals and then with the you know the this boardroom front-end you can start digging through all the data that's stored in the blockchain what is this active proposal how many votes are I've currently gone through

how much time before the the vote closes and this sort of thing and that can be displayed and really nice you know like have a fancy pie chart and have whatever beautiful graphs you want to analyze the data help the user analyze the data okay cool so so basically like whatever runs on aetherium whatever kind of computation is running on this hiriam can can we can basically have the front end on the back browser and in your case the speciality is that meta mas does not need the user to download any special software but just install our installer install a Chrome extension and then the normal Chrome browser becomes like your dad browser that's correct and then your normal Chrome browser can now go ahead

and interact with the etherium blockchain and display applications and you can have a wallet inside inside meta meta mask inside chrome yeah same transaction and receive transactions etc yeah yeah precisely so right the first thing that we're deploying is the extension so it does require a little effort on your part you have to go find the extension and install it another project that's in the works is a completely hosted browser and so you could go to the meta mask website metal mask the i/o and when it's ready you'll just have sort of a web browser inside your web browser and then you can start using depths and

transactions and things like this and that requires zero installation and I think that will really help bring new people into the ecosystem okay so in this conference it became pretty clear that many people are actually thinking of combining two technologies to do interesting things like one one combination that that may turn out to be popular is ipfs any cerium so you have a computation running on a blockchain and then if you have data for the computation that can be stored on this data structure which is ipfs which is a mock merkel eyes data structure in the future you might imagine other technologies that exist alongside helium and there were some services so this

meta mass also can it also interface with ipfs ipfs node in the background as well yes currently Deb so the theme community ipfs community have a lot of overlap and we're very interested in in in both protocols and and therefore adapt developers are trying to - so currently they host their their web app as a normal webpage on the Internet but this is you know only half way to our to our decentralized future so we want to go all the way an IPF has certainly helps us do that because you have to deliver those front ends even if

all your data all your interaction happens via a smart contract we still have to deliver those front end files those aren't stored on the blockchain and so ipfs is a fantastic way of doing that and so since the sort of DAP development ecosystem is so fairly early the spec has not included any requirements of it being on ipfs or anything like this and so but it's we're certainly moving in that direction and more and more adaptive elders are putting their stuff on ipfs and therefore metamath school will support that absolutely and this is another example of how how the web browsers we use today aren't quite ready for for our decentralized future as much as we're

we're ready to start using it yeah so now if you if you're building this Chrome extension that that serves to be your wallet and so to interact with the etherium blockchain are you constrained in the in the languages that you can build that you can use to build a wallet for instance if you have a desktop wallet right the the developer has full choice on what kind of desktop wallet does he wanna pay do you even have to use a low-level language yes high level language etc but if you are if you specifically growing in going in the browser environment does that constrain the amount of choices you have to build

something like minimus so certainly minimus is living in the browser and so you have to choose the browser tools or at least somehow compile to your standard browser stack though for this is not true for if hiriam in general if you want to build something that interacts with etherium there's a wide range of language so you can choose from there's a theorem implementations and c++ and go those are the primary ones there's also Python JavaScript Haskell Java and and more in the works from from core and from community so my question is is there any security consequence of having your private keys in the browser itself so

let's say like I am I have like 10,000 each right it's a huge amount mm-hmm and I am actually taking part in the applications that need that kind of value maybe I am a trader on a next on a big decentralized exchange mycelium now will I actually want to use a browser-based wallet rather than have something which is more low-level where these very security guarantees might be higher yeah this is true with with minimize here you do kind of tune down some of the control in the security in that you have to rely on chrome being not not running away with your keys and and medevaced not publishing bad code in general it's it's all about all the code

you're running needs to be published non-evil actors but and you sort of you have the same thing with a something like misted but the so if you if you feel more comfortable more confident using mist that's fantastic you can be you can be I think it's a pro user tool and that's fantastic of course with with augmenting chrome the way we do with meta mask we don't have as much control over the design of it we can just sort of add little things here and there whereas mist has room to fundamentally change how you what what it means to be a web browser and so I don't see them really as competing they're they're sort

of alternate solutions that take very different approaches and if if you join with meta mask because it's the easiest thing to do and later you you move on to miss that's fantastic I'm very happy the ultimate goal for me is getting more people using this wonderful technology so what kind of applications have you already seen on meta mask like what what can i what can i browse through meta mask today yeah so when I'm asked will be launching in in about a month with with the extension so make sure it's nice and polished and works for everyone and that the security concerns and security concerns are taken care of but the first steps that we're seeing are certainly crowdfunding with way fund and

this is nice because it's not just raising money but you can give tokens in return for what was raised and those can have arbitrary meaning they can just be sort of a badge like thank you for supporting us it can be voting tokens it can be they could be redeemed later for some service that your company is going to provide whatever that might be as I mentioned before boardroom kind of takes up the next step where now you can that organization you started can have a governance structure and that's built very modular lis so you can you can try out all kinds of different ways of coming to consensus as a company and you could do a traditional top-down structure or something much crazier let's see there's also a lot of interest

in in betting applications of course the poker and other things and then there's markets to centralize changes since it's very easy to create medic wines on aetherium you know some arbitrary coin we now have decentralize exchanges to two pesos around on one fantastic project is it's called BTC relay this is still under development but it really shows the power of arbitrary computation and that you can do on top of aetherium and so what they've done is basically built an entire Bitcoin like client inside of here IAM and running on chain and so you can feed solved blocks from the Bitcoin blockchain into aetherium

and it's able to validate them basically just dude SPV validation and then other agents inside the if you're watching can't can talk to that thing and say like hey was this transaction made it into the blockchain and it's it's it's pretty powerful cool like these applications seem really amazing now on some level something like a browser like it something like something new like add a browser essentially needs to be played with by the by the viewer I mean talking about it can only take you so far in appreciating what it really is yes so where can like how and where can the viewers just either see a video on

metamath we play with it yeah so if you go to the website Med of mass dot io M ETA mas que dot IO there's a video of a early preview and there's a newsletter you can sign up for so we can let you know when we're ready to go ready to launch and maybe you can join a private beta if you're interested and that's that's place to go for all the updates cool and how can our viewers reach you in case yeah I'm Kumar vez on github Aaron on fire on Twitter and Aaron aar Owen at uma vez dot me for my ego

cool it was great talking to you and thanks for the nice explanation on that browsers absolutely thank you