summaryrefslogtreecommitdiff
path: root/e6/09884ba48d81a048ffe4f79cdf5955be3569f9
blob: f30b48c7579a9684628a1623426946efe7c77701 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
Return-Path: <s7r@sky-ip.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 9E1DC4A6
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 10 Dec 2016 10:54:58 +0000 (UTC)
X-Greylist: delayed 00:09:57 by SQLgrey-1.7.6
Received: from ob3-5.mailhostbox.com (ob3-5.mailhostbox.com [162.222.225.27])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0A512AA
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 10 Dec 2016 10:54:57 +0000 (UTC)
Received: from [0.0.0.0] (unknown [85.248.227.163])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	(Authenticated sender: s7r@sky-ip.org)
	by outbound.mailhostbox.com (Postfix) with ESMTPSA id 66DFC3605A6
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Sat, 10 Dec 2016 10:44:56 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sky-ip.org;
	s=20110108; t=1481366697;
	bh=Or2YCZSiqq5/cURisZe38HsxGjp5d73uWRCkve7QoLo=;
	h=Reply-To:Subject:References:To:From:Date:In-Reply-To;
	b=QQrAsa2QJdxWumqS0ffT9nGa95gT/JnNWxX0Lz2heG2s7ZU4UnI/1Rpjw9vkJaG54
	fvu9pP4zWiGZ3HoIU0XuEWFKTsJRt/psswOP01j3F2YOvMiewkiObMOCYdPCJI7iK8
	8TL2GKNNKH5VKWBlg9WtNQD0ralhj3r4JDTkw85Y=
Reply-To: s7r@sky-ip.org
References: <CAGCNRJqdu7DMC+AMR4mYKRAYStRMKVGqbnjtEfmzcoeMij5u=A@mail.gmail.com>
To: bitcoin-dev@lists.linuxfoundation.org
From: s7r <s7r@sky-ip.org>
Message-ID: <c318f76d-0904-2e1b-453b-60179f8209bb@sky-ip.org>
Date: Sat, 10 Dec 2016 12:44:31 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101
	Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <CAGCNRJqdu7DMC+AMR4mYKRAYStRMKVGqbnjtEfmzcoeMij5u=A@mail.gmail.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature";
	boundary="sXN4M2s4cP9rl2XWXtHHqTwcH5wBGSBsb"
X-CMAE-Score: 0
X-CMAE-Analysis: v=2.1 cv=X4TyUDne c=1 sm=1 tr=0
	a=KZEOcXek7yD77x2Ny1m9bA==:117 a=KZEOcXek7yD77x2Ny1m9bA==:17
	a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10
	a=13zjGPudsaEWiJwPRgMA:9 a=WbPmnYzAfxEA:10 a=ZD1LatXdsedA5YiuTzAA:9
	a=XDmQNH17oUXyUaq5:21 a=BP2bf5HOJb8hXz_H:21 a=QEXdDO2ut3YA:10
	a=XwH0wNZq_OE5RA9xO0gA:9
X-Scanned-By: MIMEDefang 2.72 on 172.18.214.93
X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,URIBL_BLACK autolearn=no
	version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Subject: Re: [bitcoin-dev] Managing block size the same way we do difficulty
 (aka Block75)
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Dec 2016 10:54:58 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--sXN4M2s4cP9rl2XWXtHHqTwcH5wBGSBsb
Content-Type: multipart/mixed; boundary="DDBO1LD3sAfnerp2F8fmr9Jv3JmkLbIEL";
 protected-headers="v1"
From: s7r <s7r@sky-ip.org>
Reply-To: s7r@sky-ip.org
To: bitcoin-dev@lists.linuxfoundation.org
Message-ID: <c318f76d-0904-2e1b-453b-60179f8209bb@sky-ip.org>
Subject: Re: [bitcoin-dev] Managing block size the same way we do difficulty
 (aka Block75)
References: <CAGCNRJqdu7DMC+AMR4mYKRAYStRMKVGqbnjtEfmzcoeMij5u=A@mail.gmail.com>
In-Reply-To: <CAGCNRJqdu7DMC+AMR4mYKRAYStRMKVGqbnjtEfmzcoeMij5u=A@mail.gmail.com>

--DDBO1LD3sAfnerp2F8fmr9Jv3JmkLbIEL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

t. khan via bitcoin-dev wrote:
> BIP Proposal - Managing Bitcoin=E2=80=99s block size the same way we do=

> difficulty (aka Block75)
>=20
> The every two-week adjustment of difficulty has proven to be a
> reasonably effective and predictable way of managing how quickly blocks=

> are mined. Bitcoin needs a reasonably effective and predictable way of
> managing the maximum block size.
>=20
> It=E2=80=99s clear at this point that human beings should not be involv=
ed in the
> determination of max block size, just as they=E2=80=99re not involved i=
n
> deciding the difficulty.
>=20
> Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) or=

