ETHLondonUK Winner: Lurch
ETHGlobal·Fri, Oct 9, 2020, 12:00 AM
ETHLondonUK winner Lurch presents their winning hack during the Closing Ceremony of ETHLondonUK. ETHLondonUK was an Ethereum hackathon that took place Feb. 28 through Mar. 01, 2020 at 8 Northumberland in London. ETHLondonUK was organized by ETHGlobal and a team of hackers, developers and enthusiasts interested in building and creating in the Ethereum ecosystem. For more information visit https://ethglobal.co Video produced in collaboration with @Pillar Project
Transcript
so what is lurch so lurch is this awesome new product I built it allows you to execute aetherium contracts on aetherium it's amazing so everyone's favorite feature of JavaScript come on say it together with me we all know that it's crap eval everyone loves eval it's such a useful feature it's flexible it's easy to use and it throws all security great at the window all things that we desire so we can go a little bit better these days in JavaScript and instead use the VM module this uh throws things out the window a little bit in terms of security but it also gives us ability which I'll cover more in later so what is lurch it's written 100% in pure EVM assembly thunder two kilobytes I'm not sure people are used to writing an assembly it just makes you wanna chair sometimes and so yes basically it's a eval for etherium it's performant ish the cost analysis is later on as well but basically it's an EVM emulator written in EVM so it doesn't matter whether your contract was written in solidity or lll or VIPRE or whatever you use it'll just work you give us my code and some call data and it just runs so there was two other options I was going to add but time ran out and hackathon yadda yadda yadda this will still be complete at some point in the near future but basically you have a cup mislead you could this you have a smart contract this is the solidity signature it's not written solidity it just knows how to pull slow to do signature part so you give it the bytecode you give the call data and whatever your call in that contract for that data returns is what it will return I will give a quick demo now yeah everyone else has had a beautiful UI this is the antithesis of the beautiful UI so we will as you can see I've been running it before for the various things it's going to try say the exact same numbers ddddd so what it's doing right now is it's deploying an ER C 721 sorry er C 20 contract to a deaf net at the same time it's deploying lurch its then taking that same AR C 20 contract and running a entirely through lurch as well just so you can see that both the real er c20 and the years 220 that's running inside lurch are both doing the same things the important thing is you can see it serif with 99 or 58 yes my suit and that's my beautiful UI yes the one other kind of interesting thing to note is so this right here I ran earlier on main net if you want to use it it's not lurch eath you can see there's no other transactions that have ever been sent to this contract it was able to execute code and the existing way to kind of do this require like paying and doing transactions that sort of thing this just lets you do it for free let me go back to my slides again I'm gonna power through some of them because it's how does it work it's a little bit like a virus this is more complicated than I really have time to get into right now but please feel free to come after and like be like you what virus home but and also my to you so random news cases so counterfactual verification currently as it stands today if you're trying to counter if actually verify something and somebody's lying you might have to deploy a whole whack load of contracts and then execute them to prove the your being lied to instead of all that you can just simulate running the contracts yes you can also do large contracts I didn't get a chance to get a demo together but for example you could easily build a two gigabyte contract with this because you only ever need to put the piece of code around that actually gets executed upgradeable for storage the next person we're interesting I'm gonna skip by this because it's just kind of like a reworking of this yes so for example this allows you to run arbitrary code anything you want to do you can just take code from your users and do what what that code does but you can put hooks in it so for example maybe you don't want a person to be able to suicide your contract if they try you're just gonna roll back the whole transaction and consider their data invalid you can hijack pre compiles if you're doing some cool new thing or you want to replace a pre compile or you just want to like intercept addresses maybe you only want to addresses that own a Koopa Kitty forwarding storage is interesting as well but I'm trying to keep this short so please feel free to come up and bug me with that as well anything limitations I don't currently have the jump desk checking for anyone who's done EVM stuff push opps have a really weird restriction for the EVM for security reasons and yada yada yada it's not done but it's easy to do I just haven't done it I also eat up for slots on the stack these things are really important for this discussion there's no gas metering it does cost more so onto cost analysis so to do a simple symbol of an e or C or C 20 contract it costs about 60 times as much to run it through lurch right now these will come down but you see like once you start having I'm done with point my screen doesn't help you forget balance for example you see it comes way down that's because you're doing a read operation and read operations are expensive the more expensive the operations are the better your deal is which is why if you're doing a transfer you see you're on paying 1.6 times as much to run in this yes I think that's all so huzzah [Applause]
Automatic transcript — names and jargon may be misspelled.