|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #14' |
| 3 | +permalink: /en/newsletters/2018/09/25/ |
| 4 | +name: 2018-09-25-newsletter |
| 5 | +type: newsletter |
| 6 | +layout: newsletter |
| 7 | +lang: en |
| 8 | +--- |
| 9 | +This week's newsletter includes action items and news related to last week's |
| 10 | +security release of Bitcoin Core 0.16.3 and Bitcoin Core 0.17RC4, popular |
| 11 | +questions and answers from the Bitcoin StackExchange over the past |
| 12 | +month, and short descriptions of notable merges made to popular Bitcoin |
| 13 | +infrastructure projects. |
| 14 | + |
| 15 | +- **Upgrade to Bitcoin Core 0.16.3 to fix CVE-2018-17144:** as widely |
| 16 | + reported early Friday (UTC), the denial-of-service vulnerability |
| 17 | + described in last week's Optech newsletter is now known to allow |
| 18 | + miners to trick affected systems into accepting invalid bitcoins. |
| 19 | + |
| 20 | + As of this writing, it's believed that a majority of large Bitcoin |
| 21 | + services and miners have upgraded, likely ensuring that any blocks |
| 22 | + exploiting the bug will be quickly reorganized out of the most |
| 23 | + proof-of-work chain---reducing the risk for SPV clients and |
| 24 | + non-upgraded nodes. |
| 25 | + |
| 26 | + If you don't plan to upgrade or if you use an SPV client, you should |
| 27 | + consider waiting for more confirmations than you usually do (30 |
| 28 | + confirmations---about 5 hours worth---is a normal |
| 29 | + [recommendation][reorg risk recommendation] in these sort of |
| 30 | + situations, as that's enough time for people to notice a problem and |
| 31 | + get warnings published). Otherwise, upgrading to one of the |
| 32 | + following versions remains highly recommended for any system, |
| 33 | + especially those systems handling money: |
| 34 | + |
| 35 | + - [0.16.3][] (current stable) |
| 36 | + |
| 37 | + - [0.17.0RC4][bcc 0.17] (release candidate for next major version) |
| 38 | + |
| 39 | + - [0.15.2][] (backport to old version, may have other issues) |
| 40 | + |
| 41 | + - [0.14.3][] (backport to old version, may have other issues) |
| 42 | + |
| 43 | +- **Allocate time to test Bitcoin Core 0.17RC4:** Bitcoin Core has |
| 44 | + uploaded [binaries][bcc 0.17] for 0.17 Release Candidate (RC) 4. |
| 45 | + Testing is greatly appreciated and can help ensure the quality of the |
| 46 | + final release. |
| 47 | + |
| 48 | +## News |
| 49 | + |
| 50 | +- **CVE-2018-17144:** the initial and subsequent disclosures of |
| 51 | + information about this bug were the only significant news this week. |
| 52 | + For more information, we suggest reading the following sources: |
| 53 | + |
| 54 | + - [Bitcoin Core full disclosure][] |
| 55 | + |
| 56 | + - [Original confidential report][], now public |
| 57 | + |
| 58 | + - [Additional technical information][bse 79484] by Andrew Chow (also described below) |
| 59 | + |
| 60 | + - [CVE-2018-17144][], National Vulnerability Database (NVE) entry |
| 61 | + being updated by Luke Dashjr |
| 62 | + |
| 63 | + We're aware of several very insightful people currently reflecting |
| 64 | + upon the bug, its ultimate causes, and possible methods for reducing |
| 65 | + the risk of future serious bugs. An especially good venue for |
| 66 | + Bitcoin Core internal discussion will be during the October 8th |
| 67 | + though 10th [CoreDev.tech][] meetings following the Tokyo Scaling |
| 68 | + Bitcoin conference. We plan to follow up with links to any |
| 69 | + significant conclusions that are published. |
| 70 | + |
| 71 | + Optech thanks the original reporter, Awemany, for his responsible |
| 72 | + disclosure as well as the following developers who unhesitatingly |
| 73 | + made the time to quickly confirm the issue, address it, and quietly |
| 74 | + provide round-the-clock monitoring for attempts to exploit the |
| 75 | + then-undisclosed inflation risk: Pieter Wuille, Gregory Maxwell, |
| 76 | + Wladimir van der Laan, Cory Fields, Suhas Daftuar, Alex Morcos, and |
| 77 | + Matt Corallo. |
| 78 | + |
| 79 | +## Selected Q&A from Bitcoin StackExchange |
| 80 | + |
| 81 | +{% comment %}<!-- https://bitcoin.stackexchange.com/search?tab=votes&q=created%3a1m..%20is%3aanswer -->{% endcomment %} |
| 82 | + |
| 83 | +*[Bitcoin StackExchange][bitcoin.se] is one of the first places Optech |
| 84 | +contributors look for answers to their questions---or when we have a |
| 85 | +few spare moments of time to help answer other people's questions. In |
| 86 | +this monthly feature, we highlight some of the top voted questions and |
| 87 | +answers made since our last update.* |
| 88 | + |
| 89 | +- [How does CVE-2018-17144 work?][bse 79484] Andrew Chow provides a |
| 90 | + detailed explanation of how Bitcoin Core can be crashed or tricked |
| 91 | + into accepting multiple spends of the same input in versions |
| 92 | + vulnerable to this bug. |
| 93 | + |
| 94 | +- [Why doesn't Bitcoin use UDP instead of TCP?][bse 79175] Gregory |
| 95 | + Maxwell describes a case where important Bitcoin software does already |
| 96 | + use UDP and then details the reasons why UDP support isn't implemented |
| 97 | + in popular full node software. He concludes with a description of |
| 98 | + some potential benefits that might be available if UDP support was |
| 99 | + implemented. |
| 100 | + |
| 101 | +- [How likely are you to get blacklisted by an exchange if you use |
| 102 | + Wasabi wallet's CoinJoin mixing?][bse 78654] Wasabi Wallet author |
| 103 | + Adam Ficsor explains that nothing stops exchanges from refusing funds |
| 104 | + mixed through Wasabi, but that several features of Wasabi (such as a |
| 105 | + required anonymity set of 100) can help make blocking users bad for |
| 106 | + business. Alternatively, he links to a tool that may allow users to |
| 107 | + circumvent an address blacklist. |
| 108 | + |
| 109 | +- [What's the minimum number for a Bitcoin private key?][bse 79472] |
| 110 | + Answers from Mark Erhardt and Gregory Maxwell were provided within a |
| 111 | + minute of each other, but a humorous rephrasing of Maxwell's answer by |
| 112 | + Nate Eldredge has more upvotes than either answer as of this writing. |
| 113 | + |
| 114 | +## Notable commits |
| 115 | + |
| 116 | +*Notable commits this week in [Bitcoin Core][core commits], [LND][lnd |
| 117 | +commits], and [C-lightning][cl commits]. Reminder: new merges to |
| 118 | +Bitcoin Core are made to its master development branch and are unlikely |
| 119 | +to become part of the upcoming 0.17 release---you'll probably have to |
| 120 | +wait until version 0.18 in about six months from now.* |
| 121 | + |
| 122 | +{% include linkers/github-log.md |
| 123 | + refname="core commits" |
| 124 | + repo="bitcoin/bitcoin" |
| 125 | + start="c53e083a49291b611d278a8db24ff235c1202e43" |
| 126 | + end="920c090f63f4990bf0f3b3d1a6d3d8a8bcd14ba0" |
| 127 | +%} |
| 128 | +{% include linkers/github-log.md |
| 129 | + refname="lnd commits" |
| 130 | + repo="lightningnetwork/lnd" |
| 131 | + start="3b2c807288b1b7f40d609533c1e96a510ac5fa6d" |
| 132 | + end="f4305097e1638f6f8958dfa9eec941d8bf80246e" |
| 133 | +%} |
| 134 | +{% include linkers/github-log.md |
| 135 | + refname="cl commits" |
| 136 | + repo="ElementsProject/lightning" |
| 137 | + start="36eab5de26e203311ceeb65c94ec5beb9c94ff5d" |
| 138 | + end="3ce53ab9eddd397d57b6afc5faefe6703e56ac26" |
| 139 | +%} |
| 140 | + |
| 141 | +- [Bitcoin Core #13152][]: when connected to the peer-to-peer network, |
| 142 | + nodes share the IP addresses of other nodes they've heard about and |
| 143 | + these addresses are stored in a database that Bitcoin Core queries |
| 144 | + when it wants to open a new connection. This PR adds a new RPC command, |
| 145 | + `getnodeaddresses`, that returns one or more of these addresses. This |
| 146 | + can be useful in conjunction with tools like [bitcoin-submittx][]. |
| 147 | + |
| 148 | +- [LND #1738][]: the logic for validating channel updates has been |
| 149 | + moved to the routing package so that it's available both in routing |
| 150 | + (to handle failed payment sessions) and the gossiper (where it was |
| 151 | + handled before). This fixes issue [#1707][LND #1707] (and implements |
| 152 | + a test case for it) that may have allowed a node to trick one of its |
| 153 | + peers into believing a different peer had a routing failure, thus |
| 154 | + possibly redirecting traffic to the malicious node. |
| 155 | + |
| 156 | +- C-Lightning now provides a `gossipwith` tool that allows you to |
| 157 | + receive gossip from a node independently of lightningd or even to send |
| 158 | + the remote node a message. This tool is used for additional testing |
| 159 | + of lightningd's gossip component. |
| 160 | + |
| 161 | +- C-Lightning now complies with updates to [BOLT7][bolt7] by |
| 162 | + splitting the previous `flags` field for the `listchannels` RPC into |
| 163 | + two new fields: `message_flags` and `channel_flags`. Also code |
| 164 | + comments and references to [BOLT2][] and [BOLT11][] have been updated. |
| 165 | + |
| 166 | +- C-Lightning has significantly expanded the in-code documentation of |
| 167 | + its secrets module. The documentation is remarkably good (and, at |
| 168 | + times, quite humorous). See [hsmd.c][]. The code comments even |
| 169 | + document other code comments: |
| 170 | + |
| 171 | + ```c |
| 172 | + /*~ You'll find FIXMEs like this scattered through the code. |
| 173 | + * Sometimes they suggest simple improvements which someone like |
| 174 | + * yourself should go ahead an implement. Sometimes they're deceptive |
| 175 | + * quagmires which will cause you nothing but grief. You decide! */ |
| 176 | + |
| 177 | + /* FIXME: We should cache these. */ |
| 178 | + get_channel_seed(&c->id, c->dbid, &channel_seed); |
| 179 | + derive_funding_key(&channel_seed, &funding_pubkey, &funding_privkey); |
| 180 | + ``` |
| 181 | + |
| 182 | +- C-Lightning can now make multiple requests in parallel to bitcoind, |
| 183 | + speeding up operations on slow systems or on nodes performing long-running |
| 184 | + operations. |
| 185 | + |
| 186 | +{% include references.md %} |
| 187 | +{% include linkers/issues.md issues="13152,1738,1707" %} |
| 188 | + |
| 189 | +{% assign bse = "https://bitcoin.stackexchange.com/a/" %} |
| 190 | +[bse 79484]: {{bse}}79484 |
| 191 | +[bse 79175]: {{bse}}79175 |
| 192 | +[bse 78654]: {{bse}}78654 |
| 193 | +[bse 79472]: {{bse}}79472 |
| 194 | +[0.16.3]: https://bitcoincore.org/en/2018/09/18/release-0.16.3/ |
| 195 | +[0.15.2]: https://github.com/bitcoin/bitcoin/releases/tag/v0.15.2 |
| 196 | +[0.14.3]: https://github.com/bitcoin/bitcoin/releases/tag/v0.14.3 |
| 197 | +[reorg risk recommendation]: https://btcinformation.org/en/you-need-to-know#instant |
| 198 | +[bitcoin core full disclosure]: https://bitcoincore.org/en/2018/09/20/notice/ |
| 199 | +[original confidential report]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-September/016424.html |
| 200 | +[cve-2018-17144]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17144 |
| 201 | +[bcc 0.17]: https://bitcoincore.org/bin/bitcoin-core-0.17.0/ |
| 202 | +[coredev.tech]: https://coredev.tech/ |
| 203 | +[hsmd.c]: https://github.com/ElementsProject/lightning/blob/master/hsmd/hsmd.c |
| 204 | +[bitcoin-submittx]: https://github.com/laanwj/bitcoin-submittx |
0 commit comments