# The CBC Casper Approach to Sharding by Nate Rush, Vlad Zamfir, Aditya Asgaonkar (Devcon5)

- Speakers: [Vlad Zamfir](https://streameth.org/speakers/vlad-zamfir)
- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2020-10-09
- Duration: 1:05:59
- Topics: blockchain, smart contracts, distributed ledger, ethereum
- Watch: https://streameth.org/watch/yt-lC-CNzWllKA
- YouTube: https://www.youtube.com/watch?v=lC-CNzWllKA

## Transcript

[Applause] I think I'm a researcher the Team Foundation and I think enough in the session so that is going to start the session with a few lines on charting recipe so I'm just here to set the scene a little bit for details talk I'm charting and to kind of explain some of the I think the basic philosophical difference I mean sharding and Susie Casper research and starting in three O two point O in the most of their starting protocols in space the main kind of difference that we regard starting to be entirely within the consensus protocol problem definition so consensus protocols are protocols or that allowed nodes to make the assistant decisions in a distributed network but normally you know we imagine that that means that they're making the same as in in charting however we're newsroom we're gonna somehow try to make this as a protocol scale by weakening that condition and allowing them to make consistent decisions on different parts of some state so normally as I said protocols you don't have a binary sense bro because I don't it $0.14 protocol watch Channel sure a consensus protocol somehow decides on a shorted thing which means something that is made of more than one part so a pioneering compensatory or fundamentally can't be sure this is like impossible to shard binary consensus protocol because it's impossible to have decisions that are consistent on different values in an inter binary existed for a while it's also impossible to get any scalability of that because there were the information required to decide on a bit here and something same bit over there the same information whereas what we need for scalability is for the decision of reasons require the mass protocol messages required to make a decision over here in this part estate should be much less than the information required to make all of the decisions that the consensus of hurry about connect everywhere and this is just not possible for a binary consensus cracking oh sure it says the protocols of consensus protocol that has consensus on so it's a big kind of safe with different parts where the nose and make decisions only need a relatively small amount of protocol messages a relatively small amount of information to make only the decisions that they're interested in so it's kind of varies somewhat from the traditional or like the more easy and rock charting approach where you have like one consensus protocol that's not scalable and then you have shards that and notarized into the consensus protocol and that where we use that protocol is kind of reason about the some somehow not quite needed to the consensus protocol decisions that are hanging on it and so it's just gonna go through a lot of stuff but it I think gonna be fair a lot of conversation about the fourth choice rule that is you know possible to use in this way by clients using your consensus protocol where basically they'll be able to evaluate kind of part of the poor choice rule only the part that's well into the decisions that they're interested in on the particular stars that they're interested in and in this easy Kaspar consensus protocol family there's a separation you know the distributed systems consideration and this thing called an estimator which Maps protocol states to men census values and this is kind of the place where the whole choice you know the for personal takes your current state and figures out like 1/4 it's not really the distance distance component and it will spend most stay talking about the four traditional just gonna fit inside this consensus protocol and which is a distributed system that provides consistent decisions on values and this case we're going to be specifically writing decisions on little pieces of an overall very large consensus all right and so in this way can we get a scalability and tired of the inside of the normal our consensus protocol definition so in you know charting for me was brought in philosophically about scaling consensus protocols which means which are about making consistent decisions and you know scaling basically means that we make decisions about the things we're interested in you're doing only much less work and is required to make all best suit and this kind of contrast from the 2.0 thing because somehow it kept doing that they're seeing able to be contained then you're somehow getting all the information required to make all the decisions approximately as far as the fortress rule is concerned and and so I think you know hopefully that provides like some context for the conversation and for some ways in which cbc casper starting is going to be different than their 2.0 charting with that please welcome indeed and so I think you should get through this presentation rather quickly so they give me one and a half odd I think this slide should be done in 40 minutes so if you do have a question about the particulars like please do stop me if it's something more general request that you wait till the end so the applying goes something like this and describe some of the you know main features of the CPC charting design some discussion on why it's better or how it's an extension of existing sharding solutions and then some open problems that we have with this proposal so you know of course we want to come up with a hybrid golf chain and scalable blockchain and we know that there is something called the scale of the theater llama those of you who don't know this you can consider it as a triangle and each of these vertices represents some desirable property that we want from our system so scalability centralization and security what do these mean well Steelman in a at the entire system as a whole is able to process a large board decentralization meaning no single validator on this network but in this system is having to endure the world that corresponds to more than one charge or something like that what this means is there is no requirement for the super node which processes all transactions have email you know some sort of weird assumption where there's a node which sees all messages or something like that because we want you know consumer hardware hopefully do not in each of these validated ones and not some mining first mining forms on that initiative and secure meaning all the shards enjoy the same level of security so it shouldn't be the key is that you know taking security one is super easy but then other charts are really secure and have safety properties and hopefully as a desirable we have that the security in each chart is as strong as consensus safety across all words for some good consensus protocol of our children so I'm going to assume that you're you guys are fairly familiar with the proposal and use that as a reference to help me understand the CDC charting design and so here this child in this charted system we have one week in shame at the table and a number of short chains that are a child of the street engine in the eat and in the CBC his name it's looks a little bit like this so it's structurally different you have a child read that has a bigger tent it can be a it can be an arbitrary short dream of any any depth of your choosing and what this is is functionally fundamentally different than ten years to so the main highlights of the CBC charting design are going to be with respect to the food choice not the consensus I'm going to be the cross rod messaging system and a hierarchical design so the main features of any sharding solution are determined by how emotional transactions get to so it's fairly easy to come up with you know a Charlotte block chain which is in fact just independent chains running on their own and no kind of interaction between two chains so for example takes in the car it's a another leash lighting solution which looks rather limited now where it runs in phases so there's a Charlotte phase where charge process transactions that occur within themselves and then you stop sharding and this would be is called process all transactions so you know this is I like that the way you handle cross child message crosshair transactions we need to convince the features of your shouting system and the hierarchical charting is a different way to organize your charts and as we will see later I qfe it allows for better modularization of the shard space so our messaging system so let's look at what the workflow for ATM to is trading we have one errand chain which is the big engine and choice one and changing c2 which are both charged and we are trying to get a message from c1 to c2 so the first thing that happens is some user in c1 produces a transaction in that shard then it goes into the beacon chain and that's handled by the protocol meaning that the song cross link committee that aggregates all the messages that are supposed to go to the big engine and puts it into the big engine and the last part will happen is some user on c2 makes that chain aware of the existence of such a cross chain transaction and it points it refers to the specific receipt on the end with the CBC cross shot workflow the first part is rather similar user initiates a transaction on the first shard the protocol handles the delivery of that message to the pen but then this last part is quite different and what we are aiming for is that the protocol itself handles little degree of this cross short message from the parent to the other child and what this video louses to do is give the user an experience of a single transaction on one child behaving as or appearing as it's a real cross going from one side to the other without any additional input from the inside so let's let's look at this card system a little more people so messages are going to be objects that contain the sender shard that the destination shard target law in the destination child and the velocity will value these last two things are the sky to the next state and we also assume that blocks in charge are going to contain logs of messages that are sent and then the scene so we maintain lists of what we have sent that would hear the steel so that's considered we shall chide a and child beneath and charlie is sending a crush on message stone shiny so the message village needs from here meaning that it's in the sent log this block is Charlie and the message says my target block in chart B is this so the toilet block tells you the starting point from which the other shot can't receive your message and the blocks to live value is something like this so you're the comes to the value is 2 what it means is this message and they sieve in the other shard starting from this book up to two blocks later if the gloves to the value is true this is kind of puts the description on where the message can be to see you in the in the destination part we really want to preserve immediately want to leave this sending and receiving of messages quite consistent across charts so we have an atom SAT condition we say is that a message that appears in the send of assets will appear in the center in the center shard and eventually the C Block in the city insurance and it so the message should appear in the center log of the sender shard and eventually the received log of the recipient chart all that should have you nowhere at all so it's either send and delivered or it's not okay so if we analyze this condition more closely it means that we want align this property which says messages sent but not received are eventually the seat and the safety property is that fully messages that are sent are going to be the same so we don't want it to be the case that some shard receives a message that no this is said something like message appearing out of nowhere but no one initiatives and we actually enforce this atomicity condition usually the full choice rules of the shout outs and it's also dependent on what the shard hider is so I just want to mention that this safety condition is a finality so it could be that in the fourth choice rule at a particular moment you know it could be sent but not received but it will never be finalized that it was sent and not received you'll never have atomicity violation you file even though they could be a moment in the poor choice while it's making some changes where there is an ethnicity partition so hence the event should be really quick yeah exactly so to this just are you gonna talk about this one part so the way to the way that this works and there's two versions when I'm is one then Aaron starts meeting with the child which case the charm will orphan the blocks that didn't receive it in time if that parent still has to send in their book tour for choice and the other version is when the child is sending to the parent in which case the child will orphan the block that sends it if the parent doesn't receivable so the child kind of follows the parent and so when there's Adam is city failure it's always because the child has a send that the parent has received as opposed to vice-versa there's more on your question in the next slides but so we enforced these these constraints by the franchise and similar to means to move what we have is that the shard chain for choice is actually determined by the full choice of the parent but here it's it's more general because you can have multiple in infrared occlusion so any child shard blocks that are referenced in the pens for choice either by the virtue of a send from the parent to the child on the barrel receiving a message from a particular block in the child I wait to remain in the child's Court race and this is a condition reinforced so the first case is you know the parent sending a message to a child so if in this book in the parent there is a message which says this is the target locked in the child then everything up till the earth up till this block is going to remain in the Chinese fortress and the other cases where the parent receives a message from the child which originates from this prompt which means the parent kind of references this block in the child so we enforce the condition that the child for choice always includes this block and then so that I hope answers your question if the parent receives a message it's always going to be sent in the child's poor choice and if it's the other way around the parent in a message to the child then the other child block is going to be in the fourth choice if the parent personally sent a message to the child and then you know that block got full of the parents poor choice then the corresponding child block which deceives it also gets poorer because we don't want it to be the case that the child is receiving a message that was never sent from the back so the painful choice is quite independent of the child except for a few restrictions that are self-imposed because of the way the parent food choice behaved in the in the past so for example you can't have the parent let's say in the past sending to one-fourth of the child and then later receiving from another fork of the child because here with this first message the bear instructs the child to always take this block in his fortress and then later on with the other message that is receiving from a conflicting forward it's asking the child to always keep that long in the poor choice but these are actually incompatible blocks so those are restrictions on the parent for choice between those and you know that's what - and we have this for choice and message is getting around to different charge but how do they actually get there well it's it's not you know it's not it's not the Internet where you can just say I send a message to the other guy there's there's no guy at the other end it's a shot so who are you sending messages to so let's see how messages actually are passed from one side to the other so let's consider the case of two shots a parent and the chip and you're trying to get oops and let's look at how validator is are arranged in these shots so let's see there's a validator on the child child the condition that we impose is if you are validated on the child you are also a validated on all of its ancestors so what it means here is that this guy also has to validate the pan chart and let's see we are going to make this this cross-chain message happen from the child to the bed so a user initiates some transaction the child the specific validator sees that message a little Eve's it from the charge card and then puts it in the memo of the pen chart and hopefully you know if there's madness between this cross shard out then that fed and receive picks it up from the mem fool and then puts it in one of this box so and the other way around is also quite simple how about how messages get prepared to the channel and this actually allows us to do really complex routing routing functions so for example if we have this kind of situation where you have a parent and children c1 and c2 and we have read to me a message get from c1 to c2 so let's look at how about Dina said Saladin she could so we have a validator on c1 who is also a validator on the bed because of the main because of the rules be imposed on planet interest and on the other on the other side it's going to be the same thing if you had a bad day turn on the other child you also have to be a validator on the back and we are trying to make this same message go through so it appears in in the chain of c1 Goku is set up from z1 puts it in the Baron and then Vegeta picks it up from the parent and places it in the other child and this this really allows you to make complex knocking functions happen because with hierarchical charting you can arrange your chart tree pretty much as you like so let's look at some prototypes that we have learned in the past so maybe some of you have seen this animation on Twitter so what this means is there is a pattern chart there is a child chart these green horizontal means the blockchains of the shards so and these boxes over here are actually blocks these vertical lines are messages going so let's refer to reset and so you can see messages getting from the childhood abandoned and but if you look closely then it also orphans messages that would once send but never the scene or once received by the child but their God filter from the bed and so on and the interesting thing is because this is all for choice based you can also change the hierarchy of the charts so here's an example where sharks you and chart1 are actually switching the parent-child relation well but these prototypes shows this this thing is not complete and some of it actually works and we can even go one step further and make an arbitrary shortly in this with seven charge and change the hierarchy pretty much literally as we like and it still works it doesn't just run yep if you want to find out more about the squash game this shadow messaging system does any research post male cross guard messaging system that you can do and you know now let's let's take a look hierarchical sharding and what I find is it has there's also on the github slash CBC - Casper proof of concepts implemented so you can also if you have a lot of will to read software take a look at that it sometimes I think you should be okay to read a few by greeting suffering [Music] so this is a depiction of each tool and let's say the two contracts people care about most are maker Darwin in the swamp and they exist on this chart which chart would you make your count on well you know if these are the two hundreds you cared most about you're gonna want to make it on this chart so that every other transaction you make doesn't have to be a crossed a transaction and I'm sure there are some really popular accounts of the popular contracts that everyone wants to be in the shower so with with the hierarchical churning we can actually alleviate this problem a little bit not completely is we kind of provide equal access to the most popular contracts by placing them in the loop so any account on any of these charts equal access to these accounts on the loop and also let's say there is some you know less popular that's less popular contracts like compound you put them on charts on depth one and everyone in this subtree has equal access to these advanced so anyone who cares about negative but not compound they want to exist on the on on this sub piece of things but not that and so this kind of depicts how you can model arrays just hard space better so open problems in this design well I think the biggest concern is the message lower then that is put on the route chart because most of these crochet messages are going to be have to be routed through the route which means that volunteerism guru chart which is anyone has to process these so you know if you wanna consider this example where let's say you are short messages account for 10% of the entire system world and 5% of cross shard messages are uniform and uniform your meaning occur between randomly chosen pairs of accounts well then if you have a binary shortly but I'm meaning the route has two children left and right then you know accounts are equally distributed between left and right then this 5% uniform cross short messages are doing is going to be divided by 2 for the number of messages flowing through the loop so 2.5 percent of all messages are going to go through them and this actually corresponds to since the cross rod messages account for 10% of the system world there's a 0.25 percent of the total system board is going to be the world addendum channel which which which puts a fundamental limit on the scalability you can have because of the decentralization desirable that we have that each validator should not have to process the load corresponding to more than one child the 0.25 number corresponds to a 400 times scalability but well this example is rather skewed because we shouldn't be assigning probabilities to things we don't know the behavior of so we really don't know how this distribution being of so it's just a depiction but no I'll get it so the few possible solutions for this well you some sort of eats 2's design where you come to consensus on only the roots of these cross short messages you have a give them some structure and only come to consensus on the roots of these messages so you don't put the actual messages in in charge you put the roots of aggregated messages and you make the P image available then in some other so you can put it on some chain like lazy that should which is which means that everyone downloads all of the data or everyone now knows the parts of the bunch of data that we are interested in but not everything so that kind of reduces the load on consensus however we can come up with some sort of data availability games to make messages sent by one shard available in another ship without putting a pin in that bad well the other problem is load balancing across shards so as I mentioned earlier hierarchical sharding allows you to modularize your short space better but meaning that you can you can place most popular contracts from the room but then how do we decide which are the most popular contracts there is high social cost to play same contracts on the root chart because then all of our editors have to keep track of it state it's going to be replicated by all the validators so there is a high social cost and we need to decide how we place things in in this Charlotte system and where the existence that is I guess this is unbelievable a state which says how do we do validator set rotation cross paths so let's say that's considered a validator who only wants to validate this chart so the guy ability has to keep a track of push harder depth one and the pen so so you have to validate in charge and you can get away with having a you know some some small hardware you didn't maybe you don't need industry plate hardware but for someone who wants to annotate this left left is going to have to keep a track for three sharps and maybe it takes you know industry level hardware to do that so we need to maintain different classes of validators in our editor set that correspond to different hardware and we need to come up with a way to do validated set rotation across one of those regions to do this is you have a static complete binary tree of a certain fixed depth do this and you know you just assign valid readers to leaves but it takes away the dynamic chart restructuring that you can move [Music] so why can't you change the structure of a tree with bounded depth and just about keeping the depth always bounded we measure the depth is maxed 10 why can't we change from arbitrary trio's that tend to interpret raise a death 10 without ever going through with tree of depth women whether you can that you then you can't make any well I guess you can but I'm sure there's only some transitions that you can not okay that's it further presentation I guess we can open up the questions I wanted this to be more of an interactive session so reading the questions will one thing hey thank you very much very very very good presentation I want to upset that example of the make Adele contract being in the route like let's assume that's pretty popular but isn't like the maximum throughput of that make Adele contract in terms of the transactions still limited to the capacity of a single short like how how is it make a dough ever people to do more transactions than that or is that yeah that's true yeah that's it seems fine though because well let's see these you only put the most popular on drugs on the spare is knowable or that the new chart has to bear and you have to have the same problem do you have if you want to run base transactions in parallel you need to two different contracts should you you would charge that on trial as well if you want you have to do it like you probably think - yeah you make you make as many as you want yeah so if you're bounded by let's say PBS and it's you can charm that unfair easily you just have multiple copies time for each charge subtree or something yeah it's a bit like a recursive problem right now itself tries to keep balances in consensus so right if you shard it and you need to have the consensus like you started again or something that doesn't seem like that you are into the problem or if you want to have a like of a single ledger parallelizing in like you want had like one balance I just wanted to check that out I said I mean with this construction baby if you make a dough it just has the capacity of one shot right that's it yeah that's good but but in any Charlotte system any singles one confident existing on one shard has the scalability limit of that shard okay I mean that's just one never have to show an all Charlotte system so my understanding was that they cross our messages are asynchronous right whoa asynchronous in what sense but with respect to the full choice normal but I think that's like I guess what I'm wondering is like if I was to run like you know a like I have my spark hot rock they don't wants to interact with maker towel if I'm in the same start as maker now can I do sort of like hey think I'm so you know it's always do things so this makes no claims about how the execution environment execution layer is going to be I'm not sure if you can compose smart contracts will be using these smart using these plugins so I'm not sure how the execution here plays with this we have had some proof of concepts with this but asynchronous calls something like you just you just send out you just call a function on the other chart that you don't never expect to hear that that's something you can definitely know but I'm not sure how you handle it if you expect it to return some value to you or it executes some function and so the thing that this part X provides is the heart messaging it doesn't say exactly like what the semantics so that person will be and like you know will send a call is your small contract gonna be frozen or is it anything reenter and then but then they'll continue after the length and the like as it you know as if concurrency works that green room see today or whether like the smart contract kind of frozen weight of the transaction turnover like all of these things are implementable in the same communication level it from the point of view of a sharding even open point of view of these contracts communication model will be quite different and so I think in hope that we'll explore different models for smart contract communications you will need people like and try to support many of them because you know it shouldn't make a difference to the sharding architecture at least not at the level well the load balancer a load balancer decides I mean the load balancer needs to figure out even what should go where in order to maximize the throughput in my CRM system some things even closer to each other because they communicate more often something less often is you further away from each other so basically it's the load balancers responsibility to balance as shards and to figure out you know how it can minimize the load communication minimize the latency of premature there's actually a number of goals that low Ganzer has to achieve and it's deluged onto the responsibility to make sure that this Charter hierarchy is installed for the particular virtual machine configuration that people are going with or the users are you know I don't know what the word is the behavior that users are creating through their active activity didn't change over time yeah absolutely whatever this this chip actually depicts a changing chart hierarchy so I think one example of the word balancing would be let's see this one this one contact XYZ here and it turns out lots of people are using XYZ and the load these and they all exist but none of them use come on too much another use what's on this chart too much then it makes sense to attach another shot the child of this guy but not here because you needed me in close this and also efficient clustering problem that I'm not sure if it says it should be a smart contract or it should be handled in the protocol but it's something that that kind of efficiently clusters frequently used accounts together yes and it needs some information about what's going on in its neighborhood as well so that that's actually about everyone going research we are not sure what the best way to go about it is but there are a couple of strategies out there can also create new shares also create yeah I guess the little islands early instructs when to create new shards and what the place in the new shards are small so basically there's a number of short rotation operations you know you can move a child to a player up a level so that it's now a sibling of its parent you can move one of the children to be the children of one of the children's and and there's one more operation where the group chart changes it's like a different operation at the rinse walk the route shard swaps with one of its two I can't really there's only no other way to get rid of the restart other than so there's these three basic operations which are enough to know to go from any charred architecture with end charts to any directory line charts and the load balancer basically has these operations as its interface that is going to use to change the structure of the system and also destroy and uncreate shards which can't destroy or create the route chart or any chart with children you can only destroy in creation shards when they don't know what you can only destroy shards when they don't have children and so you know those operations we can the load balancer has interfaces as operations can be specified to these changes I mean I'm not sure that the land a person on this load balancing function yeah I think so I think that when I I think the old man said well no there will be a separate Valerie to set rotation function that tells you where you're supposed to be validating you say to be infinity simple choice without so I mean it is it is hierarchical even in the philosophical sense as well so this guy is the parent of this subject so a load balancer here determines what goes on in this up what happens anywhere but it is ironic yes yes for blood okay so your thoughts are about our change or OPM and like that if you think that that kind of model is like a virtual machine that's able to like apparently this would be better for this charting well I was reading almost independent of the virtual machine architecture and so I don't think it's really like the right level for the question however you know it might be useful for describing so that stuff so right now the way we're operating is we don't know anything about the semantics of the smart contracts at the level of the starting so it might be possible that if you give the load balance or more information by having concurrency information exposed like attainable from the rotation times that it could do a better job but at this level of the specification we're not looking inside the smart contracts at all and so it's not meant to anything and if you wanted look to the storm contracts to do load balancing I mean that would be really cool if you could if you have an inch in an intranet I I can't tell us our obstacle area right now so you said yeah you have a block I forget what enough to leave how do you know was a company well you look at it's just something you determine it's like what the gas limit should be well there should be a limit if you put that as infinity where it means is your blocks can be the sieve so the reason you have this is that let's say a child sends a message to expand and the gospel value is 2 and the parent chain progressed not beyond this then you know that that message will never be seen and then you found that child out you fold that knock out in the channel if you said that how you do hi then you then we'll be deterministic stateful - so you don't want it to be too high and you don't want it to be doable because maybe mmm who doesn't responds actions none of us know anything about so this is a train and chain pattern it is also valid it is on the pattern so they have a lot of information this way the child it's actually authority of dependencies you have to receive this message then the child has to receive a message if you know this is the parent chart and let's say this this was the latest block in the child and gods - Luis - then after if this block does not receive the parent message it's invalid it is it is authoritative that if a parent does you to receive a message you must receive it by its proper level that means you must kill you the book by then let us eat otherwise the conscious system [Music] I think there's an overhead to balancing function in general because you have to figure out what the current like behavior of the network is assuming assuming so you mean just reorganizing the Shari yes I think bundle sets have to be reorganized because if you're if you're shifting it to a different depth then you need validators of a different class who have hardware that can validate shards at depth phone instead of depth thing otherwise you're limited to the organization's of putting one shard into another place of the same depth so definitely some trade-offs that but I don't think sharpen them like so we have as if I thought yet actually there's lots of existing research if the new guys 100 of this it seems like a standard way it doesn't seem anything too special you you know like why do I owe this was just and just an example stood a picture it can be pretty much anything that you want it's because it's an existent affection [Music] this way but it'll cost about a child would be cheaper but if it's at the same lot yes if it's a different part then you know you you need lots of other stuff a bit related to marry a question wait when I have ascended often incorrectly recently the one who is most popular is like the guy who's getting most messages right yes and in some sense as well he's gonna move up into the root ball higher and higher yeah but argued and because like the higher you are the more children we have right yes so this guy is gonna like receive it tons of messages right the orders of magnitude was every step but I think the number of messages you see doesn't depend on where you are in the shower tree it's just about you what your smart contract is yeah yeah so if you are abuse keeping less actually because you go up in the air so [Music] so you would move up from that save this chart into this chart only if there's lots of users over here for sending crushed out messages like this into your phone so then you move it up you because you know that lots of people disappear so you know let's see let's say that you do see 20 contractors existing you means that for any other shard to change the assignment of yes if at these two addresses you have to communicate with this shot so it seems like it's natural for it to exist on this chart uses it students fix anything [Music] yeah unless you want to spit better I'm not sure that make sense well it's not specified that you on a st. mission are just based on your kindness whatever I think the gold buttons are to say the science I definitely don't think it's safe a lot of others to choose whether they validate just I just know there's just aa like you could just choose where to attack you that I choose we're doing lockable these shoes were to it so like the the notion about you is get to choose which are the wrong has never never even crossed my mind holy to put your account yes various your account also you don't get to choose where that is no no dancer can lose it forever of course and you don't even need to know what chart is on you make your turns out to be around it to ash Carter you know you won't care because the at least in our morals like in a way that I like is there's seeing gas price everywhere like I don't really really not interested in having different gas prices different execution environments at all no one did to me the natural model is sustained gas price across all Shara's same is cushioned violence across all shards you know just like whatever during one clinics come without with that's my personal personal preference you know at the end of the day this isn't just like up to anyone but to me like just as matter like safety you know and usability like it should it be that you will get to target shards for price performance validation or anything contest from there so if you like your current you get the message tons of messages months for your work show them like yes priority between them or uninsured at this point but then they should be a priority among which messages you choose that is that is a concern that is an open problem yeah and then the possible solutions are you don't make message messages appear as-is on the Penan you just put the root of a negative messages on the pendant and then the the be wishes of the truth are available elsewhere that reduces the message for several works so well when I see lots to well it means you can't receive this message within those many quacks so if it defines where you can receive the message it doesn't well what you can you maybe receive it means included with your received not in the particular well the message is you know some object that has a payload be beats a transaction by the life no in this context when I've been saying cross your transactions and Eve them to me evm transactions validator bootleggers like like message to the teacher so I think each of these messages are yes I think you should be able to see messages before they are finalized in as long as someone attest that these messages were a few choice also related to the Box believe it seems like so you you is going back because he comes we see what you you is removing part of the chain yes the child is removing orphanage some of his blocks request some block in the parrot was orphan but you also he also commit that they are not going [Music] you come into the kennel no the child has no such can hide except that when it sees something on the pen fine lace it knows that none of those laws can be altered and hence you can come up with some sort of the limit as up to what point your chin might be I mean the locks to live man you doesn't actually work it's fiction on how far you should be reverting back it's just so that there is a very specific range of noise so that you can receive a message it seems like equals have multiple messages at different places and each one of them will cause opening opening some busts and because you work for those bugs now you don't receive be another message and have to score so even if one message even if the train has received one message from the pen that later gets on finding the parrot you you know you orphan everything that has happened since yes but they don't there would be another message that it just opened yeah but that's why it because it can still it the purchase of the pendant you receive it in the other phone of the child so you you only have to remove the message that was offering from the pen from your phone choice or the other is you can receive again in your other foot in the charger one can see Mel charting like to DNA as we are the validators of our parents as well as our parents validate us and we have all those teams all those information in us but if we want to go back we have to like go towards personal references okay that's interesting that's something we haven't thought about but that's the better way to put it I don't think so the dots to live is just some parameter you come up with so the I predict as low as you want and you know the child is supposed to receive it but if the child sets a really low box to live it might just you know end up in the management booth but never get process and hence the block you just have to orphan that sense is that like something you included with your thread by each user is like Allen yeah I mean each message specifies a target block under close to this thing like in add friends though everyone to throw in the mouth is everyone kept their own books of it all you know deadlines choosers for them by looking at the current state of the network I'm not sure I would say that this is not specified at the moment you know in our concepts we just use the same time to live I don't think that I feel a super duper understand comfortable saying then like yet you're smart contracted to be able to choose the time to deliver its message because that could potentially increase the overhead of the solution however it's definitely not a function of the width of the tree because it's time to leave only has to do with the amount of that you have to be received by your parent or child so only has to do with their with the immediate neighbors so if you have a wide Australians they're like to in hops or ever to go to the destination and max it's gonna take to at times time to live you know in some way things need to do that because for every pop you haven't time to live like it makes one what kind of I mean you might take a few bars to be received and basically the idea is that we do optimistic execution of cross card transactions everything below normal case it all gets executed and finalized and you know if it doesn't if it doesn't things to be orphaned introverted and so when you asked and then then in the times live you know if it's like five maybe take five blocks to get in and this is not measured in now sending shard what did the receiving start so I I don't know if it's really meaningful for the sender you know if you can get sin in one block it necessarily because I might get a message back for a while so no matter what it's not like if they're gonna get it back in a block you know if they have live and there's a let's call back right away then there's gonna depend on where the parents puts a source on the child so they whatever do you send a message you have to kind of say oh I'm sending it to this book and the title that starts from that lock and so depending on where the parent was that source it might take a long time to come back to this show yes I think it's like it's a big complicated and this thing but the range of time that it could take two minutes to get back it's much bigger than more helps you but the block that is he each block has a longer message is that it send and receive so just like you income transactions that have in this block you also include these send and receive messages so that means that English like take that I need to know if it so you don't have to wait to find out if interviews in your parents of choice that's a there's a floppy happen food choice that sends you a message then you can receive it you don't have to wait for finality yes is it possible for different parts of the network to have different views on the topology of the tree so that you accidentally send a message to it sure so in this in this prototype actually so I think shard three Mo's or something like that so even if the other part of the network isn't aware of the current position of that shard it sends a message and we doesn't know what the final destination is and those messages just keep getting around it until the baby's dead asleep new charts be created or so happen if a message to a sensor Charlotte doesn't exist I don't think we're removing the shard yet and English hearts is fairly easy to remove addition art seems much harder than fitness of the concern you said to be Rehan thought about it more in charge I guess if you - motion art you basically keep a track of you know board address you want that message to go to and then just find where that address is a detection so for this ultra school we have a neighborhood we have a CBC draft paper that came out last Def Con and in the example section we have a formal definition of this charge system so it describes the four choices and I'm not sure what that means seems to me that you may be able to model this and basically it's like removing a shorter and things like messages said in every composing shots and whatever between natural transformations between issues I noticed that complicated mathematics but it feels to me that if you find a formal structure at which you can translate or you're trying to do it fine a formal structure that normal state will be what they're trying to do then answering some of these questions just because I think you compute those that's interesting and I think we'd love to know more about the ideas that you have but even if we don't have those particular ideas we do use formal methods and all of this from a very very start and so you know even if we're using unsophisticated tools I have to do a lot more work you know we still at least hope to get like you know the kinds of guarantees that maybe you hope to get from phone methods let's say operational person optics perspectives you're saying okay I informally momentum dislike sure that whatever I specified works or you can do it occasionally and in that case you are not really looking at formal methods or recommendation but general properties about your system which are global it's very not useful from a practical point of view but it's used to if you want to answer some conjectures that's what I'm trying to say sorry so so denotational semantics and was it one operational can you define these terms first yeah so is just like you often say an algorithm and basically you want to model how the Machine executes that are so is the model for money what happens step by step but a very light low-level but when you basically doing things it is where you can be sure everything gets executed exactly as you specified it but obviously this doesn't say like a lot about the global behavior of the specification well there are digital semantics like saying for instance what I'm trying to do that finds that precise algebraic object and then it can prove theorems using algebra so if you say this is not the case really bad that this algorithm is actually the group now you find out that the property like finality say is that this given subgroup in the group is normal then you can just prove that that subgroup is normal in the group and that's for the denotation of method LC and it tells you nothing about our faithfully your way to implement it's telling you something about the properties of the latter of the algorithm and maybe that so is is a type you some diapers formula there are operational property that never happens where your son is your operational semantics there are very very very few cases are very like super simple actually notice that sense fancy can you give us a talk more are you giving your talk about this [Music] now you can yes we can enter the dog if anyone wants to discuss more we can chat off them [Applause]