> passing the decision to miners/pool operators, the max block size shoul=
d
> be adjusted every two weeks (2016 blocks) using a system similar to how=

> difficulty is calculated.
>=20
> Put another way: let=E2=80=99s stop thinking about what the max block s=
ize
> should be and start thinking about how full we want the average block t=
o
> be regardless of size. Over the last year, we=E2=80=99ve had averages o=
f 75% or
> higher, so aiming for 75% full seems reasonable, hence naming this
> concept =E2=80=98Block75=E2=80=99.
>=20
> The target capacity over 2016 blocks would be 75%. If the last 2016
> blocks are more than 75% full, add the difference to the max block size=
=2E
> Like this:
>=20
> MAX_BLOCK_BASE_SIZE =3D 1000000
> TARGET_CAPACITY =3D 750000
> AVERAGE_OVER_CAP =3D average block size of last 2016 blocks minus
> TARGET_CAPACITY
>=20
> To check if a block is valid, =E2=89=A4 (MAX_BLOCK_BASE_SIZE + AVERAGE_=
OVER_CAP)
>=20
> For example, if the last 2016 blocks are 85% full (average block is 850=

> KB), add 10% to the max block size. The new max block size would be
> 1,100 KB until the next 2016 blocks are mined, then reset and
> recalculate. The 1,000,000 byte limit that exists currently would
> remain, but would effectively be the minimum max block size.=20
>=20
> Another two weeks goes by, the last 2016 blocks are again 85% full, but=

> now that means they average 935 KB out of the 1,100 KB max block size.
> This is 93.5% of the 1,000,000 byte limit, so 18.5% would be added to
> that to make the new max block size of 1,185 KB.
>=20
> Another two weeks passes. This time, the average block is 1,050 KB. The=

> new max block size is calculated to 1,300 KB (as blocks were 105% full,=

> minus the 75% capacity target, so 30% added to max block size).
>=20
> Repeat every 2016 blocks, forever.
>=20
> If Block75 had been applied at the difficulty adjustment on November
> 18th, the max block size would have been 1,080KB, as the average block
> during that period was 83% full, so 8% is added to the 1,000KB limit.
> The current size, after the December 2nd adjustment would be 1,150K.
>=20
> Block75 would allow the max block size to grow (or shrink) in response
> to transaction volume, and does so predictably, reasonably quickly, and=

> in a method that prevents wild swings in block size or transaction fees=
=2E
> It attempts to keep blocks at 75% total capacity over each two week
> period, the same way difficulty tries to keep blocks mined every ten
> minutes. It also keeps blocks as small as possible.
>=20
> Thoughts?
>=20
> -t.k.
>=20

I like the idea. It is good wrt growing the max. block size
automatically without human action, but the main problem (or question)
is not how to grow this number, it is what number can the network
handle, considering both miners and users. While disk space requirements
might not be a big problem, block propagation time is. The time required
for a block to propagate in the network (or at least to all the miners)
is directly dependent of its size.  If blocks take too much time to
propagate in the network, the orphan rate will increase in unpredictable
ways. For example if the internet speed in China is worse than in
Europe, and miners in China have more than 50% of the hashing power,
blocks mined by European miners might get orphaned.

The system as described can also be gamed, by filling the network with
transactions. Miners have the monetary interest to include as many
transactions as possible in a block in order to collect the fees.
Regardless how you think about it, there has to be a maximum block size
that the network will allow as a consensus rule. Increasing it
dynamically based on transaction volume will reach a point where the
number got big enough that it broke things. Bitcoin, because its
fundamental design, can scale by using offchain solutions.


--DDBO1LD3sAfnerp2F8fmr9Jv3JmkLbIEL--

--sXN4M2s4cP9rl2XWXtHHqTwcH5wBGSBsb
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQEcBAEBCAAGBQJYS9yiAAoJEIN/pSyBJlsRdW8H/RQQlZF8tCa06Id9QpvVvIBN
Fz+h5rwDNJLqaxm97Np6tAk0JwaaFJhzdKuiLHxbTLyzLVV+gpWHYrORS+jbyOzX
AoYum8Dpi2OcDDk96s1+lEH91EJ6rdJlZdpULot2y4aJ64nTHJORImjmIKs05pkT
leT7PWA3FNvM/mW2549sZPSFr9zC7rrAclishRKhW9Phl29/VEE4zU5e+0cVXlLW
bPQBzEJPNjORhWwLj2p+pjYlX7TLsNvdw/eT9mJ7y7utBt+9N2qZVH3RUyGxSX4Y
mok5tyZYX9pLXzuvb3Wg1IM2I75OW9j6W9E/RIk5RCZw+mvzgMUjZoWqxC9UOtI=
=6n2E
-----END PGP SIGNATURE-----

--sXN4M2s4cP9rl2XWXtHHqTwcH5wBGSBsb--