summaryrefslogtreecommitdiff
path: root/5f/bd28e2b2bcee952c623144bfc435347c85b20c
blob: ebbf60599153efc08858177f38e1daf0accf43d4 (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
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <lidstrom83@gmail.com>) id 1Ulvge-0007My-DX
	for bitcoin-development@lists.sourceforge.net;
	Mon, 10 Jun 2013 06:34:40 +0000
Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.223.171 as permitted sender)
	client-ip=209.85.223.171; envelope-from=lidstrom83@gmail.com;
	helo=mail-ie0-f171.google.com; 
Received: from mail-ie0-f171.google.com ([209.85.223.171])
	by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1Ulvgc-0002li-OZ
	for bitcoin-development@lists.sourceforge.net;
	Mon, 10 Jun 2013 06:34:40 +0000
Received: by mail-ie0-f171.google.com with SMTP id qd12so1126758ieb.16
	for <bitcoin-development@lists.sourceforge.net>;
	Sun, 09 Jun 2013 23:34:33 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.50.141.234 with SMTP id rr10mr3464702igb.34.1370846073355;
	Sun, 09 Jun 2013 23:34:33 -0700 (PDT)
Received: by 10.64.100.200 with HTTP; Sun, 9 Jun 2013 23:34:33 -0700 (PDT)
In-Reply-To: <20130610053002.GA8961@savin>
References: <CAPaL=UWcKmnChw0zYGVduzHHdQ-AgG7uqbCLvjjuW6Q67zmS0g@mail.gmail.com>
	<20130610053002.GA8961@savin>
