summaryrefslogtreecommitdiff
path: root/ee/f5a0c4daff1d044ac9f5c755e7eab1aaed015c
blob: b7fade5407057eb061387c7a915477e3bfcb32c8 (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
Return-Path: <aj@erisian.com.au>
Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])
 by lists.linuxfoundation.org (Postfix) with ESMTP id B6245C000A
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon,  5 Apr 2021 10:35:04 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp3.osuosl.org (Postfix) with ESMTP id A51E2608C9
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon,  5 Apr 2021 10:35:04 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: 1.203
X-Spam-Level: *
X-Spam-Status: No, score=1.203 tagged_above=-999 required=5
 tests=[BAYES_50=0.8, KHOP_HELO_FCRDNS=0.4, SPF_HELO_NONE=0.001,
 SPF_NONE=0.001, UNPARSEABLE_RELAY=0.001]
 autolearn=no autolearn_force=no
Received: from smtp3.osuosl.org ([127.0.0.1])
 by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id q_cBvpmezw_g
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon,  5 Apr 2021 10:35:03 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.8.0
Received: from azure.erisian.com.au (cerulean.erisian.com.au [139.162.42.226])
 by smtp3.osuosl.org (Postfix) with ESMTPS id 9A4A5608C6
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Mon,  5 Apr 2021 10:35:03 +0000 (UTC)
Received: from aj@azure.erisian.com.au (helo=sapphire.erisian.com.au)
 by azure.erisian.com.au with esmtpsa (Exim 4.92 #3 (Debian))
 id 1lTMZO-0001rW-8d; Mon, 05 Apr 2021 20:35:00 +1000
Received: by sapphire.erisian.com.au (sSMTP sendmail emulation);
 Mon, 05 Apr 2021 20:34:52 +1000
Date: Mon, 5 Apr 2021 20:34:52 +1000
From: Anthony Towns <aj@erisian.com.au>
To: Jeremy <jlrubin@mit.edu>,
 Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Message-ID: <20210405103452.GA15866@erisian.com.au>
References: <CAD5xwhgTKLhA82=PsF9EXrhvmx6zcA=ffOvHD4qt4q1sAqzhng@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAD5xwhgTKLhA82=PsF9EXrhvmx6zcA=ffOvHD4qt4q1sAqzhng@mail.gmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-Spam-Score-int: -18
X-Spam-Bar: -
Subject: Re: [bitcoin-dev] Taproot Activation Meeting Reminder: April 6th
 19:00 UTC bitcoin/bitcoin-dev
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
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: Mon, 05 Apr 2021 10:35:04 -0000

On Sat, Apr 03, 2021 at 09:39:11PM -0700, Jeremy via bitcoin-dev wrote:
> As such, the main conversation in this agenda item is
> around the pros/cons of height or MTP and determining if we can reach consensus
> on either approach.

Here's some numbers.

Given a desired signalling period of xxx days, where signaling begins
on the first retarget boundary after the starttime and ends on the last
retarget boundary before the endtime, this is how many retarget periods
you get (based on blocks since 2015-01-01):

 90 days: mainnet  5-7 full 2016-block retarget periods
180 days: mainnet 11-14
365 days: mainnet 25-27
730 days: mainnet 51-55

(This applies to non-signalling periods like the activation/lock in delay
too of course. If you change it so that it ends at the first retarget
period after endtime, all the values just get incremented -- ie, 6-8,
12-15 etc)

If I've got the maths right, then requiring 1814 of 2016 blocks to signal,
means that having 7 periods instead of 5 lets you get a 50% chance of
successful activation by maintaining 89.04% of hashpower over the entire
period instead of 89.17%, while 55 periods instead of 51 gives you a 50%
chance of success with 88.38% hashpower instead of 88.40% hashpower.
So the "repeated trials" part doesn't look like it has any significant
effect on mainnet.

If you target yy periods instead of xxx days, starting and ending on a
retarget boundary, you get the following stats from the last few years
of mainnet (again starting at 2015-01-01):

 1 period:  mainnet 11-17 days (range 5.2 days)
 7 periods: mainnet 87-103 days (range 15.4 days)
13 periods: mainnet 166-185 days (range 17.9 days)
27 periods: mainnet 352-377 days (range 24.4 days)
54 periods: mainnet 711-747 days (range 35.0 days)

As far as I can see the questions that matter are:

 * is signalling still possible by the time enough miners have upgraded
   and are ready to start signalling?

 * have nodes upgraded to enforce the new rules by the time activation
   occurs, if it occurs?

But both those benefit from less real time variance, rather than less
variance in the numbers of signalling periods, at least in every way
that I can think of.

Corresponding numbers for testnet:

 90 days: testnet   5-85
180 days: testnet  23-131
365 days: testnet  70-224
730 days: testnet 176-390

(A 50% chance of activating within 5 periods requires sustaining 89.18%
hashpower; within 85 periods, 88.26% hashpower; far smaller differences
with all the other ranges -- of course, presumably the only way the
higher block rates ever actually happen is by someone pointing an ASIC at
testnet, and thus controlling 100% of blocks for multiple periods anyway)

  1 period:  testnet 5.6minutes-26 days (range 26.5 days)
 13 periods: testnet 1-135 days (range 133.5 days)
 27 periods: testnet 13-192 days (range 178.3 days)
 54 periods: testnet 39-283 days (range 243.1 days)
100 periods: testnet 114-476 days (range 360.9 days)
             (this is the value used in [0] in order to ensure 3 months'
              worth of signalling is available)
132 periods: testnet 184-583 days (range 398.1 days)
225 periods: testnet 365-877 days (range 510.7 days)
390 periods: testnet 725-1403 days (range 677.1 days)

[0] https://github.com/bitcoin/bips/pull/1081#pullrequestreview-621934640

Cheers,
aj