|
| 1 | +--- |
| 2 | +title: IRC meeting summary for 2018-06-21 |
| 3 | +lang: en |
| 4 | +permalink: /en/meetings/2018/06/21/ |
| 5 | +name: 2016-06-21-meeting |
| 6 | +layout: page |
| 7 | +type: meetings |
| 8 | +version: 1 |
| 9 | +--- |
| 10 | +{% include _toc.html %} |
| 11 | +{% include _references.md %} |
| 12 | + |
| 13 | +- View this week's log on [BotBot.me][bbm log] or [MeetBot][mb log] |
| 14 | +- [Meeting minutes by MeetBot][mb minutes] |
| 15 | + |
| 16 | +--- |
| 17 | + |
| 18 | +Topics discussed during this weekly meeting included what pull requests |
| 19 | +members of the project would like reviewers to focus on during the |
| 20 | +upcoming week, when to disclose known DoS vulnerabilities for versions |
| 21 | +of Bitcoin Core 0.12.0 and earlier related to the signed alerts system |
| 22 | +along with the mechanism to initiate the DoS attacks (Nakamoto's alert |
| 23 | +signing key), changes to hosting for the bitcoin-dev mailing list, how |
| 24 | +inputs are chosen to be included in new transactions by default, dealing |
| 25 | +with the loading of new wallets in multiwallet mode, improved private |
| 26 | +key backup and recovery, and continuing work towards creating a |
| 27 | +machine-writeable configuration file. |
| 28 | + |
| 29 | +## Review blockers [high priority for review] |
| 30 | + |
| 31 | +**Background:** each meeting, Bitcoin Core developers discuss which Pull |
| 32 | +Requests (PRs) the meeting participants think most need review in the |
| 33 | +upcoming week. Some of these PRs are related to code that contributors |
| 34 | +especially want to see in the next release; others are PRs that are |
| 35 | +blocking further work or which require significant maintenance (rebasing) |
| 36 | +to keep in a pending state. Any capable reviewers are encouraged to |
| 37 | +visit the project's list of [current high-priority |
| 38 | +PRs][]. |
| 39 | + |
| 40 | +**Discussion ([log][log hipri]):** Pieter Wuille listed the three PRs |
| 41 | +currently on the list ([#13062][], [#12196][], and [#13425][]) and asked |
| 42 | +if anyone wanted to nominate additional PRs. João Barbosa suggested |
| 43 | +[#13100][], which adds a menu entry to open a wallet, but it's not quite |
| 44 | +ready yet, so Wuille will wait until it is before adding it. |
| 45 | + |
| 46 | +## Alert key [public disclosure] |
| 47 | + |
| 48 | +**Background:** In 2010, someone created a protocol-valid block that |
| 49 | +[created over 184 billion bitcoins][value overflow incident]. Satoshi |
| 50 | +Nakamoto encouraged users to stop mining and soon published an updated |
| 51 | +version of Bitcoin that corrected the behavior in a retroactive soft |
| 52 | +fork, but he subsequently added a mechanism to the Bitcoin software that |
| 53 | +allowed him to sign "alert" messages that could directly notify node |
| 54 | +operators of problems and even, by default, shut down some node |
| 55 | +functions that might cause monetary loss. In Nakamoto's [last |
| 56 | +post][nakamoto last post] to the BitcoinTalk.org forum, he wrote, |
| 57 | + |
| 58 | +> "safe mode" alerts was a temporary measure after the 0.3.9 overflow |
| 59 | +> bug. We can say all we want that users can just run with |
| 60 | +> "-disablesafemode", but it's better just not to have it for the sake |
| 61 | +> of appearances. It was never intended as a long term feature. Safe |
| 62 | +> mode can still be triggered by seeing a longer (greater total PoW) |
| 63 | +> invalid block chain. |
| 64 | +
|
| 65 | +Over time, subsequent Bitcoin Core developers steadily deprecated, |
| 66 | +disabled, and removed the alert feature, turning it [off by |
| 67 | +default][alerts off] in version 0.12.1, [removing it entirely][alerts |
| 68 | +removed] in version 0.13.0, hard coding a [final alert][final alert] |
| 69 | +into version 0.14.0, and (in November 2016) announcing the [pending |
| 70 | +public disclosure][alert key disclosure] of the alert-signing key |
| 71 | +created by Nakamoto. The disclosure was delayed indefinitely upon |
| 72 | +discovery of Denial-of-Service (DoS) vulnerabilities related to the alert |
| 73 | +mechanism in versions of Bitcoin Core below 0.12.1, as discussed in the |
| 74 | +[9 March 2017 weekly meeting][], that affected approximately 2,600 nodes |
| 75 | +at the time. |
| 76 | + |
| 77 | +**Discussion ([log][log alert]):** Bryan Bishop requested and introduced |
| 78 | +the topic, "I'm thinking of releasing the private [alert signing] key. |
| 79 | +[It] would be nice to get that out there and remove that liability. |
| 80 | +I'm particularly interested in hearing from others who have good reason |
| 81 | +not to reveal the key. In the year-plus since [planned public |
| 82 | +disclosure] was announced, I don't think much has been raised." |
| 83 | + |
| 84 | +Gregory Maxwell said, "All supported versions [of Bitcoin Core] have |
| 85 | +[the signed alert system] gone completely, so that sounds pretty good |
| 86 | +for a release now---unless pre-0.12 nodes are still popular, and I don't |
| 87 | +believe they are." |
| 88 | + |
| 89 | +Luke Dashjr cited his [node scanning system][dashjr addr scanner] to say |
| 90 | +that 3% of nodes were running version 0.12 and "0.61% 'other' versions, |
| 91 | +which includes everything before 0.12." Pieter Wuille found similar |
| 92 | +statistics using the [Bitnodes scanning system][], which uses a |
| 93 | +different scanning method. |
| 94 | + |
| 95 | +Regarding the vulnerabilities related to the signed alert messages in |
| 96 | +old versions of Bitcoin Core, Maxwell said, "I doubt we know all the |
| 97 | +vulnerabilities. I know of at least two, but I stopped looking." |
| 98 | +Andrew Chow said he knew of three. |
| 99 | + |
| 100 | +The DoS vulnerabilities affect not just Bitcoin but also altcoins that have |
| 101 | +copied Bitcoin Core's code and are currently using old versions. When |
| 102 | +the vulnerabilities are disclosed, anyone with the alert-signing key for |
| 103 | +an altcoin will be able to execute those DoS attacks. In discussing |
| 104 | +this, Chow said, "[but] if the altcoins have better control of their |
| 105 | +alert key, publishing the Bitcoin one and the related vulnerabilities |
| 106 | +shouldn't be a problem." |
| 107 | + |
| 108 | +**Conclusion:** no explicit conclusion. Bishop seems likely to continue |
| 109 | +to work towards responsibly disclosing the alert key and (probably) |
| 110 | +vulnerabilities related to it. No one objected to this, although Matt |
| 111 | +Corallo did say he thought there was "limited utility to releasing the |
| 112 | +alert key." |
| 113 | + |
| 114 | +## Bitcoin-dev mailing list |
| 115 | + |
| 116 | +**Background:** the bitcoin-dev (Bitcoin development) mailing list has |
| 117 | +been hosted at lists.linuxfoundation.org for the past several years. |
| 118 | + |
| 119 | +**Discussion ([log][log dev ml]):** Bryan Bishop requested and |
| 120 | +introduced the topic: "Linux Foundation is migrating away from the email |
| 121 | +protocol and will no longer be hosting the bitcoin-dev mailing list. |
| 122 | +There is a migration plan, but it's under investigation still." |
| 123 | + |
| 124 | +There was some brief discussion about current delivery problems with the |
| 125 | +list, an expression of hope that existing URLs to old posts remain |
| 126 | +valid, and other migration concerns. |
| 127 | + |
| 128 | +**Conclusion:** Bishop will send an email to the mailing list, hopefully |
| 129 | +before migration to a new host domain, with additional details once he |
| 130 | +has them. |
| 131 | + |
| 132 | +## Coin selection |
| 133 | + |
| 134 | +**Background:** several developers have been working on improving |
| 135 | +Bitcoin Core's coin selection---how it chooses which bitcoins (inputs) |
| 136 | +to spend---to simultaneously improve privacy, reduce transaction size, |
| 137 | +and reduce fees. The current selection protocol starts with a |
| 138 | +Branch-and-Bound (BnB) algorithm that tries to find a match between the |
| 139 | +inputs available and the amount being sent. If that doesn't work, a |
| 140 | +fallback algorithm is needed. A Single-Random-Draw (SRD) algorithm |
| 141 | +randomly adds additional inputs to a partial transaction until the sum |
| 142 | +of the inputs is equal to or greater than the amount being spent |
| 143 | +(including fees). |
| 144 | + |
| 145 | +This week's discussion is a continuation of [last week's discussion][srd |
| 146 | +2018-06-14] about the same topic. |
| 147 | + |
| 148 | +**Discussion ([log][log coin selection]):** Andrew Chow requested and |
| 149 | +introduced the topic, "I did a bunch of simulations of the |
| 150 | +[single random draw] fallback stuff |
| 151 | +([link](https://gist.github.com/achow101/242470486265d3f21adab08f65b9102c)). |
| 152 | +There are two problems that I see with this strategy: change can be |
| 153 | +incredibly small and the mean number of UTXOs in the wallet is quite |
| 154 | +high. The question is whether we can accept these tradeoffs or whether |
| 155 | +we need to find a better algorithm." |
| 156 | + |
| 157 | +Gregory Maxwell said, "[If I recall correctly], there is nothing |
| 158 | +fundamental about [single random draw] that makes it good for making |
| 159 | +[branch and bound] work better, but rater it was the first alternative |
| 160 | +\[Mark Erhardt] tried there." |
| 161 | + |
| 162 | +Chow added, "well, and in [Erhardt]'s simulations, [single random |
| 163 | +draw] performed reasonably well and was extremely simple. Though I |
| 164 | +guess we may be seeing different results now." |
| 165 | + |
| 166 | +Various additional strategies and their tradeoffs were discussed, but |
| 167 | +the topic was starting to become complicated for a short segment of a |
| 168 | +time-limited text-only meeting. |
| 169 | + |
| 170 | +**Conclusion:** Chow suggested, "perhaps this coin selection discussion |
| 171 | +would be better done in person with whiteboards," ending the meeting |
| 172 | +discussion, although Maxwell noted, "that leaves out people who can't |
| 173 | +attend." Presumably discussion will continue on PR [#13307][] and |
| 174 | +perhaps elsewhere. |
| 175 | + |
| 176 | +## Multiwallet session persistence |
| 177 | + |
| 178 | +**Background:** the development branch ("master" branch) of Bitcoin Core |
| 179 | +includes code that allows users to dynamically load and unload |
| 180 | +individual wallets in multiwallet mode. For example, you can have a |
| 181 | +"personal" wallet and a "business" wallet that can each be opened or closed |
| 182 | +separately. |
| 183 | + |
| 184 | +**Discussion ([log][log multiwallet persistence]):** Jonas Schnelli |
| 185 | +requested and introduced the topic, "I guess it's not ideal that loaded |
| 186 | +wallets need to be re-loaded after a Bitcoin Core restart---especially |
| 187 | +in pruning mode." |
| 188 | + |
| 189 | +Several meeting participants suggested that this is what the |
| 190 | +writable Bitcoin config file (rwconf) is being developed for. See PR |
| 191 | +[#11082][] and weekly meeting notes for [24 May 2018][rwconf meeting |
| 192 | +2018-05-24] and [7 June 2018][rwconf meeting 2018-06-07] for background. |
| 193 | + |
| 194 | +[rwconf meeting 2018-05-24]: /en/meetings/2018/05/24/#gui-prune-setting-and-writable-config-files |
| 195 | +[rwconf meeting 2018-06-07]: /en/meetings/2018/06/07/#command-line-argument-mapping |
| 196 | + |
| 197 | +**Conclusion:** "Okay, guess rw/config solves this, so /topic," said |
| 198 | +Schnelli. |
| 199 | + |
| 200 | +## Bech32x |
| 201 | + |
| 202 | +**Background:** several Bitcoin Core contributors have been working to |
| 203 | +create a new serialization format for backing up and recovering Bitcoin |
| 204 | +private keys, HD-wallet seeds, and HD-wallet extended private keys. The |
| 205 | +primary goal is to replace the current popular standards of base58check |
| 206 | +and BIP39 with a new standard that not only detects errors but can also |
| 207 | +automatically correct several of those errors for the user. Current |
| 208 | +ideas for this proposed format reuse some of the work that was performed |
| 209 | +to create the [bech32][bip173] native segwit address format, so work is |
| 210 | +proceeding under the name "bech32x" (but this may later change). |
| 211 | + |
| 212 | +**Discussion ([log][log bech32x]):** Jonas Schnelli requested and introduced |
| 213 | +the topic, "Bech32x currently has the distance 27 [BCH][wikipedia BCH] with |
| 214 | +correction to 7 characters, thanks to \[Pieter Wuille]. The idea is now |
| 215 | +to have three 'levels' of correction. [...] Seven characters is not |
| 216 | +much more than 5% correction for 512-bit key material [so more is wanted |
| 217 | +for that case, at least]." |
| 218 | + |
| 219 | +Wuille offered to provide three codes that user could choose from. |
| 220 | +Gregory Maxwell said, "I think it is not good to make it generally user |
| 221 | +selectable. The user *generally* has no way to make a useful |
| 222 | +decision---but making the format support multiple codes seems okay to |
| 223 | +me, though it might lower the odds that fancy decoders get written |
| 224 | +because it'll be more work." |
| 225 | + |
| 226 | +Wuille said, "we can make sure they use the same field and extension so |
| 227 | +that the majority of the recovery code can be shared." Wuille and |
| 228 | +Maxwell continued talking about details of choosing optimal BCH codes |
| 229 | +for this purpose. |
| 230 | + |
| 231 | +**Conclusion:** the time for the meeting to end occurred during the |
| 232 | +discussion and Maxwell said, "will continue later." |
| 233 | + |
| 234 | +## RWConf [writeable Bitcoin configuration file] |
| 235 | + |
| 236 | +*This topic was requested during the meeting but not enough time was |
| 237 | +available. Still, some participants stayed late to discuss it |
| 238 | +immediately after the meeting.* |
| 239 | + |
| 240 | +**Background:** as discussed in the [24 May 2018 meeting][rwconf meeting |
| 241 | +2018-05-24], several contributors are working towards creating a |
| 242 | +machine-writeable configuration file that will be shared between Bitcoin |
| 243 | +Core's daemon and GUI so that when users change a setting in one |
| 244 | +program, it'll be set the same way in the other program. A particular |
| 245 | +problem with creating the new configuration file was raised in the [7 |
| 246 | +June 2018 meeting][rwconf meeting 2018-06-07] but the person most |
| 247 | +familiar with the subject was not present; he was present for this |
| 248 | +after-meeting discussion. |
| 249 | + |
| 250 | +**Discussion ([log rwconf][]):** Luke Dashjr had requested the topic and |
| 251 | +introduced it post meeting by asking whether AJ Towns had any objection |
| 252 | +to Dashjr reverting one of Towns's commits that changed how command-line |
| 253 | +and configuration file parameters were handled when Bitcoin Core is |
| 254 | +started. This would resolve an issue Dashjr was having creating the |
| 255 | +writeable configuration file. |
| 256 | + |
| 257 | +Pieter Wuille suggested an additional mechanism and Towns pointed out a |
| 258 | +potential problem with Dashjr's proposal related to network |
| 259 | +configuration. However, Towns said, "anyway, I don't object to changing |
| 260 | +around the map stuff, [it] was just the simplest way I could see of |
| 261 | +getting relatively sane behavior." |
| 262 | + |
| 263 | +**Conclusion:** no explicit conclusion. Presumably Dashjr will continue |
| 264 | +working on creating a machine-writable configuration file. |
| 265 | + |
| 266 | +## Comic relief |
| 267 | + |
| 268 | +{% highlight text %} |
| 269 | +<gmaxwell> I doubt we know all the vulnerabilities. |
| 270 | + I know of at least two but I stopped looking. |
| 271 | +<achow101> gmaxwell: I believe I know of three |
| 272 | +<gmaxwell> Also depends on how you count. :) |
| 273 | +<achow101> that too |
| 274 | + <sipa> i tend to count using the ring of integers |
| 275 | +{% endhighlight %} |
| 276 | + |
| 277 | +## Participants |
| 278 | + |
| 279 | +| IRC nick | Name/Nym | |
| 280 | +|-----------------|---------------------------| |
| 281 | +| sipa | [Pieter Wuille][] | |
| 282 | +| gmaxwell | [Gregory Maxwell][] | |
| 283 | +| kanzure | [Bryan Bishop][] | |
| 284 | +| achow101 | [Andrew Chow][] | |
| 285 | +| luke-jr | [Luke Dashjr][] | |
| 286 | +| jonasschnelli | [Jonas Schnelli][] | |
| 287 | +| Murch | [Mark Erhardt][] | |
| 288 | +| BlueMatt | [Matt Corallo][] | |
| 289 | +| meshcollider | [Samuel Dobson][] | |
| 290 | +| promag | [Joao Barbosa][] | |
| 291 | +| aj | [Anthony Towns][] | |
| 292 | +| jnewbery | [John Newbery][] | |
| 293 | +| instagibbs | [Gregory Sanders][] | |
| 294 | +| jtimon | [Jorge Timón][] | |
| 295 | + |
| 296 | +## Disclaimer |
| 297 | + |
| 298 | +This summary was compiled without input from any of the participants in |
| 299 | +the discussion, so any errors are the fault of the summary author and |
| 300 | +not the discussion participants. In particular, quotes taken from the |
| 301 | +discussion had their capitalization, punctuation, and spelling modified |
| 302 | +to produce consistent sentences. Bracketed words and fragments, as well |
| 303 | +as background narratives and exposition, were added by the author of |
| 304 | +this summary and may have accidentally changed the meaning of some |
| 305 | +sentences. If you believe any quote was taken out of context, please |
| 306 | +[open an issue](https://github.com/bitcoin-core/bitcoincore.org/issues/new) |
| 307 | +and we will correct the mistake. |
| 308 | + |
| 309 | +[bbm log]: https://botbot.me/freenode/bitcoin-core-dev/msg/101362379/ |
| 310 | +[mb minutes]: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-06-21-19.00.html |
| 311 | +[current high-priority PRs]: https://github.com/bitcoin/bitcoin/projects/8 |
| 312 | + |
| 313 | + |
| 314 | +{% assign log = "http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-06-21-19.00.log.html" %} |
| 315 | +[mb log]: {{log}} |
| 316 | +[log hipri]: {{log}}#l-14 |
| 317 | +[log alert]: {{log}}#l-30 |
| 318 | +[log dev ml]: {{log}}#l-120 |
| 319 | +[log coin selection]: {{log}}#l-155 |
| 320 | +[log multiwallet persistence]: {{log}}#l-219 |
| 321 | +[log bech32x]: {{log}}#l-239 |
| 322 | +[log rwconf]: https://botbot.me/freenode/bitcoin-core-dev/msg/101364609/ |
| 323 | + |
| 324 | +[dashjr addr scanner]: http://luke.dashjr.org/programs/bitcoin/files/charts/branches.html |
| 325 | +[value overflow incident]: https://en.bitcoin.it/wiki/Value_overflow_incident |
| 326 | +[nakamoto last post]: https://bitcointalk.org/index.php?topic=2228.msg29479#msg29479 |
| 327 | +[alerts off]: /en/releases/0.12.1/#miscellaneous |
| 328 | +[alerts removed]: /en/releases/0.13.0/#low-level-p2p-changes |
| 329 | +[final alert]: /en/releases/0.14.0/#final-alert |
| 330 | +[alert key disclosure]: https://bitcoin.org/en/alert/2016-11-01-alert-retirement |
| 331 | +[9 march 2017 weekly meeting]: /en/meetings/2017/03/09/#alert-key-disclosure-timeline |
| 332 | +[bitnodes scanning system]: https://bitnodes.earn.com/ |
| 333 | +[srd 2018-06-14]: /en/meetings/2018/06/14/#srd-single-random-draw-fallback-coin-selection |
| 334 | +[wikipedia bch]: https://en.wikipedia.org/wiki/BCH_code |
| 335 | + |
| 336 | +{% include link-to-issues.md issues="13062,12196,13425,13100,13307,11082" %} |
0 commit comments