public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [bitcoin-dev] Block size: It's economics & user preparation & moral hazard
@ 2015-12-16 14:53 Jeff Garzik
  2015-12-16 18:34 ` Pieter Wuille
  2015-12-16 18:36 ` jl2012
  0 siblings, 2 replies; 31+ messages in thread
From: Jeff Garzik @ 2015-12-16 14:53 UTC (permalink / raw)
  To: Bitcoin development mailing list

[-- Attachment #1: Type: text/plain, Size: 11528 bytes --]

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.

[-- Attachment #2: Type: text/html, Size: 18890 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2015-12-27  0:41 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-16 14:53 [bitcoin-dev] Block size: It's economics & user preparation & moral hazard Jeff Garzik
2015-12-16 18:34 ` Pieter Wuille
2015-12-16 21:08   ` Jeff Garzik
2015-12-16 21:11     ` Pieter Wuille
2015-12-17  2:06       ` Jameson Lopp
2015-12-17 16:58       ` Tier Nolan
2015-12-17 19:44         ` Peter Todd
2015-12-18  5:23           ` Jorge Timón
2015-12-18  9:44           ` Tier Nolan
2015-12-16 21:24     ` Jorge Timón
2015-12-16 21:36       ` Jeff Garzik
2015-12-18  5:11   ` Jeff Garzik
2015-12-18  7:56     ` Pieter Wuille
2015-12-18 10:13       ` sickpig
2015-12-18 15:48         ` Pieter Wuille
2015-12-19 19:04           ` Dave Scotese
     [not found]           ` <751DFAA9-9013-4C54-BC1E-5F7ECB7469CC@gmail.com>
2015-12-26 16:44             ` Pieter Wuille
2015-12-26 17:20               ` Jorge Timón
2015-12-26 22:55               ` Jonathan Toomim
2015-12-26 23:01                 ` Pieter Wuille
2015-12-26 23:07                   ` Jonathan Toomim
2015-12-26 23:16                     ` Pieter Wuille
2015-12-27  0:03                       ` Jonathan Toomim
2015-12-26 23:15                   ` Justus Ranvier
2015-12-27  0:13                     ` Bryan Bishop
2015-12-27  0:33                       ` Justus Ranvier
2015-12-18 13:56       ` Jeff Garzik
2015-12-23  6:26   ` Aaron Voisine
2015-12-16 18:36 ` jl2012
2015-12-16 22:27   ` Jeff Garzik
2015-12-17  6:12     ` Dave Scotese

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox