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

Loading player…

J3 PAIN 01 Karl Floersch Ethereum Scaling Plasma & Sharding

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

Transcript

all righty welcome good morning everyone I'm so glad you were able to make it I know I wouldn't have been this is a little too early for me but nonetheless we're gonna get really deep into some technicals that's the best way to start the day hello sunny so Casper plasma and sharding these are like the three pillars of aetherium in 2018 I talk a lot about Casper or at least I did last year and so I'm gonna assume everyone knows Casper like the back of their hand but we're gonna get into Minimum Viable plasma so hopefully III this I've given this part this section of the talk a number of times but I think it's I think it's good and this time I'm gonna I'm refining it so this is this is gonna be the best Minimum Viable plasma overview so number one Minimum Viable plasma it's about scalability right we're trying to scale the blockchain but it's not scalability at all costs its scalability while maintaining decentralization so we want to make sure that the security of the plasma chain it is as secure as the root chain essentially and if you have a plasma chain that is not as secure as the root chain then it's not really a plasma chain and this is these are the kinds of guarantees that we want to make make sure you know tokens cannot be double spent and so the plasma MVP I should say is is a token transfer of blockchain so it's you know based UT EXO super simple stuff and it has the normal security guarantees of a token transfer blockchain let me actually start my timer so I know how long we're gone okay so tokens can always be redeemed on the main chain this is the key to the security property that plasma provides if the this plasma chain goes bad then you can always pull your coins off and bring them onto the main chain so plasma exits this is actually how you pull the the coins off of the main chain in off of the plasma chain and it basically it's the it's the key mechanism which secures plasma and the the MVP is designed for just simple token transfers you know just just transacting these neer c20 token or but it can also be designed for you know ERC 7:21 general state transitions etc so this is actually an active area of research and there are many active area areas of research that are going on in parallel and so the cool thing about plasma is it's not a like protocol given to the the people it's essentially a design pattern that is been you know starting to be explored and anyone can contribute their own you know make their own plasma implementation but if you do make your own plasma implementation make sure that the security is actually secure you know make sure that it actually does require the route chain to be compromised for your plasma chain to be compromised if you have your plasma chain if it is less secure than the route chain or significantly less secure than the route chain then it doesn't really follow the kind of guiding principles of plasma we are implementing plasma and we have a call once every two weeks and it's super exciting so please check out the youtube channel boom so here is a overview of MVP we've got on the Left we've got the miners on in the middle we've got the plasma operator and on wait yes on the right we have the the plasma chain so the plasma chain is actually complete the the plasma the contract plasma contract is deployed on the main chain and that manages the the it essentially secures the plasma blocks and those blocks actually exist on in the the plasma operators like database so we're going to go over a few kind of normal functions of a plasma chain basically the operator is going to create a block a new user is going to come in and start transacting then we're going to have the new user try to steal some coins basically double spend and in some some ways and we're going to destroy that you know we're going to make sure that doesn't happen and the operator is also going to create an info and the users are going to exit so even so this is what I was saying about the route chain security we want to make sure that the plasma chain is as secure or close to as secure as the root chain and that is why we can actually have a single plasma operator because it is a constrained Authority this is a proof of Authority moon network at first however it is a constrained Authority so the plasma operator is going to create a plasma block this plasma block is contained in the plasma operators you know fancy database and it's going to send a transaction which contains the you know Merkle route of the transactions and the state to the main chain and the miner is going to receive it and mine a block and so that basically goes it makes the the plasma chain block go from from like light gray where it's not confirmed to confirmed once it's been included in the etherium main chain so Sam is going to come over and we're going to have Sam do some transactions so Sam's gonna deposit Smith that immediately creates a block on the main chain that block is going to say okay Sam now has this balance and it automatically confirms because it there's no there's no real cost like if you were to think about what's actually happening you're you're sending a transaction on the main aetherium network and the main aetherium network is just immediately adding a trench adding like some data to the plasma contract so now the the plasma operator is like forced to update their state - to sync with the main chain so the Sam is going to now start watching the main chain for misbehavior and Alice will come in and do the same so Sam is going to send a bunch of tokens to Alice so since 2500 paths that just because you know we now have a thousand transactions per second oh great where we can scale and it'll create a block with all of those transactions and note that the block is not being confirmed the block will then go be submitted into the main chain and the miner will mine the block now you will notice that the the balances have not yet been updated this is because there is a confirmation mechanism we're actually going to get into potential ways to remove the confirmation mechanism later on however this is in the plasma MVP spec you still have it so the Sam is going to notice the the two chains the plasma chain and the root chain see that the transaction was included and then signed a message and send it to Alice saying okay I actually do acknowledge the fact that my transaction was in the main chain and at that moment Sam Alice can actually spend those coins great so Sam is now going to try to exit with coins that Sam no longer has because Sam sent them to Alice so Sam submits an exit transaction onto the main chain so remember the main chain is really you know the final arbiter of all the the different things and that's what keeps the plasma operator in line that's what keeps each user in line now the exit transaction is going to come in but the the exit will have this challenge period and the challenge period says okay if your exit is invalid then you know I will I'm accepting any transaction from anyone to challenge this and anyone who challenges it successfully is going to receive a security deposit bond so Alice will notice that this exit has been included in the main chain and immediately say okay I'm gonna try to challenge this this exit and in fact anyone can notice that a invalid exit has occurred and challenge it and so the incentive is okay I'm gonna submit an exit it's gonna come with a bond for basically a bounty for anyone who challenges me and that will pay for the the the person's time to to to challenge so this is a really nice thing basically it's like it's like if you were trying to steal something and as you stole things you you gave a bounty for you know catching you it's really a nice nice incentive so sends the challenge period I mean since the challenge before the challenge period ends and with basically the merkel proof of the the transaction a tree and the the state tree and the contract evaluates that checks to see that it's invalid and pays alice's security deposit so it cancels cancels Sam's exit great so super exciting attack failed one out of two now the next one operator is going to create an invalid block this is a little bit scarier because the operator is able to create new blocks that allows an operator to essentially create a blog which prints a bunch of money for itself now the issue here is the plasma operator now has 999 paths path is by the way just the plasma eath Sam has two point five Alice's three point five this is a little bit scary because the COTS mark contract itself doesn't have 999 eath so the the plasma operator is going to send transaction to the root chain the root chain is going to then mine it and we're in trouble we're in trouble the the root chain now thinks that plasma operator has this amount of ether so the clients notice this bad behavior and they say okay I actually don't want to I'm not gonna be in this chain anymore I'm gonna exit before my money gets stolen so the exit comes in and the plasma operator submits exit as well so this is scary because the plasma operator if they were to be able to exit would be able to steal you know all basically all of the the path all the eath that is now locked up in the etherium smart contract so exits our mind and the interesting thing is they are based their process based on transaction ordering so the the idea is when you send a transaction it's going to be included in one of these blocks and we're going to say okay the last person who sent a transaction for this coin is going to be the one who gets the the the the the their coins back unless there's a challenge so the exit for the plasma operator are going to be in a later block than the exits for Sam and Alice but we'll see how that works so so on the sides you have the ones right so we're gonna go up through all of the blocks and see you know when do we retrieve return funds so block one no funds return block two no funds return block three and then block four we now have that transaction that Sam sent to Alice and so we're actually going to start sending efj back to Sam and Alice so Sam gets her 2.5 eath and Alice gets her 3.5 eath now funny thing plasma contract has no teeth left Lowell pwned so we just took this plasma operator out now this is something new new for this overview this is a reenactment that maybe will make a little bit more intuitive sense because they're more cats so this is the plasma operator attacking the plasma chain and this is your users and the users are like if this I'm Meowth and they send exit transactions so they go to data exiting the plasma chain Oh pound easy so he we just took him out oh that's so much fun go plasma right so this is this is it's exciting because plasma allows us to scale up to with many transactions per second but we still get the really strong security guarantees that are based on this crypto economic incentive game that is being played with Casper and proof of work that is securing the main net aetherium so we have the same kind of or very similar security guarantees but we get this nice transactions per second boost now there are other plasma chains plasma cash so if the metallic has just released or talked about it yesterday we but Alec and I came up with this just like a few days ago and it's super exciting and so Lil Wayne is checking out the plasma cash super super fun I love Lil Wayne anyway so so minimal client so they're there couple nice things about plasma cash there's their pros and cons for for all of these plasma designs remember the important part of this is it's a design family it's a family of designs now plasma cash minimums Clyde validation so clients are watching for misbehavior in the previous plasma chain the clients would have to download all of the blocks and validate all of the state transitions because you could in you know the plasma operator could at any point create out of thin air a bunch of tokens that you know increased it's back there the balance really really high and then just exited with everyone's coins however in plasma cash the exciting thing is we give a serial number two individual tokens now what does this actually do this means that we the the right before we had we were submitting this this route hash and we're still submitting a route hash this is just we're technically two route hashes but but I won't go into the details but the important thing is that now Alice and can just check for coins that are relevant to Alice or Sam can check for coins that are relevant to Sam and that means that if you hold you know ten coins in your in your wallet or something like this then you're only verifying the branches of the the Merkel tree that are related to you so this Merkel tree can get really huge right you can scale up this middle this plasma operator without actually having to scale up the users computers for verification as well and so this is important because if we were to scale up the plasma operator without doing this kind of like sharded validation then we would lose our security guarantees around being able to detect when some operator was malicious and exit the chain in time so it's really about constraining the operator while still preserving security guarantees so let's take a look at this this Merkel tree now I really want to give more talks explaining Merkel trees because they're so incredibly useful for designing all of these things because you can prove inclusion and you can prove exclusion so you you publish this one hash right and then you can prove that all of these things exist in that hash or that something else does not exist in this in this tree sorry I should say so the way that this kind of works is you have you know these two these two addresses they get hashed together well before I say that I forgot to mention that the IDs for each coin is based on at least in in this kind of simple version the IDs for each coin is based on just the index of the the a of the the the token in the Merkel tree so you basically have you know coin 0 is owned by Sam and coin 5 is owned by Althea and so what we actually do is we have these hashes and they secure they make sure they you hash together the Sam's address and Alice's address and you get you know whatever is up here and then you can hash together these two and you get what's up here and so hash is just you know you take some data it produces a unique output for you know one like a one to one mapping essentially and so you get this you get this nice property where because this and this can only equal this and because this and this can only equal this then this and this can only equal that and this and this can only will that so you can actually just by saying okay do I want to see if Samsa dresses in this chain you can just verify okay does this in this hash together to that does this in this hash together to that does this in this hash together to that okay it checks out that's you know included in the Merkel tree and so we can we can also say okay let's you know someone wanted to see if I if I actually owned coin zero instead of Alice well you can hash these two together and you basically immediately realize that doing this stuff gives you an alternate route hash so just changing one element on these in the Leafs allows you to see that it is was not included and so this is what we're actually submitting to the blockchain and this is where we get our like we get to compress a lot of information and so this is useful for all sorts of crypto economic protocols and Plasma chains and just everything it's an amazing construction so great Sam is going to and this is this is kind of shows you that you only care about your coins right your Sam has you know if you receive a coin you're gonna check the Merkel tree and you're gonna say okay is that coin valid on this Merkel tree am I allowed to be to have it and so you remember you're only checking one part of the the tree of the tree so you can actually with this start scaling up the plasma operator so the plasma operator is even big now the plasma operator is really big so not everyone can then create a new block because no one no not everyone can like you know verify all you know thousands and thousands of transactions that are going on but everyone can verify their portion of the Merkel tree and because you can verify your portion of the Merkel tree we can scale up block proposal aka who's able to you know change the state without losing the security guarantees if if the change is incorrect then users are able to leave or challenge it so that's really important and so this is this is a really nice nice thing another thing is we get to remove confirmations so that means that before we were sending transactions and you know Sam had to watch the main chain to see if it was included and send a confirmation to to Alice well now we don't actually have to do that we can just send transactions to the main chain it gets mind and the balances are immediately updated so this is this is really nice it's just you know a UX big gain so and the last last little thing is mass exit mitigation basically because you have to exit coins coin by coin it means that you don't actually have the ability to to kind of print a new coal and the balance of your you know plasma operator and then spit send one exit to to take all of the coins instead you can just instead the plasma operator would have to send exits to many many different coins which means that users have a chance to kind of battle it out and and they can you know challenge the those exits so it basically said it basically the kind of result of all this is that users are not in a mad dash to get their coins out if there is a invalid state transition so that's great cool so there's not I mean this is not like a panacea there's always trade-offs but these are these we're working on kind of like addressing these trade offs and you should work on addressing these trade offs too because you should be designing your own plasma chains because because they're they're a lot of fun and so so some issues are like the indivisibility of tokens is hard to get around so essentially you know if if we're limited by you know sending individual tokens maybe if you you know the smaller the denomination the kind of less worth it is to to you know print a new token on the main chain and bring it on to the plasma chain so so this is something that we're addressing with you know potentially splitting the tokens into smaller pieces or you know probabilistic payments so essentially that's that's saying okay I'm gonna pay you 50 cents by saying I'll give you a dollar every other time this is not quite perfect but you know it can work for some micro payments so and clearly there's still no state transition so there's still like a lot of different areas in plasma that we can research and and and work on and get better like like state transitions would be awesome if we can you know there's just many many designs that we haven't explored and so please join the plasma you know watch the plasma call and and and think about your own plasma chains and learn Merkle trees so contribute it's great there's a lot of reason fun so this is like an important design pattern right the whole point of all this this plasma stuff is that we're trying to scale block chains while not losing the kind of decentralization that would that we get from block chains the reason why we're all here in the first place it's this whole new design pattern this new paradigm kind of like mind shift that's going on where we realize that computer programs are powerful and we want to make sure that the people who control that power or the systems that control that power are well balanced and not exploitable so what we're trying to do is we're trying to constrain actors that are key participants that could potentially mess up the system so essentially why are we using deposits well it gives us large incentives to - to who to punish validator so it constrains them and then if we have any problems with them we punish them so this is just like an example of like this is the the thought process that creates these you know new crypto economic protocols it's constraints and so another thing is the the this is where Trust is really established because by limiting the actual the potential actions of actors we are able to say okay I don't know who's you know playing this game I don't know who's participating I don't like know them personally in other words I haven't established some kind of social reputation or something with them but I know that they are constrained and what they can do to me or I have some recourse if they ever do something wrong and so because I know the rules of the game I'm much more comfortable playing it and so this is this is critical and so when you're designing these protocols you need to impose costs for bad behavior and that is kind of this is this is the the crux we are constraining central authority when we build these crypto economic protocols so we want in plasma to store minimal information on the main chain we want to make sure that we don't actually compute every state transition directly on the main chain that's where our security that's where our speed benefits come in and the the plasma it basically allows you to not store so much intermediary state in other words if I send you transactions and you send me transit and we go back and forth a bunch of times the only time that the the Jane actually cares is when we exit right we can still be transacting amongst ourselves and then only when we exit does the main chain care and so that's where we get our our speed benefit and so this threat of recourse even though we have what seems like a central operator right seemed that plasma operator was a sent a key actor that is kind of has special rights and that they were able to produce blocks but even so they were constrained in what they can do and that allows us once again to trust to the chain now you can actually break that up and you know maybe make the central actor a proof of stake you know validators that are validating availability which is part of some designs that we're thinking of now and that you should be thinking of as well but it is it even works in the context of a completely centralized like proof of authority operator so exciting so there's some other constructions once again we we you know exchanges arbitrary state transitions you know even more scaling techniques we this is this is really important and something else that's important is the base level sharding for higher throughput so we can express it and process more transactions per second if we scale up the main chain so that brings us to today today sharding so we we gotta gotta learn all of a theorem in in 35 minutes so sharding phase zero and phase one this is where we're kind of where we are now for implementing sharding we have sharded clients by the way that are in the works you should check out github.com slash aetherium slash sharding so these clients do not even require hard work but let's get into why what what sharding really is in the first place so this is what we have right now we have a bunch of computers that are running the blockchain and they're processing every single transaction right and so now one way we could scale a blockchain and some one way people are scaling a blockchain is by just making it so that you process more transactions per second right and that just means that you have a beefier computer that's processing more transactions per second right right now we process fifteen transactions per second that's only because we have a particular constraint on what kinds of computers we want to run a theory em now what we could do is we could say okay only beefier computers can run run aetherium now and now we're processing 100 transactions per second 150 whatever but that means that the number of people who are actually able to verify the state transitions goes down right the whole point of us doing that plasma cash thing was so we could only we could make it so that we scale up the blockchain without having to verify you know having having to the the the clients have beefy computers to verify this is the same same concept and then you know we could scale it even larger and just have one big computer quantum computer that's doing all the blockchain for us but the problem is this doesn't all constrain the central authority we're kind of beholden we can't even verify whether or not things are going right and so this is this is like okay yes you can scale a you can scale a blockchain but can you scale a blockchain and maintain the whole reason why we're here which is constraints on Authority decentralization incentive alignment all that stuff so instead what we're doing is we are using sharding to essentially take all these little computers put them together and create one fancy big computer that is kind of the sum total of all of those computers running in the network so so we design a a mechanism or a number of mechanisms which then when combined when all these computers combine create this one pretty fast machine it's a little bit crazy to think about and it's hard to build but everyone can do it and it's actually possible to it very possible to do and we're already getting there but you know we can always get help so so please please do contribute sharding phase zero so this is the kind of very first sharding move and this is just actually all it does is first it doesn't require a hard fork instead we just deploy a contract on the main chain a validator manager contract and that is essentially valid that that takes some some validators and and you you put up some stake and then you can validate the the kind of sharded network but the interesting thing is you know it has a set of validators it has a theory mushara but it's only data availability this is not like state transition so we're basically only saying okay data is available now if you actually as you design these protocols you realize how hard data availability is like knowing that data is going to be there is required for being able to prove that you know something went wrong if you don't know what is actually going on then you can't prove that something went wrong so we're solving this one first but then phase one we should you know shortly follow we're actually going to be including you know the etherium upgrades for it you know like II was um and Account abstraction and all the kind of fancy new aetherium tech that's in the works so that your your new clients on these shards are going to be you know super fast and super easy to program now there are three main actors there's kind of four but three I'll just call it three you have users you have block proposers and you have validators now the way that this works is the users are going to be sending transactions to the block proposers the block proposers are going to be composing a bunch of transactions bundling them together and creating a block or a collation on a particular shard these these transactions by the way specify the shard ID and then those blocks are going to be sent to the validators or the collations the collation is the name of a block on a shard so the collations will be sent to the validators and the validators what they will do is they'll just say okay this collation exists and so there's going to be an interesting relationship where users pay block proposals or collation proposers and block proposers pay validators and so essentially what what what is cool about this is you can actually have it so that the the block proposers have they are on a particular shard keeping track of this shard and they can they can have interesting rules for how they collect transactions maybe they are a block proposal for a particular DAP and that DAP says okay we want all of our transactions to be included you know first and we want every single one of them because you know we want our users to have a good experience that means that they can create they can collect a bunch of transactions filter them by only their DAP propose the the you know whole bunch of transactions to the validators and pay the validators enough that they are included in the in the main chain so this is actually really natural once you start thinking in this way like when you separate data availability from state transitions it really gets a lot easier to think about these protocols so what some terms terminology we've got validators who are randomly sampled to create collisions so remember these are like you know the blocks on the shards and the reason why we're randomly sampling them is we don't want validators to be able to particularly target one shard because that would mean that if you were able to target one shard then you could like 51% attack one piece of the network but instead what we want to do is we want a randomly sample from these validators so that you would to attack the network you'd have to have a majority stake in all of the validators and we're going to create these these collations and then the validators are going to check that they exist and submit the headers to the main chain and so this is just like what a what a header looks like but I don't think we have time to go into so now the other thing is there these periods periods yet another term I'm sorry it's basically five blocks right now it you know it can change the idea is that it's the number of blocks it takes for every shard to have inputted a collation header into the the main chain so once per period every shard should you know be able to update and so what this means is you you you the validators are able to we have this this thing called look-ahead periods and look-ahead period say okay what am i going to be validating in the future you know four periods ahead and so that gives you like you know 20 blocks to say okay I'm going to need to validate this shard so let me download you know block proposals and and things relevant to that particular shard as a validator so I can then contribute to it so this is this is how we get the the you know give give our validators enough time to get ready to produce a new block great so they the validators are just verifying block availability once again super super cool stuff so here's a little example of what this really means so each period right these circles are periods the the squares are our blocks each period is five blocks and what we're going to do is we're going to do this this nice little thing where where we first look ahead then clients are going to submit some transactions then the block proposals are going to create a collation then we're going to you know have the validators download and submit the block where the collation and then where it will have a little bit of an attack and we'll mitigate it so so this be exciting the last tourism little you know this is an attack and this is a mitigation so first the look ahead period so here we have the for look ahead periods these haven't happened yet we're currently on this chard but we're going to be able to see the validators will be able to compute which chard they're going to be validating so you know this guy is validating chard one it's kind of validating chart 2 etc and so you see we're just like randomly sampling from these validator sets and so no validator is going to have too much power over one chart that's where this kind of like decentralization this security guarantee around particular shards having the same security as the full validator set so boom we've got this look ahead period now what we're going to do is the client is going to submit some transactions great so the the submit whoops that was really fast they just made a transaction to the transaction pool tell us what shard you want to you want to talk to and so the block proposes are going to come in and pull from the transaction pool and create a collation now the validators they're going to take these these these collation proposals and they're going to just submit some to the main chain so they pulled it into the they pulled them in and now there's verify whoopsies so first before they they know what to build on excuse me they're going to verify that the data is available because they there's in this the validator manager contract they all want to only want to build on available blocks because that's the only blocks that they get rewards on so they're just going to go one two three they verify as far back as they would like and then they choose ahead and they build on top of it so submit some collation headers to the main chain and boom now we have updated all of our shards at the same time so you can kind of think they each one of these validators is running a pretty simple you know protocol it's going to be running on a laptop each one of these block proposers or collation proposals are running on a laptop users are running on a laptop but still we're able to shard and we're able to get you know many many more transactions per second because not everyone is validating everything so now we're going to say the evil validator is going to come in and submit a invalid block and so we'll see how that works basically we the same format that we did before you know downloading some blog proposals and submitting to the main chain the evil validator is going to propose and create an invalid Lex and no one's able to download this thing what are we going to do well we are going to say okay I am a new validator I am NOT evil I'm this guy I'm going to instead build on a I'm going to check the history and I'm gonna say okay that's unavailable I wasn't able to download it this is available and I'm gonna keep going back that's available as well I'm going to choose this is my head instead of the one that I couldn't download and build on that one so now we have this way for validators to you know just circumvent a unavailable block and this is all managed in the validator manager smart contract so super exciting we're able to get this kind of scaling able to prove availability and a me and and and mitigate these these kinds of attacks if they if they ever do come up cool so attack failed go sharding so amazing we now have this Casper plasma sharding I well I wish I went over Casper but you know there are a lot of videos online but we have all these things Casper giving the security of the main chain you know making sure that that validators that misbehave are going to be penalized and Plasma a design principle that allows developers even on the current aetherium without any you know sharding to to get a lot of transactions per second through like really you know good well-designed protocols and then sharding where the core chain is going to be able to be moving you know much faster and and this is actually you know sooner rather than later once again shout out to github.com slash aetherium slash sharding so with Casper sharding and Plasma we can scale to the moon this is like this this is you know just just like just to I don't know give an idea of like where this the the validators we have this one set of validators and they're super duper constrained they're super you know secure we we know we trust them because we have this economic proof that says ok if the validators misbehave they'll they'll get punished and and they're there's these consequences for for doing things that we don't want and then we're going to also have the ability for the validators to have that security split up onto multiple different shards so that we can get transactions per second high throughput and each one of these can be run on a laptop so we don't lose that decentralization verification stuff and then we have the ability for each one of these shards to contain tons and tons of applications you know and many of these may be plasma applications this is kind of exciting stuff as long as you design your your application well you can probably fit it on you know I mean if you have a perfect design you could even fit it on today's blockchain but later but later on it'll be easy to get you know really really high throughput so this is something that I can't that came up during dinner yesterday shout out to all the people at dinner where it was like web 1.

