BIP 0100: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Taras (talk | contribs)
Created page with "{{infobox BIP |name=BIP 0100 |longtitle=Making Decentralized Economic Policy |type=Standards Track |number=100 |author=Jeff Garzik |status=Draft |proposition=June 2015 }}'..."
 
Taras (talk | contribs)
No edit summary
Line 1: Line 1:
{{infobox BIP
{{infobox BIP
|name=BIP 0100
|name=BIP 0100
|longtitle=Making Decentralized Economic Policy
|longtitle=Block v4, floating block size hard limit
|type=Standards Track
|type=Standards Track
|number=100
|number=100
|author=[[Jeff Garzik]]
|author=[[Jeff Garzik]]
|status=Draft
|status=Draft
|proposition=June 2015
|proposition=June 11, 2015
}}'''BIP 0100''' is a [[Bitcoin Improvement Proposal]] for increasing the maximum block size.
}}'''BIP 0100''' is a [[Bitcoin Improvement Proposal]] for increasing the maximum block size.


{{BIP begin}}
{{BIP begin}}
O
<pre>
n
  BIP: 100
b
  Title: Block v4, floating block size hard limit
a
  Author: Jeff Garzik <jgarzik@gmail.com>
l
  Status: Draft
a
  Type: Standards Track
n
  Created: 2015-06-11
c
</pre>
e
==Abstract==
,
 
i
Replace static 1M block size hard limit with a hard limit that floats between 1M and 32M.
n
 
c
==Motivation==
r
 
e
# Long term, wean the bitcoin protocol away from any block size limit; let the free market establish a natural size limit equilibrium.
a
# Eliminate 1M limit as impediment to adoption.
s
# Execute a hard fork network upgrade within safety rails, gathering data and experience for future upgrades.
i
# Contain checks-and-balances that users must opt into, to enable system activation and growth.
n
# Validated growth: a large majority (80%) is required to change the value.
g
 
b
==Specification==
l
 
o
# Replace static 1M block size hard limit with a floating limit ("hardLimit").
c
# hardLimit floats within the range 1-32M, inclusive.
k
# Initial value of hardLimit is 1M, preserving current system.
s
# Changing hardLimit is accomplished by encoding a proposed value within a block's coinbase scriptSig.
i
## Votes refer to a byte value, encoded within the pattern "/B\d+[M]{0,1}/"  Uppercase suffix 'M' applies a 1,000,000x multiplier. Example:  /B8000000/ or /B8M/ votes for a 8,000,000-byte hardLimit.
z
## A new hardLimit is calculated at each difficult adjustment period (2016 blocks), and applies to the next 2016 blocks.
e
## Calculation:
l
### Absent/invalid votes are counted as votes for the current hardLimit. Out of range votes are counted as the nearest in-range value.
i
### Votes are limited to +/- 20% of the current hardLimit.
m
### Sort the votes from the previous 12,000 blocks from lowest to highest.
i
### The raise value is defined as a vote for 2400th highest block (20th percentile).
t
### The lower value is defined as a vote for 9600th highest block (80th percentile).
a
### If the raise value is higher than current hardLimit, the new limit becomes the raise value.
b
### If the lower value is lower than current hardLimit, the new limit becomes the lower value.
o
### Otherwise, hardLimit is unchanged.
v
# 75% rule: If 9,000 of the last 12,000 blocks are version 4 or greater, reject invalid version 4 blocks. (testnet4: 501 of last 1000)
e
# 95% rule ("Point of no return"): If 11,400 of the last 12,000 blocks are version 4 or greater, reject all version <= 3 blocks. (testnet4: 750 of last 1000)
1
# Block version number is calculated after masking out high 16 bits (final bit count TBD by versionBits outcome).
M
 
B
==Backward compatibility==
i
 
