|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #13' |
| 3 | +permalink: /en/newsletters/2018/09/18/ |
| 4 | +name: 2018-09-18-newsletter |
| 5 | +type: newsletter |
| 6 | +layout: newsletter |
| 7 | +lang: en |
| 8 | +--- |
| 9 | +This week's newsletter includes action items related to the security |
| 10 | +release of Bitcoin Core 0.16.3 and Bitcoin Core 0.17RC4, the |
| 11 | +newly-proposed BIP322, and Optech's upcoming Paris workshop; a link to |
| 12 | +the C-Lightning 0.6.1 release, more information about BIP322, and some |
| 13 | +details about the Bustapay proposal; plus brief descriptions of notable |
| 14 | +merges in popular Bitcoin infrastructure projects. |
| 15 | + |
| 16 | +## Action items |
| 17 | + |
| 18 | +- **Upgrade to Bitcoin Core 0.16.3 to fix denial-of-service |
| 19 | + vulnerability:** a bug introduced in Bitcoin Core 0.14.0 and affecting |
| 20 | + all subsequent versions through to 0.16.2 will cause Bitcoin Core to |
| 21 | + crash when attempting to validate a block containing a transaction |
| 22 | + that attempts to spend the same input twice. Such blocks would be |
| 23 | + invalid and so can only be created by miners willing to lose the |
| 24 | + allowed income from having created a block (at least 12.5 XBT or |
| 25 | + $80,000 USD). |
| 26 | + |
| 27 | + Patches for [master][dup txin master] and [0.16][dup txin 0.16] |
| 28 | + branches were submitted for public review yesterday, the 0.16.3 |
| 29 | + release has been tagged containing the patch, and binaries will |
| 30 | + be available for [download][core download] as soon as a sufficient |
| 31 | + number of well-known contributors have reproduced the deterministic |
| 32 | + build---probably later today (Tuesday). Immediate upgrade is |
| 33 | + highly recommended. |
| 34 | + |
| 35 | +- **Allocate time to test Bitcoin Core 0.17RC4:** Bitcoin Core will soon |
| 36 | + be uploading [binaries][bcc 0.17] for 0.17 Release Candidate (RC) 4 |
| 37 | + containing the same patch for the DoS vulnerability described above. |
| 38 | + All testers of previous release candidates should upgrade. Testing is |
| 39 | + greatly appreciated and can help ensure the quality of the final |
| 40 | + release. |
| 41 | + |
| 42 | +- **Review proposed BIP322 for generic message signing:** this |
| 43 | + [recently-proposed][BIP322 proposal] BIP will allow users to create |
| 44 | + signed messages for all currently-used types of Bitcoin addresses, |
| 45 | + including P2PKH, P2SH, P2SH-wrapped segwit, P2WPKH, and P2WSH. It has |
| 46 | + the potential to become an industry standard that will be implemented |
| 47 | + by nearly all wallets and may be used by many services (such as |
| 48 | + peer-to-peer marketplaces) as well as for customer support, so Optech |
| 49 | + encourages allocating some engineering time to ensure the proposal is |
| 50 | + compatible with your organization's needs. See the News section below |
| 51 | + for additional details. |
| 52 | + |
| 53 | +- **[Optech Paris workshop][workshop] November 12-13:** member |
| 54 | + companies should [send us an email][optech email] to reserve spots for |
| 55 | + your engineers. Planned topics include a comparison of two methods |
| 56 | + for bumping transaction fees, discussion of partially-signed Bitcoin |
| 57 | + transactions ([BIP174][]), an introduction to output script |
| 58 | + descriptors, suggestions for Lightning Network wallet integration, and |
| 59 | + approaches to efficient coin selection (including output |
| 60 | + consolidation). |
| 61 | + |
| 62 | +## News |
| 63 | + |
| 64 | +- **C-Lightning 0.6.1 released:** this minor update brings several |
| 65 | + improvements, including "fewer stuck payments, better routing, fewer |
| 66 | + spurious closes, and several annoying bugs fixed." The [release |
| 67 | + announcement][c-lightning 0.6.1] contains details and links to |
| 68 | + downloads. |
| 69 | + |
| 70 | +- **BIP322 generic signed message format:** since 2011, users of many |
| 71 | + wallets have had the ability to sign an arbitrary message using the |
| 72 | + public key associated with a P2PKH address in their wallet. However, |
| 73 | + there's no standardized way for users to do the same using a P2SH |
| 74 | + address or any of the different types of segwit addresses (although |
| 75 | + there are some implemented [non-standard methods][trezor p2wpkh |
| 76 | + message signing] with limited functionality). Picking up a |
| 77 | + Bitcoin-Dev mailing list discussion from several months ago, |
| 78 | + Karl-Johan Alm has [proposed][BIP322 proposal] a BIP that could work |
| 79 | + for any address (although it's not yet described how it would work for |
| 80 | + P2SH or P2WSH addresses involving an OP_CLTV or OP_CSV timelock). |
| 81 | + |
| 82 | + The basic mechanism is that the authorized spender or spenders for |
| 83 | + an address generate scriptSigs and witness data (including |
| 84 | + their signatures) in much the same way they would if they were |
| 85 | + spending the funds---except instead of signing the spending |
| 86 | + transaction, they sign their arbitrary message instead (plus some |
| 87 | + predetermined extra data to ensure they can't be tricked into |
| 88 | + signing an actual transaction). The verifier's software then |
| 89 | + validates this information the same way it would to determine |
| 90 | + whether a spending transaction was valid. This allows the message |
| 91 | + signing facility to be exactly as flexible as Bitcoin scripts |
| 92 | + themselves. |
| 93 | + |
| 94 | + Currently, discussion appears to be most active on the BIP |
| 95 | + proposal's [pull request][BIP322 PR]. |
| 96 | + |
| 97 | +- **Bustapay discussion:** a simplified alternative to the proposed |
| 98 | + Pay-to-Endpoint (P2EP) protocol [described in newsletter #8][news8 |
| 99 | + news], Bustapay provides improved privacy for both spenders and |
| 100 | + receivers---and also allows receivers to accept payments without |
| 101 | + increasing the number of their spendable outputs, a form of automatic |
| 102 | + UTXO consolidation. Although [proposed][bustapay proposal] to the |
| 103 | + Bitcoin-Dev mailing list a few weeks ago, several aspects of the |
| 104 | + proposal were [discussed][bustapay sjors] this week. |
| 105 | + |
| 106 | + Although P2EP and Bustapay could end up being implemented by only a |
| 107 | + few wallets and services similar to the [BIP70][] payment protocol, |
| 108 | + there's also chance they could end up being becoming as widely |
| 109 | + adopted as wallet support for [BIP21][] URI handlers. Even if they |
| 110 | + don't see general adoption, their privacy advantage means they could |
| 111 | + end up well deployed among niche users. In either case, it may be |
| 112 | + worth dedicating some engineering time towards tracking the |
| 113 | + proposals and proof of concept implementations to ensure your |
| 114 | + organization can easily adopt them if desirable. |
| 115 | + |
| 116 | +## Notable commits |
| 117 | + |
| 118 | +*Notable commits this week in [Bitcoin Core][core commits], [LND][lnd |
| 119 | +commits], and [C-lightning][cl commits]. Reminder: new merges to |
| 120 | +Bitcoin Core are made to its master development branch and are unlikely |
| 121 | +to become part of the upcoming 0.17 release---you'll probably have to |
| 122 | +wait until version 0.18 in about six months from now.* |
| 123 | + |
| 124 | +{% include linkers/github-log.md |
| 125 | + refname="core commits" |
| 126 | + repo="bitcoin/bitcoin" |
| 127 | + start="cb25cd6aa18c69918176d68e36e26f7e373aa48c" |
| 128 | + end="c53e083a49291b611d278a8db24ff235c1202e43" |
| 129 | +%} |
| 130 | +{% include linkers/github-log.md |
| 131 | + refname="lnd commits" |
| 132 | + repo="lightningnetwork/lnd" |
| 133 | + start="1941353fb28755a170793e43595601d75c8f3dda" |
| 134 | + end="3b2c807288b1b7f40d609533c1e96a510ac5fa6d" |
| 135 | +%} |
| 136 | +{% include linkers/github-log.md |
| 137 | + refname="cl commits" |
| 138 | + repo="ElementsProject/lightning" |
| 139 | + start="634f19a7b230edc686be56ab950b80784e56252c" |
| 140 | + end="36eab5de26e203311ceeb65c94ec5beb9c94ff5d" |
| 141 | +%} |
| 142 | + |
| 143 | +- [Bitcoin Core #14054][]: this PR prevents the node from sending |
| 144 | + [BIP61][] peer-to-peer protocol [reject messages][p2p reject] by |
| 145 | + default. These messages were implemented to make it easier for |
| 146 | + developers of lightweight clients to get feedback on connection and |
| 147 | + transaction relay problems. However, there's no requirement (or way |
| 148 | + to require) that nodes send a reject message or an accurate reject |
| 149 | + message, so the messages arguably only end up wasting bandwidth. |
| 150 | + |
| 151 | + It's recommended that developers connect their test clients to their |
| 152 | + own nodes and inspect their nodes' logs for error messages in case |
| 153 | + of problems (perhaps after enabling debug logging). Users who still |
| 154 | + need to send `reject` messages can use the `-enablebip61` |
| 155 | + configuration option, although it's possible that `reject` |
| 156 | + messages will be removed altogether in a release after 0.18. |
| 157 | + |
| 158 | +- [Bitcoin Core #7965][]: this long-standing issue tracked the removal |
| 159 | + of code in the libbitcoin_server component to handle whether the wallet is |
| 160 | + compiled or not. The issue was finally closed this week by the merge of |
| 161 | + [Bitcoin Core #14168][]. This issue, along with a number of other issues such |
| 162 | + as [Bitcoin Core #10973][] (Refactor: separate wallet from node) and [Bitcoin |
| 163 | + Core #14180][] (Run all tests even if wallet is not compiled) are part of a |
| 164 | + long-term effort to disentangle the wallet code from the server code. Doing so |
| 165 | + provides a number of benefits including easier code maintenance, better |
| 166 | + opportunities for testing individual components, and potentially more secure |
| 167 | + software if the wallet component is moved to its own process. |
| 168 | + |
| 169 | +- [LND #1843][]: a configuration option intended only for testing |
| 170 | + (`--noencryptwallet`) has been renamed to `--noseedbackup`, been |
| 171 | + marked as deprecated, and had its help text updated and changed to |
| 172 | + mostly uppercase warning text. Developers are worried that ordinary |
| 173 | + users are enabling this option without realizing that it puts them |
| 174 | + only one failure away from permanently losing money. |
| 175 | + |
| 176 | +- [LND #1516][]: thanks to updates in the upstream Tor daemon, this |
| 177 | + patch makes it possible for LND to automatically create and set up v3 |
| 178 | + onion services in addition to its existing v2 automation. For the |
| 179 | + automation to work, users must already have Tor installed and running |
| 180 | + as a service. |
| 181 | + |
| 182 | +- C-Lightning: for testing, an RPC proxy is now used to simplify mocking |
| 183 | + responses to various RPC calls, making it easier to test lightningd's |
| 184 | + handling of things such as fee estimates and crashes of bitcoind. |
| 185 | + |
| 186 | +{% include references.md %} |
| 187 | +{% include linkers/issues.md issues="14054,1843,1516,7965,14168,10973,14180" %} |
| 188 | + |
| 189 | +[bcc 0.17]: https://bitcoincore.org/bin/bitcoin-core-0.17.0/ |
| 190 | +[workshop]: /workshops |
| 191 | +[news8 news]: {{news8}}#news |
| 192 | +[c-lightning 0.6.1]: https://github.com/ElementsProject/lightning/releases/tag/v0.6.1 |
| 193 | +[BIP322 proposal]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-September/016393.html |
| 194 | +[BIP322 PR]: https://github.com/bitcoin/bips/pull/725 |
| 195 | +[trezor p2wpkh message signing]: https://github.com/trezor/trezor-mcu/issues/169 |
| 196 | +[bustapay proposal]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016340.html |
| 197 | +[bustapay sjors]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-September/016383.html |
| 198 | +[p2p reject]: https://btcinformation.org/en/developer-reference#reject |
| 199 | +[dup txin master]: https://github.com/bitcoin/bitcoin/pull/14247 |
| 200 | +[dup txin 0.16]: https://github.com/bitcoin/bitcoin/pull/14249 |
| 201 | +[core download]: https://bitcoincore.org/en/download |
0 commit comments