0 we have these like static web pages and everyone's serving static web pages to each other so everyone it's kind of like decentralized in a way and then we have web 2.0 where we have this like social media and and these big these big you know tech giants that pop up and now we're submitting comments and posting things and we're giving our data to these these central authorities but now with web 3.0 what we're doing is we're realizing that giving all of our information and get you know having having so much control over where we are going excuse me where we are going is actually dangerous and so we need to be able to design our our applications so that they actually constrain central authorities built in baked into the protocol itself and so that's kind of like what we're doing and that's why it's so important that we and make sure that our you know plasma chains have the same security as the the root chain or that you know the validator is everyone is able to validate a chain no matter your your hardware requirements except for you know like you just need a laptop etc so this is exciting and we need to you know let's let's let's do it so part of this is that we all need to do it together so so just like everyone needs to be able to validate a main chain everyone needs to be able to participate in the creation of this new Internet and the my personal idea for the best way for this to actually happen is if we have whenever I design a crypto economic protocol I'm like okay we need a lot of stakeholders with different interests so they all balance each other out but just like that we need to protocol design our protocol designing and so that means that people who are like writing these protocols like myself and you know many people in the audience they need to be from a diverse set of backgrounds they need to be a diverse stakeholder group from different communities and so it is it is vital for us to actually to like achieve this decentralization of power for us to also welcome in you know new ideas new people from different communities so if you are you know a newcomer to the space it is so critical like you are like what is going to save this this stuff because I know that if it's just you know if it's just us basically if it's just a small you know small group of people from a very particular background we're not going to build a future that is equitable and and really decentralized it's just going to be you know the same old same old so let's you know continue this like open software free software movement let's you know welcome each other let's be nice to each other spread the love you know this is some knowledge sharing right here good stuff fun happy good feels good feels for all so III search good feels this is you know a lot of really cool stuff is going on so definitely read this this is where we like post a lot of research ideas and you know take a look and it's this is we're trying to we want to be as inclusive as possible and and open as possible so this is this is where we actually talk about our ideas so that's a Doge I'm sorry I really like that that was fun this little quiet that's that's basically thank you right in the middle dead center thank you for a presentation I had a question about the plasma aspect and the second attack you discussed the one with the funny cat at the end about the plasma chain Authority trying to do an exit and if I remember correctly what you said is that this is prevented by the fact that the user can join exit and it's executed in the reverse order so the exit first so my question is what happens if the operators create a new identity let's call it Dave with lot of money that exits after Alice and Sam and so is there an assumption that the last exit will be a legitimate one because I think attackers can only spam exits later fantastic question so that is exactly right so the idea is users are going to be watching the chain to make sure that it is a valid chain that they're building on if a user is to submit a transaction on an invalid chain then all of these guarantees kind of go out the window because we are saying okay the user is able to make sure that they're not building on a valid chain and so why would they build on a valid chain they're just going to exit if they if they see it's an invalid chain and that means that their transaction will be ordered you know in in order so essentially everything is going well users are submitting transactions a bad attack happens and then all the users stop sending new transactions they say oh actually now I really should not be building on this chain because the guy would if I did build on that chain if I did submitted a transaction then they would be able to exit before me and so that is that is a that is absolutely correct and this this kind of yeah yeah and and anyway I wish I there's other more is that it huh we're out of time well thank you so much everyone talk after [Applause]

Automatic transcript — names and jargon may be misspelled.