|
| 1 | +--- |
| 2 | +title: 'Bitcoin Optech Newsletter #59' |
| 3 | +permalink: /en/newsletters/2019/08/14/ |
| 4 | +name: 2019-08-14-newsletter |
| 5 | +slug: 2019-08-14-newsletter |
| 6 | +type: newsletter |
| 7 | +layout: newsletter |
| 8 | +lang: en |
| 9 | +--- |
| 10 | +This week's newsletter briefly describes two discussions on the |
| 11 | +Bitcoin-Dev mailing list, one about Bitcoin vaults and one about |
| 12 | +reducing the size of public keys used in taproot. Also included are our |
| 13 | +regular sections about bech32 sending support and notable changes in |
| 14 | +popular Bitcoin infrastructure projects. |
| 15 | + |
| 16 | +{% comment %}<!-- include references.md below the fold but above any Jekyll/Liquid variables-->{% endcomment %} |
| 17 | +{% include references.md %} |
| 18 | + |
| 19 | +## Action items |
| 20 | + |
| 21 | +- **[Optech schnorr/taproot workshops][taproot-workshop]:** Optech is hosting |
| 22 | + workshops in San Francisco (September 24) and New York (September 27) on |
| 23 | + schnorr signatures and taproot. Engineers will learn about these technologies |
| 24 | + and how they apply to their own products and services, build schnorr and |
| 25 | + taproot wallet implementations, and have an opportunity to take part in the |
| 26 | + feedback process for these proposed changes to the Bitcoin protocol. |
| 27 | + |
| 28 | + Member companies should [send us an email][optech email] to reserve spots for |
| 29 | + your engineers. |
| 30 | + |
| 31 | +## News |
| 32 | + |
| 33 | +- **Bitcoin vaults without covenants:** In a [post][vault1] to the |
| 34 | + Bitcoin-Dev mailing list, Bryan Bishop describes how pre-signed |
| 35 | + transactions paid to scripts using `OP_CHECKSEQUENCEVERIFY` (CSV) |
| 36 | + could allow users to detect and block attempts to steal their money by |
| 37 | + a thief who had gained access to the user's private keys, a capability |
| 38 | + previously referred to as providing *Bitcoin vaults.* After |
| 39 | + describing at length both the basic protocol and several possible |
| 40 | + variations, Bishop made a second [post][vault2] describing one case |
| 41 | + where it would still be possible to steal from the vaults, although he |
| 42 | + also suggests a partial mitigation that would limit losses to a |
| 43 | + percentage of the protected funds and he requests proposals for the |
| 44 | + smallest necessary change to Bitcoin's consensus rules to fully |
| 45 | + mitigate the risk. |
| 46 | + |
| 47 | +- **Proposed change to schnorr pubkeys:** Pieter Wuille started a |
| 48 | + [thread][pubkey32] on the Bitcoin-Dev mailing list requesting feedback |
| 49 | + on a proposal to switch [bip-schnorr][] and [bip-taproot][] to using |
| 50 | + 32-byte public keys instead of the 33-byte compressed pubkeys |
| 51 | + previously proposed. Compressed pubkeys include a bit to indicate to |
| 52 | + verifiers whether their Y coordinate is an even or odd number. |
| 53 | + This can be combined with an algorithm that allows verifiers to |
| 54 | + determine two possible Y coordinates for the full pubkey from the |
| 55 | + 32-byte X coordinate contained in the compressed pubkey. One of these |
| 56 | + coordinates is odd and one is even, so the oddness bit allows |
| 57 | + verifiers to pick the correct coordinate, preventing them from having |
| 58 | + to try both combinations during verification (which would slow down |
| 59 | + verification in general and eliminate any benefits from |
| 60 | + batch signature verification). Several |
| 61 | + <span title="voodoo">mathematical</span> schemes have been proposed |
| 62 | + that would produce signatures for keys whose Y coordinates could be |
| 63 | + inferred without the additional bit (which is currently the only data |
| 64 | + contained within a prefix byte). This would save one vbyte for each |
| 65 | + payment to a taproot output (potentially thousands of vbytes per block |
| 66 | + if most users migrate to taproot) and 0.25 vbytes for each public key |
| 67 | + included in a script-path spend. For previous discussion about |
| 68 | + 32-byte pubkeys, please see [Newsletter #48][oddness byte]. |
| 69 | + |
| 70 | +## Bech32 sending support |
| 71 | + |
| 72 | +*Week 22 of 24 in a [series][bech32 series] about allowing the people |
| 73 | +you pay to access all of segwit's benefits.* |
| 74 | + |
| 75 | +{% include specials/bech32/22-priority.md %} |
| 76 | + |
| 77 | +## Notable code and documentation changes |
| 78 | + |
| 79 | +*Notable changes this week in [Bitcoin Core][bitcoin core repo], |
| 80 | +[LND][lnd repo], [C-Lightning][c-lightning repo], [Eclair][eclair repo], |
| 81 | +[libsecp256k1][libsecp256k1 repo], [Bitcoin Improvement Proposals |
| 82 | +(BIPs)][bips repo], and [Lightning BOLTs][bolts repo].* |
| 83 | + |
| 84 | +- [C-Lightning #2858][] limits the maximum number of pending HTLCs in |
| 85 | + each direction to 30 (down from the maximum 483 allowed by the LN |
| 86 | + specification) and makes the value configurable with a |
| 87 | + `--max-concurrent-htlcs` option. The fewer the number of pending |
| 88 | + HTLCs, the smaller the byte size and fee cost of a unilateral close transaction |
| 89 | + because settling each HTLC produces a separate output that can only be |
| 90 | + spent by a fairly large input. |
| 91 | + |
| 92 | +{% include linkers/issues.md issues="2858" %} |
| 93 | +[bech32 series]: /en/bech32-sending-support/ |
| 94 | +[oddness byte]: {{news48}}#move-the-oddness-byte |
| 95 | +[vault1]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017229.html |
| 96 | +[vault2]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017231.html |
| 97 | +[pubkey32]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-August/017247.html |
| 98 | +[pr pubkey32]: https://github.com/sipa/bips/pull/52 |
| 99 | +[taproot-workshop]: /workshops#taproot-workshop |
0 commit comments