public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: jl2012@xbt.hk
To: Btc Drak <btcdrak@gmail.com>
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Consensus based block size retargeting algorithm (draft)
Date: Sat, 29 Aug 2015 05:38:17 -0400	[thread overview]
Message-ID: <a04470a99e83f521a6a778e0921855ee@xbt.hk> (raw)
In-Reply-To: <CADJgMzvkBDBD9_=53kaD_6_jWH=vbWOnNwOKK5GOz8Du-F08dQ@mail.gmail.com>

We need some game theory experts to analyse this but I see there are 3 
major problems:

1. Tragedy of the commons: Some miners have to scarify their income to 
increase the block size, and all miners will share the beneficial 
outcome of the increase. All miners would like to be free riders.

2. Promote the formation of mining cartel: miners have to make sure that 
their vote for increase is supported by at least 50% of miners, or they 
will lose income for nothing. A miner also needs to make sure that he is 
not voting "excessively" (in terms of size and vote count), as the 
excessive part will never be counted due to the use of median. So 
basically you will either have exactly 1009 miners voting for the same 
size increase in a cycle, or have no vote for increase at all. That will 
require a lot of offline negotiations. Such cartel may work ONLY if 
mining is highly centralized, and miners trust each other. Also, there 
is no mechanism to punish those who betray the cartel.

3. Imbalance of power: it is costly to increase the size, while totally 
free to decrease the size


Btc Drak via bitcoin-dev 於 2015-08-28 16:28 寫到:
> I have received a lot of feedback on the original gist[1], reddit[2],
> ML and IRC and have reworked the text somewhat.
> 
> I also request the BIP maintainer for a BIP number assignment
> 
> [1] https://gist.github.com/btcdrak/1c3a323100a912b605b5
> [2]
> https://www.reddit.com/r/Bitcoin/comments/3ibia0/bipxx_consensus_based_block_size_retargeting/
> 
> Pull request: https://github.com/bitcoin/bips/pull/187
> 
> <pre>
>   BIP: XX
>   Title: Consensus based block size retargeting algorithm
>   Author: BtcDrak <btcdrak@gmail.com>
>   Status: Draft
>   Type: Standards Track
>   Created: 2015-08-21
> </pre>
> 
> ==Abstract==
> 
> A method of altering the maximum allowed block size of the Bitcoin 
> protocol
> using a consensus based approach.
> 
> ==Motivation==
> 
> There is a belief that Bitcoin cannot easily respond to raising the
> blocksize limit if popularity was to suddenly increase due to a mass 
> adoption
> curve, because co-ordinating a hard fork takes considerable time, and 
> being
> unable to respond in a timely manner would irreparably harm the 
> credibility of
> bitcoin.
> 
> Additionally, predetermined block size increases are problematic 
> because they
> attempt to predict the future, and if too large could have unintended
> consequences like damaging the possibility for a fee market to develop
> as block subsidy decreases substantially over the next 9 years; 
> introducing
> or exacerbating mining attack vectors; or somehow affect the network in 
> unknown
> or unpredicted ways. Since fixed changes are hard to deploy, the damage 
> could be
> extensive.
> 
> Dynamic block size adjustments also suffer from the potential to be 
> gamed by the
> larger hash power.
> 
> Free voting as suggested by BIP100 allows miners to sell their votes 
> out of band
> at no risk, and enable the sponsor the ability to manipulate the 
> blocksize.
> It also provides a cost free method or the larger pools to vote in ways 
> to
> manipulate the blocksize such to disadvantage or attack smaller pools.
> 
> 
> ==Rationale==
> 
> By introducing a cost to increase the block size ensures the mining 
> community
> will collude to increase it only when there is a clear necessity, and 
> reduce it
> when it is unnecessary. Larger miners cannot force their wishes so 
> easily
> because not only will they have to pay extra a difficulty target, then 
> can be
> downvoted at no cost by the objecting hash power.
> 
> Using difficulty as a penalty is better than a fixed cost in bitcoins 
> because it
> is less predictable.
> 
> 
> ==Specification==
> 
> The initial block size limit shall be 1MB.
> 
> Each time a miner creates a block, they may vote to increase or 
> decrease the
> blocksize by a maximum of 10% of the current block size limit. These 
> votes will
> be used to recalculate the new block size limit every 2016 blocks.
> 
> Votes are cast using the block's coinbase field.
> 
> The first 4 bytes of the coinbase field shall be repurposed for voting 
> as an
> unsigned long integer which will be the block size in bytes.
> 
> If a miner votes for an increase, the block hash must meet a difficulty 
> target
> which is proportionally larger than the standard difficulty target 
> based on the
> percentage increase they voted for.
> 
> Votes proposing decreasing the block size limit do not need to meet a 
> higher
> difficulty target.
> 
> Miners can vote for no change by voting for the current block size.
> 
> For blocks to be valid the blockhash must meet the required difficulty 
> target
> for the vote otherwise the block is invalid and will be rejected.
> 
> Every 2016 blocks, the block size limit will be recalculated by the 
> median of
> all votes in the last 2016 blocks. This will redefine the block size 
> limit for
> the next 2016 blocks.
> 
> Blocks that are larger than the calculated base block size limit are 
> invalid and
> will be rejected.
> 
> The base block size limit may not reduce below 1MB.
> 
> 
> ==Acknowledgements==
> 
> This proposal is based on ideas and concepts derived from the writings 
> of
> Meni Rosenfeld and Gregory Maxwell.
> 
> 
> ==Copyright==
> 
> This work is placed in the public domain.
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev



      parent reply	other threads:[~2015-08-29  9:39 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-21 22:22 [bitcoin-dev] Consensus based block size retargeting algorithm (draft) Btc Drak
2015-08-21 23:17 ` Paul Sztorc
2015-08-22  0:06 ` Ahmed Zsales
2015-08-28 20:28   ` Btc Drak
2015-08-28 21:15     ` Matt Whitlock
2015-08-28 22:24       ` Gavin
2015-08-28 23:35         ` Chris Pacia
2015-08-28 23:38           ` Mark Friedenbach
2015-08-28 23:42             ` Matt Whitlock
2015-08-28 23:42             ` Chris Pacia
2015-08-29  0:00             ` Jorge Timón
2015-08-29  0:29               ` Mark Friedenbach
2015-08-29 10:15                 ` Btc Drak
2015-08-29 17:51                   ` Eric Lombrozo
2015-08-29 19:13                     ` Natanael
2015-08-29 19:03                   ` jl2012
2015-08-29 20:41                   ` Jorge Timón
2015-08-30 17:13                     ` jl2012
2015-08-30 18:56                       ` Jorge Timón
2015-08-31 18:50                         ` jl2012
2015-08-28 23:46           ` Btc Drak
2015-08-29  9:15             ` Elliot Olds
2015-08-28 23:38         ` Btc Drak
2015-08-28 23:36       ` Btc Drak
2015-08-28 23:44         ` Jorge Timón
2015-08-29  9:38     ` jl2012 [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a04470a99e83f521a6a778e0921855ee@xbt.hk \
    --to=jl2012@xbt.hk \
    --cc=bitcoin-dev@lists.linuxfoundation.org \
    --cc=btcdrak@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox