Blockchains Are Not Computers - TOKEN2049 Singapore 2023
TOKEN2049·Mon, Oct 9, 2023, 12:00 AM
Transcript
all right so um I'm gonna do a very very quick presentation on why blockchains are not computers and um I think the hope of this that you guys can learn something and also um understand what what we're doing and what we're about so um you know the first thing is uh there we go who am I why should I talk about why a blockchain is not a not a computer why the hell is that important in 2023 what's going on so um I've been developing on ethereum um since like about 2015 uh I built many libraries some use the metamask for example um you know I built a language as well I was uh at consensus very very early on and as well I built the first Optimus to grow up uh to mainnet ethereum says feel V1 and as well I'm the founder of a layer 2 scaling system uh called Fuel and um yeah that's a little bit of background about me I think the main thing to say when it comes to blockchains is that blockchains are extremely complex there's a lot of things going on there's a lot of complexity built into the system and this is particularly important when you're trying to understand what it is what it is not and what are the right Technologies to use to scale it and to bring it to the entire world so blockchains typically include you know a few Key Properties some of which you know I'll just mention mention now so anti-civil mechanisms right preventing spam this is very important as well they include something like a state transition function so you know you need to be able to move the state of the chain forward over time this is many ways encapsulated in blocks and transactions and in many cases a state transition function for blockchains has a virtual machine and I'll explain what that is in a second and as well there's mechanisms of access and communication so typically peer-to-peer layers communication layers Etc um so these are some typical properties that we see uh in blockchains themselves but you know the most important thing to look at for this presentation is that state transition function right how do we move everything forward over time so we're seeing a lot of blockchain tech whether it's layer twos layer 3s or layer ones um and many of them are starting to experiment with low level or general purpose run times and so you know basically uh I think some major ones to call out or things like mips x86 risk 5 wasm Etc and on the on the front of layer 2's and proving some of these general purpose runtimes kind of make sense uh so there's you know it's not too crazy to say but you know in terms of actual smart contract runtimes and how we're building smart contracts and how do we get these to the entire world we're seeing a lot of wasm typically and you know when you're talking about these virtual machines and runtimes right these are the things that run smart contracts you know what's the problem with using a general purpose runtime like wasm um you know we've been using the evm forever that's a virtual machine that's the ethereum virtual machine now we're kind of seeing a lot more things like wasm so what's what's the problem well you have to really ask yourself are these architectures really designed for the job of what we're doing with blockchains are these architectures built from the start to support what we do with blockchains and that is fundamentally the question you should ask yourself because we really have an opportunity in the space to do whatever we want with things like layer twos and execution environments so we have to ask ourselves are they designed for the job right and when you look at you know some some major ones that we're seeing things like mips x86 which you know in part is used in a lot of things like Solana and stuff like that risk five or wasm which you're seeing in certain layer twos you know they're really designed for something else so mips x86 first five these are designed for CPUs they're not designed for blockchains but we're using them in blockchains all the time like hey this is an amazing thing let's use this thing because a bunch of language languages targeted uh to make our smart contracts and then you have something like wasm which was designed for running arbitrary code in the browser um not for blockchains at all and so you know we like to use it it's okay the space is experimenting with it and I've been waiting for ewasm since like 2016. so for me like trust me I've I've been there the weight was real um but are they really designed for the job I'd argue not really what are the what are the jobs that these things are designed for well everything else for sure like video games or browsers or editors or email whatever whatever you want to use but you know they're really designed for blockchains probably not um this is really the job of a computer is to do these kinds of things uh this is not what we do with blockchain in general so what is the part of the job that blockchains are typically doing what kinds of things do blockchains do on a regular basis right well some things you you might see in the space you know exchanging right exchanging one token for another voting crypto verification maybe storing uh some kind of uh state or or as well just like arbitrary logic so you know the bottom two very general but you know these are sort of parts of the job of what blockchains do for sure but what do blockchains really really do what are we all here for what is token 49 2049 about what is everything about why is this even existing in the first place and it's assets everything's about assets and tokens it's the whole reason any of this actually works if you have blockchain but you don't have tokens there's no blockchain because it's just an interesting peer-to-peer system and that's it you need assets assets are fundamental to the entirety of the space and to have architectures or virtual machine architectures that do not factor in assets at a fundamental level is a massive massive opportunity Miss and you know the opportunity Miss is pretty substantial in terms of the downsides so when you look at general purpose architecture like was some of these other things it basically means that if you want to support that that's wonderful but you have to build every application uh or you have to build every token at the application Level this is really horrible we've been doing it with something called erc20 that's a standard we've been doing it with all kinds of different application interfaces but tokens fundamentally are even more native than this so building at the application Level actually really sucks in many ways lower level Concepts can't be represented right key optimizations are missed when you don't actually factor in what we do with blockchains which is process tokens many many different kinds of all different flavors at the native level and as well poor interface design happens because we don't really know what the expectations are and then lots of bad things start to happen like re-entrancy and you know as much as re-entracy is actually a pretty solvable thing by all standards we continue to see it over and over and over again forever and it's because if humans can make a mistake with an interest face or an implementation they will make the mistake and so really even if you shut re-entrancy off in something like wasm you haven't really solved the problem because you're still not solving the fundamental issue which is assets really are things that need to be first-class citizens in blockchains and so you know when you look at these things what is the solution so we have general purpose runtimes to build smart contracts very interesting we know though that blockchains are really fundamentally used for assets and we should really support them as first class citizens so what's really the solution well you should really look to always design the right tool for the job so the thing is it's always easy to just use the evm even though we know there's so many flaws with it but a business person will tell you use the evm the evm is what everyone supports so do that don't do anything that's right or maybe that'll fix everything do that because that's what you'll get supported or use wasm because everything already supports wasm so do that that's what a business person says and there's a lot of business people in the room love business people we need them they're great but are they really solving the problem is it really the right tool for the job and this is where fuel my project comes in so fuel is really designed to be the first asset-centric roll up on ethereum and we actually are in many ways and I'd argue that because we designed and built the first actual asset Centric roll-up on ethereum to mainnet with all the pies of the security standard you know fulfilled in in ethereum so I'd make the argument we were the first two but in many senses asset centricness should be designed through the whole system and yes general purpose and low-level run times are amazing and we should have them we should understand those things but if you really want to solve the problems of blockchain you need to build the right tool for the job and that's really what fuel is about at every single level of what we do and so a very quick summary of what fuel is and I'll just try to explain it too because I didn't add enough slides um fuel is really trying to design the right tool for the job for what our new blockchains layer twos layer threes modular blockchains and execution layers the main thing that we focus on is having asset centricity through the whole stack so everything is about assets and when we have a virtual machine it'll be as or more efficient than move or wasm but it's really really good at transferring creating and minting assets and doing it in a way that is parallel processed and that can support Global volume um and so the fuel VM is inherently trying to treat assets as first-class citizens while giving you all the nice general purposeness of what you see with things like wazo Etc as well sway is a programming language we built from the ground up as well and sway uh is really designed for safety and efficiency but it's to give you a design experience that is not something like rust or a systems language that again is not the right tool for the job you really want a language that's designed for blockchain designed for these different aspects of what we need them for and as well a tool chain that does everything you actually wanted to do whether it's everything from testing all the way over to static analysis publishing or taking your application deploying that as a layer 2 or layer 3 or a uh you know a sovereign chain Etc we've made everything all in one into one single system that addresses wholeheartedly and truly all the issues that you see with the space and yes it's very difficult to do what we're doing because we rebuilt everything from scratch so that we could design the right tool for the job and yes all these other layer twos are bigger right now and all these things are very exciting but we won't stop until we actually design the right tools for the space and that's everything that we do in the commitment that our project makes to the crypto Community is that we want to build the right tool for the job for Building crypto and for building assets so if you want to learn more about fuel go to fuel.network it's our our website we are going to update it soon we just released a new docs portal with everything all in one um and that's the presentation thank you so much [Applause] uh so I think I have like uh two minutes for questions uh if anyone wants to ask questions um yep oh sorry they got a mic here so in recent years uh you know uh resero and cartesi have tried to build general purpose programming models I see a lot of that going on in the ZK space yeah uh so how do you see you know those types of programming models evolving and where does fuel sort of you know Stand Out compared to some of those approaches yeah so the way that I'd explain it is this you're going to see a lot of general purpose Solutions come out for blockchains whether they're ZK approvers or whether they're layer twos that support wasm and that's amazing that's wonderful however I think the key detail is it will be more efficient sometimes to just build whatever you want to see in rust or something else and just do that we can always do that the issue is when it needs to interface and play with all the other applications and there's assets involved and there are things being transferred between all these different protocols all of a sudden all the problems begin why can't I just write my application and see and just have everyone interface with it because the interfacing itself the token models and as well just how you're transferring these Assets in parallel scaling that globally becomes the actual issue so you can build things in isolation easily all the time and general purpose runtimes are amazing for that however when you really get down to what we're doing with blockchain what we're doing with these systems you really need to design the right kind of architecture for it to interface with and that's why using something that's designed for the job like feel VM or sway is really the you know most important thing you can do as a project instead of just designing for your own need and isolation where nothing can properly interface with it so that's the way I would explain it okay um I think that's it all right thank you so much everyone yeah
Automatic transcript — names and jargon may be misspelled.