Ethereum 1.x Roadmap and Q&A
EDCON 2019 · 13 Apr 2019 · 17:45
Lane Rettig explains why Ethereum 1.x development must continue while Eth2 is being built. He reviews state growth, storage pricing, stateless clients, synchronization improvements and eWASM, connecting the cost of running a node with decentralization. The talk ends with implementation questions and ways to contribute.
Speakers
Topics
From EDCON 2019, hosted by EDCON.
Transcript
okay so next up we have Lane retic a core developer at aetherium foundation and he will be talking about etherium 1x roadmap and maybe a Q&A session if we have time thank you all right I'm guessing the big green button goes forward cool hey guys I'm Lane I'm on that usm team and I'm pretty excited to share with you guys a little bit about what some folks are working on as part of kind of a broad project called aetherium 1x you've heard quite a bit the past few days about aetherium - right aetherium -
is awesome it's like super exciting it's gonna bring us to the glory you know glorious future of you know scalability and proof of stake and all that cool stuff but you know we need to kind of keep in mind that we kind of have this existing legacy blockchain right running today and so if they're m1x is broadly speaking it's sort of not a single monolithic initiative it's kind of a collection of different initiatives being spearheaded by a few different groups to kind of push the existing ethereum blockchain to its limits and keep it healthy and just kind of add as much functionality and scalability to it as we can while we wait for eath - so let's kind of dive in and take a look at it kind of kicking off briefly by way of background as I'm sure most or everyone
in this room knows aetherium has been running since 2015 you know we've had the most recent couple of network upgrades in 2017 and then most recently a couple months ago were Byzantium and then Constantinople the the point here on this timeline that I want to highlight the most is June 2018 and Danny spoke about this a couple of days ago in his awesome overview of eath - so up to that point in time the kind of aetherium - roadmap consisted of two separate parts right so that was sharding in casper and they were two kind of parallel work streams and the decision was made at that point in time in June of last year but actually these two work streams should be merged into a
single work stream which is now kind of what has become the canonical serenity or aetherium to your roadmap and as Dania explained you know is kind of like one step back in order to take two big steps forward and it was a difficult decision and a big decision now in retrospect appears to have been like the right decision but there's some interesting kind of knock-on effects that this has caused and one of them is kind of a revaluation of this question of what should we do with the existing ethereum blockchain while we wait for e to up to that point in time so kind of prior to June 2018 the general thought had been let's not try to get too fancy or do too much innovation in the existing ethereum blockchain because eath 2 is around the
corner right we kind of expected to see things like Casper FFG launch as early as like late last year and and obviously now that's been pushed back a bit and so that's kind of what gave birth to this etherium 1x initiative so you know it's interesting right I think if you think about aetherium as sort of kind of like a start-up or like a new piece of technology every startup in every piece of technology that's built faces this sort of fundamental challenge right you kind of build something lean you build something kind of crappy in the beginning that's kind of held together with like rubber bands and bubblegum and you know some people start using it and some more people start using it and
before you know it you like have this sort of prototype let's say beta implementation that you know kind of works but is kind of broken right and in our particular case existing aetherium is great but like it doesn't really scale and you know we're not in love with proof-of-work and things like that and so then you kind of find yourself in this situation where you have to decide right do we continue to like bolt on new features and to try to patch and maintain the existing product or do we like scrap it and rebuild it from scratch right as I said this is a challenge that like every tech startup in every tech new tech project faces so you know for better or for worse we have real people and real projects and and real value on the line in our existing
aetherium network which is which is awesome which is exciting but it also means that we can't kind of completely throw it away wholesale and just start totally from scratch and so we're what I believe is the right approach and that's sort of two parallel work streams right so on the one hand we have again this exciting research happening on youth to Andy to really is mostly from scratch kind of a reimagine ation of what aetherium could be keeping the good parts kind of throwing out or upgrading the the parts that we don't like as much Andy flex which is happening in parallel as I said is the sort of example of just improving what we've got and while they're happening in parallel and they are distinct and there are largely kind of separate groups of people and teams
working on them the most important point I want to highlight here is that most or hopefully all of the work that's being done today on eath 1x will inform or sort of flow directly into eath - a great example of this is the work that's being done on things like storage management fees and state rent and that kind of stuff which we'll talk about in a sec that stuff will need to flow into e2 anyway so there's kind of no I don't believe any work is being wasted here so yeah we only have 15 minutes this is sort of a big complex topic so we'll just kind of scratch the surface but I'll just tell you a bit about what it is about why it's important about what actually is gonna go into it and then about how it fits into the broader aetherium roadmap so this is how
aetherium 1x was born so this is DEFCON 4 this was October November of last year in Prague and this is an ad hoc meeting among a few different groups of sort of core developers and researchers so we have kind of folks from the II wasn't team and the parity team and the Geth team and some other teams who were sitting on the floor at the I've con saying hey you know scratching our heads discussing kind of the implications of that change that I that I said happened in June of last year when if two came together and and the sort of road map was pushed a little bit discussing kind of our strengths and weaknesses and and what we can do better so the other point I want to highlight about youth 1x is that you know we kind of use this
hashtag or this brand eath 1x for simplicity and for legibility but it's not in any way shape or form like a single initiative there's no like single road map there's no single person or single team responsible for it I think a better way to look at eath 1x is really it's just everything happening in parallel to or aside from easy to write it's just kind of all the cool stuff that we're going to be able to do in Istanbul and other upcoming hard forks in parallel to these to work so really interesting question right why do we need it why not just maintain aetherium as it is and just focus all of our resources on e2 so from the very beginning there's been this vision that aetherium should be
decentralized right and and to be very clear like this is our differentiator to me this is one of our big differentiators we will not sacrifice decentralization and we will not sacrifice things like censorship resistance at any cost right these are non negotiables for us and so the vision has always been that you can run an aetherium full node on a piece of commodity hardware like a laptop I have this laptop and I run an etherium full node on it and it's kind of hard right it's it's it's possible I do it I you know have a kind of dodgy Wi-Fi connection in my Airbnb here and I've it's been struggling but it's like sort of keeping up right I think I'm still at the head of the chain but it's kind of pushing the limits of like what's possible with commodity hardware so you know this is a laptop that has 32
gigabytes of RAM it's a laptop it has a very fast SSD drive in it obviously it helps if you have a more stable internet connection a faster internet connection etc and if you don't have one or more of those things it's it's tough you know it tends to chew up something like four or five gigabytes of RAM as I said it often kind of gets behind and loses the head of the chain and struggles to keep up and in some cases if you like if you don't have an SSD drive you can't keep up at all so you know the point here is as the ethereum blockchain continues to grow as more transactions flow through as the state continues to grow in size and balloon it's going to become harder and harder and harder to to keep up with commodity hardware and the flipside here
is if we don't tame it somehow if we don't do things like bounding the size of the state then we will have a lot less nodes and in fact the number of nodes has already fallen from something like 30,000 at the end of last year - last time I checked around 9,000 so cool let's dig a little bit deeper into eath 1x and just talk about the different pieces of it that are on the table right now so the first and I think probably the the core and the most essential piece of it really is bounding the growth of the state so this graphic comes from a gentleman in alexia Konev who has been working on a project called turbo death for the past couple of years and so he's been doing a just enormous amount of
work on on eath 1x and so a lot of kind of the the numbers and figures I'm going to show you here come from his work and the work of a couple of other people so this is as of a few months ago this is the number of storage items in the etherium maintenance state and and there are different dimensions you could use you could look at number of transactions you could look at gas being spent but I find this one quite interesting because it really speaks directly to the computational burden of running an etherium full node more than some of the other figures do you know when we talk about the cost of running a full node people tend to always focus on things like disk space size and and it's not small right it's something on the order of 100 gigabytes that you need today to
run an etherium full node right which downloads and and fully processors and fully validates all the transactions in the network all the blocks but it's again when we dig deeper it's actually less about sort of sheer number of gigabytes and much more about things like the number of storage items which is on the order of a hundred and forty billion I think a bit higher by now and just to put things in perspective when I synchronized my last full node you know it took about two weeks and most of that time is not spent downloading data it's not really about disk space it's really about processing and chewing through all those transactions next topic is stateless clients so this is sort of a recent addition to eath 1x and it's directly related to the previous item 2 bounding
this the size of the state so there's a couple of approaches we can use to bounding state right the one approach is something like storage management fees where people have to lock or pay ether in order to use more storage slots because storage is underpriced right now since we we only charge once for it we don't charge overtime another more radical approach is this concept of a stateless client and this this is also from alexey so so a stateless client is a really elegant solution to this problem which takes the burden of storing state off of the and puts it puts that burden on the users right so when you submit a transaction rather than relying on the fact that the full node has the state and can find it and update it
you as a user submitting a transaction have to store that state and along with your transaction you have to submit a merkel proof actually one per storage slot that you're updating and it's elegant right but it places a burden on the users to to download and store the state also there's a cost associated with these merkel proofs we want them to be as succinct as possible because you're gonna have to pay per byte for those and so there's some technologies that will help with that and it's also like user experience implications here as well it may be difficult to store state in you know and let's say a mobile device or a mobile wallet or something like that so this is cutting-edge research but if it works it's exciting and again very likely to inform some of
if two design decisions a third topic is something called pruning chain data so you know the actual transactions are one piece of data that is stored and processed by the nodes but there's other data so this is things like the blocks themselves the headers of the blocks the logs and receipts right things like that and so this is a project that has been spearheaded by Peter Sivaji on the gift team this comes from from his proposal and the nice thing about this is if we're able to prune some of this data unlike pruning the state size this does not require a hard fork right this is not a change to the protocol this is more just a change to the way that the
clients are built and run and and and for that reason it's a little bit easier and a little bit less controversial it doesn't require paying for things like rent or storage management fees and and you know if you see here right so receipts and block bodies and headers and things like that that the shape of these graphs is very similar to the graph I showed you a moment ago in a storage the state size rather so this is happening in parallel and again I think that this could give us some pretty exciting gains another parallel workstream here is USM so this is the project that I'm a part of again huge complex project I'd love to talk to you more about it in a nutshell it is a better reimagined state execute engine a virtual machine for etherium right both for eath 2 as well as for
youth 1x that's based on this this rapidly emerging and and just very exciting global standard called Wasson which stands for web assembly so whaza is a project of the World Wide Web Consortium so it's very broad has a lot of global support from companies like Google and Microsoft it exists already in pretty much every major web browser in the world and we're kind of tweaking it by adding some aetherium functions to it and adding metering and things like that it's not really a core essential part of eath 1x per se it doesn't help directly with like reducing the computational burden on the nodes but what's nice about it is that if we're gonna do things like making storage more expensive it'd be very nice to then make computation cheaper so it's kind of
offering developers a trade-off and so the the most active area of research right now Andy awasum is figuring out how much we can do that how much how we get there basically on how we do so safely and the final work stream in e 1x is simulation so this is being spearheaded by a gentleman named Zack Cole who I don't know may be out there somewhere and his company which is called white block which very kindly open sourced some software that they've been working on and they've done analyses for a number of block chains including gos and Ubik I believe these these images here come from a report that they published on the Ubik blockchain and the idea is if we're going to make these changes if we're going to you know do things like introducing storage rent or trying to bound the size of the state what kind of
actual concrete impact will that have on computational requirements on network throughput will that reduce or you know increase the amount of gas that we can do per block that kind of stuff and it's so we're not flying blind right I think it's very important to invest in simulation and emulation framework like this and finally I'll just briefly touch upon how eath 1x fits into kind of the overall aetherium roadmap this also comes from alexei so this is sort of his proposal for the first piece for storage management fees what it might look like actually splitting this up into e IPS and rolling them out as hard Forks he's got about 15 different e IPS here with letters and he's laid out this this is a bit outdated I think there may be a newer proposal but in this particular one three hard Forks maybe one here on
the side might be Istanbul and you can kind of see you know this is complex but it's being broken down and done incrementally and you know yeah we're looking at something on the order of three hard Forks and so this is going to be a large piece of if not sort of most of the bandwidth of the existing kind of core research and develop for kind of people who are not focused on eath - over the next few years right if you figure six to nine months let's say per her hard fork we're looking at 18 months 24 months something like that to kind of get to you know beginning to achieve some of the goals of youth 1x we have a meeting in a few days in Berlin focused on this so pay attention if this is interesting because you'll see a lot more soon about what this roadmap looks
like and when you're going to begin seeing some of these changes and how to contribute to it thank you very much for your time thank you so much Lane so you spoke about a couple of components I think five components that you've spoken about I'd like to ask you about sort of which part are you personally working on and how do you see that prioritizing in terms of the roadmap development or that's a great question so personally I'm working on the II wasn't piece as part of the II wasn't team I'm most excited about this piece because a lot of the other pieces we talked about like like bounding state are sort of taking things away from the theory I'm developers and aetherium users and saying you know we haven't been charging you enough so we're gonna like you know begin charging you more he wasn't as
much more about yeah sort of carrots rather than sticks right and so saying hey we're gonna give you you know an amazing new framework and engine where you can build smart contracts in all sorts of different languages and use a lot of existing tooling but having said that like it that the other pieces are very important as well thank you very much and so you mentioned that you'd be mentioned talking about the right map in Berlin some yes so check out the fellowship of a theory magicians forum it's aetherium - magicians org there's a host of information there proposals there may still be time to slot in if you're interested in presenting any IP you don't have to be there in person we're gonna have a remote participation as well just discussing the assemble row a hard fork roadmap as well great thank you so much thank you okay thank you