s
All older clients are not compatible with this change. The first block larger than 1M will create a network partition excluding not-upgraded network nodes and miners.
n
e
e
d
e
d
.
I
t
i
s
c
l
e
a
r
t
h
a
t
t
h
e
c
u
r
r
e
n
t
s
p
e
e
d
l
i
m
i
t
,
1
,
0
0
0
,
0
0
0
b
y
t
e
s
,
i
s
t
o
o
l
o
w
a
n
d
w
i
l
l
r
e
t
a
r
d
g
r
o
w
t
h
a
n
d
l
e
a
d
t
o
u
s
e
r
p
a
i
n
a
n
d
e
x
p
e
n
s
e
i
f
n
o
t
i
n
c
r
e
a
s
e
d
.
W
h
a
t
i
s
u
n
c
l
e
a
r
a
n
d
u
n
d
e
r
r
e
s
e
a
r
c
h
e
d
i
s
t
h
e
o
p
p
o
s
i
t
e
s
i
d
e
o
f
t
h
e
e
q
u
a
t
i
o
n
:
H
o
w
m
u
c
h
i
s
t
o
o
m
u
c
h
?
S
o
m
e
C
h
i
n
e
s
e
p
o
o
l
s
a
n
d
e
x
c
h
a
n
g
e
s
,
f
o
r
e
x
a
m
p
l
e
,
w
a
r
n
t
h
e
y
w
i
l
l
b
e
a
t
a
d
i
s
a
d
v
a
n
t
a
g
e
a
n
d
u
l
t
i
m
a
t
e
l
y
p
u
s
h
e
d
o
f
f
t
h
e
n
e
t
w
o
r
k
a
t
t
h
e
o
r
i
g
i
n
a
l
l
y
p
r
o
p
o
s
e
d
2
0
M
B
s
i
z
e
.
F
u
r
t
h
e
r
,
i
t
i
s
i
m
p
o
r
t
a
n
t
t
o
s
e
p
a
r
a
t
e
t
h
e
h
a
r
d
f
o
r
k
r
i
s
k
a
w
a
y
f
r
o
m
t
h
e
b
l
o
c
k
s
i
z
e
c
h
a
n
g
e
e
v
e
n
t
s
a
s
m
u
c
h
a
s
p
o
s
s
i
b
l
e
.
I
t
i
s
a
l
s
o
i
m
p
o
r
t
a
n
t
t
o
p
l
a
n
a
h
e
a
d
f
o
r
c
h
a
n
g
e
...
y
e
t
n
o
t
p
l
a
n
t
o
o
f
a
r
a
h
e
a
d
.
B
e
f
l
e
x
i
b
l
e
a
n
d
b
u
i
l
d
a
f
r
a
m
e
w
o
r
k
f
o
r
r
a
p
i
d
i
t
e
r
a
t
i
o
n
a
s
i
n
f
o
r
m
e
d
b
y
u
s
e
r
i
n
p
u
t
,
f
i
e
l
d
e
x
p
e
r
i
e
n
c
e
a
n
d
m
a
r
k
e
t
s
i
g
n
a
l
s
.
P
r
o
t
o
c
o
l
c
h
a
n
g
e
s
p
r
o
p
o
s
e
d
:
1
.
H
a
r
d
f
o
r
k
,
t
o
2
.
R
e
m
o
v
e
s
t
a
t
i
c
1
M
B
b
l
o
c
k
s
i
z
e
l
i
m
i
t
.
3
.
S
i
m
u
l
t
a
n
e
o
u
s
l
y
,
a
d
d
a
n
e
w
f
l
o
a
t
i
n
g
b
l
o
c
k
s
i
z
e
l
i
m
i
t
,
s
e
t
t
o
1
M
B
.
4
.
T
h
e
h
i
s
t
o
r
i
c
a
l
3
2
M
B
l
i
m
i
t
r
e
m
a
i
n
s
.
5
.
S
c
h
e
d
u
l
e
t
h
e
h
a
r
d
f
o
r
k
o
n
t
e
s
t
n
e
t
f
o
r
S
e
p
t
e
m
b
e
r
1
,
2
0
1
5
.
6
.
S
c
h
e
d
u
l
e
t
h
e
h
a
r
d
f
o
r
k
o
n
b
i
t
c
o
i
n
m
a
i
n
c
h
a
i
n
f
o
r
J
a
n
u
a
r
y
1
1
,
2
0
1
6
.
7
.
C
h
a
n
g
i
n
g
t
h
e
1
M
B
l
i
m
i
t
i
s
a
c
c
o
m
p
l
i
s
h
e
d
i
n
a
m
a
n
n
e
r
s
i
m
i
l
a
r
t
o
B
I
P
3
4
,
a
o
n
e
w
a
y
l
o
c
k
i
n
u
p
g
r
a
d
e
w
i
t
h
a
1
2
,
0
0
0
b
l
o
c
k
(
3
m
o
n
t
h
)
t
h
r
e
s
h
o
l
d
b
y
9
0
%
o
f
t
h
e
b
l
o
c
k
s
.
8
.
L
i
m
i
t
i
n
c
r
e
a
s
e
o
r
d
e
c
r
e
a
s
e
m
a
y
n
o
t
e
x
c
e
e
d
2
x
i
n
a
n
y
o
n
e
s
t
e
p
.
9
.
M
i
n
e
r
s
v
o
t
e
b
y
e
n
c
o
d
i
n
g
B
V
+
B
l
o
c
k
S
i
z
e
R
e
q
u
e
s
t
V
a
l
u
e
i
n
t
o
c
o
i
n
b
a
s
e
s
c
r
i
p
t
S
i
g
,
e
.
g
.
/
B
V
8
0
0
0
0
0
0
/
t
o
v
o
t
e
f
o
r
8
M
.
V
o
t
e
s
a
r
e
e
v
a
l
u
a
t
e
d
b
y
d
r
o
p
p
i
n
g
b
o
t
t
o
m
2
0
%
a
n
d
t
o
p
2
0
%
,
a
n
d
t
h
e
n
t
h
e
m
o
s
t
c
o
m
m
o
n
f
l
o
o
r
(
m
i
n
i
m
u
m
)
i
s
c
h
o
s
e
n
.
T
h
i
s
c
r
e
a
t
e
s
a
f
r
a
m
e
w
o
r
k
w
h
e
r
e
b
y
t
h
e
n
e
t
w
o
r
k
m
a
y
i
n
c
r
e
a
s
e
t
h
e
b
l
o
c
k
s
i
z
e
b
y
c
o
n
s
e
n
s
u
s
,
a
l
o
w
e
r
a
n
d
l
e
s
s
p
o
l
i
t
i
c
a
l
l
y
r
i
s
k
y
h
u
r
d
l
e
t
h
a
n
h
a
r
d
f
o
r
k
.
S
i
z
e
s
b
e
y
o
n
d
1
M
B
m
a
y
b
e
c
h
o
s
e
n
w
i
t
h
o
u
t
a
f
l
a
g
d
a
y
n
e
t
w
o
r
k
u
p
g
r
a
d
e
.
A
s
m
a
l
l
s
i
z
e
i
n
c
r
e
m
e
n
t
l
i
m
i
t
s
t
h
e
p
o
t
e
n
t
i
a
l
f
o
r
u
n
e
x
p
e
c
t
e
d
h
a
r
m
t
o
b
i
t
c
o
i
n
n
e
t
w
o
r
k
s
e
c
u
r
i
t
y
,
a
n
d
g
i
v
e
s
t
h
e
n
e
t
w
o
r
k
t
i
m
e
t
o
t
e
s
t
,
p
r
e
p
a
r
e
a
n
d
a
d
j
u
s
t
o
v
e
r
a
l
l
b
e
h
a
v
i
o
r
.
O
t
h
e
r
,
m
o
r
e
c
o
m
p
l
e
x
s
o
l
u
t
i
o
n
s
s
u
c
h
a
s
e
x
t
e
n
s
i
o
n
b
l
o
c
k
s
a
s
p
e
e
d
l
i
m
i
t
w
o
r
k
a
r
o
u
n
d
a
r
e
r
e
j
e
c
t
e
d
i
n
f
a
v
o
r
o
f
t
h
i
s
o
n
e
t
i
m
e
,
h
i
g
h
l
y
s
i
m
p
l
e
c
h
a
n
g
e
t
h
a
t
g
r
e
a
t
l
y
r
e
d
u
c
e
s
t
h
e
n
e
e
d
f
o
r
f
u
t
u
r
e
h
a
r
d
f
o
r
k
s
i
n
t
h
i
s
a
r
e
a
.
T
h
i
s
B
I
P
a
c
c
o
m
p
l
i
s
h
e
s
s
e
v
e
r
a
l
g
o
a
l
s
:
G
1
:
D
e
m
o
n
s
t
r
a
t
e
s
c
h
a
n
g
e
i
s
p
o
s
s
i
b
l
e
;
t
h
e
b
i
t
c
o
i
n
p
r
o
t
o
c
o
l
c
a
n
b
e
u
p
g
r
a
d
e
d
.
G
2
:
E
l
i
m
i
n
a
t
e
1
M
B
l
i
m
i
t
a
s
i
m
p
e
d
i
m
e
n
t
t
o
a
d
o
p
t
i
o
n
.
G
3
:
G
e
t
h
a
r
d
f
o
r
k
r
i
s
k
o
u
t
o
f
t
h
e
w
a
y
e
a
r
l
y
.
G
4
:
K
I
S
S
s
o
l
u
t
i
o
n
,
i
n
t
e
r
m
s
o
f
c
o
d
e
c
h
a
n
g
e
s
.
G
5
:
U
p
g
r
a
d
e
p
a
t
h
,
y
e
t
c
o
n
s
t
r
a
i
n
e
d
u
n
t
i
l
p
r
o
b
l
e
m
&
s
o
l
u
t
i
o
n
b
e
t
t
e
r
u
n
d
e
r
s
t
o
o
d
.
T
h
i
s
i
n
t
r
o
d
u
c
e
s
f
r
i
c
t
i
o
n
i
n
t
o
t
h
e
b
l
o
c
k
s
i
z
e
i
n
c
r
e
a
s
e
p
r
o
c
e
s
s
m
a
k
i
n
g
i
t
c
h
a
n
g
e
a
b
l
e
,
y
e
t
g
i
v
i
n
g
p
a
r
t
i
c
i
p
a
n
t
s
i
n
t
h
e
s
y
s
t
e
m
s
u
f
f
i
c
i
e
n
t
t
i
m
e
t
o
o
b
s
e
r
v
e
s
y
s
t
e
m
b
e
h
a
v
i
o
r
a
n
d
c
h
a
n
g
e
c
o
u
r
s
e
.
U
l
t
i
m
a
t
e
l
y
m
o
v
i
n
g
t
o
w
a
r
d
s
a
s
y
s
t
e
m
w
h
e
r
e
t
h
e
m
a
r
k
e
t
d
e
c
i
d
e
s
t
h
e
b
e
s
t
b
l
o
c
k
s
i
z
e
.
U
s
e
r
s
n
e
t
w
o
r
k
n
o
d
e
o
p
e
r
a
t
o
r
s
e
x
e
r
c
i
s
e
t
h
e
i
r
v
o
i
c
e
t
w
i
c
e
:
O
n
e
h
a
r
d
f
o
r
k
a
t
t
h
e
i
n
t
r
o
d
u
c
t
i
o
n
o
f
B
I
P
1
0
0
,
a
n
d
a
2
n
d
h
a
r
d
f
o
r
k
a
t
3
2
M
B
,
a
s
s
u
m
i
n
g
u
s
e
r
s
c
h
o
o
s
e
t
o
s
c
a
l
e
t
h
a
t
h
i
g
h
.
T
h
e
3
2
M
B
h
a
r
d
f
o
r
k
i
s
l
a
r
g
e
l
y
c
o
i
n
c
i
d
e
n
t
a
l
a
w
h
o
l
e
n
e
t
w
o
r
k
u
p
g
r
a
d
e
a
t
3
2
M
B
w
a
s
l
i
k
e
l
y
n
e
e
d
e
d
a
n
y
w
a
y
,
f
o
r
h
i
s
t
o
r
i
c
a
l
r
e
a
s
o
n
s
u
n
r
e
l
a
t
e
d
t
o
t
h
i
s
p
r
o
p
o
s
a
l
.
{{end}}
{{end}}
{{BIPs}}
{{BIPs}}

