Vitalik Buterin talks transaction fee economics at the Ethereum Meetup 2018 produced by TechCrunch in Zug, Switzerland.
[Music] Yeah the crazy annoying music is over Okay so today I’m going to talk about a Subject that’s kind of a bit off the Beaten path in that it doesn’t tends to Get as much media attention as some of The more flashy things like Casper and Sharding and zero knowledge proof but at The same time it is something that is Very important to a well-functioning Public blockchain and its ability to be Efficient and be sustainable for the Long term which is transaction fee Economics or why is the fee or gas price Or rent so darn high so start off with The fundamentals right so this is I’m Watching walk chains katene blocks Blocks contain transactions users that Is you sense transactions and these Transactions get included into blocks Now If from an economic point of view right Each transaction give us a private Benefit to its sender you send a Transaction because you wants to send The transaction because you get Something out of the transaction being Sent and being successful included into The blockchain whether you’re making a Payments to a merchant or participating In some charity Dao or sending your Money and you know into a sum on Xian Chain roulette game or whatever else You’re trying to do know what you really
Think that you gain some value from a Transaction so you send the transaction Right so that’s the benefit of the of a Transit of a transaction to the sender Could be very different for each Application but it exists the Transaction also creates a private cost To the proposer that includes the Transaction in a block so proposer right Now proposes or miners improve our stake Proposers our approval pristiq Validators but in general whoever Decides what the composition of a block Is is the proposer so in order for the Proposer to take your transaction Packaged it up into a block and publish A blog they pay some private cost but This private cost Is pretty much negligible right it’s Basically just a very tiny tiny amount Of computation and it’s pretty much free And it’s definitely vastly cheaper than The like forty five cents or whatever it Is it costs to send a transaction on a Bitcoin or aetherium or whatever public Blockchain you’re using the much larger Portion of the cost of a transaction is The social cost and the social cost is An externality it’s paid by third Parties that have no choice in the Decision of whether or not this Transaction gets included in the Blockchain so social cost into other Nodes in the network and this first of
All includes every node that is Downloading and processing the Blockchain right which includes Proposers and validators it also Includes users it includes regular Individual people and includes ether Scan it includes bought exchanges and in Quotes pretty much everyone everyone who Is fully downloading and processing the Blockchain pays some cost because your Transaction being in the blockchain Meets their life ever so slightly more Annoying now ever so slightly more Annoying multiplied by tens of thousands Of people actually does could come close To equaling forty three cents and this Includes present users as well as future Users users that will be using aetherium In 2019 2025 maybe 2100 I have no idea If any of these systems will even be Alive by then so the social cost is an Externality and that is unaccounted for If proposers are the sole parties that Are deciding what transactions get Included So if proposers are the only ones that Decide and they have full freedom to the Side then proposers are going to accept All of the transactions that are worth At least their private cost but the Social cost is much much higher than the Private cost and so if proposers accept All of the transactions that they want The blockchain will just have way way
More transactions in it than is optimal And what will this mean well you’ll have Nodes that are it take an extremely Large amount of computational power to Hereis chances are only five or ten People will even be able to run a node And a node will be storing a huge pile Of junk including an encrypted backup Backup of each and every one of your Hard drives so we don’t want that so Pricing of externalities there’s a long Tradition in the literature of economics About pricing externalities this is an Economist who’s the last name is picot Whose first name I forgot unfortunately Who is we came up with this notion of Pigouvian taxes which basically means if You have some some thing that people do That creates an externality then you try To measure the price of that externality And you charge people attacks which is Equal to the social cost of their Actions so one of the main examples of This is carbon taxes if you’re polluting A carbon tax would require you to pay For the cost that your pollution imposes At the very least on the on the country That you’re in and hope possibly within The international agreements onto the Entire world as well an alternative to Carbon taxes is cap-and-trade which Basically means you you issue a bunch of Permits for issue for a polluting and You restrict the quantity of them and
Then people can trade the permits now There was a paper by Martin Weitzman From 1974 that basically made this Arguments right under perfect Information prices and quantity limits Are equivalent right if you have perfect Information about what all the costs are You could set a price or you could set a Quantity limit in the market all set the Price and these two policies are kind of Exactly identical to each other now in Reality we don’t live in a world of Perfect information we live in a world Of very very imperfect information what Is the social cost of including about a Transaction in a blockchain is it 43 Cents is that five cents is that $8.98 We have no idea we also have no idea how Many people are willing to send Transactions at some particular price And we don’t know what well guess what The protocol which is a thing fixed in Code that can only be possibly adjusted Via hard work a couple of times a year At best knows even less so the really Optimal policy is very rarely just um Either a price or quantity limit but Depending on basically the way That the social cost curves and the Social benefit curves look the optimal The optimal might end up being very Different right so the point that I’m Trying to make here is basically that if You look at present-day blockchains if
You look at systems like Bitcoin or Systems like a theory like a theory and Bitcoin cash all of these they all use Block size limits but a block sands the Used block size limits in order to Control social costs right they use them In order to prevent the block size from Ballooning up to like basically Containing an encrypted backup of each And every one of your hard drives and They but this a quantity limit is only One kind of policy tool that’s available To control and properly incentivize and Or improperly account for social costs And the incentive structure and According to the economic literature It’s very very it’s very often in fact Almost almost always not the optimal Tool in its pure form so there is this Kind of what larger space of ways to Incentivize corrects transactions to or Transactions that should be included in The blockchain to move it to be included In the blockchain transactions that are Not worth enough to their senders to be Worth it to not be included in the Blockchain and there is this larger Space of mechanisms that and if should Be considered and research to a somewhat Greater extent now one question we can Ask is well what is the social cost of Including a transaction in the Blockchain right because ultimately the Answer of this question is going to
Decide the answer it’s our the bigger Question of how big should the block Size would be how big should the gasps One would be it should there be a limit Should we instead get rid of the limit And instead have the protocol charge a Fixed fee should we maybe have a fixed Fee and a limit so in order to answer This kind of question well we need to Look at not just the social cost at any One points but the social cost across Many different points so a charter on The left is a a study made by Cornell in 2014 and they basically tried to Estimate if the size of blocks in the Bitcoin blockchain were to increase how Many nodes would continue to be able to Process the blocks and stay synchronized To the network if the block size were Increased to four megabyte stage Number of nodes would decrease to ninety Percent of the original value at 15 Megabytes it would decrease to 75 Percent of 38 megabytes it would Decrease to half and at 211 megabytes it Would decrease to 10 percent so this is One kind of social cost of shoving your Transaction into a blockchain right the More transactions you shove well the Harder it will be for people to run a Node and the fewer people you’ll have Running a node now this has two costs Right one of them is that you get a cost Because each and every computer in the
Network is incurring more of a cost but You also have a second cost which is as The number of nodes decreases the Network becomes less decentralized it Becomes more centralized than this ends Up incurring political risks that ends Up incurring economic risks and all Sorts of other issues right if the Number of full nodes decreases to say Somewhere between 10 and 50 well you Know what we do know you might have an Idea of what the consequences are gonna Look like so one this is one very crude Measurement right if we assume that the Utility so kind of the cost of Decentralization is logarithmic in the Number of nodes which basically means That cutting down the number of nodes in The network by a factor of two always Has the same cost so it’s just as Harmful to go from ten thousand to five Thousand as it is to go from 1,000 to 500 or 115 then the graph kind of looks Like that right and so the dropping Utility is basically logarithmic right So the first four megabytes in this World graph drops 0.15 points of utility But then at the end 211 megabytes only drop you about 3 Points of utility right so the loss of Utility actually starts off high and it End but though it ends up kind of Flattening out over time and the Intuition behind this basically or think
Of it this way right imagine a Blockchain where the blocks are empty or The blocks a have a hundred kilobytes in Them well with a hundred kilobytes you Can do a lot you can shove a full node Into every smartphone you can shove a Full node into every IOT device you can Shove a full node pretty much everywhere You want now imagine going from 100 Kilobytes to 400 kilobytes chances are As you lose a lot That now imagine going from 1.1 Megabytes to 1.4 megabytes Sure you lose something but you don’t Lose as much right so this is kind of an Intuition for why social cost of getting More transactions shoved into a Blockchain might actually be sub-linear With this this implies some water danger It could imply a lot of interesting Conclusions such as there might Potentially be multiple optimum block Sizes but this is only one way of Looking at the problem right so here is Another chart this is the correlation Between the amount of gas in etherium Blocks and the etherium uncle rate so The theory monocle rate is basically a Measure of kind of how poor how poorly The ethereum blockchain is handling the UM is handling the load right how long Does it take to process the blocks and What portion of blocks don’t get Processed in time to even become part of
The main chain and you can see that part Of the graph is super linear right part Of the graph basically is there’s part Of the graph that’s kind of linear and It goes up from 0.05 when the blocks are Empty to about somewhere around so your Points to where the when the blocks Become full another part goes up to About 0.4 when the blocks become full Now The problem is that as this uncle rate Becomes higher and higher the network Becomes more and more attackable The network becomes more vulnerable to 51 percent attacks it becomes more Vulnerable to selfish mining it become Nodes start dropping off and when a man Went on when a node drops off and that No it’s hard we are could potentially be Bought bought up by attackers so there’s A lot of dangers that start popping up When the uncle rate goes really really High and really there’s no way at all For the etherium network to be able to Stable process say a guess limit of 80 Million instead of 8 million so you Could kind of argue that the social cost Curve sort of looks like this right so On the left side you’ve got your kind of High marginal cost initially because There’s as you go from a very small Blocks to small blocks no more full Nodes on every smartphone in the middle It kind of becomes linear and then at
The right end it also starts ramping up Basically because as it ramps up the Risk of attacks goes higher and higher So This is kind of one example of the kind Of analysis right that could that can go Into informing what block size limit and Transaction few rules might look like Here is another issue made auction Mechanisms so here is how transaction Fee is currently work in most existing Public block chains basically in Economics this is called a first price Auction everyone submits a transaction With their transaction they submit a bid In blockchain land we call this a Transaction for you The auctioneer who is the block proposed Their possible who the miner or whatever We call it so like it’s the highest bids Because that’s how they maximize the Revenue and everyone pays what they bid So any basically everyone sends their Transactions the highest ones get in and If you get in whatever you bid you pay The problem is there are mathematical Reasons why this mechanism is not what Get what game theorists call truthful Right so basically what this means is That bidding optimally in this mechanism It requires very complex strategy is That no not just what your own value of Our transaction is but also what the State of the market is how much other
People are billed at bidding how much Other people are likely to bid what was The time since the last block and a Whole bunch of a whole bunch of Different variables that become very Difficult to predict so optimal strategy For users is extremely complex and the Suites to a lot of inefficiencies so This is something that pops out of China Very recently basically this is a kind Of professional Geek Squad which is Offering help to use obviously paid help To users and it’s helping them to submit Transactions with fees as well as Possible with the rate of success as High as possible Right so basically the idea is that There was a some one service that seemed To use spamming the blockchain as a Voting mechanism for which coins get Listed on their exchange and so lots of People are trying to spam the blockchain And because of these guess and Efficiencies you get these third-party Intermediary services that are basically Helping people do this as efficiently as Possible right so on top of the Inefficiency is over this stupid voting Voting mechanism existing in the first Place you also have these extra Inefficiencies that arise from people Just having no idea how to set fees Correctly and as a result professional Teams come in to help we won we could
Get rid of these problems with better Mechanism design so second price Auctions are the alternative that Economists often like pointing out and The idea here is that everyone pays the Same bid as the lowest bidder that got Into a block so the strategy for Transaction senders becomes very simple Number one decide how much you value the Transaction getting in step two bid that Amount that’s it now why is this optimal Well there’s basically two cases right The first case is that the lowest bid is Higher than the bid that the bid that You submitted if that’s true your Transactions not going to get in but You’re happy the transaction to not get In because they because from your point Of view getting into the block at that Particular point of time was is a ripoff It’s too expensive for you second case The lowest bid is lower than what you Bid and in that case you do get in yay And you’re happy that you do get it in Because it was worth it for you to get In and you’re in the exact value of your Bid does not influence the price you pay So there is a benefit here the problem Is though that even though the strategy For buyers becomes very simple the Strategy for miners becomes much more Complex right and the problem here is That this kind of mechanism becomes Vulnerable to a kind of manipulation
Strategy on the part of the proposer so On the part of the entity that’s Creating the block so what do you do Right basically imagine you have a miner And the miner has is getting some Transactions and it’s getting the bids And that’s kind of what the demand curve Looks like so we have some bids that Lower gas prices somebody as a medium Gas prices some bids at higher gas Prices Well the miner could do is the miner Could fill part of the block with fake Transactions they’re just being sent From the miner to themselves and that’s The kind of darker rectangle on the Right and by doing that the miner Reduces the number of transactions from Other people that they’re accepting but The miner also pushes the the lowest Bidder price up and so if you look at The size of the light gray rectangle the Miners revenue You well the the x-axis shrinks a bit Because he is accustomed I knows Rejecting transactions but the y-axis Becomes much bigger because the price Goes higher so basically the miner has An incentive to participate in these Kind of monopoly tactics there are other Other even worse attacks so for example The miner might benefit from sending Sending there including their own Transactions in blocks and pushing up
The price of those their miner benefits From making private agreements with Specific senders where a specific Senders offer sends transactions with Higher fees than their actual bids and Then the miner refunds them under the Table so there’s lots of economic Attacks that start to arise well hybrid Mechanism so the idea here is that you Basically establish a kind of minimum Fear that gets burned so the fee does Not go to a miner it does not go to Anyone it just gets basically deleted From the supply or possibly it gets kind Of paid out as a block reward to the Entire set of miners of validators over A very long period of time and you Adjust this via stole that on average Box are 50% full right so in protocol You just have a mechanism that does this Adjustment automatically so in the Normal case what you do is you just Thought you just check is the minimum Fee worth it if it isn’t then you stay Away if it is then you bid the minimum Key +1 in chances are you get encoded Now in the special case where suddenly There’s a lot of activity all at once Well it might get a bit chaotic for a While but within a couple of blocks the Minimum fee can adjust upwards and you Can get easily included again and it Stabilizes there is a more complex Option so you can allow transaction fee
Is that you can allow transaction Senders to say things like I bid the Minimum fee plus X up to some maximum Y Starting from some block number and the Point of this is that it allows Transaction senders they’re gonna have Expressed more complex opinions right so Here that allows expressing the opinion I don’t care when this transaction gets Included I just wanted to get included But I wanted but I wants to pay as low a Price as possible right so this clearly Encodes what a lot of people’s utility Function and clearly encodes the desire Is that a very large class of Transaction Cendars have at some particular points In time and in a while is expressing This opinion and basically getting a fee As well as possible without having to Hire some Geek Squad so this is that so That’s another mechanism of how Transaction fee markets could be Optimized somewhat third issue here I’m Storage fees right so basically the Problem is that there’s transactions in Public watch chains consume different Kinds of resources right so they consume Bandwidth because a block has to contain The transaction everyone has to download A block they download it over the Internet the internet costs money or People have limited bandwidth some People have lots of bandwidth some
People are sitting are sitting in a Starbucks or have a two 250k roaming Connection there is computational costs And there is also storage consumption Right so if for example you send money To a new account or you create a new Smart contract that is creating data That has to be stored and it’s creating Day and because smart contracts at least In their current form basically stick Around forever and accounts basically Stick around forever it’s creating Storage costs that must be incurred not Just by the nodes that exist today but Also by all nodes that are processing The block chain at any point for going Forever into the future so this is Probably one of the major incentive Misalignment issues in block chains that Exists today Right you have this ability to fairly Cheaply pay a one-time cost to create This bit this object that has to be Stored by people going forward forever There’s other issues too so first of all Storage is underpriced second feet Transaction fees tend to be extremely Volatile day to day right someday the Etherium try gas price they could get You in as one way some days it goes up To 100 gray some days it’s in the middle But the social cost of storage is not is Not that volatile right the cost of Everyone storing your file doesn’t
Bounce up and down by a factor of 80 Every week also there’s no there’s not Enough incentive to clear storage There’s no incentive to queer storage Earlier instead of clearing storage Later and there’s incentive to create Weird second layer markets like gasp Token so there’s a lot of in efficiency As in Markets as they exist today right so Here’s one possible solution ongoing Storage fees so basically the idea is That instead of making storage be a One-time cost that has to be paid in gas Storage would be an ongoing cost that Every single accounts would have to pay Per block for a denominated in ether for Every single byte that it is storing you Have a smart contract your contra your Smart contracts code and storage takes Up seven kilobytes well you have to pay Whatever the storage fee is times 7,000 Every block so what this basically does Is it aligns incentives better because First of all it means that storing if You store something that everyone has to See pal or if you publish something that Everyone has to keep storing forever Then everyone has to keep paying for or You have to keep paying for it forever If you’re not willing to keep it for it At some point then the object eventually Gets deleted automatically when the Accounts that’s when the account runs
Out of money and no one has has topped Up at storage fees now there’s a Trade-off like basically is Ana constant Or can end change if n is a constant you Have more fee predictability if n can Change you can have more storage size Predictability so there’s trade-offs Very similar to the trade-offs that Exist in the end kind of shorter term of Blocking inclusion markets and this Stuff can be studied we can start Looking at what the social cost is is The social cost more linear is the Social cost less linear what does the Social cost curve look like we don’t This is stuff we need to think about More right so this is now ongoing Storage fees have been a fairly Controversial issue and one of the Reasons why is because they do make the Developer experience more difficult in a Bunch of ways now one of them is for Example what if you build an application And that application depends on some Contracts and then that contract goes Bankrupt because it didn’t pay enough Storage fees what do you do how a lot of Contracts written today allow anyone to Perform some operation in that contract That increases that contract storage Size in this kind of model this would no Longer work because the contract Basically that would allow other people To greif the
Tracked by ballooning and storage size And causing its rent its rents to go so High that the college no one will be Able to afford it anymore Third question if there’s some contract Which is a public good that provides a Little bit of value to a very large set Of users like a software library who Pays for its upkeep so there are Challenges One interesting mitigation is Hibernation so basically if a contract Can’t pay storage fees anymore Instead of being deleted permanently it Gets hibernated it gets removed from the Active State and it gets put into the History and it’s basically is just Sitting there and while it’s in its Hibernated form no one can interact with It but if you really wants to interact With it you can basically supply proofs And you can revive the contract right You can supply a pointer that says here Is the last time the contract was Hibernated here is what the contracts Internal state was when it was Hibernated then here is a proof that Says the contract was not woken before And now I’m going to wake it and this Sort of resets the contracts to that Particular state so there is one kind of Attack that you have to watch out for Where you basically kind of wake a Contract twice in response and the
Second time you wake at you points to in Older time that that the contract wants A sweep instead of a newer time but There are ways to basically mitigate This kind of problem Right so basically this is another kind Of modification that can be made to Improve transaction fee markets so There’s still a lot of stuff here to Kind of implement to think about in Terms of what’s the right way to Implement these kinds of schemes and There’s still a lot of further research Needed but again the point here is right That aside from the the research into Technical improvements like proof of Steak like scalability and like privacy Improvements as your knowledge proofs There are a lot of these improvements That can be made on the economic layer In order to basically improve the Blockchains efficiency make the make Blockchains Easier as a user with the and basically By providing better incentives so that Users stop imposing such a large social Cost on each other And this is something that you know we Have thought about a lot and we really Need to be a need to be thinking about More in does the sort of a lot of Attention so thank you [Applause]