Skip to content

Commit ca46803

Browse files
hardingbitschmidty
authored andcommitted
Newsletters: add 63 (2019-09-11)
1 parent d29cd0f commit ca46803

File tree

1 file changed

+181
-0
lines changed

1 file changed

+181
-0
lines changed
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
---
2+
title: 'Bitcoin Optech Newsletter #63'
3+
permalink: /en/newsletters/2019/09/11/
4+
name: 2019-09-11-newsletter
5+
slug: 2019-09-11-newsletter
6+
type: newsletter
7+
layout: newsletter
8+
lang: en
9+
---
10+
This week's newsletter describes a demo implementation of eltoo and
11+
several discussions related to it, requests comments on limiting the
12+
normal number of LN gossip updates to one per day, and provides our
13+
longest-to-date list of notable changes to popular Bitcoin
14+
infrastructure projects.
15+
16+
{% comment %}<!-- evidence for being "longest-ever":
17+
find _posts/en/newsletters/ -type f | while read file ; do echo -n "$file "; sed -n '/^## Notable code/,${/^## [^\(Notable\)]/Q; /linkers\/issues.md/Q; p}' $file | wc -l ; done | sort -n -k2 | tail
18+
-->{% endcomment %}
19+
20+
{% comment %}<!-- include references.md below the fold but above any Jekyll/Liquid variables-->{% endcomment %}
21+
{% include references.md %}
22+
23+
## Action items
24+
25+
*None this week.*
26+
27+
## News
28+
29+
- **Eltoo sample implementation and discussion:** on the
30+
Lightning-Dev mailing list, Richard Myers [posted][eltoo sample] a link
31+
to a sample implementation of an eltoo payment flow between nodes on a
32+
custom [signet][]. [Eltoo][] is a proposal to replace LN's current
33+
LN-penalty enforcement layer with a new layer named LN-eltoo.
34+
LN-penalty prevents counterparty theft by giving nodes the ability to
35+
financially penalize a counterparty that attempts to publish an old
36+
channel state onchain. LN-eltoo accomplish the same goal by giving the
37+
later states the ability to spend funds from earlier states within a
38+
certain period of time---eliminating the need for a penalty, simplifying
39+
many aspects of the protocol, and reducing
40+
the complexity of many proposed protocol enhancements. Myers's sample
41+
implementation works by using the Bitcoin Core functional test
42+
framework to simulate payments in an eltoo payment channel.
43+
44+
This led to a discussion ([1][eltoo ms 1], [2][eltoo ms 2]) of
45+
whether using [miniscript][] would help make LN "more future-proof
46+
and extensible than directly using Bitcoin Script."
47+
48+
It also led to eltoo co-author Christian Decker writing a
49+
[summary][eltoo summary] of why he thinks eltoo is especially
50+
valuable in providing a clean separation of protocol layers. For
51+
example, by making state changes in eltoo similar to state changes
52+
in Bitcoin, this would allow tools and contract protocols built for
53+
regular Bitcoin transactions (state changes) to be easily reused
54+
within payment channels.
55+
56+
- **Request for comments on limiting LN gossip updates to once per
57+
day:** Rusty Russell [posted][less gossip] to the Lightning-Dev
58+
mailing list his plan to limit the number of gossip updates
59+
C-Lightning will accept to one per day normally. By his calculations
60+
based on the current network characteristics, this should limit the
61+
amount of bandwidth used for gossip updates to about 12 MB per day,
62+
making it easier to use LN on slow devices (like single-board
63+
computers) and low-bandwidth network connections. He requests
64+
feedback from anyone who thinks that will cause a problem for users of
65+
any current implementation.
66+
67+
## Notable code and documentation changes
68+
69+
*Notable changes this week in [Bitcoin Core][bitcoin core repo],
70+
[LND][lnd repo], [C-Lightning][c-lightning repo], [Eclair][eclair repo],
71+
[libsecp256k1][libsecp256k1 repo], [Bitcoin Improvement Proposals
72+
(BIPs)][bips repo], and [Lightning BOLTs][bolts repo].*
73+
74+
- [Bitcoin Core #16185][] updates the `gettransaction` RPC with a new parameter
75+
`decode`. If set to True, a `decoded` field will be added to the RPC
76+
output containing a version of the transaction decoded into JSON fields
77+
(the same format used when requesting verbose output with the
78+
`getrawtransaction` RPC).
79+
80+
- [Bitcoin Core #15759][] increases the number of outbound connections
81+
the node will make from 8 to 10. The two new connections will only be
82+
used to announce and relay new blocks; they won't announce or relay
83+
unconfirmed transactions or `addr` peer-discovery messages. Only
84+
announcing blocks minimizes the bandwidth and memory overhead of the
85+
new connections and makes it much more difficult for an adversary to map
86+
the connections between nodes. An adversary that can map all of a node's
87+
connections can attack that node, either by identifying which transactions
88+
originate from that node (a privacy leak) or by isolating the node from
89+
the rest of the network (potentially making theft of funds from the node
90+
possible). For details on how an adversary could potentially attack a node
91+
in this way, see the [TxProbe paper][].
92+
93+
- [Bitcoin Core #15450][] allows users to create new wallets for
94+
multiwallet mode from the GUI, completing a set of GUI actions that
95+
also allows users to load and unload wallets. The action opens a
96+
dialog that lets the user name the wallet and set various wallet
97+
options.
98+
99+
- [Bitcoin Core #16421][] follows up [PR#15681][Bitcoin Core #15681]
100+
(described in [Newsletter #56][carve-out]) by allowing a carve-out
101+
transaction to be replaced using RBF. Carve-out transactions are
102+
allowed to slightly exceed Bitcoin Core's limits on transaction size
103+
and number of ancestors. When carve-out was added, the exception to
104+
those rules was not applied to transaction replacements, so nodes
105+
would accept carve-outs but not RBF fee bumps of them. With this PR,
106+
RBF fee bumping of the carve-out is now possible, making it an even
107+
more useful tool for fee management of settlement transactions in
108+
two-party LN payment channels.
109+
110+
- [LND #3401][] caps the amount of onchain fee that a node will propose
111+
paying in a channel update transaction (commitment transaction),
112+
limiting it to 50% of the node's current in-channel balance (the 50%
113+
default is adjustable). In theory, the channel can still be used
114+
after this---which is why it isn't closed---although the node may not
115+
have enough funds to initiate a spend, possibly making receiving its
116+
only option unless onchain feerates drop.
117+
The LN protocol only allows the node that opens a channel to propose new
118+
commitment transactions with feerate changes, so this change only
119+
applies to channel initiators.
120+
121+
- [LND #3390][] separates tracking of HTLCs from invoices. Previously,
122+
each invoice was only meant to be associated with one HTLC, so the
123+
details were the same. More recent innovations such as Atomic
124+
Multipath Payments (AMP) will allow the same invoice to be paid
125+
incrementally by multiple HTLCs, so this change makes it possible to
126+
independently track either individual HTLCs or the overall invoice.
127+
The change also improves tracking of existing HTLCs that were paid
128+
more than once and simplifies the logic for the hold invoices
129+
described in [Newsletter #38][lnd hold invoices].
130+
131+
- [C-Lightning #3025][] updates the `listfunds` RPC with a `blockheight`
132+
field for confirmed transactions indicating the height of the block
133+
containing them.
134+
135+
- [C-Lightning #2938][] delays reprocessing of incoming HTLCs at
136+
startup until after all plugins have been loaded. This prevents
137+
plugin hooks from being called before their plugin has loaded.
138+
139+
- [C-Lightning #3004][] removes all the features deprecated in
140+
C-Lightning 0.7.0, including:
141+
142+
- The deprecated `listpayments` RPC as well as the deprecated
143+
`description` parameter or output field in `pay`, `sendpay`, and
144+
`waitsendpay`. (See [Newsletter #36][listpayments deprecated])
145+
146+
- The deprecated older style of colon-delimited short channel
147+
identifier (`Block:Transaction_index:Output_index`). Instead, use
148+
the standardized [BOLT7 format][] delimited using an x
149+
(`BxTxO`).
150+
151+
- [C-Lightning #2924][] abstracts C-Lightning's database handling code
152+
and SQL queries so that it can be adapted to handle other backends
153+
besides the default sqlite3. Future PRs are expected to "add concrete
154+
implementations of [other database] drivers."
155+
156+
- [C-Lightning #2964][] updates the `txprepare` RPC to allow it to pay
157+
multiple outputs in the same transaction.
158+
159+
- [Libsecp256k1 #337][] makes it easy to configure the size of a
160+
pre-computed table used by the library to speed up signature
161+
generation. This can save about 32 KB of memory, which is a
162+
significant amount on some embedded devices that use libsecp256k1.
163+
164+
- [BOLTs #656][] adds a feature bits specification to [BOLT11][],
165+
allowing payments to indicate which features they support or require.
166+
This is planned to be used for several new features still under
167+
development.
168+
169+
{% include linkers/issues.md issues="16185,627,1106,3449,3401,3390,15759,15450,16421,656,337,3004,3025,2938,2924,2964,15681" %}
170+
171+
[bolt7 format]: https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#definition-of-short_channel_id
172+
[lnd hold invoices]: {{news38}}#lnd-2022
173+
[listpayments deprecated]: {{news36}}#c-lightning-2382
174+
[carve-out]: {{news56}}#bitcoin-core-15681
175+
[eltoo sample]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-September/002131.html
176+
[eltoo ms 1]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-September/002132.html
177+
[eltoo ms 2]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-September/002135.html
178+
[eltoo summary]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-September/002136.html
179+
[signet]: https://en.bitcoin.it/wiki/Signet
180+
[less gossip]: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-September/002134.html
181+
[txprobe paper]: https://arxiv.org/pdf/1812.00942.pdf

0 commit comments

Comments
 (0)