|
| 1 | +--- |
| 2 | +title: IRC meeting summary for 2018-06-28 |
| 3 | +lang: en |
| 4 | +permalink: /en/meetings/2018/06/28/ |
| 5 | +name: 2016-06-28-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, a draft specification for a new [BIP39][]-like seed |
| 21 | +format, documenting how Bitcoin Core uses the [BIP32][] HD wallet |
| 22 | +standard, an update on progress towards implementing [BIP151][] |
| 23 | +encrypted peer-to-peer connections, and discussion surrounding a new way |
| 24 | +to describe to wallet software what output scripts they should consider |
| 25 | +part of the user's wallet. |
| 26 | + |
| 27 | +## High priority for review |
| 28 | + |
| 29 | +**Background:** each meeting, Bitcoin Core developers discuss which Pull |
| 30 | +Requests (PRs) the meeting participants think most need review in the |
| 31 | +upcoming week. Some of these PRs are related to code that contributors |
| 32 | +especially want to see in the next release; others are PRs that are |
| 33 | +blocking further work or which require significant maintenance (rebasing) |
| 34 | +to keep in a pending state. Any capable reviewers are encouraged to |
| 35 | +visit the project's list of [current high-priority |
| 36 | +PRs][]. |
| 37 | + |
| 38 | +**Discussion ([log][log hipri]):** the only PR specifically discussed |
| 39 | +was [#12196][], which adds a `scantxoutset` RPC to allow applications to |
| 40 | +search all current Unspent Transaction Outputs (UTXOs) for those that match a |
| 41 | +particular address, public key, private key, or HD wallet extended |
| 42 | +public key (xpub). |
| 43 | + |
| 44 | +Pieter Wuille suggested that the PR's author, Jonas Schnelli, remove |
| 45 | +xpub support from `scantxoutset` for now and Wuille would later PR an |
| 46 | +update to `scantxoutset` that adds support for the output script |
| 47 | +descriptors described later in these meeting notes. If Wuille is |
| 48 | +delayed in doing so, Schnelli can just add the previously-written xpub |
| 49 | +support back in before the Bitcoin Core 0.17 feature freeze. Schnelli |
| 50 | +agreed. |
| 51 | + |
| 52 | +*Note: extended discussion of output script descriptors during this part |
| 53 | +of the meeting has been moved to a [separate section](#output-script-descriptors).* |
| 54 | + |
| 55 | +## Cipherseed |
| 56 | + |
| 57 | +**Background:** (Part of the discussion.) |
| 58 | + |
| 59 | +**Discussion ([log][log cipherseed]):** Jonas Schnelli requested and |
| 60 | +introduced the topic, "I have a [specification draft][draft bip |
| 61 | +cipherseed] for a new seed format similar to BIP39 with some neat |
| 62 | +properties and---before sending [it] to the mailing list---would |
| 63 | +appreciate feedback." |
| 64 | + |
| 65 | +**Conclusion:** Schnelli said it was "more an announcement than a topic" |
| 66 | +and so discussion was deferred until people had a chance to read the |
| 67 | +draft. |
| 68 | + |
| 69 | +## Core's BIP32 derivation "standard" |
| 70 | + |
| 71 | +**Background:** the HD wallet specification, [BIP32][], defines how a |
| 72 | +set of private keys and public keys (and, therefore, addresses) can be |
| 73 | +derived from a 128-bit to 512-bit random seed. |
| 74 | + |
| 75 | +**Discussion ([log][log core hd]):** Jonas Schnelli requested and |
| 76 | +introduced the topic, "It came up today in a discussion [that] Core's |
| 77 | +BIP32 derivation scheme is not specified in a BIP. Some people think |
| 78 | +it's vanilla/native BIP32, but it's not, while other [wallets] do native |
| 79 | +BIP32." |
| 80 | + |
| 81 | +Wladimir van der Laan agreed "it would be good if the difference would |
| 82 | +be documented somewhere." Luke Dashjr opposed it being a BIP and Pieter |
| 83 | +Wuille agreed, with Andrew Chow suggesting that "just documenting the |
| 84 | +derivation in the [documentation repository][docs repo] is sufficient." |
| 85 | + |
| 86 | +*Note: extended discussion of output script descriptors during this part |
| 87 | +of the meeting has been moved to a [separate section](#output-script-descriptors).* |
| 88 | + |
| 89 | +## P2Plink ephemeral encryption |
| 90 | + |
| 91 | +**Background:** [BIP151][] specifies a method to allow Bitcoin nodes |
| 92 | +and clients to send their data over encrypted connections to prevent |
| 93 | +eavesdroppers from directly monitoring which particular transactions and |
| 94 | +blocks are being transmitted. This can enhance certain aspects of |
| 95 | +privacy, such as by making it harder for someone to determine which |
| 96 | +IP address was the first to transmit a particular transaction (maybe |
| 97 | +indicating that someone at that IP address created the transaction). In |
| 98 | +the BIP151 specification, both parties to the connection generate keys |
| 99 | +for just that connection and that session---destroying the keys after |
| 100 | +the connection is closed; these keys are described as "ephemeral". |
| 101 | +Since ephemeral keys are not reused, it's not possible to use them to |
| 102 | +identify the same node operating on different networks (e.g. Tor) or |
| 103 | +after the node changes IP addresses. |
| 104 | + |
| 105 | +**Discussion ([log][log link encryption]):** Gregory Maxwell requested |
| 106 | +the topic and opened discussion with a question, "Has there been any |
| 107 | +progress towards implementing P2P link ephemeral encryption lately? I |
| 108 | +know we were kinda waiting for some other networking refactors." |
| 109 | + |
| 110 | +Jonas Schnelli said, "Armory has implemented it and has plans to PR it |
| 111 | +to Core (not sure how soon and in what quality)." |
| 112 | + |
| 113 | +Cory Fields said, "I've had to put the network [refactor] stuff on the |
| 114 | +back burner for now, so certainly don't wait for that. I'm happy to |
| 115 | +help with the implementation [of BIP151]. I was thinking we were |
| 116 | +waiting on the authentication stuff." |
| 117 | + |
| 118 | +Schnelli, Maxwell, and Pieter Wuille all agreed that BIP151 |
| 119 | +implementation shouldn't be waiting on a proposal for authentication. |
| 120 | + |
| 121 | +Further discussion focused on whether or not the setup protocol for the |
| 122 | +encryption (the initial handshake) should be made harder to detect and |
| 123 | +so also harder to block. However, Maxwell said, "I think we thought the |
| 124 | +benefits [of the approach considered] were too dubious, especially since |
| 125 | +traffic patterns will identify Bitcoin peer-to-peer links very clearly. |
| 126 | +[...] So I think we're good to implement, and the only changes that |
| 127 | +might be proposed would be ones that arose as a side effect of |
| 128 | +implementing and benchmarking." |
| 129 | + |
| 130 | +**Conclusion:** Schnelli said, "If no one else wants to work on the |
| 131 | +implementation, I will continue then with [my] BIP151 implementation." |
| 132 | + |
| 133 | +[draft bip cipherseed]: https://gist.github.com/jonasschnelli/245f35894f6ff585b3f3d33c6f208991 |
| 134 | + |
| 135 | +## Output script descriptors |
| 136 | + |
| 137 | +*Note: this was not a tagged topic, but it was discussed during two |
| 138 | +other topics in the meeting. For easier reading, those separate |
| 139 | +discussions have been extracted from where they occurred and unified |
| 140 | +into a single topic here.* |
| 141 | + |
| 142 | +**Background:** Pieter Wuille has been working on a [redesign][gist |
| 143 | +wallet redesign] of how the Bitcoin Core wallet identifies which |
| 144 | +transactions belong to a particular user's wallet. |
| 145 | + |
| 146 | +**Discussion ([log part 1][log out desc scantxoutset], [log part 2][log |
| 147 | +out desc bip32]):** As part of his wallet redesign, Pieter Wuille said |
| 148 | +that he has been working on a related [design][gist output script |
| 149 | +descriptors] for human-readable descriptions of sets of scriptPubKeys |
| 150 | +that provides "a general language that encodes all information about how |
| 151 | +to spend a whole set of keys with associated addresses/scripts/private |
| 152 | +keys/... into one string, including support for multisig etc..." |
| 153 | + |
| 154 | +This supports the proposed wallet redesign by allowing "import/export |
| 155 | +[to] operate at the level of those descriptors, instead of individual |
| 156 | +keys/scripts/pubkeys/HD [wallet key] chains. [The] importmulti [RPC] is |
| 157 | +already compatible with that design, for a large extent. The entirety of |
| 158 | +that idea is certainly not for [the next major Bitcoin Core version,] |
| 159 | +0.17, but that doesn't mean it can't be used already in relatively small |
| 160 | +scoped things [like] `scantxoutset`." |
| 161 | + |
| 162 | +This lead Wuille to suggest that PR [#12196][] temporarily remove its |
| 163 | +extended public key support so that Wuille can allow the new `scantxoutset` |
| 164 | +RPC to use the output script descriptors instead. |
| 165 | + |
| 166 | +Jonas Schnelli asked, "how would [output script descriptors] interact |
| 167 | +with the keypool, flexible keypaths, and extended public keys?" The |
| 168 | +keypool is a set of keys belonging to the user's wallet; Bitcoin Core |
| 169 | +looks for transactions affecting those keys and adds them to the user's |
| 170 | +wallet. Flexible keypaths refers to the [BIP32][] key derivation path |
| 171 | +for an HD wallet. |
| 172 | + |
| 173 | +Wuille said that the "keypool goes away [...] In practice, [the |
| 174 | +descriptor] contains the expanded pubkeys. [For] flexible keypath, the |
| 175 | +descriptor just contains the path; you can change it to whatever you'd |
| 176 | +like (but default wallets would, of course, pick some standard scheme)." |
| 177 | + |
| 178 | +**Conclusion:** Wuille will continue working on output script |
| 179 | +descriptors, including a plan to open a PR adding them to the |
| 180 | +`scantxoutset` RPC. |
| 181 | + |
| 182 | +[gist wallet redesign]: https://gist.github.com/sipa/125cfa1615946d0c3f3eec2ad7f250a2 |
| 183 | +[gist output script descriptors]: https://gist.github.com/sipa/e3d23d498c430bb601c5bca83523fa82 |
| 184 | + |
| 185 | +## Participants |
| 186 | + |
| 187 | +| IRC nick | Name/Nym | |
| 188 | +|-----------------|---------------------------| |
| 189 | +| jonasschnelli | [Jonas Schnelli][] | |
| 190 | +| sipa | [Pieter Wuille][] | |
| 191 | +| wumpus | [Wladimir van der Laan][] | |
| 192 | +| gmaxwell | [Gregory Maxwell][] | |
| 193 | +| cfields | [Cory Fields][] | |
| 194 | +| promag | [Joao Barbosa][] | |
| 195 | +| luke-jr | [Luke Dashjr][] | |
| 196 | +| achow101 | [Andrew Chow][] | |
| 197 | +| meshcollider | [Samuel Dobson][] | |
| 198 | +| instagibbs | [Gregory Sanders][] | |
| 199 | +| kanzure | [Bryan Bishop][] | |
| 200 | +| jnewbery | [John Newbery][] | |
| 201 | + |
| 202 | +## Disclaimer |
| 203 | + |
| 204 | +This summary was compiled without input from any of the participants in |
| 205 | +the discussion, so any errors are the fault of the summary author and |
| 206 | +not the discussion participants. In particular, quotes taken from the |
| 207 | +discussion had their capitalization, punctuation, and spelling modified |
| 208 | +to produce consistent sentences. Bracketed words and fragments, as well |
| 209 | +as background narratives and exposition, were added by the author of |
| 210 | +this summary and may have accidentally changed the meaning of some |
| 211 | +sentences. If you believe any quote was taken out of context, please |
| 212 | +[open an issue](https://github.com/bitcoin-core/bitcoincore.org/issues/new) |
| 213 | +and we will correct the mistake. |
| 214 | + |
| 215 | +[bbm log]: https://botbot.me/freenode/bitcoin-core-dev/msg/101580174/ |
| 216 | +[mb minutes]: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-06-28-19.00.html |
| 217 | +[current high-priority PRs]: https://github.com/bitcoin/bitcoin/projects/8 |
| 218 | + |
| 219 | + |
| 220 | +{% assign log = "http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-06-28-19.00.log.html" %} |
| 221 | +[mb log]: {{log}} |
| 222 | +[log hipri]: {{log}}#l-15 |
| 223 | +[log cipherseed]: {{log}}#l-85 |
| 224 | +[log core hd]: {{log}}#l-92 |
| 225 | +[log link encryption]: {{log}}#l-149 |
| 226 | +[log out desc scantxoutset]: {{log}}#l-33 |
| 227 | +[log out desc bip32]: {{log}}#l-124 |
| 228 | + |
| 229 | +[docs repo]: https://github.com/bitcoin-core/docs |
| 230 | + |
| 231 | +{% include link-to-issues.md issues="12196" %} |
0 commit comments