[bitcoin-dev] Block size: It's economics & user preparation & moral hazard

All, Following the guiding WP principle of Assume Good Faith, I've been trying to boil down the essence of the message following Scaling Bitcoin. There are key bitcoin issues that remain outstanding and pressing, that are* orthogonal to LN & SW*. I create multiple proposals and try multiple angles because of a few, notable systemic economic and analysis issues - multiple tries at solving the same problems. Why do I do what I do -- Why not try to reboot... just list those problems? Definitions: FE - "Fee Event", the condition where main chain MSG_BLOCK is 95+% to hard limit for 7 or more days in row, "blocks generally full" This can also be induced by a miner squeeze (collective soft limit reduction). Service - a view of bitcoin as a decentralized, faceless, multi-celled, amorphous automaton cloud, that provides services in exchange for payment Users - total [current | future] set of economic actors that pay money to the Service, and receive value (figuratively or literally) in return Block Size - This is short hand for MAX_BLOCK_SIZE, the hard limit that requires, today, a hard fork to increase (excl. extension blocks etc.) Guiding Principle: Keep the Service alive, secure, decentralized, and censorship resistant for as many Users as possible. Observations on block size (shorthand for MAX_BLOCK_SIZE as noted above): This is economically modeled as a supply limited resource over time. On average, 1M capacity is available every 10 minutes, with variance. Observations on Users, block size and modern bidding process: A supermajority of hashpower currently evaluates for block inclusion based, first-pass, on tx-fee/KB. Good. The Service is therefore responsive to the free market and some classes of DoS. Good. Recent mempool changes float relay fee, making the Service more responsive to fast moving markets and DoS's. Good progress. Service provided to Users can be modeled at the bandwidth resource level as bidding for position in a virtual priority queue, where up-to-1M bursts are cleared every 10 min (on avg etc.). Not a perfectly fixed supply, definitionally, but constrained within a fixed range. Observations on the state of today's fee market: On average, blocks are not full. Economically, this means that fees trend towards zero, due to theoretically unlimited supply at <1M levels. Of course, fees are not zero. The network relay anti-flood limits serve as an average lower limit for most transactions (excl direct-to-miner). Wallet software also introduces fee variance in interesting ways. All this fee activity is range-bound on the low end. Let the current set of Users + transaction fee market behavior be TFM (today's fee market). Let the post-Fee-Event set of Users + transaction fee market behavior be FFM (future fee market). *Key observation: A Bitcoin Fee Event (see def. at top) is an Economic Change Event.* An Economic Change Event is a period of market chaos, where large changes to prices and sets of economic actors occurs over a short time period. A Fee Event is a notable Economic Change Event, where a realistic projection forsees higher fee/KB on average, pricing some economic actors (bitcoin projects and businesses) out of the system. *It is a major change to how current Users experience and pay for the Service*, state change from TFM to FFM. The game theory bidding behavior is different for a mostly-empty resource versus a usually-full resource. Prices are different. Profitable business models are different. Users (the set of economic actors on the network) are different. Observation: Contentious hard fork is an Economic Change Event. Similarly, a fork that partitions economic actors for an extended period or permanently is also an Economic Change Event, shuffling prices and economic actors as the Service dynamically readjusts on both sides of the partition, and Users-A and Users-B populations change their behavior. Short-Term Problem #1: No-action on block size increase leads to an Economic Change Event. Failure to increase block size is not obviously-conservative, it is a conscious choice, electing for one economic state and set of actors and prices over another. Choosing FFM over TFM. *It is rational to reason that maintaining TFM is more conservative* than enduring an Economic Change Event from TFM to FFM. *It is rational to reason that maintaining similar prices and economic actors is less disruptive.* Failure to increase block size will lead to a Fee Event sooner rather than later. Failure to plan ahead for a Fee Event will lead to greater market chaos and User pain. Short-Term Problem #2: Some Developers wish to accelerate the Fee Event, and a veto can accomplish that. In the current developer dynamics, 1-2 key developers can and very likely would veto any block size increase. Thus a veto (e.g. no-action) can lead to a Fee Event, which leads to pricing actors out of the system. A block size veto wields outsize economic power, because it can accelerate ECE. *This is an extreme moral hazard: A few Bitcoin Core committers can veto increase and thereby reshape bitcoin economics, price some businesses out of the system. It is less of a moral hazard to keep the current economics [by raising block size] and not exercise such power.* Short-Term Problem #3: User communication and preparation The current trajectory of no-block-size-increase can lead to short time market chaos, actor chaos, businesses no longer viable. In a $6.6B economy, it is criminal to let the Service undergo an ECE without warning users loudly, months in advance: "Dear users, ECE has accelerated potential due to developers preferring a transition from TFM to FFM." As stated, *it is a conscious choice to change bitcoin economics and User experience* if block size is not advanced with a healthy buffer above actual average traffic levels. *Raising block size today, at TFM, produces a smaller fee market delta.* Further, wallet software User experience is very, very poor in a hyper-competitive fee market. (This can and will be improved; that's just the state of things today) Short-Term Problem #4: User/Dev disconnect: Large mass of users wishes to push Fee Event into future Almost all bitcoin businesses, exchanges and miners have stated they want a block size increase. See the many media articles, BIP 101 letter, and wiki e.g. https://en.bitcoin.it/wiki/Block_size_limit_controversy#Entities_positions The current apparent-veto on block size increase runs contra to the desires of many Users. (note language: "many", not claiming "all") *It is a valid and rational economic choice to subsidize the system with lower fees in the beginning*. Many miners, for example, openly state they prefer long term system growth over maximizing tiny amounts of current day income. Vetoing a block size increase has the effect of eliminating that economic choice as an option. It is difficult to measure Users; projecting beyond "businesses and miners" is near impossible. Without exaggeration, I have never seen this much disconnect between user wishes and dev outcomes in 20+ years of open source. Short-Term Problem #5: Higher Service prices can negatively impact system security Bitcoin depends on a virtuous cycle of users boosting and maintaining bitcoin's network effect, incentivizing miners, increasing security. Higher prices that reduce bitcoin's user count and network effect can have the opposite impact. (Obviously this is a dynamic system, users and miners react to higher prices... including actions that then reduce the price) Short-Term Problem #6: Post-Fee-Event market reboot problem + general lack of planning Game it out: Blocks are now full (FFM). Block size kept at 1M. How full is too full - who and what dictates when 1M should be increased? The same question remains, yet now economic governance issues are compounded: In FFM, the fees are very tightly bound to the upper bound of the block size. In TFM, fees are much less sensitive to the upper bound of block size. Changing block size, when blocks are full, has a more dramatic effect on the market - suddenly new supply is magically brought online, and a minor Economic Change Event occurs. More generally, the post-Fee-Event next step has not been agreed upon. Is it flexcap? This key "step #2" is just barely at whiteboard stage. Short-Term Problem #7: Fee Event timing is unpredictable. As block size free space gets tighter - that is the trend - and block size remains at 1M, Users are ever more likely to hit an Economic Change Event. It could happen in the next 2-6 months. Today, Users and wallets are not prepared. It is also understandably a very touchy subject to say "your business or use case might get priced out of bitcoin" But it is even worse to let worse let Users run into a Fee Event without informing the market that the block size will remain at 1M. Markets function best with maximum knowledge - when they are informed well in advance of market shifting news and events, giving economic actors time to prepare. Short-Term Problem #8: Very little testing, data, effort put into blocks-mostly-full economics *We only know for certain that blocks-mostly-not-full works.* We do not know that changing to blocks-mostly-full works. Changing to a new economic system includes boatloads of risk. Very little data has been forthcoming from any party on what FFM might look like, following a Fee Event. Observation: In the long run, it is assumed we need a "healthy fee market" Yes, absolutely. In the long run, bitcoin was intended to be supported by transaction fees and not the minting of new supply, and the design of the system is to slowly wean Users off new supply and onto transaction fees for supporting the Service. While agreeing with the goal, it must be acknowledge that this is a vague and untested goal with many open economic questions -- more of a hope, really. It is more conservative to preserve current economics than to change to a new system with new economics and no notion of what-comes-next (flexcap?) in terms of system security, healthy sustainable market levels, and impact of changes during and following an ECE. Core recommendations: 1) "Short term bump" Block size increase to maintain buffer. I've no special BIP preference. This avoids moral hazard and avoids a major Economic Change Event, as well many other risks. 2) If block size stays at 1M, the Bitcoin Core developer team should sign a collective note stating their desire to transition to a new economic policy, that of "healthy fee market" and strongly urge users to examine their fee policies, wallet software, transaction volumes and other possible User impacting outcomes. 3) Even if can is kicked down the road, Fee Event will come eventually. Direct research, testing and simulations into the economics and user impact side of the equation. Research and experiment with pay-for-burst (pay to future miner), flexcap and other solutions ASAP. The worst possible outcome is letting the ecosystem randomly drift into the first Fee Event without openly stating the new economic policy choices and consequences. The simple fact is *inaction* on this supply-limited resource, block size, will change bitcoin to a new economic shape and with different economic actors, selecting some and not others. It is better to kick the can and gather crucial field data, because next-step (FFM) is very much not fleshed out. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20151216/024095fb/attachment-0001.html>