Date: Mon, 10 Jun 2013 03:34:33 -0300
Message-ID: <CADjHg8HUkh6u1Nhp01DKqX+qLu3jqvDVYhTo55MKpRtcavSWvg@mail.gmail.com>
From: Daniel Lidstrom <lidstrom83@gmail.com>
To: Peter Todd <pete@petertodd.org>
Content-Type: multipart/alternative; boundary=089e0122a4783e829404dec6f9bf
X-Spam-Score: -0.3 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(lidstrom83[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in
	digit (lidstrom83[at]gmail.com)
	1.0 HTML_MESSAGE           BODY: HTML included in message
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1Ulvgc-0002li-OZ
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Proposal: Vote on the blocksize limit
 with proof-of-stake voting
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Mon, 10 Jun 2013 06:34:40 -0000

--089e0122a4783e829404dec6f9bf
Content-Type: text/plain; charset=ISO-8859-1

Reserving my judgement until I've though about it more (design by committee
scares me, and this voting sounds expensive), I think the SPV-verifiable
moving median can be done by binning the space of block size limits, and
for each node in the UTXO tree, a value for each bin is stored which is the
sum of the corresponding bins of each of the children.  The childless nodes
- which correspond to the individual UTXOs - increment the appropriate bin
of their parents according to the rules you mentioned.  The bin values in
the root node of the UTXO tree would then be added to those, weighted
appropriately, of the previous N blocks.

The hash of a node would be that of the bin values, concatenated with the
child nodes' hashes.  In this way, any step of the calculation of the
median would produce a localized error in the UTXO tree that's easily
verified.

The number of bins would have to be kept relatively small in order to keep
this from adding too much data to the UTXO tree branches though.


On Mon, Jun 10, 2013 at 2:30 AM, Peter Todd <pete@petertodd.org> wrote:

> On Mon, Jun 10, 2013 at 04:09:26AM +0000, John Dillon wrote:
>
> My general comments on the idea are that while it's hard to say if a
> vote by proof-of-stake is really representative, it's likely the closest
> thing we'll ever get to a fair vote. Proof-of-stake is certainely better
> than just letting miners choose; as you point out miners can always
> choose to decrease the blocksize anyway so we only need a vote on
> allowable increases. Proof-of-stake also clearly favors those who
> actually have invested in Bitcoin over those who only talk about
> Bitcoin.
>
> I'll also say that while I know people will complain about putting
> politics into a technical problem, as I keep saying, is *is* a political
> issue. The limitations may be technical, but the ultimate issue is a
> very political decision about what we want Bitcoin to be. Yes, there
> will be people campaigning left and right to get users to vote for
> various limits with their coins, deal with it. Democracy is messy.
>
> Voting would take a lot of the nastier politics out of the situation,
> perhaps somewhat ironically. It would quite clearly take control away
> from the core development team, and the Bitcoin Foundation, and put it
> back in the hands of the community; you can't argue conspiracy theories
> that the Foundation is trying to control Bitcoin when there is a
> completely transparent voting system in place. People will complain that
> big Bitcoin players are throwing their weight around, but the blockchain
> itself is a voting mechanism that is anything but 1 person = 1 vote.
>
> Of course I wouldn't be the slightest bit surprised if users happily
> vote themselves into something looking like a centralized PayPal
> replacement in the long run, but at least if that happens the process by
> which they get there will be transparent and relatively democratic.
>
>
> > A vote will consist of a txout with a scriptPubKey of the following form:
> >
> >     OP_RETURN magic vote_id txid vout vote scriptSig
> >
> > Where scriptSig is a valid signature for a transaction with nLockTime
> > 500,000,000-1 spending txid:vout to scriptPubKey:
> >
> >     OP_HASH160 H(OP_RETURN magic vote_id txid vout vote) OP_EQUAL
>
> I just wanted to point out how general this mechanism is. Regardless of
> what the scriptPubKey form is, standard, P2SH, multisig, whatever to
> vote is to simply prove you could have spent the txout.
>
> > vote_id is the ID of the specific vote being made, and magic is included
> to
> > allow UTXO proof implementations a as yet unspecified way of identifying
> votes
> > and including the weighted median as part of the UTXO tree sums. (it also
> > allows SPV clients to verify the vote if the UTXO set is a Patricia tree
> of
> > scriptPubKeys) vote is just the numerical vote itself.
>
> Ah, you're assuming a direct Patricia tree. Keep in mind that
> scriptPubKey's can be up to 10,000 bytes long, and an attacker can use
> that (with 10,000 other txouts) to create some extremely deep trees. I
> said on IRC a few days ago about how skeptical I am of implementing
> consensus critical systems with such huge differences in average and
> worst case, but I'll admit this is a decent use-case.
>
> Having said that, proof to SPV clients leaves open the interesting
> possibility that a third-party holding Bitcoins on your behalf can prove
> that they voted according to your wishes, or even prove they voted
> according to all their users wishes. Basically we'd add a rule for the
> UTXO tree where a specific OP_RETURN form is included in the UTXO tree,
> even though it is unspendable, and is removed from the tree if the
> master txout is spent. Note that in this case by "prove they voted" we
> mean the service actually taking the step of ensuring their vote was
> recorded in the blockchain.
>
> > The vote must compute
> > the median, rather than the mean, so as to not allow someone to skew the
> vote
> > by simply setting their value extremely high. Someone who still
> remembers their
> > statistics classes should chime in on the right way to compute a median
> in a
> > merkle-sum-tree.
>
> I think the definition of the median requires knowledge of all the points
> so
> it'll have to be a separate sorted tree - kinda complex unfortunately if
> you really do want to be able to do full proof to SPV clients. Maybe
> just putting the hash of the overall results in the coinbase is enough
> for now.
>
> The term to google is "moving median" - looks complex.
>
> > Of course in the future the voting mechanism can be used for additional
> votes
> > with an additional vote_id. For instance the Bitcoin community could
> vote to
> > increase the inflation subsidy, another example of a situation where the
> wishes
> > of miners may conflict with the wishes of the broader community.
>
> Good idea on keeping the code general.
>
> > For any given block actual limit in effect is then the rolling median of
> the
> > blocks in the last year. At the beginning of every year the value
> considered to
> > be the status quo resets to the mean of the limit at the beginning and
> end of
> > the interval.  (again, by "year" we really mean 52,560 blocks) The
> rolling
> > median and periodic reset process ensures that the limit changes
> gradually and
> > is not influenced by temporary events such as hacks to large exchanges or
> > malicious wallet software.  The rolling median also ensures that for a
> miner
> > the act of including a vote is never wasted due to the txout later being
> spent.
>
> Good points, although keep in mind you've created a lot of consensus
> critical code that is easiest to implement with floating point... not a
> good thing.
>
> One way to mitigate that risk might be to take advantage of the fact
> that unless the rolling median code itself is buggy, a consensus failure
> in the calculation is likely to result in different implementations
> still having a close agreement on the limit. So maybe we write some code
> where we won't build on top of a block that is larger than, say, 95% of
> the hard-limit unless another miner does so too?
>
> > Implementing the voting system can happen prior to an actual hard-fork
> allowing
> > for an increase and can be an important part of determining if the
> hard-fork is
> > required at all.
>
> Step #0 would be to think about OP_RETURN actually. FWIW Jeff Garzik has
> a pull-req (https://github.com/bitcoin/bitcoin/pull/2738) to enable it,
> although only one txout per tx, and only with a 80-byte payload.
>
> Even just some ad-hoc voting by the "raise-the-limit" crowd would be a
> good first step to gaging interest.
>
> > Coercion and vote buying is of course possible in this system. A miner
> could
> > say that they will only accept transactions accompanied by a vote for a
> given
> > limit. However in a decentralized system completely preventing vote
> buying is
> > of course impossble, and the design of Bitcoin itself has a fundemental
>
> Is it really? There might be someone clever with a cryptographic voting
> protocol, although in the case of Bitcoin we have to let people vote
> with arbitrary scriptPubKeys, so almost anything less general than full
> on SCIP just means miners force people to use the protocol where
> vote-buying is possible.
>
> > A voting process ensures that any increase to the blocksize genuinely
> > represents the desires of the Bitcoin community, and the process
> described
> > above ensures that any changes happen at a rate that gives all
> participants
> > time to react. The process also gives a mechanism for the community to
> vote to
> > decrease the limit if it turns out that the new one was in fact too
> high. (note
> > how the way the status quo is set ensures the default action is for the
> limit
> > to gradually decrease even if everyone stops voting)
>
> Good idea. So it'd decrease to the mean of the old and new limits
> basically, and if Bitcoin becomes "too centralized" users can simply do
> nothing and the process gradually reverses.
>
> > As many of you know I have been quite vocal that the 1MB limit should
> stay. But
> > I would be happy to support the outcome of a vote done properly,
> whatever that
> > outcome may be.
>
> Same here.
>
> --
> 'peter'[:-1]@petertodd.org
> 0000000000000068a8ad033afa763246fe451e840eae5215eb3a64e8101a46c3
>
>
> ------------------------------------------------------------------------------
> How ServiceNow helps IT people transform IT departments:
> 1. A cloud service to automate IT design, transition and operations
> 2. Dashboards that offer high-level views of enterprise services
> 3. A single system of record for all IT processes
> http://p.sf.net/sfu/servicenow-d2d-j
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>

--089e0122a4783e829404dec6f9bf
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Reserving my judgement until I&#39;ve though about it=
 more (design by=20
committee scares me, and this voting sounds expensive), I think the=20
SPV-verifiable moving median can be done by binning the space of block=20
size limits, and for each node in the UTXO tree, a value for each bin is
 stored which is the sum of the corresponding bins of each of the=20
children.=A0 The childless nodes - which correspond to the individual=20
UTXOs - increment the appropriate bin of their parents according to the=20
rules you mentioned.=A0 The bin values in the root node of the UTXO tree=20
would then be added to those, weighted appropriately, of the previous N=20
blocks.<br>
<br></div><div>The hash of a node would be that of the bin values,=20
concatenated with the child nodes&#39; hashes.=A0 In this way, any step of =
the
 calculation of the median would produce a localized error in the UTXO=20
tree that&#39;s easily verified.<br>
</div><div><br></div>The number of bins would have to be kept relatively
 small in order to keep this from adding too much data to the UTXO tree=20
branches though.</div><div class=3D"gmail_extra"><br><br><div class=3D"gmai=
l_quote">On Mon, Jun 10, 2013 at 2:30 AM, Peter Todd <span dir=3D"ltr">&lt;=
<a href=3D"mailto:pete@petertodd.org" target=3D"_blank">pete@petertodd.org<=
/a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">On Mon, Jun 10, 2013 at 04:09:26AM +0000, Jo=
hn Dillon wrote:<br>
<br>
My general comments on the idea are that while it&#39;s hard to say if a<br=
>
vote by proof-of-stake is really representative, it&#39;s likely the closes=
t<br>
thing we&#39;ll ever get to a fair vote. Proof-of-stake is certainely bette=
r<br>
than just letting miners choose; as you point out miners can always<br>
choose to decrease the blocksize anyway so we only need a vote on<br>
allowable increases. Proof-of-stake also clearly favors those who<br>
actually have invested in Bitcoin over those who only talk about<br>
Bitcoin.<br>
<br>
I&#39;ll also say that while I know people will complain about putting<br>
politics into a technical problem, as I keep saying, is *is* a political<br=
>
issue. The limitations may be technical, but the ultimate issue is a<br>
very political decision about what we want Bitcoin to be. Yes, there<br>
will be people campaigning left and right to get users to vote for<br>
various limits with their coins, deal with it. Democracy is messy.<br>
<br>
Voting would take a lot of the nastier politics out of the situation,<br>
perhaps somewhat ironically. It would quite clearly take control away<br>
from the core development team, and the Bitcoin Foundation, and put it<br>
back in the hands of the community; you can&#39;t argue conspiracy theories=
<br>
that the Foundation is trying to control Bitcoin when there is a<br>
completely transparent voting system in place. People will complain that<br=
>
big Bitcoin players are throwing their weight around, but the blockchain<br=
>
itself is a voting mechanism that is anything but 1 person =3D 1 vote.<br>
<br>
Of course I wouldn&#39;t be the slightest bit surprised if users happily<br=
>
vote themselves into something looking like a centralized PayPal<br>
replacement in the long run, but at least if that happens the process by<br=
>
which they get there will be transparent and relatively democratic.<br>
<div class=3D"im"><br>
<br>
&gt; A vote will consist of a txout with a scriptPubKey of the following fo=
rm:<br>
&gt;<br>
&gt; =A0 =A0 OP_RETURN magic vote_id txid vout vote scriptSig<br>
&gt;<br>
&gt; Where scriptSig is a valid signature for a transaction with nLockTime<=
br>
&gt; 500,000,000-1 spending txid:vout to scriptPubKey:<br>
&gt;<br>
&gt; =A0 =A0 OP_HASH160 H(OP_RETURN magic vote_id txid vout vote) OP_EQUAL<=
br>
<br>
</div>I just wanted to point out how general this mechanism is. Regardless =
of<br>
what the scriptPubKey form is, standard, P2SH, multisig, whatever to<br>
vote is to simply prove you could have spent the txout.<br>
<div class=3D"im"><br>
&gt; vote_id is the ID of the specific vote being made, and magic is includ=
ed to<br>
&gt; allow UTXO proof implementations a as yet unspecified way of identifyi=
ng votes<br>
&gt; and including the weighted median as part of the UTXO tree sums. (it a=
lso<br>
&gt; allows SPV clients to verify the vote if the UTXO set is a Patricia tr=
ee of<br>
&gt; scriptPubKeys) vote is just the numerical vote itself.<br>
<br>
</div>Ah, you&#39;re assuming a direct Patricia tree. Keep in mind that<br>
scriptPubKey&#39;s can be up to 10,000 bytes long, and an attacker can use<=
br>
that (with 10,000 other txouts) to create some extremely deep trees. I<br>
said on IRC a few days ago about how skeptical I am of implementing<br>
consensus critical systems with such huge differences in average and<br>
worst case, but I&#39;ll admit this is a decent use-case.<br>
<br>
Having said that, proof to SPV clients leaves open the interesting<br>
possibility that a third-party holding Bitcoins on your behalf can prove<br=
>
that they voted according to your wishes, or even prove they voted<br>
according to all their users wishes. Basically we&#39;d add a rule for the<=
br>
UTXO tree where a specific OP_RETURN form is included in the UTXO tree,<br>
even though it is unspendable, and is removed from the tree if the<br>
master txout is spent. Note that in this case by &quot;prove they voted&quo=
t; we<br>
mean the service actually taking the step of ensuring their vote was<br>
recorded in the blockchain.<br>
<div class=3D"im"><br>
&gt; The vote must compute<br>
&gt; the median, rather than the mean, so as to not allow someone to skew t=
he vote<br>
&gt; by simply setting their value extremely high. Someone who still rememb=
ers their<br>
&gt; statistics classes should chime in on the right way to compute a media=
n in a<br>
&gt; merkle-sum-tree.<br>
<br>
</div>I think the definition of the median requires knowledge of all the po=
ints so<br>
it&#39;ll have to be a separate sorted tree - kinda complex unfortunately i=
f<br>
you really do want to be able to do full proof to SPV clients. Maybe<br>
just putting the hash of the overall results in the coinbase is enough<br>
for now.<br>
<br>
The term to google is &quot;moving median&quot; - looks complex.<br>
<div class=3D"im"><br>
&gt; Of course in the future the voting mechanism can be used for additiona=
l votes<br>
&gt; with an additional vote_id. For instance the Bitcoin community could v=
ote to<br>
&gt; increase the inflation subsidy, another example of a situation where t=
he wishes<br>
&gt; of miners may conflict with the wishes of the broader community.<br>
<br>
</div>Good idea on keeping the code general.<br>
<div class=3D"im"><br>
&gt; For any given block actual limit in effect is then the rolling median =
of the<br>
&gt; blocks in the last year. At the beginning of every year the value cons=
idered to<br>
&gt; be the status quo resets to the mean of the limit at the beginning and=
 end of<br>
&gt; the interval. =A0(again, by &quot;year&quot; we really mean 52,560 blo=
cks) The rolling<br>
&gt; median and periodic reset process ensures that the limit changes gradu=
ally and<br>
&gt; is not influenced by temporary events such as hacks to large exchanges=
 or<br>
&gt; malicious wallet software. =A0The rolling median also ensures that for=
 a miner<br>
&gt; the act of including a vote is never wasted due to the txout later bei=
ng spent.<br>
<br>
</div>Good points, although keep in mind you&#39;ve created a lot of consen=
sus<br>
critical code that is easiest to implement with floating point... not a<br>
good thing.<br>
<br>
One way to mitigate that risk might be to take advantage of the fact<br>
that unless the rolling median code itself is buggy, a consensus failure<br=
>
in the calculation is likely to result in different implementations<br>
still having a close agreement on the limit. So maybe we write some code<br=
>
where we won&#39;t build on top of a block that is larger than, say, 95% of=
<br>
the hard-limit unless another miner does so too?<br>
<div class=3D"im"><br>
&gt; Implementing the voting system can happen prior to an actual hard-fork=
 allowing<br>
&gt; for an increase and can be an important part of determining if the har=
d-fork is<br>
&gt; required at all.<br>
<br>
</div>Step #0 would be to think about OP_RETURN actually. FWIW Jeff Garzik =
has<br>
a pull-req (<a href=3D"https://github.com/bitcoin/bitcoin/pull/2738" target=
=3D"_blank">https://github.com/bitcoin/bitcoin/pull/2738</a>) to enable it,=
<br>
although only one txout per tx, and only with a 80-byte payload.<br>
<br>
Even just some ad-hoc voting by the &quot;raise-the-limit&quot; crowd would=
 be a<br>
good first step to gaging interest.<br>
<div class=3D"im"><br>
&gt; Coercion and vote buying is of course possible in this system. A miner=
 could<br>
&gt; say that they will only accept transactions accompanied by a vote for =
a given<br>
&gt; limit. However in a decentralized system completely preventing vote bu=
ying is<br>
&gt; of course impossble, and the design of Bitcoin itself has a fundementa=
l<br>
<br>
</div>Is it really? There might be someone clever with a cryptographic voti=
ng<br>
protocol, although in the case of Bitcoin we have to let people vote<br>
with arbitrary scriptPubKeys, so almost anything less general than full<br>
on SCIP just means miners force people to use the protocol where<br>
vote-buying is possible.<br>
<div class=3D"im"><br>
&gt; A voting process ensures that any increase to the blocksize genuinely<=
br>
&gt; represents the desires of the Bitcoin community, and the process descr=
ibed<br>
&gt; above ensures that any changes happen at a rate that gives all partici=
pants<br>
&gt; time to react. The process also gives a mechanism for the community to=
 vote to<br>
&gt; decrease the limit if it turns out that the new one was in fact too hi=
gh. (note<br>
&gt; how the way the status quo is set ensures the default action is for th=
e limit<br>
&gt; to gradually decrease even if everyone stops voting)<br>
<br>
</div>Good idea. So it&#39;d decrease to the mean of the old and new limits=
<br>
basically, and if Bitcoin becomes &quot;too centralized&quot; users can sim=
ply do<br>
nothing and the process gradually reverses.<br>
<div class=3D"im"><br>
&gt; As many of you know I have been quite vocal that the 1MB limit should =
stay. But<br>
&gt; I would be happy to support the outcome of a vote done properly, whate=
ver that<br>
&gt; outcome may be.<br>
<br>
</div>Same here.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
&#39;peter&#39;[:-1]@<a href=3D"http://petertodd.org" target=3D"_blank">pet=
ertodd.org</a><br>
0000000000000068a8ad033afa763246fe451e840eae5215eb3a64e8101a46c3<br>
</font></span><br>---------------------------------------------------------=
---------------------<br>
How ServiceNow helps IT people transform IT departments:<br>
1. A cloud service to automate IT design, transition and operations<br>
2. Dashboards that offer high-level views of enterprise services<br>
3. A single system of record for all IT processes<br>
<a href=3D"http://p.sf.net/sfu/servicenow-d2d-j" target=3D"_blank">http://p=
.sf.net/sfu/servicenow-d2d-j</a><br>_______________________________________=
________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div><br></div>

--089e0122a4783e829404dec6f9bf--