Skip to content

Commit 1af028f

Browse files
committed
Newsletters: add #19 (2018-10-30)
1 parent fae0cf8 commit 1af028f

File tree

2 files changed

+254
-0
lines changed

2 files changed

+254
-0
lines changed

_includes/references.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111

1212
{% comment %}<!-- BIPs in order lowest to highest -->{% endcomment %}
1313
[BIP21]: https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki
14+
[BIP32]: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
1415
[BIP37]: https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki
1516
[BIP47]: https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki
1617
[BIP61]: https://github.com/bitcoin/bips/blob/master/bip-0061.mediawiki
18+
[BIP69]: https://github.com/bitcoin/bips/blob/master/bip-0069.mediawiki
1719
[BIP70]: https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki
1820
[BIP75]: https://github.com/bitcoin/bips/blob/master/bip-0075.mediawiki
1921
[BIP118]: https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki
@@ -25,6 +27,7 @@
2527
[BIP157]: https://github.com/bitcoin/bips/blob/master/bip-0157.mediawiki
2628
[BIP158]: https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki
2729
[BIP174]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
30+
[BIP320]: https://github.com/bitcoin/bips/blob/master/bip-0320.mediawiki
2831

2932
{% comment %}<!-- BOLTs in order lowest to highest -->{% endcomment %}
3033
[BOLT2]: https://github.com/lightningnetwork/lightning-rfc/blob/master/02-peer-protocol.md
@@ -62,6 +65,8 @@
6265
[newsletter #12]: {{news12}}
6366
{% assign news16 = "/en/newsletters/2018/10/09/" %}
6467
[newsletter #16]: {{news16}}
68+
{% assign news17 = "/en/newsletters/2018/10/16/" %}
69+
[newsletter #17]: {{news17}}
6570

6671
{% comment %}
6772
<!--REQUIRES PERIODIC UPDATE: update rpc_version below to latest
@@ -70,10 +75,13 @@ version of BitcoinCore.org's RPC docs-->
7075
{% assign rpc_prefix = "https://bitcoincore.org/en/doc/0.17.0/rpc" %}
7176
[rpc abandontransaction]: {{rpc_prefix}}/wallet/abandontransaction/
7277
[rpc fundrawtransaction]: {{rpc_prefix}}/rawtransactions/fundrawtransaction/
78+
[rpc generatetoaddress]: {{rpc_prefix}}/generating/generatetoaddress/
79+
[rpc getnewaddress]: {{rpc_prefix}}/wallet/getnewaddress/
7380
[rpc getpeerinfo]: {{rpc_prefix}}/network/getpeerinfo/
7481
[rpc importaddress]: {{rpc_prefix}}/wallet/importaddress/
7582
[rpc importmulti]: {{rpc_prefix}}/wallet/importmulti/
7683
[rpc importprivkey]: {{rpc_prefix}}/wallet/importprivkey/
7784
[rpc importpubkey]: {{rpc_prefix}}/wallet/importpubkey/
7885
[rpc importwallet]: {{rpc_prefix}}/wallet/importwallet/
86+
[rpc scantxoutset]: {{rpc_prefix}}/blockchain/scantxoutset/
7987
[rpc verifytxoutproof]: {{rpc_prefix}}/blockchain/verifytxoutproof/
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
---
2+
title: "Bitcoin Optech Newsletter #19"
3+
permalink: /en/newsletters/2018/10/30/
4+
name: 2018-10-30-newsletter
5+
type: newsletter
6+
layout: newsletter
7+
lang: en
8+
---
9+
This week's newsletter suggests an update for C-Lightning users,
10+
describes a discussion about BIP69 deterministic input/output ordering
11+
on the mailing list, notes public overt ASICBoost support is available
12+
for miners using Antminer S9, and provides links to information about
13+
Square's open sourced Subzero HSM-based multisig cold storage solution
14+
and the recent Lightning Network Residency and Hackday in New York City.
15+
Also included are selected recent Q&A from Bitcoin StackExchange and
16+
descriptions of notable code changes in popular Bitcoin infrastructure
17+
projects.
18+
19+
## Action items
20+
21+
- **Update to [C-Lightning 0.6.2][]:** fixes a bug where the node would
22+
send an excessive number of update announcements to its peers about
23+
dead channels.
24+
25+
## News
26+
27+
- **[BIP69][] discussion:** this BIP from 2015 adopted by several notable
28+
wallets specifies an optional method for deterministically ordering
29+
inputs and outputs within a transaction based on the public contents
30+
of the transaction. However, other wallets have not adopted it (or
31+
even rejected it as unsuitable for adoption), leading perhaps to a
32+
"worst of both worlds" situation where wallets using BIP69 can be
33+
fairly easily identified and so wallets not using BIP69 may also be
34+
easier to identify by negation.
35+
36+
In this [thread][bip69 thread] to the Bitcoin-Dev mailing list, Ryan
37+
Havar suggests that one reason wallet authors like BIP69 is that its
38+
deterministic ordering makes it easy and fast for their tests to
39+
ensure that they haven't leaked any information about the source of
40+
their inputs or the destination of their outputs (e.g. in some old
41+
wallets, the fist output always went to the recipient and the second
42+
output was always change---making coin tracking trivial). Havar
43+
then suggests an alternative deterministic ordering based on private
44+
information that would be available to the test suite but not
45+
exposed by production wallets, allowing developers who want to
46+
thwart block chain analysis---but also have simple and fast
47+
tests---to migrate away from BIP69.
48+
49+
- **Overt ASICBoost support for S9 miners:** support for this
50+
efficiency-improving feature was announced by both [Bitmain][bitmain oab]
51+
and [Braiins][braiins oab] this week. Both covert and overt ASICBoost
52+
create multiple proposed headers whose first 64 bytes differ but whose
53+
remaining 16 bytes are compatible with any of the proposals, allowing
54+
a miner who changes those final bytes to reduce the amount of
55+
computation necessary to generate a SHA256d solution for each
56+
proposal. Early estimates indicate an improvement of 10% (or perhaps
57+
more) on existing Antminer S9 hardware.
58+
59+
The overt form of ASICBoost alters the versionbits field in the
60+
block header, which can cause programs such as Bitcoin Core to display
61+
a warning such as "13 of last 100 blocks have unexpected version".
62+
Some ASICBoost miners have voluntarily restricted their altered
63+
versionbits range to that defined by [BIP320][], giving future
64+
programs the option to ignore those bits for upgrade signaling.
65+
66+
- **Open sourced HSM-based multisig cold storage solution:** [Square][] has
67+
released code and documentation for the cold storage solution they've
68+
implemented to protect customer deposits, as well as a CLI tool for
69+
auditing HD wallet balances at arbitrary points in time. Optech has
70+
not evaluated their solution, but we can recommend interested parties
71+
read Square's excellent [blog post][subzero blog] and visit the
72+
repositories for the [Subzero][] cold storage solution and
73+
[Beancounter][] auditing tool.
74+
75+
- **Lightning Residency and Hackday:** last week [Chaincode Labs][]
76+
hosted a four-day [Lightning Network Residency][] program to help
77+
onboard developers to the fledgling protocol. Following this, Fulmo
78+
organized their fourth [Lightning Network Hackday][] (actually two
79+
days) also in New York City with a few speeches, many demos, and lots
80+
of hacking.
81+
82+
Pierre Rochard has written a summary of each day of the residency
83+
program ([1][lr1], [2][lr2], [3][lr3], [4][lr4]) and videos of the
84+
presentations are expected to be posted soon. Videos of the
85+
hackday are available now: [day1][hd1], [day2][hd2].
86+
87+
## Selected Q&A from Bitcoin StackExchange
88+
89+
{% comment %}<!-- https://bitcoin.stackexchange.com/search?tab=votes&q=created%3a1m..%20is%3aanswer -->{% endcomment %}
90+
91+
*[Bitcoin StackExchange][bitcoin.se] is one of the first places Optech
92+
contributors look for answers to their questions---or when we have a
93+
few spare moments of time to help answer other people's questions. In
94+
this monthly feature, we highlight some of the top voted questions and
95+
answers made since our last update.*
96+
97+
- [Does using pruning make initial node sync faster?][bse 79592] Pruning
98+
blocks after they've been processed can reduce disk space requirements
99+
by over 97% at present, but do they also speed up sync? Bitcoin Core
100+
developer Gregory Maxwell answers.
101+
102+
- [Can someone steal from you by closing their Lightning Network payment
103+
channel in a certain way?][bse 80399] Several different ways to close
104+
a Lightning Network payment channel are described, and C-Lightning
105+
developer Christian Decker explains how a program following the LN
106+
protocol will protect your money in each case.
107+
108+
- [How much energy does it take to create one block?][bse 79691]
109+
Nate Eldredge provides a simple formula and set of links to data that
110+
anyone can use to estimate the average amount of energy it would take
111+
to generate a block at the current difficulty level. For the present
112+
difficulty using only Antminer S9s without ASICBoost, an average block
113+
consumes 841,629 kilowatt hours (kWh). At a common estimate of
114+
$0.04/kWh, this is about $34,000 of electricity---well below the
115+
current block subsidy of about $80,000---but using [AJ Towns's recent
116+
estimate][towns mining estimate] of $0.16/kWh that includes costs
117+
beyond electricity and attempts to factor in risk premiums, the
118+
estimated block cost is about $135,000.
119+
120+
## Notable merges
121+
122+
*Notable code changes this week in [Bitcoin Core][core commits],
123+
[LND][lnd commits], [C-lightning][cl commits], and [libsecp256k1][secp
124+
commits].*
125+
126+
{% comment %}<!-- no commits to libsecp256k1; one interesting commit
127+
#448 to C-Lightning, but I'm not confident enough of my understanding of
128+
it to write a good description, and I doubt non-LN devs care -->{% endcomment %}
129+
130+
{% include linkers/github-log.md
131+
refname="core commits"
132+
repo="bitcoin/bitcoin"
133+
start="5c25409d6851182c5e351720cee36812c229b77a"
134+
end="f1e2f2a85962c1664e4e55471061af0eaa798d40"
135+
%}
136+
{% include linkers/github-log.md
137+
refname="lnd commits"
138+
repo="lightningnetwork/lnd"
139+
start="e5b84cfadab56037ae3957e704b3e570c9368297"
140+
end="6b19df162a161079ab794162b45e8f4c7bb8beec"
141+
%}
142+
{% include linkers/github-log.md
143+
refname="cl commits"
144+
repo="ElementsProject/lightning"
145+
start="7eec2253e962e524f8fd92b74f411f0b99706ba9"
146+
end="22b8a88b488faa94a009b2c58415ae825152f709"
147+
%}
148+
{% include linkers/github-log.md
149+
refname="secp commits"
150+
repo="bitcoin-core/secp256k1"
151+
start="1086fda4c1975d0cad8d3cad96794a64ec12dca4"
152+
end="1086fda4c1975d0cad8d3cad96794a64ec12dca4"
153+
%}
154+
155+
- [Bitcoin Core #14451][] allows optionally building Bitcoin-Qt without
156+
support for the [BIP70][] payment protocol and adds a deprecation
157+
warning indicating the default support may be removed in a future
158+
release. The CEO of BitPay, which is the largest user of BIP70 (but
159+
which wants to use a different version of the protocol),
160+
[indicated][bitpay bip70 comment] that they supported Bitcoin Core
161+
removing BIP70. Developers seem to be in favor of removing the
162+
protocol for security reasons and because it's seeing declining use.
163+
The BIP70 dependency on OpenSSL resulted in the emergency release of
164+
[Bitcoin Core 0.9.1][] in 2014 as a result of the [heartbleed
165+
vulnerability][], and it is expected that removing it will eliminate
166+
the risk of future similar vulnerabilities.
167+
168+
- [Bitcoin Core #14296][] removes the deprecated `addwitnessaddress`
169+
RPC. This RPC was added in version 0.13.0 to enable testing segwit
170+
on regtest and testnet before it was activated on mainnet and built
171+
into the wallet. Since version 0.16.0, Bitcoin Core's wallet has
172+
supported getting addresses directly using the regular
173+
[getnewaddress][rpc getnewaddress] mechanism.
174+
175+
- [Bitcoin Core #14468][] deprecates the `generate` RPC. This method
176+
generates new blocks in regtest mode but it requires getting new
177+
addresses from Bitcoin Core's built-in wallet in order to pay them the
178+
mining [block reward][term block reward]. A replacement method,
179+
[generatetoaddress][rpc generatetoaddress] was introduced in version
180+
0.13.0, which allows any regtest wallet to generate an address that
181+
will be paid the block reward. This is part of an ongoing effort to
182+
allow as many RPCs as possible to function without the wallet in order
183+
to improve test coverage of non-wallet nodes as well as to ease a
184+
future possible transition to fully separating the wallet from the
185+
node.
186+
187+
- [Bitcoin Core #14150][] adds [key origin][] support to [output script
188+
descriptors][]. Besides allowing you to pass an additional argument
189+
to the [scantxoutset][rpc scantxoutset] RPC, this doesn't currently add any features
190+
to Bitcoin Core---but it will enable using key origin with [BIP174][]
191+
PSBTs and watch-only wallets when those parts of the software have
192+
been updated to use descriptors. See Newsletters [#5][newsletter #5],
193+
[#7][newsletter #7], [#9][newsletter #9], [#12][newsletter #12], and
194+
[#17][newsletter #17] for previous discussion of output script
195+
descriptors. Key origin support makes it possible to use extended
196+
pubkeys that have been exported from an HD wallet that uses [BIP32][]
197+
hardened derivation for protecting ancestor private keys, which
198+
helps make output script descriptors compatible with most hardware
199+
wallets.
200+
201+
- [LND #1981][] ensures that LND doesn't leak information about any of
202+
its peers that aren't advertising themselves as public nodes.
203+
204+
- LND [#1535][LND #1535] and [#1512][LND #1512] adds the server-side
205+
communication protocol for watchtowers along with many tests verifying
206+
its proper operation. Correct use of the LN protocol requires regular
207+
monitoring of which transactions get added to the block chain, so
208+
watchtowers are servers designed to help defend the payment channels
209+
of users who expect to be offline for an extended period of time. As
210+
such, watchtowers are considered to be a key feature for enabling
211+
wider adoption of LN by less advanced users. However, a standard
212+
specification for watchtowers has not been agreed upon by the multiple
213+
implementations of LN, so LND is only putting this feature out for
214+
initial testing and is restricting its use to testnet.
215+
216+
{% include references.md %}
217+
{% include linkers/issues.md issues="14451,14296,14468,14150,1981,1535,1512" %}
218+
219+
{% assign bse = "https://bitcoin.stackexchange.com/a/" %}
220+
[bse 79592]: {{bse}}79592
221+
[bse 80399]: {{bse}}80399
222+
[bse 79691]: {{bse}}79691
223+
224+
[hd1]: https://www.youtube.com/watch?v=FGxFd944jMg
225+
[hd2]: https://www.youtube.com/watch?v=o87GVYFvwIk
226+
[lr1]: https://medium.com/@pierre_rochard/day-1-of-the-chaincode-labs-lightning-residency-ab4c29ce2077
227+
[lr2]: https://medium.com/@pierre_rochard/day-2-of-the-chaincode-labs-lightning-residency-669aecab5f16
228+
[lr3]: https://medium.com/@pierre_rochard/day-3-of-the-chaincode-labs-lightning-residency-5a7fad88bc62
229+
[lr4]: https://medium.com/@pierre_rochard/day-4-of-the-chaincode-labs-lightning-residency-f28b046fc1a6
230+
[c-lightning 0.6.2]: https://github.com/ElementsProject/lightning/releases
231+
[bip69 thread]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-October/016457.html
232+
[bitmain oab]: https://blog.bitmain.com/en/new-firmware-activate-overt-asicboost-bm1387-antminer-models/
233+
[braiins oab]: https://twitter.com/braiins_systems/status/1055153228772503553
234+
[subzero blog]: https://medium.com/square-corner-blog/open-sourcing-subzero-ee9e3e071827
235+
[subzero]: https://github.com/square/subzero
236+
[beancounter]: https://github.com/square/beancounter/
237+
[lightning network residency]: https://lightningresidency.com/
238+
[chaincode labs]: https://chaincode.com/
239+
[lightning network hackday]: https://lightninghackday.fulmo.org/
240+
[bitpay bip70 comment]: https://github.com/bitcoin/bitcoin/pull/14451#issuecomment-431496319
241+
[bitcoin core 0.9.1]: https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.9.1.md
242+
[heartbleed vulnerability]: https://bitcoin.org/en/alert/2014-04-11-heartbleed
243+
[term block reward]: https://btcinformation.org/en/glossary/block-reward
244+
[key origin]: https://gist.github.com/sipa/e3d23d498c430bb601c5bca83523fa82#key-origin-identification
245+
[towns mining estimate]: https://diyhpl.us/wiki/transcripts/scalingbitcoin/tokyo-2018/playing-with-fire-adjusting-bitcoin-block-subsidy/
246+
[square]: https://cash.app/bitcoin

0 commit comments

Comments
 (0)