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

Loading player…

J1 RF 01 Rick Dudley what I don t like about Ethereum

Ethereum ParisTue, Oct 9, 2018, 12:00 AM

Transcript

all right hi everybody my name is Rick Dudley I work on aetherium projects I'm gonna talk to you guys for a little bit about things I don't like about the etherium ecosystem in particular certain design decisions that were made early on certain governance issues that I think are our particular the ecosystem that could be resolved or mediated or fixed and then if I feel like it I'll talk about some of my own projects but maybe not I'm pretty secretive and oh there is another mic here so we may instead just sort of do like a Q&A sort of thing when I get tired of talking about stuff I don't like a little bit about myself I got I started programming in 1988 on an apple - I was in elementary school very young in the 90s I was really into like hacking and 2600 frak all that kind of stuff for those of you and and there's so few of you in the audience - do any of you know frak okay some of two of you awesome so yeah so like smashing the stack for fun and profit was like mind-blowing like blew my mind right and then like wall sort of like in middle school I got in a UNIX like 97 ish I got in a cotton and like UNIX stuff because I was like the cool thing to hack or whatever and then shortly thereafter I was working in tech support systems administration so I definitely have like a very like um so like fundamental systems administration background and then after that I went to college and I studied computer science and I maintained an interest in cell phone ringtones as well as you know basically packing stuff so I was doing a lot of work on or I was doing I was really interested in bahding communities so like bonding on Wow bahding on EVE Online and and engaging in that process I was really I was like oh I shouldn't be able to do a lot of this stuff like the games should be formally defined and I should be transacting with the server via cryptographically signed messages and then all the cheating would be instantly detectable it would still happen I could send an invalid message but the server would say hey that's an invalid state change and then and then not apply that message and then furthermore if I'm doing that I should be able to take a list of those transactions to generate a receipt have both parties signed the receipt and I should be able to take that receipt and show it to another server to show that I played this game on server 8 present that the server be or present that to a user so I filed a patent on what I just described in 2007 so I was thinking about that stuff in 2006 for those of you who are following the provably gaming space like crypto kiddies and world of ether and collectible card game stuff that should sound very similar what I just described has a lot of similarities to blockchain technology and so that I was working on that before the Bitcoin paper was published I wasn't a big fan of Bitcoin I was very skeptical it felt like a Ponzi scheme the people I knew it through were kind of shady people so it was like you know I didn't really trust it and then and then at one point I was uh I was working at a data center and I was reading an article about how FPGAs had been produced for Bitcoin and I was like oh it's obviously centralized then cuz like I understood how a little bit about how chip manufacturing works and I was like oh well that's obviously centralizing and so I never really liked so that was like during the like 2013 big boom so I went in I started like looking at Bitcoin and stuff and trying to understand what was going on and I wasn't super into it you know it was crazy I mean you know you're in these weird IRC OTCs and people are trading and like these weird prices it was just really weird so I was like okay I got better stuff to do and then I kept working different different odd jobs and IT and I met I met some guys were really big in a doge and then they invited me to this aetherium meet-up in november 2014 at in new york city so this is all going somewhere by the way there is there is an arc there is like a theme anyway so so I go to this this theory Meetup and I don't know anything about aetherium I don't know any of the people I don't know anything's going on but it's like most of the core people so like you know Geoff Gavin Vitalik Joe Lubin was in the back grilling me there's a lot of people there and so Vitalik and Gavin give talks and I sort of raised my hand I'm like you know do you guys know what Paxos is and they're like no we don't know what Paxos is and I'm like ok well that's a little worrisome I was like hi how you guys gonna actually have a global network that has these sort of properties that you're describing for decentralized exchange because even back then Gavin was talking about decentralized exchange and I was like and they're like well you know and they kind of waved their hands and it's like well you know I actually work for a private network that facilitates decentralized exchange so I have some idea or not decentralized exchange that was a weird brain fart but we facilitated high frequency trading and so I was like I have some idea how hard that is like we have a whole company that's all we do and it's like it's really hard to maintain those networks so like that doesn't make a lot of sense and then they're like oh and we have this turn complete programming language and also whoa that's definitely wrong and so that was sort of my introduction to aetherium and now sort of my initial analysis of aetherium was like okay you're not gonna have the network guarantees that you want because you want to contradictory guarantees you want decentralization and you want performance and those two things traditionally don't go together especially under the context of anonymity so if you look at like sort of the mixer networks that we're done for email in the 90s like those things are mad slow right and if you look at like other network systems that people use for anonymizing like Sphinx or Hornet or stuff like that anything where you're where you're flooding the network with trends actions to mask your transactions those are like very not performant networks like that's the whole point incidentally that that trade-off between performance and security we see in proof of work as well right like the the whole reason to work design proof of work a little history lesson for everyone was to was to rate limit spam messages so so fundamentally proof of work is rate limiting and so and so you're always gonna have these fundamental scaling issues as long as you use proof of work as an integral component to your system in this sort of undetermined like it's not that it's undetermined it's sort of like you're using I you know you're using this really coarse tool everywhere like like Bitcoin is really clever but but there are some and this is some things I don't like about Bitcoin Bitcoin is really clever but there's some fundamental issues of Bitcoin and that like for example when the paper was first published you could send bitcoins to IP addresses right so obviously in the minds of the developers Satoshi whomever they didn't think about you know how much it costs to BGP hijack and network versus how much transactions would be transacted over the Bitcoin network because the BGP net stuff like hacking that stuff is like is easy and actually the exchanges have lost money that well a mining pool excuse me a mining pool has lost money from a BGP hack I believe in 2014 but I could be a bit wrong on that date feel free to Google me or Google it to correct me so that was a little rambling at the end there but that's sort of the the the sort of the main thrust of the the issues that I have with aetherium is that there were claims that didn't really match the architectural decisions and the architectural decisions were not made in light of the state of the art so we can look at in particular I think I think the language stuff and the EVM stuff is obviously like if you look at our chain or some of the even something like ax Lang that was recently released there's a lot of people try to do static analysis on smart contracts and I think that that's obviously like fundamentally something that needs to be done like conceptually the idea of a smart contract in the etherium context requires that we have some very well-defined behavior that sort of excludes the idea of turing completeness incidentally uh the you know the EVM isn't really Turing complete because you have gas right oh I'm sorry not gas gas is the straw man it's because you have a stack depth limit that that it's because you can only make a thousand calls in a transaction it's not it's not an infinite turn tape right that's like a kind of obvious one so so that one kind of kind of bugs me because the real security in in the VM is not is not gas so the other problem of gas which is something that Zaki pointed out to me who works at works with ten Dermott very closely and works on a lot of other stuff it's a pricing the gas is a bin filling problem so if you guys are in computer science and earths you know that been filling is np-hard and and you know we can pretty much be sure through the process that's been used to set the gas prices that the gas that there's always going to be a gas price that is wrong which is like pretty awesome to think about from a security perspective like you know one of these things is wrong you don't know which one like that's not really the best place to be from a security perspective and so so you we don't really need gas as we have it especially given that we never really know formally that it's correct but there's no way to really formally verify the gas price so you know why do we have the gas price if we don't need it and we can't formally verify it and I think that that's something that really could have been figured out like just by like asking for help like that that's not like that wasn't like a complicated like esoteric thing to figure out and I was thinking of something because this is all extemporaneous by the way in case you couldn't tell yeah so I mean the gas pricing is is frustrating I think that we could have just used a modified version of JavaScript and gotten 90% of the way of where we're at with solidity and then had a better like richer more robust tooling obviously wasum is sort of moving in that direction I'm a big proponent of the EU awesome stuff and if you think about how you want the app I guess a quick maybe not everyone knows what the approach for you awesome is but you basically take programming languages you compile them down to wasum then you have a whole bunch of metering tools and gas and analysis tools that are applied on the wasum not applied in your own one cool dude in Germany made your language but you have like a whole community of people working on wasum so that's like way better and then obviously you're leveraging all of the technology and the JavaScript VMs or the wasum themes that already exist today I mean even LLVM can be a back-end there's a huge amount of tech that can be leveraged there because you've added them because you've separated the metering and you have a proper separation of concerns so that's those are some of my some of the things I don't like about aetherium some other things I don't like about aetherium because there's kind of a lot of them I guess I didn't really explain what I do so it's so the context of why all this criticisms where they all come from is sort of confused or missing I i've consulted on over 20 projects over the last two years i started after that meeting I had where I met Joe Lubin I ended up working at consensus for four months and February February of 2015 until like around June July of 2015 depending on how you count and in that time I I worked on something called I called the ether poker it's now called virtual poker so that we I developed a sub networking protocol there as what I call that it's a bait it's basically a application specific state channel multi-party state channel so you could also think of it as a sidechain depending on which set of semantics you're using when you're when you're talking about it I have a really bad habit of making stuff and then not talking about it so so I'm trying to correct that but but yeah I made that and didn't really talk about it didn't really think that the running the poker business as a businesses were very complicated and I was really interested in running businesses so that's part of why I was happy to leave it when I left consensus so that's a project I did there I worked at Mon X for a year and then I've like I said I've consulted for a lot of different companies probably the biggest ones would be like oh me say go which has like a billion dollar market cap or something like that doing decentralized exchange stuff so and then in my company is like an advising consulting company so I advise people on mechanism design and then I actually go find developers and actually try to build the thing and in that actually try to build the thing process is where a lot of these warts and etherium really come up I mean I'm not going to talk about well I guess a I'm going to talk about cuz I just said I'm not going to I am gonna talk about some of the weirdness around just even figuring out account balances like something super simple like what is the balance of this account you know the award when you are rewarded you're in Bitcoin when you're when you get the mining reward it's the first transaction in the block and it's just a normal transit it's it's it's an it's a special transaction but it's mostly like a normal transaction when you get the reward in aetherium it just goes to your account it's like literally a completely separate object type that has to be parsed out of the block separate from the rest of the transactions so if you want to see if an accounts balance has gone up or down between blocks you you also have to technically make sure that it didn't get a mining reward which is like I mean you just it just makes me want to punch myself in the face just thinking about that because for me the fundamental concern around that is like what were the like what was the discussion that was being had around the design like how did we get to a point where but did someone actually try to build like you this system before like during the process of building it in that that brings you to another issue that I have with aetherium which is like I really like people at the foundation and I and I like the foundation but like the governance story for aetherium is kind of a nightmare in a lot of regards its its kind of the worst of both worlds you have centralization in vitalik because so many people just follow him but then he's trying to offset that so he doesn't actually take full control over things even though he probably should because he can and so you end up in this weird situation where like like with yo e XI and the e IPS right where you is she I think sort of correctly was confused about the legal obligation that he was agreeing to and then and then like frankly that AIP I don't know if that guy's here I don't know what he looks like the guy who made that crazy ERP e IP like that thing was a tire fire like that thing's a nightmare so like if I like legal issues aside like if someone's like Rick like you have to edit and review this thing and like it's really important and we really wanted to get it done because it's it's really important to give people their money back I'm sort of talking about this as if people already know the context so the EIP was basically for how do you give people back their money because bugs in the code released by the foundation and the most conservative case have resulted in them getting their assets locked on the chain so those people want to get their assets back and we all kind of agree in the most conservative case that it's not really their fault because they trusted software that was released by the foundation and it lost their money and there's a couple of cases where that clearly happened or where there were clearly bugs and released code and then people lost money and so we all kind of agree on a philosophical level that those people are entitled to their money because they there's no way they could have it would been unreasonable for them to sit down and audit all that code themselves every time they updated the code to realize that there would be that bug there especially considering the people who release the code didn't see the bug there right so we all kind of agree those people deserve their money but then because we're all blockchain errs and we all have some sort of brain damage we him in Hall about how to give them the money back because we can't figure out well how do you make this into like a generalizable process for returning people's funds because how do you know if this guy in this other corner case way over here if he was like actually cheating or maybe this guy's a corner case over here he meant to burn it or like this you know and so we end up having this big long conversation which i think is a valid conversation to have but what you end up out of it is this ERP thing which is which the basic plan for that is oh we're just gonna have rolling patches that are just hand patches to the blockchain so you're basically just gonna say like hey block 7000 was screwed man sorry transaction 7 and block 7000 was just completely wrong our bad we're just omitting it and you just write a test in the client that says is this block 7000 is this transaction 7 pretend that's not in there and you're like wait a second that's not you mean to just do that in perpetuity and the guys like yeah we'll just do that in perpetuity and I'm like mmm doesn't sound like a good decision to me and I think a lot of people kind of had that same gut reaction that like as much as the as we agree with the intent of that proposal it was a really bad proposal because it didn't actually fix anything it's just saying this is how we're going to like caught our our wounds when we shoot ourselves in the foot and it's like hey man why don't we like not have guns or like not shoot ourselves in the foot or like any other number of things that we can do as an alternative to that and so so yeah so yo easy for you know he made a legal argument for why he didn't want to participate in that process but I think any any person who like I mean he does a lot of the the static analysis formal verification stuff for aetherium so he has like a very like holistic view of like how these systems work and I think if you if you have that view you realize that you know this this strategy is just super unappealing and I don't criticize that person like I don't know what their background is like maybe they're a 14 year old kid maybe they're a 40 year old guy I don't know I don't know what their deal is I don't know why they came up with that idea maybe they have 60 million dollars locked up and they're crying to their wife for something they really need to get that money and this is the best proposal they could come up with like I don't know what their situation was but as a community like it should be fairly clear that like the best solution is like change the process under which the code is released so that we can formally assert that these types of errors are impossible and then have like a jubilee where basically like sort of as pittance like the the devs just go through and they get all the proposals and they get all the patches and they rewrite the VM which is like obviously a huge task it's on that list you know sometimes people hide things in a laundry list like number seven is like save the world and like number six is like it eggs so like yeah some rewrite the vm but then you know after you've done that and you can assert that it's correct now you can be like okay well we're gonna do all these crazy one-off patches but we can actually formally insert that we never have to do them again really five minutes okay no worries so like so yeah I'm not even halfway through things I don't like about etherium but I only have five minutes and I guess I should say things like I do like about aetherium well I guess it to me it's more like a compare and contrast because I was so skeptical of Bitcoin when I started and and then I sort of met the etherium community and I was like whoa that's terrifying and so I took a step back and I dealt with bitcoiners and I'm like whoa okay no there's some really crazy stuff in here too I mean like for real like when I meet people in your theory immunity they're like nice young mostly white males everyone in here besides okay a couple of not white people here but mostly males nice people optimistic ambitious saving the world when you go to Bitcoin conferences like real quick someone will talk to you about some felonies like real quick like like you're not you barely know the guy and he's talking to you about laundering money and it's like I mean that's cool I don't mind but that's kind of a weird culture to be a part of so one of the benefits of aetherium is people don't just immediately start talking to me about criminal activity when they first meet me because that's like a big no-no from for those of you who were here at the beginning of the talk when I was growing up in the hacker community that was like a kind of like a commonly understood nono one in for hackers is a federal informant you don't just like show up to a meeting and start talking about felonies it's kind of rude and so the Bitcoin community's willingness to just jump into a legality and have this sort of radical conservatism that radical conservatism is like a con of Bitcoin that aetherium doesn't have I think I think aetherium is doing a much better job of trying to of trying to build a real community trying to make like it's actually way more ambitious the other like pro/con of etherium is etherium is like a hundred times a thousand times more ambitious than Bitcoin is I mean Bitcoin is literally just trying to track like account balances and that's it and etherium is like no we can do like a whole computer and it'll be run all over the world and there'll be fairies and it'll be wonderful and we'll forget about you know incompleteness theorems and and impossibility theorems and all these other things and it's like that's that's really awesome but it also means that you write a lot of stuff that doesn't work and should never have anyone should have never thought would have worked but how much time do I have now - I have three minutes - does anyone have any questions and is there something that you don't like about aetherium and you want to see if I don't like it and I didn't mention it or do you want to try to defend one of the things I disliked about aetherium don't do that because that we don't have time for that but but I you know you can talk to me after this or whatever and I'm happy to discuss anything about aetherium or blockchains I didn't really talk about federated proof of stake stuff because I rambled a little but but yeah I'm happy to talk take a question about anything really anything I don't watch sports politics doesn't really work I'm in a different country I don't know what's going on French politics anyone no all right you sure no one really no questions what about people coming in for the other talk do you want to know what this talk was about do you have questions about what this talk was top-three oh it's funny because I didn't even mention it transaction state doesn't bind to contract state when you submit a transaction to aetherium you don't know what state that's gonna be applied against there's no effing reason for that man that's crazy that's that's number one number two is probably the weirdness between gas and ether and the fact that the pricing doesn't really work because like you'd you literally don't know how much your shits gonna cost sorry pardon my I pardon my french doesn't work in France but yeah I mean you just don't know what's gonna happen I think I think it's a lot and there's some other gotchas like that there's some other situations where you just don't know what's going to happen and that doesn't make sense because theory oh I'll say this this is one of these blurbs I like to say that I didn't say during the talk most programming is not safe is is is safe but it's not secure so if you if you're normally using your computer and you go to do two plus two you know you're gonna get four but maybe some guy in there switched your two into a three and you got five right and that's that's the risk that you have to worry about it normal computer systems in aetherium its inverted you have extreme security you know people are tampering with your values and in memory but you don't know what the state of the machine is so you don't know what result you're gonna get out so it's really hard to assert safety in aetherium compared to what you would naively expect given the marketing and like you know what we understand the computer science like if you try to like in or if you try to like do the Venn diagram between blockchain marketing and computer science you get this really weird shape that is not a nice little oval or like an overlapping circle you get like a we're to hodgepodge mess because people everyone Bitcoin aetherium everyone makes some crazy claim and then you're like man that doesn't sound like computer science really supports what you're saying at all I mean iota is a big case of that but I'm out of time so I'm gonna stop talking [Applause]

Automatic transcript — names and jargon may be misspelled.