Ladies and gentlemen, the President of the United States, Reagan came to New Jersey campaigning for the White House. And he won four years ago. Four years ago, President Reagan came to New Jersey campaigning to help elect me governor. And I won. Last year we were proud to have President Reagan in New Jersey three times in his second campaign and he won in a landslide. Back in New Jersey where we love him so much, he's come here to help us elect a Republican majority in the assembly and we're going to win again. Mr. President, for the last four years we've tried to work hard to apply your formula for success here in the state of New Jersey. We've got taxes. We've promoted jobs and entrepreneurs. We've been able to unleash the tremendous creativity of working men and working women. We've enacted tough laws to make our streets safer for all our people. We've challenged our schools to improve and get ready for the future. You know what I've found Mr. President, is that your formula works. It makes it happen. And anyone who wants proof of that only has to come to the state of New Jersey where we've got 350,000 new jobs for proving. And we've got an unemployment rate today that hasn't been this low since you were Governor of California. And we have a crime rate that's dropped 20% in just three years. And we've got school test scores which now finally are going up, going up substantially instead of going down. You know, one of your predecessors in office, I know he's one of both our favorite presidents, Abraham Lincoln, after he signed the Emancipation Project to introduce not only a great president but one of the nicest human beings that I have ever met, President Ronald Reagan. Thank you. Thank you very much. And thank you very much, Governor Tom Caden. My friends, Frank Holman, members of the Congress, it's great to see you all. You know, I have a spot in my heart for governors due to about eight years of that experience. And just recently, as a matter of fact, yesterday I was telling a story I hadn't told for a long time about my own days as governor. I'd come into a situation in California as a newcomer and the situation was just about as bad as it was at the federal level in 1980. And I was on my way to work one morning with the car radio on and I heard a disc jockey and out of a clear blue sky he spoke a line that endeared him to me forever. He said, every man should take unto himself a wife because sooner or later something is bound to happen that you can't blame on the governor. But I've come here just to let you know that I have officially appropriated the saying of the state across the river there and I just want to say, I love New Jersey. It's wonderful to be here. I saw Tom Caden a few months ago when I was visiting Bloomfield and I told him I wanted to come back soon and he very conveniently arranged this fundraiser just to accommodate me. Wasn't that sweet of him? Incidentally, I should apologize too and I should have done this when I first started talking here about keeping you waiting for so long. But you know, the whole hitch was that the plan called for an airplane from Washington to here and then a helicopter closer to here and then an automobile for the last few minutes and the helicopter had to be canceled. But if it will encourage you, this gray stuff is all the way to Washington and I can tell you from having been up there if you just want to go 2,000 feet straight up you're in a clear sunshine. It's that low. Well, it used to be that centuries ago that New Jersey was said was a valley of humility between two mountains of pride. Well, if that is still true and humility is a virtue then I think Jersey, you'd better be aware of the important place that you hold in our White House. I want you to know and I'm serious about this. I've been watching New Jersey these past few years and seeing it as a bellwether for the national recovery. There are reasons for this. In many ways, New Jersey is a perfect reflection of our country as a whole. You're both industrial and agrarian.  You just passed yourselves a tax cut bill, a state tax cut bill. So New Jersey is in good shape. It's in great shape. You've got the Giants and the Jets and Springsteen and Sinatra and the single most popular governor in the history of the state of New Jersey. I'm here to tell you that I am keen on Cain. But I know that he's one of the most decent and able administrators, leaders, and political figures and governors in America. Now that's just my humble opinion. Let me ask, you're an impartial non-partisan group. Does New Jersey like Tom Cain too? Well, I'm with you. And there's another great race in this great state. It's been mentioned already. The race for Assembly Majority 85. The Republican Party of New Jersey is within five seats of control of the state assembly. And you're going to win it this year and you're going to make Chuck Hardwig Majority Leader and you're going to return the GOP to the dominance that it deserves. This too is an experience that I shared because as Governor of California for eight years, seven of those had a majority of the other party. If the people of the state believe enough in the things that Tom Cain is doing then they ought to give him the help that he needs in the capital to get those things done instead of making it up, he'll fight for him. And then next year I'd like to talk to you about another body. But the race for the state assembly and the race for the governor's mansion won't be easy.  But it's going to be a good cause. Ultimately it's going to help the party that stands for economic growth and economic justice. The party that cares that the poor get a piece of the pie. The party that has finally put an end to the tax enslavement of the middle class in America. It's our party that has worked for years now to get government spending down. And I want you to know that I have just come from Washington where this morning we announced an historic agreement to put our nation on the road to a balanced budget. We are uniting with the leaders of the Senate to support the Balanced Budget and Emergency Deficit Control Act of 1985. This is a measure that will lock us into spending reductions and leaders to a balanced budget by 1990. Let me just tell you something unusual about this. Over in the West Wing of the White House we have been huddling over the idea of a plan that it isn't good enough just each year to see if we can haggle the budget down and get a little more money out of it. We needed a plan leading toward a balanced budget. And so we were talking about looking for five years of a declining pattern of deficits. There's no way this deficit can be eliminated in one year, we know. But five years, and then at the end of the five years let's get that balanced budget amendment that the federal government will have to stop spending more than it takes in after we get it done. While we were doing that in the White House all of a sudden a few days ago we discovered that up on the hill two of our senators were working on exactly the same kind of plan. Five years. And then our balanced budget. And so this morning was to announce that I don't know whether the extrasensory perception was going that way from the White House or from the hill down to us but we were all on the same track and we are working together now with the Congress to bring this about and pass as quickly as we can this five year plan so that from now on when somebody wants to bust the budget for some particular spending program they will be breaking into a well organized plan that is aimed at, as I say, the balanced budget. But the GOP is in my view the party of the American family the party whose tax reform proposals touch on another subject would expand the personal exemption increase the standard deduction and make IRAs, you know those are those individual retirement accounts equally available to those who work both inside and outside the home. The GOP is the party that adheres to the old Jeffersonian philosophy that that government governs best that governs least. Incidentally, Thomas Jefferson made a little known statement about the Constitution just about the time it was being ratified. He said it only had one flaw it did not contain a provision preventing the federal government from borrowing money. Well, we're going to make Tom Jefferson wherever he is happy. Well, it's the GOP that would keep political power near the difference between the totalitarians and the freedom fighters and rejects the former and hails the latter. And finally, it's the Republican Party that has stood up with the help of many Democrats for SDI our strategic space shield they call it Star Wars. There's nothing in that descriptive of what we're talking about. We're talking about a defensive shield that won't hurt people but will knock down nuclear weapons before they can hurt people. We will go forward with seeing if it cannot be made into a great protector of our people and the people of the world. It could be the device if the research pans out we can perfect this. It could be the thing that would eliminate nuclear weapons because they wouldn't have any use anymore. Well, demands to abandon a program with real potential for strengthening deterrence and enhancing western security do not deal with the real issue of peace. What we need are good faith discussions and we're seeking to discuss even now with the Soviets in Geneva the vital relationship between strategic offense and defense. I see where he made a statement in a recent interview where he said that he did not believe that the God above could have done something would prevent the people of the world from doing something for themselves and I have to believe if he's talking to God we ought to be able to get along because so am I. But much is at stake when we talk about the principles of our party and much is at stake when we ask New Jersey to get out there and elect a Republican assembly. It'll be another step toward the political realignment that's been going on for a few years now and that needs an extra push from your wonderful state and remember the whole country will be watching. What you do in a few weeks will make a difference and I just want to thank all of you for caring and sharing your time. You're the troops of a mighty movement you are the movement God bless you all and I thank you kindly for your reception here today I'm here just was here as I say just a few months ago and I'll be back again soon I love New Jersey Please join the president in singing God bless America


