 I love intro music at conferences, it's incredible. By the way, I had a whole intro thing planned or something that I was going to say, but I just got to reiterate what she just said. That was awesome. I'm a huge fan. Let's please, your unique backgrounds, it is incredibly important. I was going to talk about that at the end of my slides. Now I'm talking about it at the beginning. My talk is on scaling crypto economics and also a plasma primer. So let's dive right in. So this is a map of human knowledge and consciousness. We have science like physics equals MC squared, that is a meme. We have computer science, we have philosophy, we've got all these different disciplines, we've got history, we have cryptography, we have economics. I wonder if you know where this is going. Well, right on this, right there, right there, precisely there, no other place, there is crypto economics. This kind of very weird, weird thing. It's like an nascent idea kind of signal. And so what we have is it is a kind of combination of cryptography and a combination of economics. And a combination of distributed systems is pulling in a lot of ideas, maybe even some philosophy in there too. But absolutely no history because why look back, mistakes are better the second time. Why physics? There are no physical limits in the crypto space, come on, we'll get out of here. So we're pulling in all these ideas from different fields to kind of create something pretty cool. What is that? So what does this actually do? We have a bunch of gerbils and they kind of come, I'm a gerbil person, hopefully people know. And they're learning about all the different fields, everything that we want to do. Some get into computer science, some get into physics. And hopefully there can be this like little flag that says, you know, this is crypto economics. There's something cool here, maybe, maybe, I mean, people in this room hopefully think that there's something cool in, you know, what we're doing. And so hopefully they can come in and they can get some good ideas and spread that information to different fields and we can actually like influence other fields to really care about decentralization when we create internet applications. Do you really, you know, make the Facebook 2.0 or something like this? Make sure that it's not, you know, just a single kind of processor that holds everyone's chat information and holds everyone's private keys. And make sure that, you know, video games in the future, maybe they're like assets or any internet assets are not held just by a central operator that can kind of, you know, freeze your account, for instance. And instead, maybe, you know, put it on a decentralized network, everyone's holding their private keys and, you know, encrypting their messages and oh my gosh, this is like a dream. This just gets me so excited. It'd be amazing. And, you know, all these like assets, maybe they exist on a chain that no one really controls. And so no one can actually, you know, freeze your account. So maybe, maybe, just maybe, we can create the decentralized internet infrastructure that we all want, that we all know and love. But if we are actually going to spread this information back, there is something that we need to do. Our networks are pretty small. They're pretty, you know, relatively, relatively wimpy. And if we were to actually have the kind of weight of just the world internet users on our systems, it would just, you know, hold up. No, it actually probably wouldn't work out. Fifteen transactions per second. That's not going to, that's not going to cut it, right? So we need to scale. We need to scale up. We need to scale. We need to scale. We need to scale. We need to scale. We need to scale. We need to scale. It's a shocking number of puns that you can look up for scale. It's incredible. I was shocked. This is a scale bug. Anyway, we need to scale. This is, you know, there's where we are, Prague. Oh, my God, we need to, that's the whole earth, but I'm sure. And there, you know, here's Galaxy. So I created this terrible waste of time website for scale.devcon. It's like Cookie Clicker shared and we can scale. So every time you hear scale, click one on that website, scaledevcon.com. Anyway, so people are talking about Ethereum 2.0, right? And I, or, you know, Serenity. And, you know, it is incredibly cool. We have all of these, you know, the beacon chain, creating all of the, like, regenerating randomness which allows block proposal for these shard chains and, you know, committing to finalizing the shard chains. And it's really cool, but in this talk, I'm going to mostly focus on a single chain, maybe, maybe, maybe, plasma. So, well, let's dive in. What, you know, before we have this kind of construction, I really think that we can have something very cool with plasma. And I'm going to talk about some exciting stuff later on in this talk. So what is plasma in the first place? Let's dive right in. Well, it's an architecture for layer two, block chain secured with an exit mechanism. It's kind of confusing, doesn't make any sense. Hopefully this will illuminate things a little bit. And I want everyone to have an idea what plasma is because the entire reason why we're building these systems, what, like, decentralization means, is you have a reason to trust the internet system, you know, infrastructure that you're using, right? We need to establish trust so you need to know how this kind of stuff works if it's going to be adopted on a large scale. So we have the Ethereum chain. We've got the plasma contract. The plasma contract is deployed to the Ethereum main chain and mine by miner, right? It's pretty simple so far. This plasma contract has an address, has an ETH balance, and it acts as a kind of judge, as a kind of mediator for all of the, you know, funds that it's going to oversee. And notice that this mediator is deterministic, it is objective. There is no kind of, you know, question who's controlling this. It is automatically executed like a robot. Well, in a robot that has no opinions outside of just following orders. So we also have this operator. The operator can be a single entity. It can also be, you know, a proof of stake validator set, right? It's actually surprisingly easy to, you know, turn this into a proof of stake system. So we might as well lock up some coins and do that. So next we have the plasma chain itself. The plasma chain consists on off chain data. This is where we get our scalability from. This is, you know, stored up in the cloud. It's a whole lot of data. And here it also consists of on chain data like block commitments as well as deposits and exits. And so this is all on the Ethereum main chain. And the key is that our security actually comes from and derives from the Ethereum main chain. So if the Ethereum main chain is to, you know, hold up its properties of, you know, censorship resistance and, you know, safety, then what we get is we get the same properties of our plasma chain. We get that same level of security. And so while storing minimal data on the Ethereum chain. And so there's actually something fun that I heard. Well, you can actually achieve this kind of like scalability stuff with cryptography, just alone using stuff like ZK Snark's rollup and some really cool tech that's coming out soon. But Justin Drake has this saying that I really love where if you can't use cryptography, then try crypto economics because the cryptography is very expensive at this moment. So it's pretty cool. I'm a fan of that little saying. So lastly we have our users of course. And so we've got Alice and Bob. Alice on the left, Bob on the right. It's very important that you know. Now we have three steps, main steps for all of these plasma chains. You deposit tokens, you transact on the plasma chain and then you exit tokens. So first we're gonna deposit some tokens. So Alice signs an Ethereum transaction, sends it to the miner, the miner mines it and now it is recorded in the Ethereum chain. It reduces her ETH balance and sends that ETH to the plasma contract to control. Sounds good so far. And so now we've got this deposit record. The deposit record is immediately kind of reflected on the plasma chain. It is stored in the main chain. It is a little piece of data, not very expensive, but it is, it's a non-trivial cost of gas. And then that gives us 100 P. So this is a kind of plasma chain version of the asset. And this works not just for ETH, but this works for any arbitrary token as well as ERC721s. Anything that you want to, any asset works on one of these chains. Now next you can transact on the plasma chain. So Alice creates a plasma transaction and it's sending to Bob 50 coins and it's sent directly to the plasma operators or maybe the validators and created in a, they come to consensus on it, they form a block and they submit that block to the, they actually, sorry, they actually create a Merkle tree of that block and a compact block commitment. So this is a constant size, basically a hash which is submitted to the main Ethereum chain. That is a commitment to the block and then the actual block data itself is made available for all users to download. So notice that the block is currently grayed out, that's because it's not yet committed to and so eventually what we will do is we will mine a block on the Ethereum chain with that block commitment and that will kind of like commit the plasma block to the main chain. And so now we have the security of the main chain. So sounds pretty good so far and we now need to update the state and so we have this Peth and we're going to send it to Bob and if mine is 50 plus 50 and we're good. So we've transacted on the plasma chain but the point of these plasma chains is we can transact a lot. We currently don't scale, we want to scale, pretty simple. So what we can do is notice that this transaction process everything is going on, all the kind of main information is going on off chain. It's not actually being committed to the main chain and there's only a constant size commitment to the main chain so the larger the block, it doesn't actually affect what you're committing to the main Ethereum chain. So you can instead of having one transaction, you can have a whole lot of transactions. Send them all to the Ethereum, the plasma operators, they'll create a block, they'll create a merkle tree, merkle root and they will submit that block commitment to the main chain and so instead of being bound by the Ethereum transaction limit which is like 15 transactions per second today, you know maybe a thousand times x that in a little bit but still we can already get these massive blocks just by using a kind of sensible crypto economic mechanism like plasma. So how many transactions per second you ask? Well, we're gonna talk about it soon. So the last thing is exiting tokens. Bob wants to exit his coins and he creates a transaction which is like I want to exit, sends it to the main chain. The main chain starts out this exit process and there's seven days for a challenge to be submitted. So essentially what happens is we have this challenge period it's seven days and we wait for the Alice, if Alice thinks that this exit is invalid and not actually maybe it's trying to steal someone else's coins, Alice can send a message saying this exit is invalid, prove it to this dispute contract and then the exit will be canceled but in our case, the exit was just fine and so it goes through. We wait and finally Bob submits a withdrawal transaction, sends it to the main Ethereum chain and reduces the balances on the plasma chain and receives the money on the Ethereum chain sent from the plasma contract itself. So this is the general construction for all of these plasma chains. It's pretty cool, all of the plasma designs whether it be plasma, cash, MVP, et cetera they all follow the same kind of format. So that's pretty cool, that's pretty cool. Now, unfortunately this was only one transaction and there's no point of having a coin on a plasma chain if you only transact it once because then you're just sending it once, withdrawing it and the gas cost is like you're not even saving any money and so we really want a huge number of transactions on these plasma chains. It would be ideal if they could be massive or at least have one humongous plasma chain. That would be so cool because then we get these cheap transactions for all of the Ethereum assets and we can get them way sooner than we can see and we'll see how many transactions we actually get pretty soon. So a brief recap of plasma history, right? This has been a crazy journey with a lot of different crazy names ending up with this kind of like last little plasma thing which I will talk about. Anyway, so first it started out with this white paper, right? We're climbing, we're starting the mountain. It had a general idea of the format of plasma but it was a little bit fuzzy, didn't feel like you could really implement it just from that spec and so what happened is Vitalik created this plasma MVP architecture which was really great, it had a lot going for it but there were some clear flaws with this spec and one of those flaws was confirmation signatures, mass exits and no trustless like lines. So we'll talk about confirmation signatures very briefly, it's a pretty silly thing. So when Alice sent a transaction and it got committed to the main chain, turns out that it wouldn't actually be valid yet. In fact, Alice needed to sign a transaction saying I saw this message and sent it directly to Bob. This would make the transaction valid and to be honest, that is a terrible UX that would be so complicated to implement. You have to sign two things just to send one coin. That's craziness, I don't know, it was not great. The next one is the mass exit vulnerability. This is the scariest of all probably. So we have one transaction in this block and that transaction is red. What does that mean? That means it's invalid. It means that it is spending more money than it actually has, right? This is just literally an invalid transaction. Alice is not sending this evil Mallory gerbil 9999 coins. That's crazy talk. So what is happening is that transaction maybe gets included into the plasma chain because Mallory and the operator are colluding some kind of, you know, some nasty businesses going on. So then Mallory, this evil gerbil, is going to submit an exit of all of those coins attempting to drain the plasma smart contract of all of its money, right? And it's going to reference that invalid transaction in its proof to the plasma contract. Now because of the way the plasma contract was designed in MVP, it created this ticking time bomb where everyone had to exit within seven days. And if they did not exit, well, you'll see. The people who did exit, they'd get their money back. That's great, but the people who didn't exit, time, boom, it would explode and all the money would be sent directly to the person who had this invalid exit, right? So this is extremely bad. If you're like asleep for a little bit, then you lose all your money with very, very little recourse. It's very easy for the plasma operator to just go away and take a whole lot of money. Now it gets even worse. We're talking about a massive plasma chain or a couple massive plasma chains. So in that case, we have a huge number of users. And if a huge number of users are all trying to submit exits within seven days, maybe that's not enough time for all of them to be processed. And so if you thought CryptoKitties clogged the Ethereum network, my goodness, this would be a nightmare. It just breaks the whole system. You literally can't scale up to this point. So it's gone, supernova, game over, let's try again. So no trustless-like line. This is another important piece. We remember, because this ticking time bomb exists, we need to check, every user needs to check, that there isn't an invalid transaction included in our block, which means they need to download and process every single transaction looking for that single invalid transaction. This is a serious problem, because it's great that they can exit, but the thing is that downloading and processing every single block, if those blocks get really big, creates a huge bottleneck. And so instead of getting tons of transactions per second, we have to download everything. And so that means maybe 100 transactions per second, maybe 1,000 transactions per second, but it's very limited by the client's ability to download the transaction. So that's not good. Next, more viable Plasma. Kelvin and Ben Jones actually created this spec that iterates on the MVP and removes those confirmation signatures. Thank goodness, that was needed to go, needed to go. But then there was also this Plasma Cache's Plasma ridiculousness, pretty silly. But nonetheless, Plasma Cache came out and so that actually got us a little closer, I would say. And so that kind of mitigated this mass exit vulnerability and it also gave us a trustless light client. So we'll look at how this kind of works. What we did with Plasma Cache is we said, okay, each transaction is going to specify an index in a Merkle tree, which corresponds to a unique asset at that index. And what that means is that gives us like these kind of single assets at every single leaf node of this Merkle tree. And so exits will specify the particular coins that you are trying to exit and challenges will kind of refute that particular coin in that particular index, in that particular Merkle tree, particular, particular, particular. And so we have multiple, this actual information, I won't go into details, gave us enough information to cancel exits if they're invalid. Instead of forcing everyone else to exit, you just respond proving to that Plasma contract that the exit was invalid, that the transaction was invalid and we canceled the exit in the first place. So this meant that not everyone needed to submit an exit before that time limit, one person needed to submit a cancellation of that invalid exit. So that's pretty cool. And by the way, a deposit is burned to kind of like pay for this, the trouble. So no rest to exit and the attack failed. Thank goodness. But there is more. Thankfully, we also have a trustless light client. This is actually pretty cool. So remember that the reason why we had to download everything is because we didn't know where in the block that invalid transaction would be located. But because we have a particular coin ID for every coin that we care about, that means that if Alice owns maybe five different coins, Alice is only going to download five different Merkle trees. Or in this case, Alice owns one or two coins and they only need to download those particular trees. And so now we can scale the block sizes up and the amount of download, like the size of the download scales logarithmically, which basically means you can scale it. Exponential logarithmic. It's an amazing thing. Oh, look, if you don't know, logarithmic. God, I love it. Anyway, so that means maybe 1,000 transactions per second or maybe even like 10,000 transactions per second. It's pretty good with this light client. However, unfortunately, we introduced another bottleneck. Really sad. We have these huge transaction history proofs, which means is that if you're downloading the history for your coin, you need to download that history for every single block that's ever published. And that means downloading a huge amount of information. And so with like 1,000 transactions or 10,000 transactions per second, they could be like a gigabyte of history per coin, which is crazy. Like it literally just doesn't make sense. Once again, it like breaks the whole thing. It's insane. It's very, very sad. So that's a problem. The other issue is that we now have, this is no, there's no fungible token support, no good fungible token support. So the idea here was, okay, every single coin has, every single index has a different unique asset. And so maybe you have a few dollars in some of the indices and maybe you have a $5 bill at another or maybe a $100 bill. So if you want to send $106, you have to send three transactions with a five and a one and a 100. This is like a usability nightmare to be quite honest and just doesn't work once again for wallet software. It's like pretty, pretty bad. So yet again, another issue, another big leap that we have to hurdle. Like this, we're getting closer, but we're still not there. So Plasma Debit came along, Dan Robinson, super, super awesome, kind of addressed this no fungible tokens issue with combining state channels and Plasma. And that got us a long way, that got us significantly further. It also helped with the transaction history proofs. So this was along the right path. It was getting there. But then, you know, a couple posts by Vitalik and you know, 17 Plasma implementers calls later. My God, these have been crazy. And yet another Plasma. Thank goodness, PlasmaPribe. This is, I would say, you know, I feel, I feel like we have finally hit the peak of a mountain and it is very nice and some sun is coming up. I have felt to be honest, like all of these, you know, all of the research leading up to now, there's always been like that glaring issue that you really wanted to solve. But Plasma Prime, whew, it's looking downhill. It's looking downhill. I'm very excited as you can see. So what does it do? Well, it addresses this no fungible tokens issue with just replacing all of the leaf nodes with a single denomination. And instead of having a single, like a small merkle tree of a, you know, a bunch of non-fungible assets, we have a huge merkle tree and our sends, they specify a range of tokens. And so if I'm going to send you some coins, I'm going to send you, you know, tokens zero through 105. And so this preserves our property from Plasma Cash that we get a light client support, but it also allows us to get this fungible token support. So it's actually pretty cool. And we have the same simple challenges that we have in Plasma Cash. So we get to build on that, that research. Another thing is it addresses the huge history transaction proofs with some RSA magic, which you can learn about in a Plasma implementers call that we had recently, as well as a few blog posts by Vitalik. You can actually prove that there were no coins transacted in a long range of blocks with a single proof, a single witness. And so what does this mean? This means that as a user, if I don't transact my coin, I can just, you know, download one piece of information that kind of covers the entire range of blocks and proves that I have not transacted my coin for maybe a hundred or maybe a thousand blocks. So that saves us a hundred or a thousand or way more Merkle Tree branches that we would have needed to download otherwise. So we're back down to a reasonable size, kilobytes, maybe a megabyte, whatever, transaction history. So our transaction history, instead of growing linearly with the number of blocks that are being added to the Plasma chain, it's growing linearly with the number of times we transact that particular coin, much more reasonable. So this 10,000 transactions per second limit, maybe like a hundred thousand transactions per second, that would be like incredibly cool. And there isn't, it doesn't feel like there is a kind of, you know, thing looming ahead that keeps us from doing this in a like kind of implementation production setting. So bonus, while all this research was going on, we kind of figured out how to do atomic swaps as well as, you know, batch auctions, some simple designs you can just kind of plug and play with these auction designs. And so we can build on this atomic swap thing that is native to the Plasma chain and we get this kind of scalable crypto economics. We get the scalable payments and exchange at the same time. And so this is really, really cool in my opinion. And so even cooler, right? Okay, so I'm saying all these things, you have now the intuitions for what all this means, but not only is this, you know, research here, but Riverkey for a friend of mine, I was telling about, I was like, man, this stuff is exciting as heck. I don't know what I'm doing. I don't know what the problem is yet. Like I don't know why this wouldn't work. And what he did was he implemented in a single week, literally one week, you can check the comments, a kind of like pre-alpha, you know, kind of basic, basic version of a test net of this kind of Plasma variant. And so this is literally, you know, right now it is a little bit, you know, we're going to kind of release hopefully tonight, maybe tomorrow, but a kind of like pre-alpha. It's not quite, this was literally one week of work, but the point is that it is actually possible to create this chain in a very reasonable, very, it's like, it's a clean architecture finally. And this is the kind of process that I've noticed happen all the time, where you research a problem over and over and over again, you iterate, you iterate, you iterate, and you find out there's a new problem, there's a new complexity, there's a new area of difficulty, there's a new bottleneck, and you kind of plug those holes, and you kind of expand your processing capacity. But this is the first time where a scalable Plasma chain kind of makes sense in some ways, which is super cool. And so, you know, this was implemented in Python using level DB, you know, super, super simple stuff, basically so that people can read it. Also in Viper, I should have written that up there. Shout out to Viper, super fun. And so, great, there is this kind of like, what is, what lies ahead? And everyone knows, you know, who does hill climbing stuff, that this could be a local maxima, but nonetheless, it looks pretty good, right? With one thing that's really cool is we can actually, you know, the smart contract side of things can stay the same as we scale this operator. So as we, you know, kind of optimize the kind of backend side of this Plasma chain, we can actually keep the same block structure, keep the same general format. And instead, we're just scaling, you know, maybe a computing cluster, so we can basically, you can shard Merkle trees very easily. So that's cool. So like 100 transactions per sec, 100,000 transactions per second. And like the thing is that I was not going to be satisfied, or you know, I'm not satisfied, until a crypto economic mechanism, a real secure blockchain, like a blockchain that is really decentralized and good, can process huge amounts of transactions per second that, you know, decentralized architectures have been able to process for a long time. So like, this is the goal, the explicit goal, and it is actually, you know, it's seeming good. So another cool thing, just like randomly, even in a sharded context, these Plasma chains do make some sense. So you can actually, you know, as you're building up the beacon chain, as you're building up the shard chains, you can actually create a Plasma chain that has a Plasma contract across multiple shards. So if you spawn your ERC-20 tokens on a different shard, then you can actually deposit into the same massive Plasma chain and transact that, you know, thing independently. So that's pretty cool. And you can even commit to, you can commit to token allocations on chain with a Merkle tree, and then immediately transact those coins in the Plasma chain in a scalable setting. So you don't even need to, like, register the tokens themselves on the main chain. So it's pretty cool. These are like some very cool designs. And hopefully, and I actually, right now, I'm not seeing why not, you know, we can scale to a very large, you know, kind of like global internet scale. Like, we need to make sure that these crypto-economic mechanisms, if we're going to say that decentralization is the way this is the future, this is the way we should do things, well, we need to show that it actually works for supporting a large number of users. And so, of course, Ethereum 2.0 has that kind of vision in it and is actually, you know, very far along. And I wish I could, you know, I wish I had an hour so I could just do the next talk on Ethereum 2.0, but, or on Serendipity, but hopefully even with this, you know, with Plasma next to, you know, Ethereum 1.0 or Ethereum 2.0 and more, you know, of course, this is not the only technology that's going to be required for this. Hopefully we can actually support this kind of real global economy and hopefully we can create a, you know, the crypto economy, make sure that it is self-sufficient. You know, this is going to be something that I don't, I don't see like external value coming into the, you know, crypto system. I think this is the point where like the external value has come into the crypto system. People are like, oh wow, this is really cool and I'm speculating all day. However, we need to actually generate value within our economy and actually create like this internet future thing. I don't know, this kind of internet land that is actually free and decentralized, which would be pretty cool and hopefully this will be enough to really spread the memes of decentralizations as decentralization as well as the means. I, that's the fun one. Anyway, so that is, that is that. I just put this here. I'm just like shilling Uniswap for a slide. I don't know, that was interesting. Anyway, I'm also shilling CryptoEconomics.study for a slide. CryptoEconomics.study, it's a course and a book written by Jing Lan Wang and I'm, I just like, I just, I'm working on the lectures and so I just like put through a couple lectures. They're actually, it's not just me working on the lectures to be honest. There's also Kevin who's working on some lectures as well as Jing. So like this is a super, super cool thing and once again, this was the beginning of my talk was like, okay, we need to make sure that everyone is included, that we spread this information because everyone has something unique to contribute really and to be honest, if we're going to create this like new future free amazing economy, like the only way that we're going to prevent it from kind of degrading into a centralized, you know, like basically control system power structure that we hate already today. Well, it's only going to happen if we have people from different communities that have the actual information, access to this information to build it together because otherwise we're going to forget certain things, we're going to create systems that don't actually promote equality and instead kind of promote a single person's interest. I am, I fall victim to this too. Like I do things that I really absolutely regret while completely having the right intentions, I will make mistakes. So we all have to remember we're all, we're human, we need to make sure that other people kind of can balance us out. We're in this together and like, hopefully this whole thing will work. So, you know, check out that DevCon or scalingdevgod.com, that ridiculous website. By the way, it's probably broken right now, but whatever. But more importantly, check out the Plasma Prime implementation that is, you know, I'll send out a Twitter or two and you can download it and actually like send transactions and you know, mess around on a plasma chain and exit. And then let's scale this thing up because it's actually possible. I don't know, thank you.