-
Notifications
You must be signed in to change notification settings - Fork 145
Newsletters: add #10 (2018-08-28) #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,188 @@ | ||
| --- | ||
| title: 'Bitcoin Optech Newsletter #10' | ||
| permalink: /en/newsletters/2018/08/28/ | ||
| name: 2018-08-28-newsletter | ||
| type: newsletter | ||
| layout: newsletter | ||
| lang: en | ||
| --- | ||
| This week's newsletter includes information about the first published | ||
| release candidate for Bitcoin Core, news about BIP151 P2P protocol | ||
| encryption and a potential future soft fork, top questions and answers | ||
| from Bitcoin StackExchange, and some notable merges in popular Bitcoin | ||
| infrastructure projects. | ||
|
|
||
| ## Action items | ||
|
|
||
| - **Allocate time to test Bitcoin Core 0.17RC2:** Bitcoin Core has | ||
| uploaded [binaries][bcc 0.17] for 0.17 Release Candidate (RC) 2. | ||
| Testing is greatly appreciated and can help ensure the quality of the | ||
| final release. | ||
|
|
||
| ## News | ||
|
|
||
| - **PR opened for initial BIP151 support:** Jonas Schnelli opened a pull | ||
| request to Bitcoin Core providing an [initial implementation][Bitcoin | ||
| Core #14032] of [BIP151][] encryption for the peer-to-peer network | ||
| protocol. He also has an [updated draft][bip151 update] of the BIP151 | ||
| specification that incorporates changes he's made in the development | ||
| of the implementation. If accepted, this will allow both full nodes | ||
| and lightweight clients to communicate blocks, transactions, and | ||
| control messages without ISPs being able to eavesdrop on the | ||
| connections, which can make it harder to determine which program | ||
| originated a transaction (especially in combination with Bitcoin | ||
| Core's existing transaction origin protection or future proposals such | ||
| as the [Dandelion protocol][]). | ||
|
|
||
| Schnelli is also working with other developers to implement and test | ||
| the [NewHope key exchange protocol][newhope] which is believed to be | ||
| resistant to attacks by quantum computers so that an eavesdropper who | ||
| records communication between two peers today won't be able to | ||
| decrypt that data in a future where they posses a fast quantum | ||
| computer. | ||
|
|
||
| - **Requests for soft fork solutions to the time warp attack:** Bitcoin | ||
| blocks include the time the block was supposedly created by a miner. | ||
| These timestamps are used to adjust the difficulty of mining blocks so | ||
| that a block is produced on average every 10 minutes. However, the | ||
| time warp attack allows miners representing a large fraction of the | ||
| network hash rate to consistently lie about when blocks were created | ||
| over a long period of time in order to lower difficulty even as blocks | ||
| are being produced more frequently than once every 10 minutes. | ||
|
|
||
| Gregory Maxwell has [asked][timewarp maxwell] the Bitcoin protocol | ||
| development mailing list for proposed soft fork solutions to the | ||
| attack before he proposes his own solution. So far, Johnson Lau has | ||
| [proposed][timewarp lau] one technique. | ||
|
|
||
| Note: anyone monitoring the block chain for this type of attack | ||
| would have at least one month's notice before any significant damage | ||
| was done. For that reason and because there are multiple known | ||
| methods of countering the attack (with varying tradeoffs), fixing | ||
| the time warp attack has never been considered urgent. However, if | ||
| the attack risk can be mitigated fully or partly by a | ||
| non-controversial soft fork, that would certainly be nice. | ||
|
|
||
| ## Selected Q&A from Bitcoin StackExchange | ||
|
|
||
| {% comment %}<!-- https://bitcoin.stackexchange.com/search?tab=votes&q=created%3a1m..%20is%3aanswer -->{% endcomment %} | ||
|
|
||
| *[Bitcoin StackExchange][bitcoin.se] is one of the first places Optech | ||
| contributors look for answers to their questions---or when we have a | ||
| few spare moments of time to help answer other people's questions. In | ||
| this monthly feature, we highlight some of the top voted questions and | ||
| answers made since our last update.* | ||
|
|
||
| - [Can you pay 0 bitcoins?][bse 78355] Andrew Chow explains that not | ||
| only can you pay a zero-value amount to an address or other script, | ||
| you can also spend from a zero-value output---but only if you find a | ||
| miner who doesn't use the default settings in Bitcoin Core. | ||
|
|
||
| - [Can you create an SPV proof of the absence of a transaction?][bse 77764] | ||
| Simplified Payment Verification (SPV) uses a merkle tree to prove a | ||
| transaction exists in a block that itself belongs to the best block | ||
| chain---the block chain with the most proof of work. But could you | ||
| create the reverse? Could you prove that a transaction is not in a | ||
| particular block or in any block on the best block chain? | ||
|
|
||
| Gregory Maxwell explains that it's possible, and it would also | ||
| involve using merkle trees, but that it would likely require | ||
| computationally expensive (but bandwidth efficient) zero-knowledge | ||
| proofs (ZKPs). | ||
|
|
||
| - [Can you convert a P2PKH address to P2SH or segwit?][bse 72775] **Don't do this.** | ||
| Pieter Wuille explains why this is a very bad idea and likely to | ||
| result in lost money. Note: this is an older answer that saw | ||
| increased attention this month after some users attempted to convert | ||
| other people's addresses to segwit and lost money as a result. | ||
|
|
||
| ## Notable commits | ||
|
|
||
| *Notable commits this week in [Bitcoin Core][core commits], [LND][lnd | ||
| commits], and [C-lightning][cl commits]. Reminder: new merges to | ||
| Bitcoin Core are made to its master development branch and are unlikely | ||
| to become part of the upcoming 0.17 release---you'll probably have to | ||
| wait until version 0.18 in about six months from now.* | ||
|
|
||
| {% comment %}<!-- I didn't notice anything interesting in LND this week -harding -->{% endcomment %} | ||
|
|
||
| {% include linkers/github-log.md | ||
| refname="core commits" | ||
| repo="bitcoin/bitcoin" | ||
| start="df660aa7717a6f4784e90535a13a95d82244565a" | ||
| end="427253cf7e19ed9ef86b45457de41e345676c88e" | ||
| %} | ||
| {% include linkers/github-log.md | ||
| refname="lnd commits" | ||
| repo="lightningnetwork/lnd" | ||
| start="3f5ec993300e38369110706ac83301b8875500d6" | ||
| end="26f68da5b2883885fcf6a8e79b3fc9bb12cc9eef" | ||
| %} | ||
| {% include linkers/github-log.md | ||
| refname="cl commits" | ||
| repo="ElementsProject/lightning" | ||
| start="80a875a9a54e26c2ea4c90aee8fe606ddcc27c55" | ||
| end="77d3ca3ea3ba607e0b08c7921c41bfc0a9658ed2" | ||
| %} | ||
|
|
||
| - [Bitcoin Core #12254][] adds the functions necessary to allow Bitcoin | ||
| Core to generate [BIP158][] compact block filters. This code isn't | ||
| currently used by Bitcoin Core, but future work is expect to use these | ||
| functions to provide two features: | ||
|
|
||
| 1. [BIP157][] support for sending filters to light clients over the | ||
| peer-to-peer (P2P) network protocol. This can allow P2P | ||
| lightweight wallets to find blocks with transactions that affect | ||
| their wallet much more privately than currently possible with | ||
| BIP37 bloom filters. | ||
|
|
||
| 2. Faster rescans for Bitcoin Core's built-in wallet. | ||
| Occasionally users of Bitcoin Core need to rescan the block | ||
| chain to see if any historic transactions affected their | ||
| wallet---for example, when they import a new private key, public | ||
| key, or address. This currently takes over an hour even on | ||
| modern desktops, but users with local BIP157 filters will be able | ||
| to perform the rescan much faster and still with [information | ||
| theoretic perfect privacy][] (which lightweight clients don't | ||
| have). | ||
|
|
||
| - [Bitcoin Core #12676][] adds a field to the `getrawmempool`, | ||
| `getmempoolentry`, `getmempoolancestors`, and `getmempooldescendants` | ||
| RPC results to display whether or not a transaction opts-in to | ||
| signaling its spender wants it to be replaced by a transaction | ||
| spending any of the same inputs with a higher fee as described by | ||
| [BIP125][]. | ||
|
|
||
| - C-Lightning tagged its first release candidate for version 0.16.1. | ||
|
|
||
| - C-Lightning reduced the number of places where it refers to 1,000 | ||
| weight units as "sipa" and began calling them by the more widely | ||
| accepted term "kiloweights" (kw). | ||
|
|
||
| - C-Lightning made multiple improvements to how it handles fees, | ||
| both for on-chain transactions to open and close channels where | ||
| C-Lightning outsources fee estimation to Bitcoin Core, and also for | ||
| fees in payment channels. | ||
|
|
||
| - C-Lightning implemented additional parts of [BOLT2][], particularly | ||
| related to the `option_data_loss_protect` field, to improve handling | ||
| of cases where your node appears to have lost essential data---a | ||
| commitment value---or the remote node is sending invalid commitment | ||
| data and possibly deliberately lying. | ||
|
|
||
| --- | ||
| {% include references.md %} | ||
| {% include linkers/issues.md issues="14032,12254,12676" %} | ||
|
|
||
| [dandelion protocol]: https://arxiv.org/abs/1701.04439 | ||
| [bcc 0.17]: https://bitcoincore.org/bin/bitcoin-core-0.17.0/ | ||
| [timewarp maxwell]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016316.html | ||
| [timewarp lau]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-August/016320.html | ||
| [BOLT2]: https://github.com/lightningnetwork/lightning-rfc/blob/master/02-peer-protocol.md | ||
| {% assign bse = "https://bitcoin.stackexchange.com/a/" %} | ||
| [bse 78355]: {{bse}}78355 | ||
| [bse 77764]: {{bse}}77764 | ||
| [bse 72775]: {{bse}}72775 | ||
| [information theoretic perfect privacy]: https://en.wikipedia.org/wiki/Information-theoretic_security | ||
| [bip151 update]: https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52 | ||
| [newhope]: https://newhopecrypto.org/ | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've checked https://github.com/lightningnetwork/lnd/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+closed%3A%3E2018-08-21+ and also don't see anything particularly interesting.