I'm Aditya, a researcher with the Ethereum Foundation, and I'll be conducting the session. So Vlad is going to start the session with a few lines on sharding philosophy. So, you know, let's welcome him in. So I'm just here to set the scene a little bit for Aditya's talk on sharding, and to kind of explain some of the, like the basic philosophical difference between sharding in CVC CASPER research and sharding in 3.0 and 2.0 and most other sharding protocols in space. The main kind of difference is that we regard sharding to be entirely within the consensus protocol problem definition. So consensus protocols are protocols that allow nodes to make consistent decisions and to distribute a network, but normally, you know, we imagine that that means that they're making the same decision. In sharding, however, what we're going to do is we're going to somehow try to make consensus protocols scale by weakening that condition and allowing them to make consistent decisions on different parts of some state. So normally, consensus protocols, you know, we have a binary consensus protocol that decides on a bit. Blockchain consensus protocol decides on a blockchain. A sharding consensus protocol somehow decides on a sharded thing, which means something that is made up more than one part. So a binary consensus protocol fundamentally can't be sharded. It's just like impossible to shard a binary consensus protocol because it's impossible to have decisions that are consistent on different values in a binary consensus protocol. And it's also impossible to get any scalability out of that because the information required to decide on a bit here and decide on the same bit over there is like the same information. Whereas what we need for scalability is for the decision the information required or the protocol messages required to make a decision over here in this part of the state should be much less than the information required to make all of the decisions that the consensus protocol can make everywhere. And this is just not possible for a binary consensus protocol. So a sharding consensus protocol has consensus on some big kind of state with different parts where the nodes that 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 to grok sharding approach where you have like one consensus protocol that's not scalable and then you have shards that kind of notarize into that consensus protocol and that where we use that consensus protocol is kind of reason about the... somehow not quite native to the consensus protocol decisions that are hanging out of it. And so we're just going to go through a lot of stuff, but I think going to feature a long conversation about the 4th choice rule that is possible to use in this way by clients using a consensus protocol where basically they'll be able to evaluate kind of part of the 4th choice rule only the part that's relevant to the decisions that they're interested in and on the particular shards that they're interested in. And in the CVC Casper consensus protocol family there's a separation of the distributed systems considerations and this thing called an estimator which maps protocol states to consensus values and this is kind of the place where the 4th choice rule goes. The 4th choice rule takes your current state and figures out like one fork. It's not really the distributed systems component and we'll spend most today talking about the 4th choice rule which is going to fit inside this kind of consensus protocol which is a distributed system that provides consistent decisions on the values. In this case we're going to be specifically providing decisions on little pieces of an overall very large consensus value. And so in this way we get scalability entirely inside the normal consensus protocol definition. So you know sharding for me philosophically is about scaling consensus protocols which are about making consistent decisions and you know scaling basically means that we make decisions about the things we're interested in using doing only much less work that is required to make all the decisions. And this kind of contrast from the Ethereum 2.0 thing because somehow if you're doing, if you're seeing it with a v-contain then you're somehow getting all the information required to make all the decisions approximately as far as the 4th choice rule is concerned. And so I think you know hopefully that provides like some context for the conversation and for some ways in which CVC Casper sharding is going to be different than Ethereum 2.0 sharding. None of that. Please welcome Aditya. Alright so I think we should get through this presentation rather quickly. So we gave me one and a half hour. I think this slide should be done in 40 minutes. So if you do have a question about the particular slide please do stop me but if it's something more general I request that you wait till the end. So the outline goes something like this. I'll describe some of the you know main features of the CVC sharding 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 sharding blockchain and a scalable blockchain and we know that there is something called the Scale of the Theta Lamma. For 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, decentralization and security. What do these mean? Well scalable meaning that the entire system as a whole is able to process a large load. Decentralization meaning no single validator in this network or in this system is having to handle a load that corresponds to more than one shard or something like that. What this means is there's no requirement for a super load which processes all transactions everywhere or you know some sort of weird assumption where there's a load that sees all messages or something like that because we want you know consumer hardware hopefully to run each of these validator loads and not some mining firm somewhere in the issue. Secure meaning all shards enjoy the same level of security so it shouldn't be the case that you know making security in one shard is super easy but then other shards are really secure and have great safety properties and hopefully as a desirable we have that the security in each shard is as strong as consensus safety across all nodes for some good consensus protocol of our chosen. And so I'm going to assume that you guys are fairly familiar with these two proposals I'll use that as a reference to help me understand the CVC sharding design and so over here in this shard in this sharded system we have one beacon chain at the top and a number of shard chains that are a child of this beacon chain in the CVC design it looks a little bit like this so it's structurally different. You have a shard tree that has a bigger depth it can be an arbitrary shard tree of any depth of your choosing and well this is structurally fundamentally different than ETH2 so the main highlights of the CVC sharding design are going to be with respect to the 4th choice not the consensus are going to be the cross shard messaging system and a hierarchical sharding design so the main features of any sharding solution are determined by how cross shard transactions get through so it's fairly easy to come up with you know a sharded blockchain which is in fact just independent chains running on their own and no kind of interaction between two chains so for example Tic Tic Simica it's an hourly sharding solution which looks rather primitive now where it runs in phases so there's a sharded phase where shards process transactions that occur within themselves and then you stop sharding and there's a phase called process all transactions so you know this is just to highlight that the way you handle cross shard message cross shard transactions really determines the features of your sharding system and the hierarchical sharding is a different way to organize your shards and as we'll see later, arguably, it allows for better modularization of the shard space so cross shard messaging system so let's look at what the workflow for Ethereum 2 is today we have one parent chain which is the beacon chain and child c1 and child c2 which are both shards 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 there's some cross link community that allocates all the messages that are supposed to go to the beacon chain and puts it into the beacon chain and the last part to happen is some user on c2 makes that chain aware of the existence of such a cross chain transaction and it points, it refers the shard to the specific receipt on the parent with the cbc cross shard 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 parent but then this last part is quite different and what we are aiming for is that the protocol itself handles the delivery of this cross shard message from the parent to the other chain and what this really allows us to do is give the user an experience of a single transaction on one shard behaving as or appearing as it it's a real cross shard transaction going from one shard to the other without any additional input from the user so let's look at this cross shard system a little bit more deeper so messages are going to be objects that contain the sender shard with the destination shard the target block in the destination shard and the blocks to the value these last two things are described in the next slide and we also assume that blocks in shards are going to contain logs of messages that are sent and then received so we maintain lists of what we have sent and what we have received and so let's consider two shards shard A and shard B and shard A is sending a cross shard message to shard B so the message originates from here meaning that it's in the send log of this block in shard A and the message says my target block in shard B is this so the target block tells you the starting point from which the other shard can receive your message and the blocks to the value is something like this so here the blocks to the value is 2 what it means is this message can be received in the other shard starting from this block up to 2 blocks later if the blocks to the value is 2 this kind of puts a restriction on where the message can be received in the destination shard and we really want to preserve we really want to make this sending and receiving of messages quite consistent across shards so we have an atomicity condition which says that a message that appears in the send a message should appear in the send log in the sender shard and eventually the receive log in the recipient shard and it so the message should appear in the send log of the sender shard and eventually the receive log of the recipient shard or it should appear nowhere at all so it's either sent and delivered or it's not sent at all so if we analyze this condition more closely it means that we want a likeness property which says messages sent but not received are eventually received and the safety property is that only messages that are sent are going to be received so we don't want it to be the case that some shard receives a message that no other shard has sent something like message appearing out of nowhere but no one initiates and we actually enforce this atomicity condition using the full choice rules of the shard and it's also dependent on what the shard hierarchy is I just want to mention that this safety condition is at finality so it could be that in the full choice rule at a particular moment it could be sent but not received but it will never be finalized that it was sent and not received you'll never have an atomicity violation if final even though there could be a moment in the full choice rule it's making some changes where there is an atomicity violation so hence the eventually although really quick so if it's never received does the sent get deleted? yeah exactly so there's are you going to talk about this one? so the way that this works there's two versions one of them is one that parent shard is communicating with the child in which case the child will orphan the blocks that didn't receive it in time if that parent still has the send in their full 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 receive it so the child kind of follows the parent and so when there's an atomicity failure it's always because the child has a send that the parent hasn't received as opposed to vice versa alright there's more on your question in the next slide alright so we enforce these these constraints by the full choice and similar to these two what we have is that the shard chain full choice is actually determined by the full choice of the parent but here it's more general because you can have multiple children in for a particular shard so any child shard blocks that are referenced in the parent's full choice either by the version of a send from the parent to the child or the parent receiving a message from a particular block in the child are going to remain in the child's full choice and this is the condition we enforce so the first case is the parent sending a message to a child so if in this block in the parent there is a message which says this is the target block in the child then everything up till here up till this block is going to remain in the child's full choice and the other case is where the parent receives a message from the child which originates from this block which means the parent kind of references this block in the child so we enforce the condition that the child's full choice always includes this block and so that I hope answers your question if the parent receives a message it's always going to be sent in the child's full choice and if it's the other way around the parents send a message then the other child block is going to be in the full choice if the parent originally sent a message to the child and then that block got full talk of the parent's full choice then the corresponding child block which receives it also gets full talk because we don't want it to be the case that the child is receiving a message that was never sent from the parent so the parent full choice is quite independent except for a few restrictions that are self-imposed because of the way the parent full choice behaved in the past so for example you can't have the parent let's say in the past sending to one fork of the child and then later receiving from another fork of the child because here with this first message the parent instructs the child to always keep this block in its full choice and then later on with the other message that is receiving from a conflicting fork it's asking the child to always keep that block in the full choice but these are actually incompatible blocks so those are restrictions on the parent full choice that we impose and you know that's all nice and we have this full choice and messages getting around two different shards but how did they actually get there well it's not the internet where you can just say I send a message to the other guy there's no guy at the other end it's a shard so who are we really sending messages to so let's see how messages actually are passed from one shard to the other so it's considered the case of two shards a parent and a child and we are trying to get oops let's look at how validators are arranged in these shards let's say there's a validator on the child's shard the condition that we impose is if you are a validator on the child you are also a validator on all of its ancestors so what it means here is that this guy also wants to validate the parent shard and let's see if we are trying to make this this cross-chain message happen from the child to the parent so a user initiates some transaction on the child the specific validator sees that message it retrieves it from the child's shard and then puts it in the mem pool of the parent shard and hopefully if there's lightness between this cross shard route then that parent receive picks it up from the mem pool and then puts it in one of its blocks and the other way around is also quite similar about how messages get from parent to the child actually allows us to do really complex routing functions so for example if we have this kind of a situation where you have a parent and children C1 and C2 and we are trying to make a message get from C1 to C2 so let's look at how a validator sets a range here so we have a validator on C1 who is also a validator on the parent because of the way because of the rules being posed on validators and on the other side it's going to be the same thing if you are a validator on the other child you also have to be a validator on the parent and we are trying to make this cross shard message go through so it appears in the chain of C1 Goku picks it up from C1 puts it in the parent and then Vegeta picks it up from the parent and places it in the other child and this really allows you to make complex routing functions happen because with hierarchical sharding you can arrange your shard tree pretty much as you like so let's look at some prototypes that we have put in the past so maybe some of you have seen this animation on Twitter so what this really means is there is a parent shard, there is a child shard these green horizontal lines are the blockchains of the shards so and these boxes over here are actually blocks these vertical lines are messages going through so let's wait for it to reset so you can see messages getting from the child to the parent and if you look closely then there are also orphans messages that were once sent but never received or once received by the child but then got worked out from the parent and so on and the interesting thing is because this is all 4th choice based you can also change the hierarchy of the shards so here is an example where shards 0 and shard 1 are actually switching their parent child relation so what these prototypes show is this thing is not complete bullshit and some of it actually works and we can even go one step further and make an arbitrary shard tree like this with 7 shards and change the hierarchy pretty much arbitrarily as we like and it still works it doesn't disrupt reality and if you want to find out more about this cross shard messaging system that you can read and you know now let's take a look at hierarchical sharding and what advantages it has there is also on the github cvc-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's not that bad I think it should be okay to read a few like reading software right so this is a depiction of e2 and let's say the two contracts people care about most make a doubt when you swap and they exist on this shard which shard would you make your account on these are the two contracts you care most about you're going to want to make it on this shard so that every other transaction you make doesn't have to be a cross shard transaction and I'm sure there are some really popular accounts really popular contracts that everyone wants to be in the shard so with hierarchical sharding 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 root so any account on any of these shards has equal access to these accounts on the root and also let's say some less popular contracts like Compound you put them on shards on depth one and anyone in this subtree has equal access to these accounts so anyone who cares about make a doubt but not Compound will want to exist on these sub-trees but not that one and so this kind of depicts how you can modularize your shard space better so any problems in this design well I think the biggest concern is the message load that is put on the root shard because most of these cross-chain messages are going to be routed through the root which means that the validator is on the root shard which is everyone has to process these so if you want to consider this example where let's say cross-shard messages account for 10% of the entire system load and 5% of cross-shard messages are uniform and uniform here meaning occur between randomly chosen pairs of accounts well then if you have a binary shard meaning the root has two children left and right then you know accounts are equally distributed between left and right then this 5% uniform messages are going is going to be divided by 2 for the number of messages going through the root so 2.5% of all messages are going to go through the root and this actually corresponds to since the cross-shard messages account for 10% of the system load there is 0.25% of the total system load is going to be the burden in the root shard 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 shard the 0.25 number here corresponds to a 400 times scalability but well this example is rather skewed because we really shouldn't be assigning probabilities to things we don't know the behavior of so we really don't know how this distribution behaves so it's just a depiction but so a few possible solutions for this are well you do some sort of ETH2S design where you come to consensus on only the roots of these cross-shard messages you aggregate them in some structure and only come to consensus on the roots of these messages you don't put the actual messages in shards you put the roots of the aggregated messages and you make the preimage available in some other way so you can put it on some chain like lazy ledger which means that everyone downloads all of the data everyone downloads the parts of the data that they are interested in but not everything so that kind of reduces the load on consensus so you can come up with some sort of data availability games to make messages sent by one shard available in another show without putting it in their bed well the other problem is load balancing across shards so as I mentioned earlier hierarchical sharding allows you to modularize your shard space better but meaning that you can place most popular contracts on the root but then how do we decide where the most popular contracts are there is a high social cost to placing contracts on the root shard because then all validators have to keep track of its date it's going to be replicated by all the validators so there is a high social cost to it and we need to decide how we place things in this sharded system and where do we place things so that is a kind of problem I guess this is probably the last slide which says how do we do a validator set rotation across steps let's say let's consider a validator who only wants to validate this shard so the guy only has to keep track of the sharded depth one and the parent so you have to validate two shards and you can get away with having some small hardware industry grade hardware for it but for someone who wants to validate this left path that guy is going to have to keep track of three shards and maybe it takes industry level hardware to do that so we need to maintain different classes of validators in our validator set that correspond to different hardware and we need to come up with a way to validate this rotation across one of the solutions to do this is you have a static complete binary tree of a certain fixed depth to do this and you just assign validators to leaves but it takes away the dynamic shard tree structuring that you can do so why can't you change the structure of a tree with bounded depth and just while keeping the depth always bounded like I mentioned the depth is max 10 why can't we change from arbitrary tree of depth 10 to an arbitrary tree of depth 10 without ever going through a tree of depth open well you can but then you can't make any well I guess you can but I'm sure there's only some transitions that you can do and not all okay that's it for the presentation I guess we can open up for questions I wanted this to be more of an interactive session so we can take questions for a long time hey thank you very much very very good presentation I want to just say in that example of the Macadal contract being in the root let's assume that's really popular but isn't the maximum throughput of that Macadal contract in terms of the transaction still limited to the capacity of a single shard how is the Macadal ever being able to do more transactions than that or is that not possible yeah that's true yeah that seems fine though because well let's say you only put the most popular contracts on the root shard so there is no other load that the root shard has to bear I think you have to have the same problem no you have to if you want it to run Macadal transactions in parallel you need to open up two different contracts and let them run together sure you could shard that contract as well if you want you'd probably make two of them yeah you may as many as you want so if you're bounded by let's say TPS and you can shard that contract very easily you just have multiple copies of that for each shard of three or something yeah okay that sounds a bit like a recursive problem because Macadal itself tries to keep balances and consensus so right if you shard it then you need to have the consensus like you shard it again or something it doesn't seem like that but if you have a single ledger parallelizing it it's like you want to have like one balance so you can parallelize it I just wanted to check that I understood with this construction basically Macadal just has the capacity of one shard right that's it but in any sharded system any single smart contract existing on one shard has the scalability limit of that shard okay I mean that's a fundamental issue in all sharded systems so my understanding was that the cross-start shard messages are asynchronous right well asynchronous in one sense with respect to the full choice no but I guess what I'm wondering is if I was to run you know a like I have my smart contract they don't want to interact with Macadal if I'm in the same shard as Macadal can I do sort of like a synchronous you know there's no claims about how the execution environment execution layer is going to be I'm not sure if you can compose smart contracts using these smart using these cross-shard transactions or not so I'm not sure how the execution layer plays with this okay we have had some proof of concepts with this for asynchronous calls something like you just you just follow a function on the other shard that you don't ever expect to hear back from right that's something you can definitely do but I'm not sure how you handle it if you expect it to return some value to you or execute some function and get back this or something like that so the thing that this architecture provides is the cross-shard messaging is to say exactly what the semantics of the virtual machine will be and for example we send a call is your smart contract going to be frozen or is it can anything re-enter and then but then it will continue after the as if concurrency works like re-entrancy today or whether the smart contract is going to be frozen and wait for the transaction to be over all of these things are implementable in the same communication model from the point of view of the sharding even though from the point of view of the smart contract's communication model will be quite different and so I think in hope that we explore different models for smart contract communication and see what people like and try to support many of them because you know it shouldn't make a difference to the sharding architecture you know at least not at the level of the four-choice pool so how do you decide on the topology opportunity like who is deciding on that well I'm not sure the load balancer the load balancer decides load balancer needs to figure out what should go where in order to maximize the throughput and minimize the overhead of the system some things need to be closer to each other because they communicate more often something less often it should be further away from each other so basically it's the load balancer's responsibility to balance the shards and to figure out how it can minimize the load of communication minimize the latency of communication there's actually a number of goals that the load balancer has to achieve and it's the load balancer's responsibility to make sure that the shard hierarchy is useful for the particular virtual machine configuration that people are going with the users are you know I don't know what the word is the behavior that users are creating through their aggregate activity can you change up with that? so this GIF actually depicts a changing shard hierarchy so I think one example of load balancing would be let's say there's some contract XYZ here and it turns out lots of people are using XYZ and they all exist here but none of them use compound too much or none of them use what's on this shard too much then it makes sense to attach another shard which is the child of this guy but not here because you need to be close to this so efficient clustering is a problem that the load balancer would solve when you explain what is the load balancer and if so where does it go I'm not sure if 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 but it's got to exist in every layer yes and it needs some information about what's going on in its neighborhood as well so that's actually a topic of ongoing research we are not sure what the best way to go about it is but there are a couple of strategies out there the load balancer can also create new shards sorry what the load balancer can also create new shards yeah I guess the load balancer instructs when to create new shards and what to place in the new shards and so on so basically there's a number of shard rotation operations you know you can move a child to upper level so that it's now a sibling of its parent you can move of one of the children to be the children of one of the children and there's one more operation where the root shard changes which is like a different operation and the root shard swaps with one of its children it can't really there's no other way to get rid of the root shard other than to swap with one of the children so there's these three basic operations to go from any shard architecture with n shards to any and the load balancer basically has these operations as its interface that it's going to use to change the structure of the system and yeah it can also destroy and create shards which can't destroy or create the root shard or any shard with children you can only destroy and create shards when they don't have children and so with those operations the load balancer that has the interface of those operations can be specified to do any of these changes does it mean that the validator I should actually try to get the new shard like a follow because of things like rebalancing that we can then try to catch up like getting the data I'm not sure if the validator is not in this load balancing function as a validator should I follow and say that there is a new shard I think that would happen I think load balancer well no, there would be a separate validator set rotation function that tells you where you're supposed to be validating would you say it would be a tunisical balancing system or tunisical balancing so I mean it is hierarchical in the philosophical sense as well so this guy is the parent of this subject load balancer here determines what goes on in this subject load balancer here pretty much determines what happens everywhere but it is hierarchical yes yes it does for blood I'm curious what your thoughts are about like an archaic 0vm and like that if you think did that kind of model a virtual machine that's able to pull threads apparently would be better for this sharding model so this sharding model is independent of the virtual machine architecture and so I don't think it's really like the right level for the question however it might be useful for describing 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 sharding so it might be possible that if you give the load balancer more information by having concurrency information readable from the virtual machine terms that it could do a better job but at this level the specification we're not looking inside the smart contracts at all and so it's not going to do anything and if you wanted to look inside the smart contracts to do the load balancing I mean that would be really cool if you have an edge but I can't tell just keep going right now so you said you have a block I forget what the block is or a message so how do you know what's the block you look at it's just something you have to determine it's like what the gas limit should be that should be a limit if you put that as infinity what it means is your blocks can be received so the reason to have this is that let's say a child sends a message to its parent and the blocks to their value is 2 and the parent chain progresses beyond this then you know that that message will never be received and then you fold that child out you fold that block out in the child if you set that value too high then you're in a between deterministic state for too long you don't want it to be too high and you don't want it to be too low because maybe the mempool doesn't process transactions that fast but the validator doesn't know anything about traffic so if this is a child and this is a parent child validators or also validators on the parent so they have a lot of information this way and for a parent the child it's actually authoritative the child has to receive a message if you know this is the parent chart and let's say this was the latest block in the child and blocks to it was 2 then after if this block does not receive the parent message it's invalid it is authoritative that if a parent tells you to receive a message you must receive it by its block to their value that means you must create a block by then otherwise the block is just invalid what are the performance tradeoffs I think there is an override to the load balancing function in general because you have to figure out what the current behavior of the network is assuming load balancing is this assuming just reorganizing the chart I think validator sets have to be reorganized because if you are shifting it to a different depth then you need validators of a different class who have hardware that can validate charts at depth 4 instead of depth 3 otherwise you are limited to reorganizations of putting one chart into another place of the same depth so definitely some tradeoffs there but I don't think we have thought about them yet how do validators are joining the chart is it just like a validator because its message will be complete like a chart so we haven't specified that yet actually there is lots of existing research the you two guys know how to do this it seems like a standard way it doesn't seem anything too special like why then 2 in this case like why you are writing that 2 blocks oh this was just an example it can be pretty much anything that you want I thought that it's 2 is it just teaching of dynamic validate that's it it's just a depiction it seems a marginal issue cost to validate child so anyway the marginal cost of validating another child of the American validate would be cheaper but if it's the same path if it's a different path then you need lots of other stuff a bit related to my earlier question but when I understand the local answer correctly basically the one who is most popular is the guy who is getting most messages in some sense as well so he is going to move up into the root higher and higher because the higher you are the more children you have so this guy is going to receive tons of messages but I think the number of messages you receive doesn't depend on where you are it's just a virtue of what your smart contract is you are also rooting right for this so you are receiving more if you are up if you are up you are skipping less actually because you go up only if so you would move up from let's say this chart into this chart only if there is lots of users over here who are sending cross-shared messages like this into your contract so then you move it up here lots of people in this sub pre are trying to communicate with your contract so you know let's say that your ERC-20 contract is existing here means that for any other chart to change the assignment of ERC-20 to addresses you have to communicate with this chart so it seems like it's natural for it to exist on this chart system it doesn't seem like anything breaks yeah unless you want to split that chart I'm not sure if that function makes sense splitting a chart well it's not specified that you are assigning the charts based on your address well whatever the metric is it's free I think the load balancer decides what a constant is on a chart I definitely don't think it's safe to a lot of validators to choose what they validate just like completely unsafe you could just choose where to attack you could like choose where to block a holding choose where to like so like the notion that validators get to choose what chart they're on has never never even crossed my mind I might feel a validator oh you're talking about your account yes it's your account also you don't get to choose where that is load balancer decides where your account goes no load balancer moves it forever of course and you don't even need to know what chart it's on you need to make your transactions get routed to that chart I don't care what it's on no you won't care because at least in our model like the way that I like is there's the same gas price everywhere even having different gas prices different execution environments not one bit to me the natural model is the same gas price across all charts same execution environments across all charts whatever 3 and 1.x comes out with that's my personal preference at the end of the day this isn't just up to anyone but to me just as a matter safety responsibility like it shouldn't be that people get to target charts for price performance validation or anything what about message congestion there so if your parent you get tons of messages from three or more children like is there a priority between them or like what happens if it's congested I'm sure at this point but there shouldn't be a priority among which messages you choose that is that is a concern that is an open problem oops and then the possible solutions are you don't make messages appear as is on the parent you just put the root of aggregated messages on the parent and then the the pre-images of that root are available elsewhere so that reduces the load on the parent what does it physically means that some message lives for several blocks where is it physically so well when I say blocks to live it means you can't receive this message within those many blocks so it defines where you can receive the message it doesn't well you can maybe it means included in your receive log in the particular block what is the message can you just like elaborate more well the message is you know some object that has a payload maybe it's a transaction not sure what it is is it like a statement of the chart finalized statement no in this context when I've been saying cross-shot transactions I mean them to be actual EVM transactions and it's actually putting the validity here like if malicious validator will bring her like her own message to the parent how it's meant to be checked so I think be very similar to how ETH 200 is this that you have a committee delegated to your child with signs of that these messages are in fact valid there is a finalization happening on the chart what you have just said so then it's finalized finalized check point which is actually transition I think you should be able to receive messages before they are finalized as long as someone attests that these messages were in the phone choice at the time also related to the blocks to leave it seems like so you risk going back because you don't receive a message you risk removing part of the chain yes the child just removing or filling some of its blocks because some block in the parent was offering but you also commit that you're not going to remove more you said that you commit that you're not going to no the child has no such can except that when it sees something on the parent finalized it knows that none of those blocks can be offered and hence you can come up with some sort of a limit as to up to what point your chain might be offered I mean the blocks to leave value doesn't actually put restriction on how far you should be rewarding back it's just so that there is a very specific range of blocks that you can receive the messages it seems like you could have multiple messages that start at different places and each one of them will cause opening opening some blocks and because you opened those blocks now you don't receive another message that happens for sure so even if one message even if the child has received one message from the parent that later gets orphaned in the parent you orphaned everything that has happened since but then there would be another message that you just orphaned but that's fine because if it's still in the choice of the parent you receive it in the other form of the child so you only have to remove the message that was orphaned from the parent from your folk choice all the others you can receive again in your other form in the child I want to know if we are charging 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 to our parents okay that's interesting that's something we haven't thought about but that's a creative way to put it does the blocks to live get influenced what you should say that to is that influenced by the width of the trade I don't think so the blocks to live is just some parameter you come up with at run time you just said like as low as you want because then you get your thing quickly so the parent might put it as low as you want and the child is supposed to receive it but if the child sets a really low blocks to live it might just end up in the parent's mempool you never get processed and hence the block you just have to orphan that same is that like something you include with your trend like each user is like with each message it specifies a target block and the blocks to live I mean it's like in f-trend everyone chooses their own amount does everyone choose their own blocks to live or you know their clients choose it for them by looking at the current state of the mempool I'm not sure you know in our proof of concepts we just use the constant time to live I don't think that I feel super 400% comfortable saying that like yet your smart contract will be able to choose the time to live for its message because that could potentially increase the overhead of the solution however it's definitely not a function of the width of the trade because the time to live only has to do with the amount of blocks that you have to be received by your parent or child so only has to do with the immediate neighbors you know a wide tree and something like two end hops or whatever to go to destination and back it's going to take two end times time to live you know in some way latency to do that because for every hop you have the time to live so is it like 30 like it makes one hop kind of per block is that the idea I mean you might take a few blocks to be received and basically the idea is that we do optimistic execution of cross-shard transactions and everything will go well in normal case it all gets executed and finalized and you know if it doesn't if it doesn't things can be orphaned and reverted and so you ask and then the time to live you know if it's like five blocks to get in and this is not measured in the sending chart but in the receiving chart so I don't know if it's really meaningful for the sender you know if it gets in in one block necessarily because I'm not going to get a message back for a while so no matter what it's not like they're going to get it back in a block if they have a time to live and there's tables called back right away then it's going to depend on where the parent puts a source on the child so like whenever you send a message you have to kind of say oh I'm sending it to this fork and time to live starts from that block and so depending on where the parent puts that source it might take longer to come back to this chart I guess it's like it's a bit complicated and there's like the range of times that it could take for a message to get back is much bigger than more helps you have to do there it appears in the reshared in the path so it's stored in like a smart contract so it's stored in the block that receives each block has a log of messages that it sent and received so just like you include transactions that happen in this block you also include these send and receive messages so does it mean that at a much like stage that I need to finalize the check point to be able to go with like a forward or no so you don't have to wait with finality if it appears in your parent's fork choice that says if there's a block in your parent fork choice that sends you a message then you can receive it you don't have to wait for a finality you entangle the fork choices you entangle fork choices yes is it possible for different parts of the network to accidentally send a message to sure so in this in this prototype actually so I think shard 3 moves around 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 it doesn't know what the final destination is and those messages just keep getting out until they reach their destination can new shards be created or removed so what happened if a message was sent to a shard and it doesn't exist I don't think we have removed the shard yet adding the shard seems fairly easy removing the shard seems much harder because of the concern you said so we have thought about removing shards I guess if you had to remove shards you basically keep a track of you know what address you want that message to go to and then just find where that address is in a different shard so for this fork choice loop we have a paper we have a cbc draft paper that came out last and in the example section we have the final definition of this shard system so it describes the fork choices and the consensus protocol and the final option but that's the same task I'm not sure what that means so like for instance what you are describing and some of the problems that arise this could be a wild guess but seems to me that you may be able to model this as a shift a shift purpose and basically things like removing a shard are difficult because of the new condition of the top space and things like messages and you know re-composing shards and whatever basically natural transformations between these sheets I know it's like complicated mathematics but it feels to me that if you find a formal structure in which you can translate you find a formal structure that models facefully what you are trying to do then answering some of these questions just becomes a key to compute some stuff from those structures which are impure to affect our model that's interesting I think we'd love to know more about the ideas that you have even if we don't have those particular ideas we do use formal methods in all of this from the very very start and so you know even if we're using unsophisticated tools I might have to do a lot more work you know we still at least hope to get the kinds of guarantees that maybe you hope to get from formal methods yeah but what I was trying to say is that you know when you do formal methods you can look at them as let's say a rational personatic perspective so you're saying okay I formally implement them or whatever I specified works or you can do it denotationally and in that case you are not really looking at formal methods for recommendation but to prove general properties about your system which are global it's probably not useful from a practical point of view but it's useful if you want to answer some conjectures that's what I'm trying to say sorry so so denotational semantics and what's the other one operational can you define these terms for us yeah so operation is just like you have let's say an algorithm that basically you want to model how a machine executes that algorithm so you basically model formally what happens step by step at a very like low level and when you basically doing things in this way you can be sure that everything gets executed except the answer is specified but obviously this doesn't say like a lot about the global behavior of the specification while denotational semantics is like saying for instance what I'm trying to do defines the precise algebraic object and then you can prove theorems using algebra so if you say this is not the case clearly but that this algorithm is actually giving you the definition of the group and then you find out that a property like finality say instead this given subgroup in the group is normal then you can just prove that that subgroup is normal in the group and that's what the denotational method tells you and it tells you nothing about how faithfully you are going to implement it's telling you something about the properties of the algorithm and maybe that would be useful so is a type in the type is formula interpretation and denotational there are links between denotational and operational but I defends correctly what you would say it's very rare to have this like to have a way to go from denotational to operational actually there is this super strong property that never happens where your denotational semantics is your operational semantics very very very few cases of very like super simple algorithm is that satisfied can you give us a talk are you giving a talk about this next to you we can end the talk if anyone wants to discuss more we can chat offline