Revision as of 16:37, 3 September 2015

BIP 0100
Long titleBlock v4, floating block size hard limit
TypeStandards Track
BIPN100
Author(s)Jeff Garzik
StatusDraft

History

PropositionJune 11, 2015

BIP 0100 is a Bitcoin Improvement Proposal for increasing the maximum block size.

Template:BIP begin

  BIP: 100
  Title: Block v4, floating block size hard limit
  Author: Jeff Garzik <jgarzik@gmail.com>
  Status: Draft
  Type: Standards Track
  Created: 2015-06-11

Abstract

Replace static 1M block size hard limit with a hard limit that floats between 1M and 32M.

Motivation

  1. Long term, wean the bitcoin protocol away from any block size limit; let the free market establish a natural size limit equilibrium.
  2. Eliminate 1M limit as impediment to adoption.
  3. Execute a hard fork network upgrade within safety rails, gathering data and experience for future upgrades.
  4. Contain checks-and-balances that users must opt into, to enable system activation and growth.
  5. Validated growth: a large majority (80%) is required to change the value.

Specification

  1. Replace static 1M block size hard limit with a floating limit ("hardLimit").
  2. hardLimit floats within the range 1-32M, inclusive.
  3. Initial value of hardLimit is 1M, preserving current system.
  4. Changing hardLimit is accomplished by encoding a proposed value within a block's coinbase scriptSig.
    1. Votes refer to a byte value, encoded within the pattern "/B\d+[M]{0,1}/" Uppercase suffix 'M' applies a 1,000,000x multiplier. Example: /B8000000/ or /B8M/ votes for a 8,000,000-byte hardLimit.
    2. A new hardLimit is calculated at each difficult adjustment period (2016 blocks), and applies to the next 2016 blocks.
    3. Calculation:
      1. Absent/invalid votes are counted as votes for the current hardLimit. Out of range votes are counted as the nearest in-range value.
      2. Votes are limited to +/- 20% of the current hardLimit.
      3. Sort the votes from the previous 12,000 blocks from lowest to highest.
      4. The raise value is defined as a vote for 2400th highest block (20th percentile).
      5. The lower value is defined as a vote for 9600th highest block (80th percentile).
      6. If the raise value is higher than current hardLimit, the new limit becomes the raise value.
      7. If the lower value is lower than current hardLimit, the new limit becomes the lower value.
      8. Otherwise, hardLimit is unchanged.
  5. 75% rule: If 9,000 of the last 12,000 blocks are version 4 or greater, reject invalid version 4 blocks. (testnet4: 501 of last 1000)
  6. 95% rule ("Point of no return"): If 11,400 of the last 12,000 blocks are version 4 or greater, reject all version <= 3 blocks. (testnet4: 750 of last 1000)
  7. Block version number is calculated after masking out high 16 bits (final bit count TBD by versionBits outcome).

Backward compatibility

All older clients are not compatible with this change. The first block larger than 1M will create a network partition excluding not-upgraded network nodes and miners.