Skip to content

Commit 83c5c62

Browse files
hardingjnewbery
authored andcommitted
Newsletters: add 2018-07-10 (#14)
Most content is from harding. Building on Bitcoin summaries and intro by jnewbery. Thanks to jamesob and moneyball for review.
1 parent d091a44 commit 83c5c62

File tree

1 file changed

+275
-0
lines changed

1 file changed

+275
-0
lines changed
Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
---
2+
title: 'Bitcoin Optech Newsletter #3'
3+
permalink: /en/newsletters/2018/07/10/
4+
name: 2018-07-10-newsletter
5+
type: newsletter
6+
layout: page
7+
lang: en
8+
version: 1
9+
---
10+
This week's newsletter includes news and action items about minimum fees and
11+
the upcoming Bitcoin Core release, a special feature on a Schnorr signature
12+
proposal, and a write-up of the recent Building on Bitcoin conference in
13+
Lisbon.
14+
15+
## Action items
16+
17+
- Bitcoin Core minimum relay fee may be reduced in the next major
18+
release. Ensure your software doesn't make unsafe assumptions about 1
19+
satoshi per vbyte being the lowest possible floor. See *News* section
20+
below for more information.
21+
22+
- Ensure your software for calculating transaction size for dynamic fees
23+
computes signature size accurately or, at least, uses a worst-case
24+
assumption of Bitcoin signatures being 72 bytes. See *News* section
25+
below for more information.
26+
27+
- As previous newsletters announced would happen, the Bitcoin alert
28+
key was [released][alert released] along with a disclosure of
29+
vulnerabilities affecting Bitcoin Core 0.12.0 and earlier. Altcoins
30+
may be affected. If you have not yet checked your infrastructure for
31+
affected services, it is advised to do so now. See [newsletter #1][]
32+
for more details
33+
34+
[alert released]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016189.html
35+
[newsletter #1]: https://bitcoinops.org/en/newsletters/2018/06/26/
36+
37+
## Dashboard items
38+
39+
- **Transaction fees remain very low:** as of this writing, fee
40+
estimates for confirmation 2 or more blocks in the future remain at
41+
roughly the level of the default minimum relay fee in Bitcoin Core.
42+
It's a good time to [consolidate inputs][].
43+
44+
[consolidate inputs]: https://en.bitcoin.it/wiki/Techniques_to_reduce_transaction_fees#Consolidation
45+
46+
- **Block production recovery:** following last week's news about
47+
flooding in China affecting miner operations, Bitcoin block production
48+
seems to have recovered to the expected level of about one block every
49+
10 minutes.
50+
51+
## Featured news: Schnorr signature proposed BIP
52+
53+
In a [post][schnorr post] to the bitcoin-dev mailing list, Pieter Wuille
54+
submitted a [draft specification][schnorr draft] for a Schnorr-based
55+
signature format. The goal of the specification is to hopefully get
56+
everyone in agreement about what Schnorr signatures will look like on
57+
Bitcoin before work begins on an actual soft fork, so the BIP does not
58+
propose specific new opcodes, segwit witness flags, soft fork activation
59+
method, or anything else necessary to make this change part of the
60+
Bitcoin consensus rules. However, it is possible to say what this signature
61+
format will provide if it becomes the form of Schnorr signature adopted by
62+
Bitcoin.
63+
64+
[schnorr post]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-July/016203.html
65+
[schnorr draft]: https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki
66+
67+
1. Full compatibility with existing Bitcoin private keys and public
68+
keys, meaning that existing HD wallets that upgrade won't need to
69+
generate new recovery seeds.
70+
71+
2. Roughly 10% smaller signatures, providing a slight increase to
72+
block chain capacity as Schnorr is adopted.
73+
74+
3. Batch verification of signatures providing a roughly 2x speedup
75+
over individual verification for a block full of Schnorr
76+
signatures. This mainly affects nodes initially syncing or
77+
catching up after being offline.
78+
79+
4. Full compression and significantly improved privacy for multisig use
80+
cases, but with required interaction: an unlimited number of
81+
participants can create a single 33-byte public key and 64-byte
82+
signature from the combination of their individual public keys and
83+
signatures, using secure multisig with the same efficiency of
84+
single-sig and increasing their privacy by making multisig look like
85+
single-sig. However, the scheme requires multistep interaction
86+
between the wallets participating in the multisig, both for creating
87+
the public key and the signature.
88+
89+
5. Additional privacy-focused usecases. Examples include increased
90+
privacy for Lightning Network (LN), more private atomic swaps (either
91+
cross chain when both chains support Schnorr, or on the same chain as
92+
part of a coin mixing protocol), and fully [private signing oracles][dlc]
93+
(services that wait for something to happen in real life, like which
94+
team wins the world cup, and then provide a signature committing to
95+
that outcome, e.g. allowing Alice and Bob to settle a bet onchain or
96+
in a LN channel). Many of these cases also improve efficiency
97+
compared to alternatives that use current Bitcoin script.
98+
99+
[dlc]: https://adiabat.github.io/dlc.pdf
100+
101+
One thing of note not in the BIP proposal is a method for signature
102+
aggregation between multiple inputs in the same transaction. This was a
103+
desired feature that could allow consolidation transactions, coinjoins,
104+
and other high-input transactions to be much more efficient than they
105+
are now. But, as the author of the proposal notes, "With the emergence of
106+
so many ideas for improvements to Bitcoin's script execution (MAST,
107+
Taproot, Graftroot, new sighash modes, multisignature schemes, ...)
108+
there is simply too much to do everything at once. Since aggregation
109+
really interacts with all other things, it seems like the better choice
110+
to pursue later." ([source][pwuille comment])
111+
112+
[pwuille comment]: https://www.reddit.com/r/Bitcoin/comments/8wmj5b/pieter_wuille_submits_schnorr_signatures_bip/e1wwriq/
113+
114+
## News
115+
116+
- **[Discussion][min fee discussion] about minimum relay fee:** several
117+
years ago when the Bitcoin price was a fraction of its current value
118+
in USD terms, Bitcoin Core set the minimum relay fee to 1 satoshi per
119+
byte (now vbyte). With the increase in prices and other network
120+
changes, several developers discussed lowering the minimum relay fee.
121+
Gregory Maxwell is planning to open a pull request to Bitcoin Core
122+
that may roughly halve the value (although the exact amount has not
123+
been determined yet).
124+
125+
This may be included in the next major version of Bitcoin Core. If
126+
so, it'll mean that you may be able to create cheaper consolidation
127+
transactions once the change has been well deployed. However, it
128+
also means that if you don't upgrade any nodes you use for detecting
129+
unconfirmed transactions, they may not see unconfirmed transactions
130+
with low feerates unless you change the defaults. This could affect
131+
the information you display to your users. Those nodes will still
132+
see all confirmed transactions in valid blocks.
133+
134+
Note that to lower the minimum relay fee in Bitcoin Core below its
135+
default, you need to change two settings. Shown below are the two
136+
settings with their default values in Bitcoin Core 0.16.1; to lower
137+
the values, change both of them to the same value, but be aware that
138+
reducing them too far (perhaps to less than 1/10th the default)
139+
exposes you to bandwidth-wasting attacks and reduces BIP152 compact
140+
block efficiency for your node.
141+
142+
minrelaytxfee=0.00001000
143+
incrementalrelayfee=0.00001000
144+
145+
If your organization produces end-user software, you may wish to
146+
ensure that it works with transactions and fee estimations set below
147+
the value of 1 satoshi per byte. Please contact Optech if you need
148+
more information about minimum relay fees.
149+
150+
[min fee discussion]: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2018/bitcoin-core-dev.2018-07-05-19.22.log.html#l-24
151+
152+
- **Unrelayable transactions:** At least two major services were
153+
identified as creating transactions with feerates below the current
154+
minimum due to a misunderstanding about the maximum size of a Bitcoin
155+
signature, which is 72 bytes. Bitcoin signatures vary in size, with
156+
half of all randomly-generated signatures being 72 bytes, slightly
157+
less than half being 71 bytes, and the small remainder being 70 bytes
158+
or smaller.
159+
160+
At a guess, the developers of some software looked at a
161+
randomly-selected signature, saw that it was 71 bytes, and assumed
162+
all signatures would be 71 bytes. However, when the software
163+
generates a 72-byte signature, this makes the actual size of the
164+
transaction one byte larger per signature than the estimated size,
165+
causing the fees paid per byte to be slightly lower than expected.
166+
167+
This didn't cause significant problems when fee estimates were high,
168+
but now that fee estimates are near the default minimum relay fee of
169+
1 satoshi per byte, any transactions created with a fee slightly
170+
below that may not be relayed to miners and so remain unconfirmed
171+
indefinitely.
172+
173+
It is recommended that organizations check their software to ensure
174+
it, at the least, makes a worst-case assumption of signatures being
175+
72 bytes.
176+
177+
- **Upcoming Bitcoin Core 0.17 feature freeze:** next week developers
178+
[plan][#12624] to stop merging new features for the next major
179+
version of Bitcoin Core. The features already present will be further
180+
tested and documented, translations will be updated, and other parts
181+
of the release process followed. If your organization will be
182+
depending on a feature in the next six months, now could be your last
183+
chance to ensure it's part of 0.17. Features currently not yet merged
184+
but likely to be added to Bitcoin Core 0.17.0 include:
185+
186+
- `scantxoutset` RPC that allows searching the unspent transaction
187+
output set for addresses or scripts. Intended for use with
188+
address sweeping, e.g. finding funds that you own and bringing
189+
them into one of your current wallets.
190+
191+
- [BIP174][] Partially-Signed Bitcoin Transactions (PSBTs) support,
192+
a protocol for exchanging information about Bitcoin transactions
193+
between wallets to facilitate better interoperability between
194+
multisig wallets, hot/cold wallets, coinjoins, and other
195+
cooperating wallets.
196+
197+
- [Delayed transaction sending by network group][#13298], a proposal that is
198+
hoped will make it harder for spy nodes to determine which client
199+
first broadcast a transaction (indicating it may have been the
200+
spender).
201+
202+
[#12624]: https://github.com/bitcoin/bitcoin/issues/12624
203+
[BIP174]: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
204+
[#13298]: https://github.com/bitcoin/bitcoin/issues/13298
205+
206+
- **Efficient reimplementation of Electrum Server:** in an announcement
207+
to the bitcoin-dev mailing list this week was a claim that a
208+
Rust-based reimplementation of Electrum server is much more efficient
209+
than the Python version. Optech has not performed any testing on this
210+
and can't confirm, but Electrum server is known to be used by several
211+
Bitcoin businesses both internally and hosted on behalf of their
212+
customers, so some readers of this newsletter may wish to investigate.
213+
214+
## Building on Bitcoin
215+
216+
[**Building on Bitcoin**][bob website] was a Bitcoin technology conference that took
217+
place in Lisbon last week. It was well attended by both Bitcoin protocol
218+
developers and applications engineers. A [video][bob video]
219+
is available, as are several [transcripts][bob transcripts] by Bitcoin
220+
developer Bryan Bishop (kanzure).
221+
222+
[bob website]: https://building-on-bitcoin.com/
223+
[bob video]: https://www.youtube.com/watch?v=XORDEX-RrAI
224+
[bob transcripts]: http://diyhpl.us/wiki/transcripts/building-on-bitcoin/2018/
225+
226+
The following talks may be of particular interest to Bitcoin Optech
227+
companies:
228+
229+
- [**Merchant adoption**][bitrefill video] - [Sergej Kotliar][sergej], CEO of
230+
Bitrefill gave a personal account of the fee market spike at the end of last
231+
year, important UX considerations for Bitcoin and Lightning payments, and
232+
Bitrefill's experiences in integrating Lightning. This talk was
233+
fascinating due to the real-world empirical data that Sergej shared and his
234+
first-hand experience of fees, scaling, and Lightning.
235+
236+
[bitrefill video]: https://www.youtube.com/watch?v=Cpid31c6HZc&feature=youtu.be&t=8m49s
237+
[sergej]: https://twitter.com/ziggamon
238+
239+
- [**Designing Lighning Wallets for the Bitcoin Users**][lightning ux video] -
240+
[Patrícia Estevão][patricia] gave a talk about UX considerations when
241+
extending Bitcoin wallets to support Lightning payments. An interesting
242+
talk for any business that is beginning to integrate Lightning payments into
243+
an existing Bitcoin product.
244+
245+
[lightning ux video]: https://www.youtube.com/watch?v=XORDEX-RrAI&feature=youtu.be&t=6042
246+
[patricia]: https://twitter.com/patestevao
247+
248+
- [**Blind Signatures in Sciptless Scripts**][blind signatures video] -
249+
[Jonas Nick][jonas] spoke about using Schnorr signatures as the basis
250+
of doing blind coinswaps (where a server cannot link coins) or exchanging
251+
'ecash tokens' on Bitcoin or Lightning, among other things. This talk
252+
presents leading edge thinking about what's possible with scriptless
253+
scripts and the ideas presented are quite a long way from being implementable
254+
on Bitcoin. However, it is interesting to see some of the new applications
255+
that will be unlocked by adopting Schnorr signatures into Bitcoin.
256+
257+
[blind signatures video]: https://www.youtube.com/watch?v=XORDEX-RrAI&feature=youtu.be&t=25479
258+
[jonas]: https://twitter.com/n1ckler
259+
260+
- [**LN story**][ln video] - [Fabrice Drouin][fabrice] presented a history
261+
of the development of the Lightning Network. A lot of interesting background
262+
for anyone planning to integrate and use Lightning payments.
263+
264+
[ln video]: https://www.youtube.com/watch?time_continue=2881&v=Cpid31c6HZc
265+
[fabrice]: https://twitter.com/acinq_co
266+
267+
- [**CoinJoinXT ... and other techniques for deniable transfers**][coinjoin video] -
268+
[Adam Gibson][adam] talked about CoinJoinXT, a method for improving privacy in
269+
Bitcoin by mixing payments and breaking transaction graph analysis. Many wallets
270+
are planning to implement some form of CoinJoin, so Bitcoin engineers should be at
271+
least familiar with the high-level concepts.
272+
273+
[coinjoin video]: https://www.youtube.com/watch?v=XORDEX-RrAI&feature=youtu.be&t=23359
274+
[adam]: https://twitter.com/waxwing__
275+

0 commit comments

Comments
 (0)