Hello! My name is Marcelo Manucci. As you listen in this video or in the previous video, I'm not native English speaker. In this video, I'd like to share with you two dimensions that will help you to put clarity to your ideas and write in a clear structure. First, it's related to the order. In academic text, the most important things, the key aspect, are presented at the beginning. The most important things are subject and verb. So, put the subject at the beginning of the sentence because it's the most important part of the sentence and it shouldn't be long, be careful. Because if you write a long subject, it will be hard for the readers to understand what the sentence is about.


Thanks very much for coming to this talk on environmental resource economics. My name is Timothy Terrell. I teach economics at Wofford College in Spartanburg, South Carolina. We're very happy to have made it to the NCAA tournament and made a good showing there last season. That's about all I know about basketball. This is actually one of my favorite subjects and I don't teach the environmental economics course at Wofford, but I do teach a course on regulation, so I use that as my foot in the door to teach about this kind of thing when I get an opportunity. It's an area that I focused on when I was in graduate school here at Auburn because it's an area where I think that the perception is that there are some fairly serious problems for those who want to see free markets, but at the same time, what do we do about these kinds of problems like resource use where there might be deforestation? What do we do about the common perception that we're going to run out of oil reserves or that we're going to fish the oceans out or what do we do about recycling? Those are issues that keep coming up in public discourse, and I think it's important for us to think through those things with a mind toward how we can integrate markets and the way human beings react to incentives. The other key area here that we'll have to cover is the externality issue, the spillover effects, any activity that we conduct, whether it's consumption or production, is going to produce some kind of side effects. That's everything from smoking cigarettes around bystanders to paper mills that generate a kind of odor, fireworks, litter on the side of the road, water pollution, so all of these issues are ones that we're hearing about all the time, and it's helpful, I think, to give at least a quick rundown of some of the ways we can think about these more intelligently. The core issue for both of these is property rights. We're talking about resource use and trying to avoid waste in the use of forests or underground oil resources or water, or whether we're trying to figure out a way to deal with an externality problem, a pollution problem. I think that we have to keep our eye on what's happening with property rights. This is an aerial photograph taken of the border region between Haiti and the Dominican Republic, and you can fairly easily see the border there, even without some sort of fence or flag or anything to point that out because it's very clearly deforested on the Haitian side of the border, and the Dominican Republic side is carpeted with greenery. Trees have not been cut down to the same extent on the Dominican Republic side. If you look at the Economic Freedom Index, which the Fraser Institute puts out every year or two, I think, they rank each country according to how much economic freedom each country has. We see that there's a pretty significant difference between these two countries with regard to their economic freedom. Haiti ranks number 103 in the most recent index, and the Dominican Republic ranks number 62. Even though the Dominican Republic is not as economically free as, say, the United States or Singapore or Hong Kong or something, we would still see a sizable difference between these two countries. And if we drill down into the index, it looks at all kinds of things like police corruption and marginal tax rates and other kinds of things. If we look at the particular part of that index that deals with property rights and the protection of property rights, this is not a ranking. This is the actual score that the index creators attached to the protection of property rights in these two countries. And so Haiti had a rating of 2.79. The Dominican Republic had a rating of 4.82, much, much higher. Not as high as, of course, we would like to see, but the difference there is very clear. And you can see the impact of that, I think, on the forest cover in this area. So where we're going here, if we have enough time, and I've got a lot to cover here, is first a kind of a primer on subjectivity, efficiency, and the environment. So we're going to look at some principles for understanding environmental issues. Government and environmental crisis. So we often see environmental crises that are kind of played up in the media as being the fault of greedy capitalists. And maybe we can think more carefully about that. Is this really a problem of capitalism that's just left free to deplete resources and destroy the planet? What role does the government play in these crises? We'll look at then energy, emissions, and growth. And I think that's an important place to stop here with this brief talk. So first let's look at subjectivity, efficiency, and the environment. So there are a lot of allegations of market failure. If you take a basic economics class of 101 or 201 level micro-macro course, you're probably going to hear about these market failures. One is that markets are alleged to either under-produce or over-produce goods and services that create externalities, these side effects that I mentioned earlier. Secondly, they are said to under-produce public goods. People often confuse that term. They think that maybe a public good is just a good that's provided by the government. What we mean by public good in economic terminology is that a public good is one that is non-exclusive and non-rival. That is, you can't keep people from consuming it once it's produced. And if one person consumes it, there's just as much left over for someone else. And a classic example of that would be a lighthouse. Now there are a lot of problems with the arguments that the mainstream makes on public goods and on externalities. I'm not going to go through all of this on public goods, but just for completeness, I want you to have this kind of list of allegations against the market here in your head. The third is that there may be some kind of inefficiency from market power, that monopolies might emerge that cause the price system to not work very well. And so the argument is that we need government to intervene to do some kind of antitrust. Again, I'll leave that to others to cover that. But the problems that we see with externalities and the problems that we might see with public goods provision really boil down to a property rights issue again. And I think that a lot of these allegations lose their force once we start to investigate where property rights fit into these situations. So you can argue that the market didn't meet some kind of ideal standard. You can argue that maybe markets didn't provide enough public goods, or maybe there's under production of some good that created a positive side effect on society. But even if you could do that, and I think there are enormous calculation problems with trying to do that, even if you could do that, I think you'd still have a long way to go to show that the government needed to intervene here. And you'd have to argue, secondly, that the government intervention would produce results that are superior. And I hope to show you here why that would be a very difficult case to make. I would argue that in many cases where government has intervened supposedly on behalf of the environment, we've actually seen worse results rather than better results. So there are three basic approaches to environmental problems. The mainstream favors typically either a tax subsidy scheme or a regulatory approach to solving environmental problems. So either the government's going to tax a side effect that they think is undesirable or they're going to regulate it. So take fireworks, for example.  They built on the boat cover, burned through, and destroyed the boat overnight. So we have an externality problem there, right? So if the government's trying to solve that kind of problem, they could either tax fireworks or they could regulate fireworks or ban them or something. And that's typically how people tend to respond to these kinds of problems. They say, well, knee-jerk, the government ought to try to intervene to stop people from using fireworks so indiscriminately. A property rights approach is fundamentally different. And there are variations within this. There's a kind of a common law approach that you would see in Ronald Coase's work and Harry Dimses's work. And then you'd see a natural law approach which comes out of Rothbard and Walter Block. And I think that that second approach is really the way to go. And we'll talk about some of the key literature there. Rory Cardato points out that efficiency, if we're trying to get an efficient outcome, we have a fundamental problem. First of all, it's an individual goal-seeking problem. If you free individuals up to seek their own goals, that's what's going to produce an efficient outcome. We can't simply aggregate all of the well-beings of all the different individuals and talk total up their goals and how close they came to accomplishing those goals and then somehow come to a conclusion about what the optimal amount of fireworks or the optimal amount of paper being produced at paper mills might be. There's really no way to do this. From the Austrian perspective, efficiency is attained when legal institutions allow individuals to pursue their individual ends, which may be very different from one person to another. We do see conflicts that arise over the use of scarce goods, but the Austrian economist does not try to assess the value of those alternative uses because costs are subjective. They cannot be measured. Now, if you take, again, a typical mainstream kind of economics course, principles of economics maybe are certainly an environmental economics course, you'll see a diagram very similar to this. You'll see marginal private costs, that is, the cost to the owner of a resource in doing some kind of production activity, let's say a paper mill. The private cost to the paper mill of producing paper, that's this upward sloping, lower upward sloping line here. Then you have marginal private benefit, which is the benefit to, again, the paper mill for producing paper. That's a declining curve here. The paper mill, looking at their costs and their own benefits, they would produce the quantity of paper there at QM, that's M4 for market. The argument is that this is an excessive amount of paper production because the paper mill is not taking into account the impact on bystanders of their paper production. They're generating a bad smell or maybe there's some water pollution or something that's coming out of their paper production process. Maybe it's logging trucks up and down the roads that are creating noise and risks of accidents as they supply the paper mill, all kinds of ways in which there might be some social cost as the mainstream would tell us. For that reason, the government would then intervene with some kind of tax or subsidy. The problem for the government then would have to be figuring out how much this tax would need to be in order to encourage the producer of the paper to take those external costs into account when deciding how much paper to produce. The idea is the government says, well, here's how much of the external cost is falling on bystanders. We'll create a tax equal to that amount and we'll just impose that on the paper mill. Then the paper mill is going to take that tax into account in deciding how much paper to produce. Okay, well, fine. If you know what this is, if you know what that marginal social cost is, there's no way to measure this. There's no way to get inside the heads of all the bystanders and figure out how much this cost really is. So maybe the government official says, oh, I know, I'll go around with a clipboard in a form and I'll just ask people, how much did the paper mill cost you in bad smells and traffic on the roads and looking at that big ugly steel factory and how much did that cost you? And of course, if you work at the paper mill, you might say, well, I like the smell, smells like money. And if you don't like the paper mill, maybe they fired you the other week, you say, well, it cost me a million dollars a year. It's awful. My life is devastated because there's no way to, I mean, you can't really put that into dollar terms that would mean anything. You can play around with pretend markets and pretend prices and make up some costs, but that doesn't have any real connection to reality that we could rely upon. So some economists who acknowledge that there are these problems with externality say, I know I'm going to be more friendly to the market. What I'm going to do is I'm going to suggest that we create permits. And so we're going to create a permit for emitting some quantity of odor, however you measure that, or particulates, or in the case of power plants, maybe sulfur dioxide. And we've actually done this in the United States with sulfur dioxide permits. So we'll just we'll just decide how much pollution is ideal. And then we'll carve that up into little permit size chunks and we'll auction those off or we'll grant them based on historical emissions or something like that. And we'll we'll have the the high cost those factories that experience a high cost to reducing pollution will buy permits and they won't reduce their pollution. And the ones that have a low cost of reducing pollution will reduce pollution so that they don't have to buy permits. So we get an efficiency here and this is very appealing to economists who are, they like the idea of markets but they think that markets have failed here so they need to create their own market. Okay, this is not really resolving the problem. This is simply shifting it around because you still would have to decide what Q star is. You'd have to decide what's the quantity of sulfur dioxide or the quantity of particulate matter or whatever the pollutant might be. You have to decide what that is first. Before you can then decide how many of these permits should be issued. And that requires, in order to know where Q star is, you have to know marginal social cost again. You're back to square one with trying to figure out how much does it cost people to have that bad odor?  That's a problem that has not gone away simply because you've got something that's tradable and looks market-ish. You haven't resolved the problem at all. And then there are political considerations. Art Cardin says, the information needed to know whether a particular regulation works quite literally does not exist. And the key difference between firms and governments is that firms have market tests for their decisions, governments do not. So we're without the information that we would need in order to make these kinds of decisions. This is back to Mises' socialist calculation problem. It's the exact same problem applied to an environmental issue. Even if we could calculate the efficient quantity of pollution, how could this trump property rights? We have to think about this ethically as well as in thinking about the most efficient outcome. So the issue here then is a matter of violating the property rights of another person, not about exceeding some level of emissions or damaging the environment. I'll refer later if I have some time to Murray Rothbard's classic work on air pollution, law property rights and air pollution from, I think, 1973. In any case, Rothbard does not shy away from discussing the ethical ramifications of these kinds of policies. And if there's one reading that you read to kind of support the lecture here, it would be that one. There's been a lot of recent scholarship in Austrian circles, a whole list of quarterly Journal of Austrian Economics articles that have been published in the last few years on environmental issues. It's a live debate that's going on within Austrian circles. Those of you that are interested in this issue, I encourage you to consider contributing to that literature. Let's talk a little bit about the tragedy of the commons. So again, we're back to property rights here. So if livestock are placed on a pasture that is not owned by anyone in particular, then individual livestock owners will put their livestock out on this pasture as long as the benefit to them exceeds the cost to them. So the outcome of this would very likely be an overgrazing of the pasture. The herders would be gaining all of the benefits of the grass their animals eat, but they would suffer only part of the costs. So the outcome here, in a case where you don't have ownership of the pasture, is that the costs are largely imposed on other livestock owners. So I put my cow out to graze on the pasture. Any grass my cow eats, I get the benefit of. But the cost of overgrazing falls on every other owner of livestock. I won't take you through the prisoner's dilemma here on this. If you'd like to ask about that later, I'll be happy to go through it. But Carl Minger talked about this many, many years ago. He said, when all members of society compete for a given quantity of goods that is insufficient, a practical solution to this conflict of interest is only conceivable if the goods pass into the possession of some of the economizing individuals. And if these individuals are protected by society and their possession to the exclusion of all other individuals. In other words, we resolve this problem with property rights. We put up the barbed wire around the pasture, which is beneficial to the livestock owners because then they can restrict the use of the pasture to the maximum productivity. Ronald Coase, who is, last I heard, the most cited economist of all time, won the Nobel Prize in Economics for really very few articles. His work on property rights is highly regarded. Coase is known for this Coase theorem, which says that in the absence of transaction costs, that is the cost of arranging a trade, the outcome will be the same regardless of the initial assignment of property rights. Now, Coase was not saying that transaction costs are zero. For Coase, he understood that they really aren't, that the people who are trying to come up with a trade are going to have to negotiate, and that's costly. So he said courts ought to balance the costs and the benefits to make a determination as to who should get the property rights. And we're back to the same kind of problem we were discussing earlier, that costs and benefits are subjective. There is no way for a judge in a court, even a highly educated judge that's very familiar with the pollution problem at hand, there's no way for that judge to be able to get inside the heads of the victim of the pollution and the creator of the pollution and figure out what the optimal result is. And this creates enormous problems for the Coase theorem. So let's consider briefly a case where we have a railroad that passes by an orchard. And this is an old-style coal-fired locomotive that has sparks that fly out of the smokestack and could set fire to the orchards. So the orchards could be destroyed by sparks from the passing train. So then what should happen here? From the Coasean perspective, if the transaction costs are zero, it doesn't matter who the court decides should have the rights. Should the railroad have the right to continue to trundle along the track and emit sparks or should the farmer have the right to have an orchard unburnt? So let's suppose that there's a $100,000 reduction in the market value of the property. So the farmer has to endure this loss of trees. The market value of the property is now only $15,000 and it would cost $120,000 for the railroad to install spark reduction devices in all of its locomotives. So should the sparks fly from the locomotives or should the orchard be allowed to grow unburnt? So what's more valuable? Should we allow the railroad to proceed using the air as a dumping ground for its sparks or should we allow the farmer to use the space to grow fruit? Now to Coase, it's as though the question of who got there first, who homesteaded the right to either grow apples or drive trains down the track, that doesn't really come to the fore in his thinking. What matters here is that the outcome is going to be the same regardless of the court's decision. So the mainstream is going to look at this and say, well, $120,000 is greater than $100,000. The cost of the railroad of installing the spark reduction devices would be greater than the cost to the farmer of losing the orchard. So therefore it's better to lose the orchard than to require the railroad to undertake that expense. So growing trees is inefficient. All right, so now let's suppose that this goes to court and the farmer gets the rights. The farmer wins in court. So the railroad would then be very willing to pay $100,000 to the farmer to avoid having to undertake the $120,000 expense of arresting the sparks. So this means that the orchard gets burnt, the devices are not installed, the farmer's fully compensated, and the railroad continues to throw the sparks. So society gains by $20,000 relative to the alternative. Now let's suppose that in an alternative case, the court awards the rights to the railroad. In this case, the farmer can't sell the orchard or a part of the orchard and raise enough money to pay the railroad to stop throwing the sparks. So there's $100,000 is the value of the orchard in the marketplace. There's no way to raise enough money to pay for these devices to get the railroad to stop throwing sparks. So the orchard is burnt. The devices are not installed. Notice that the outcome is the same regardless of the court's decision and that's Coase's point. However, let's introduce the subjective costs and benefits. Now the Austrian school is going to be very attentive to this and even though we can't measure these psychological costs and benefits, they're nonetheless real. In fact, I would suggest that we commonly accept or commonly see these psychological benefits and costs. I gave my wife an engagement ring. It's a diamond. It's got a market value. I expect that she's going to hang on to that because rather than sell it, even if the price of diamonds in the marketplace goes up because it's got sentimental value to her. This is real sentimental value. So she's sitting here in the audience. I hope that's great. You still have that, don't you? Right. So good. We'll see what happens when the price of diamonds goes up. So what happens to this farmer? Maybe the orchard has a sentimental value. Maybe this was the farmer's great, great, great grandparents orchard or maybe there are other, it's a special breed of apples that's irreplaceable or something. In this case, if the railroad gets the rights, then the market value of the property was only $115,000 orchard plus the rest. And so the farmer can't raise enough money to induce the railroad to install the devices. The farmer is going to lose the orchard that was worth psychologically $900,000. So society here, including the railroad plus the farmer, loses by $880,000, a massive loss. But according to Kosians looking at this, well, you know, market value is the only thing that they're really considering here. Murray Rothbard said, we cannot decide on public policy, tort law, rights or liabilities on the basis of efficiencies or minimizing of costs. And the way to resolve this, according to Rothbard, is property rights again. You can detect that running theme. So he says, well, what about water pollution? He's writing back in 1973. This is in four in New Liberty. Rothbard says, suppose a private firm owned Lake Erie. Anyone dumping garbage in the lake would be promptly sued in the courts for their aggression against private property and would be forced by the courts to pay damages and to cease and desist from any further aggression. Thus, only private property rights will ensure an end to pollution. Only because the rivers are unowned is there no owner to rise up and defend his precious resource from attack. If in contrast, anyone should dump garbage or pollutants into a lake which is privately owned, he would not be permitted to do so for very long. The owner would come roaring to its defense. And I'll mention also a recent book that's come out by Walter Block and Peter Nelson. It's available in the bookstore, I believe. Water Capitalism, the case for privatizing oceans, rivers, lakes and aquifers. Now, about all of that plastic. Anyone here have a plastic soda straw? No? Very, very correct of you. Okay. Now, you've heard about maybe the Great Pacific Garbage Patch floating mats of plastic, supposedly, in the Pacific. And we're told in the United States, so you need to use a paper straw or reusable metal straw or something because to use a plastic straw is environmentally irresponsible, it's going to wind up in the Great Pacific Garbage Patch. Well, it turns out about 90% of all the plastic that reaches the world's oceans gets flushed through just 10 rivers, and I don't know if you know where all those are, but none of them are in North America. American plastic is not getting washed into the ocean, for the most part. In fact, most of that plastic is fishing gear. Fishing nets account for 46% of the trash with the majority of the rest composed of other fishing industry gear. 20% of the debris is from the 2011 Japanese tsunami. Now, the ocean is, for practical purposes, unowned. So, I suggest you go and take a look at Walter Block's book, Block and Nelson's book on water capitalism. People say, well, you know, that's just a libertarian pipe dream for privatizing the ocean. I mean, good grief. How would you possibly do that? It's maybe we need to think a little more broadly about this. And I think that one of the reasons we're concerned about pollution in these kind of commonly owned or commonly regarded areas might be because there's simply no property rights that are effective in those places. I'm going to skip over some of this just in the interest of time. Let me point out that homesteading of property rights can take place in more than just land. We tend to think of homesteading as something that applies to square footage of land or acreage of land. But in fact, you could have noise homesteading. If I'm accustomed to a certain level of quiet in my neighborhood and along comes a factory next door and starts creating a racket, then I under a property rights protective regime would have the right to sue in court and win an injunction against the creator of the noise. The same would go for air pollution. Air presents some special problems because it of course flows across boundaries as noise does. But there's no reason why that could not be homesteaded as well. In fact, we see a court case from 1932 that dealt with exactly that issue. In fact, I think this is one of the court cases that Ronald Coase mentions in one of his most famous essays. So we can boil this down to issues of trespass and nuisance.  I would have recourse in court for someone who tried to do that. The same way we could see that with boundary crossings of other sorts, radio waves perhaps or air traffic. Now Rothbard does make a distinction. I won't get into too much detail on this, but he says there's a distinction between boundary crossings that you can't sense and that you can't really tell that they're creating a problem like radio waves. I'm being bombarded with radio waves right now. I expect most of them are pretty harmless. I would have to be able to show that they are harmful in order for me to be able to obtain an injunction against those. I'll leave you to read Law of Property Rights and Air Pollution on your own. I did want to say one thing about government and environmental crisis before we wrap up here. There are certain cases of environmental problems that have emerged. There's kind of poster children for environmental crisis. One of these was the Love Canal episode from the 1970s and 80s, which was a failed canal that was later used as a dumping ground for toxic waste. Now in fact, the private firm that used the canal to dump waste was doing so responsibly according to the standards of the time the canal was sealed so that toxic waste could not leak. In fact, it seemed to work pretty well and they capped it off with clay and it seemed that the toxic waste was safely contained. By the way, the Army and the local municipal government also contributed toxic waste to this dump even though later the private firm was the one blamed for this crisis. So then in 1953, the city government decided they would like to have this land and they threatened the company with imminent domain unless the company turned over the land to the city to use as a school. Great idea, right? So the company said, you should not do this. There's toxic waste underground here. They took the school board officials out to the property and drilled eight test wells, drilled two over the dump and sure enough, up comes toxic waste and drilled on the sides and no toxic waste. So you see, there it is, it's contained. You really don't want to be messing with this, this toxic waste site. Nevertheless, the city said, no, we're taking your land or you're going to sell it to us. Take your pick. So they said, fine, we'll sell it to you for a dollar. And they wanted to put into the deed that there's toxic waste here. They put what for a deed is a fairly long section and they're saying this is a waste site. You shouldn't do anything with it except make it into a park maybe. But the city said, no, we're not going to make it into a park. We're going to build a school on it. We're going to sell off the rest to developers without saying quite as much as you have said about the toxic waste. And by the way, we're going to put some storm drains in here. And we're going to, you know, that involves poking holes in the clay barrier. So, I mean, here comes the city government says you're going to give this to us. The company then is, well, you know, we're telling you what's there. And the city government then pokes holes in the clay barrier, scoops off the clay top of this thing and carries it off to use as fill dirt at another site for a school. And in other ways just disturbs the entire capsule of toxic waste. And sure enough, later on, the residents in the area find that there are enormous health problems that emerge, birth defects and other problems. So, the story here as it's often portrayed is that private firms just completely misbehaved here and they had no regard for human safety and no regard for the future consequences of their dump site. But in fact they had. The city, when they were told and were complained to by the residents, responded initially by saying, well, it's not really that much of a problem. Here you can have a window fan to air out your house from that bad odor that's creeping into your basement. So this ended up being the case that was the, again, the poster child for what later became the Superfund Law, which was a massive intervention of government into toxic waste sites where if they could find some company still around that might have contributed to the toxic waste that was leaking, then that company could be saddled with the cost of the cleanup. There are other cases I don't have time to go through here, but I do hope that you will take the time to read the Rothbard essay and if you like I can, if you want to email me, I can send you some other readings that might help as you're thinking through this and this list here would be part of that. Just some essays in the quarterly Journal of Austrian Economics that deal with environmental questions. So thank you very much. I'll be happy to talk to you after what you like.


If you want shoulder mobility, so you can do things like this. Make sure to do these two exercises. First exercise is the wall circle. I'm going to take my arm and take it through full range of motion, rotating it. Once we get back behind the shoulder, rotating it again, and keeping my shoulders nice and square, so I can take this shoulder through all ranges of motion with tension and strength. The second exercise is the handcuffs with rotation. So we'll start here with the handcuff position. We're going to retract our shoulders back, and we're going to bring our arms gradually out to the sides, adding a bit of rotation naturally until we get our palms facing up, reach behind the head, bring it back out, and reverse the process so we can get full range of motion and strengthen that range of motion.