-
Notifications
You must be signed in to change notification settings - Fork 135
Newsletter-186: translate into Chinese #2332
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
bitschmidty
merged 4 commits into
bitcoinops:master
from
bittomhan:2022-02-09-newsletter-zh-186
Jun 3, 2025
Merged
Changes from all commits
Commits
Show all changes
4 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
--- | ||
title: 'Bitcoin Optech Newsletter #185' | ||
permalink: /zh/newsletters/2022/02/02/ | ||
name: 2022-02-02-newsletter-zh | ||
slug: 2022-02-02-newsletter-zh | ||
type: newsletter | ||
layout: newsletter | ||
lang: zh | ||
--- | ||
本周 Newsletter 描述了对提议中的 `OP_CHECKTEMPLATEVERIFY`(CTV) 操作码对 Discreet Log Contracts(DLC) 的影响所做的分析,并总结了关于通过修改 tapscript 以同时支持 CTV 和 `SIGHASH_ANYPREVOUT` 的替代方案的讨论。此外,还照例包含了新版本发布公告以及流行比特币基础设施软件的值得注意的变更。 | ||
|
||
## 新闻 | ||
|
||
- **<!--improving-dlc-efficiency-by-changing-script-->****通过修改脚本提高 DLC 效率:** | ||
Lloyd Fournier 在 DLC-Dev 和 Bitcoin-Dev 邮件列表[发帖][fournier ctv dlc],说明提议中的 [OP_CHECKTEMPLATEVERIFY][topic op_checktemplateverify](CTV) 操作码如何能够显著减少创建某些 Discreet Log Contracts(DLC) 所需的签名数量,并减少其他一些操作的数量。 | ||
|
||
简而言之,对于合约的每一种可能终态——例如 Alice 获得 1 BTC、Bob 获得 2 BTC——现有的 DLC 需要为该状态创建一个独立的[签名适配器][topic adaptor signatures]。许多合约会定义大量可能的终态,例如关于未来比特币价格的合约,将价格四舍五入到最接近的美元,并且即便是相对短期的合约也需要覆盖数千美元的价格范围。这就要求参与方创建、交换并存储数千个部分签名。 | ||
|
||
Fournier 建议,使用 CTV 在一个 [tapleaf][topic tapscript] 中生成这成千上万种可能状态,并在链上提交输出。CTV 通过散列承诺输出,各方可以快速且按需地自行计算所有可能状态的散列,从而最小化计算量、数据交换和数据存储。虽然仍需要一些签名,但数量被大幅减少。对于使用多个预言机(例如汇率合约的多个价格数据源)的合约而言,还可以进一步简化流程,减少所需数据量。 | ||
|
||
Jonas Nick [指出][nick apo dlc],使用提议中的 [SIGHASH_ANYPREVOUT][topic sighash_anyprevout] 签名哈希模式也可以实现类似的优化(我们补充,接下来新闻条目中介绍的替代方案同样可行)。 | ||
|
||
- **<!--composable-alternatives-to-ctv-and-apo-->****可组合的 CTV 和 APO 替代方案:** | ||
Russell O'Connor 在 Bitcoin-Dev 邮件列表[发帖][oconnor txhash],提出通过软分叉为比特币 [Tapscript][topic tapscript] 语言新增两个操作码的想法。tapscript 可以使用新的 `OP_TXHASH` 操作码指定应序列化并散列一笔支出交易的哪些部分,然后将散列摘要压入求值栈以供后续操作码使用。新的 [OP_CHECKSIGFROMSTACK][topic op_checksigfromstack](CSFS) 操作码(此前已有提议)允许 tapscript 指定公钥,并要求对栈上的特定数据——例如 `OP_TXHASH` 计算出的交易摘要——进行相应签名。 | ||
|
||
O'Connor 解释了这两个操作码如何能够模拟早先的两项软分叉提案,[SIGHASH_ANYPREVOUT][topic sighash_anyprevout](APO,见 [BIP118][])和 [OP_CHECKTEMPLATEVERIFY][topic op_checktemplateverify](CTV,见 [BIP119][])。在某些场景下,这种模拟可能不如直接使用 CTV 或 APO 高效,但 `OP_TXHASH` 与 `OP_CSFS` 可以保持 Tapscript 语言的简洁,并为未来脚本编写者提供更大的灵活性,尤其是在与诸如 [OP_CAT][] 等其他简单 tapscript 扩展结合使用时。 | ||
|
||
在一则[回复][towns pop_sigdata]中,Anthony Towns 提出了使用其他替代操作码的类似思路。 | ||
|
||
截至撰写本文时,相关讨论仍在积极进行中。我们预计将在后续 Newsletter 中再次关注该主题。 | ||
|
||
## 发布与候选发布 | ||
|
||
*面向流行比特币基础设施项目的新版本发布与候选发布。请考虑升级到新版本,或协助测试候选发布。* | ||
|
||
- [BTCPay Server 1.4.2][] 是新的 1.4.x 系列中的最新发布版本,改进了登录认证并包含若干[用户界面改进][btcpay ui blog]。 | ||
- [BDK 0.16.0][] 发布,带来若干漏洞修复和小幅改进。 | ||
- [Eclair 0.7.0][] 为重大版本,新增对[锚定输出][topic anchor outputs]、转发[洋葱消息][topic onion messages]以及在生产环境中使用 PostgreSQL 数据库的支持。 | ||
- [LND 0.14.2-beta.rc1][lnd 0.14.2-beta] 为维护版本的候选发布,包含若干漏洞修复和少量改进。 | ||
|
||
## 值得注意的代码与文档变更 | ||
|
||
*本周在 [Bitcoin Core][bitcoin core repo]、[C-Lightning][c-lightning repo]、[Eclair][eclair repo]、[LDK][ldk repo]、[LND][lnd repo]、[libsecp256k1][libsecp256k1 repo]、[硬件钱包接口(HWI)][hwi repo]、[Rust Bitcoin][rust bitcoin repo]、[BTCPay Server][btcpay server repo]、[BDK][bdk repo]、[比特币改进提案(BIPs)][bips repo]以及[闪电网络规范(BOLTs)][bolts repo]中的值得注意的变更。* | ||
|
||
- [Bitcoin Core #23201][] 通过允许钱包用户指定最大权重而非求解数据,改进了使用外部输入为交易提供资金的能力(此前见 [Newsletter #170][news170 external inputs])。这使得应用能够使用 `fundrawtransaction`、`send` 和 `walletfundpsbt` RPC 对包含非标准输出(如 [HTLCs][topic htlc],这是 LN 客户端在 [Newsletter #184][news184 eclair auto bump] 中描述的要求)的交易进行手续费提升。 | ||
- [Eclair #2141][] 改进了自动手续费提升机制(此前见 [Newsletter #184][news184 eclair auto bump]),当钱包中的 UTXO 数量较少时,会选择更激进的确认目标。在这种情况下,让手续费提升交易尽快确认对于在进一步强制关闭时保持钱包的 UTXO 数量至关重要。关于 Eclair 使用的锚定输出风格手续费提升的更多细节见[此处][topic anchor outputs]。 | ||
- [BTCPay Server #3341][] 允许用户在通过 LN 请求退款时配置 [BOLT11][] 到期时间,不再固定为之前的 30 天默认值。 | ||
|
||
{% include references.md %} | ||
{% include linkers/issues.md issues="23201,2141,3341" %} | ||
[btcpay server 1.4.2]: https://github.com/btcpayserver/btcpayserver/releases/tag/v1.4.2 | ||
[bdk 0.16.0]: https://github.com/bitcoindevkit/bdk/releases/tag/v0.16.0 | ||
[eclair 0.7.0]: https://github.com/ACINQ/eclair/releases/tag/v0.7.0 | ||
[lnd 0.14.2-beta]: https://github.com/lightningnetwork/lnd/releases/tag/v0.14.2-beta.rc1 | ||
[btcpay ui blog]: https://blog.btcpayserver.org/btcpay-server-1-4-0/ | ||
[fournier ctv dlc]: https://gnusha.org/url/https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019808.html | ||
[nick apo dlc]: https://gnusha.org/url/https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019812.html | ||
[oconnor txhash]: https://gnusha.org/url/https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019813.html | ||
[towns pop_sigdata]: https://gnusha.org/url/https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019819.html | ||
[news184 eclair auto bump]: /zh/newsletters/2022/01/26/#eclair-2113 | ||
[news170 external inputs]: /zh/newsletters/2021/10/13/#bitcoin-core-17211 |
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,78 @@ | ||
--- | ||
title: 'Bitcoin Optech Newsletter #186' | ||
permalink: /zh/newsletters/2022/02/09/ | ||
name: 2022-02-09-newsletter-zh | ||
slug: 2022-02-09-newsletter-zh | ||
type: newsletter | ||
layout: newsletter | ||
lang: zh | ||
--- | ||
本周 Newsletter 描述了关于修改 Replace-by-Fee(RBF) 交易中继策略的讨论,并照例包含 Bitcoin Core PR 审查俱乐部会议摘要、新版本与候选发布公告,以及流行比特币基础设施项目的值得注意的变更说明。 | ||
|
||
## 新闻 | ||
|
||
- **<!--discussion-about-rbf-policy-->****关于 RBF 策略的讨论:** | ||
Gloria Zhao 在 Bitcoin-Dev 邮件列表发起了[讨论][zhao rbf],主题为 Replace-by-Fee(RBF) 策略。她的邮件首先回顾了当前策略的背景,列举了多年来发现的若干问题(例如[交易固定][topic transaction pinning]攻击),分析了该策略对钱包用户界面的影响,随后提出了若干可能的改进方案。邮件重点关注基于“下一块模板”上下文来评估交易替换的想法—即矿工在尝试完成工作量证明时会创建并承诺的拟议区块。通过评估替换对下一块模板的影响,矿工能够无需启发式方法就确定替换是否能为其带来更多手续费收入。多位开发者对 Zhao 的总结与提案进行了回复,并提出了额外或替代的修改建议。 | ||
|
||
截至撰写本文时,讨论仍在进行中。 | ||
|
||
## Bitcoin Core PR 审查俱乐部 | ||
|
||
*在此月度栏目中,我们总结最近一次 [Bitcoin Core PR Review Club][] 会议的要点,并列出部分重要问答。点击下方任意问题可查看会议答案概要。* | ||
|
||
[添加用法示例][reviews 748]是 Elichai Turkel 的一个拉取请求,用于为 ECDSA 签名、schnorr 签名以及 ECDH 密钥交换添加用法示例。这是审查俱乐部首次讨论 libsecp256k1 的拉取请求。与会者讨论了高质量随机源的重要性,逐步走查示例代码,并就 libsecp256k1 的一般性问题进行交流。 | ||
|
||
{% include functions/details-list.md | ||
q0="<!--q0-->为什么示例代码要展示如何获取随机数?" | ||
a0="本库中许多密码学方案的安全性依赖于密钥、随机数(nonce)与盐值保持秘密/随机。如果攻击者能够猜测或影响我们的随机数源返回的值,他们就可能伪造签名、获知我们试图保密的信息、猜出密钥等。因此,实现密码学方案的难点往往在于获取随机数。用法示例正是为了突显这一事实。" | ||
a0link="https://bitcoincore.reviews/libsecp256k1-748#l-99" | ||
|
||
q1="<!--q1-->为用户推荐获取随机数的方法是否合适?" | ||
a1="libsecp256k1 的主要用户 Bitcoin Core 有自己的随机数算法,综合了操作系统、P2P 网络接收的消息以及其他熵源。对于必须“自备熵源”的其他用户来说,推荐可能会有所帮助,因为可靠的随机数源至关重要,而操作系统文档并不总是清晰。确实存在维护成本,因为推荐可能会随着操作系统支持变化或漏洞披露而过时,但预计这一成本很小,因为相关 API 更新极不频繁。" | ||
a1link="https://bitcoincore.reviews/libsecp256k1-748#l-120" | ||
|
||
q2="<!--q2-->能否直接跟随 PR 中新增的示例?是否缺少任何内容?" | ||
a2="与会者分享了编译和运行示例、使用调试器、将示例代码与 Bitcoin Core 用法对比、并为非比特币用户考虑用户体验的经历。 | ||
一位与会者指出,在生成 schnorr 签名后未进行验证与 Bitcoin Core 代码及 [BIP340][] 的建议不符。另一位与会者建议在 `secp256k1_ecdsa_sign` 之前演示 `secp256k1_sha256` 的使用,因为忘记对消息进行哈希可能成为潜在的用户陷阱。" | ||
a2link="https://bitcoincore.reviews/libsecp256k1-748#l-193" | ||
|
||
q3="<!--q3-->如果用户忘记执行诸如签后验证、调用 `seckey_verify` 或随机化上下文等操作,会发生什么?" | ||
a3="在最坏情况下,如果实现存在缺陷,签名后忘记验证可能导致意外生成无效签名。随机生成密钥后忘记调用 `seckey_verify` 意味着存在(极小的)概率生成无效密钥。随机化上下文旨在防御侧信道攻击——它会对中间值进行盲化,这些中间值不会影响最终结果,但可能被利用以获取操作信息。" | ||
a3link="https://bitcoincore.reviews/libsecp256k1-748#l-226" | ||
%} | ||
|
||
## 发布与候选发布 | ||
|
||
*面向流行比特币基础设施项目的新版本发布与候选发布。请考虑升级到新版本,或协助测试候选发布。* | ||
|
||
- [LND 0.14.2-beta][LND 0.14.2-beta]是一次维护版本更新,包含若干漏洞修复及少量改进。 | ||
|
||
## 值得注意的代码与文档变更 | ||
|
||
*本周在 [Bitcoin Core][bitcoin core repo]、[C-Lightning][c-lightning repo]、[Eclair][eclair repo]、[LDK][ldk repo]、[LND][lnd repo]、[libsecp256k1][libsecp256k1 repo]、[硬件钱包接口(HWI)][hwi repo]、[Rust Bitcoin][rust bitcoin repo]、[BTCPay Server][btcpay server repo]、[BDK][bdk repo]、[比特币改进提案(BIPs)][bips repo]以及[闪电网络规范(BOLTs)][bolts repo]中的值得注意的变更。* | ||
|
||
- [Bitcoin Core #23508][Bitcoin Core #23508] 将软分叉部署状态信息从 `getblockchaininfo` 移至新的 `getdeploymentinfo` RPC,同时支持按特定区块高度查询部署状态,而非仅限链尖。 | ||
|
||
- [Bitcoin Core #21851][Bitcoin Core #21851] 为 arm64-apple-darwin(Apple M1) 平台添加构建支持。随着变更合并,社区可在下一个版本中期待可用的 M1 二进制文件。 | ||
|
||
- [Bitcoin Core #16795][Bitcoin Core #16795] 更新 `getrawtransaction`、`gettxout`、`decoderawtransaction` 与 `decodescript` RPC,使其在解码任意 scriptPubKey 时返回推断出的[输出脚本描述符][topic descriptors]。 | ||
|
||
- [LND #6226][LND #6226] 将通过遗留 `SendPayment`、`SendPaymentSync` 与 `QueryRoutes` RPC 创建的 LN 路由支付默认手续费设为 5%。使用新版 `SendPaymentV2` RPC 发送的支付默认手续费为 0%,基本上要求用户显式指定。另一合并的拉取请求 [LND #6234][LND #6234] 将通过遗留 RPC 发送且金额低于 1,000 satoshi 的支付默认手续费设为 100%。 | ||
|
||
- [LND #6177][LND #6177] 允许 [HTLC][topic HTLC] 拦截器的使用者指定 HTLC 失败的原因,使拦截器在测试 LND 上层软件处理失败情形时更加实用。 | ||
|
||
- [LDK #1227][LDK #1227] 改进路由查找逻辑,纳入已知的历史支付失败/成功信息。这些信息用于推断通道余额的上限与下限,从而在评估路由时为路由查找逻辑提供更准确的成功概率。这实现了 René Pickhardt 等人在之前多期 Newsletter(包括 [#142][news142 pps]、[#163][news163 pickhardt richter paper] 与 [#172][news172 cl4771])中提到的部分想法。 | ||
|
||
- [HWI #549][HWI #549] 添加对 [PSBT][topic psbt] 版本 2 的支持(见 [BIP370][])。当使用仅原生支持 v0 PSBT 的设备(如现有 Coldcard 硬件签名设备)时,v2 PSBT 会被转换为 v0 PSBT。 | ||
|
||
- [HWI #544][] 为 Trezor 硬件签名设备添加接收与支出 [taproot][topic taproot] 付款的支持。 | ||
|
||
|
||
{% include references.md %} | ||
{% include linkers/issues.md v=1 issues="23508,21851,16795,6226,6234,6177,1227,549,544" %} | ||
[lnd 0.14.2-beta]: https://github.com/lightningnetwork/lnd/releases/tag/v0.14.2-beta | ||
[zhao rbf]: https://gnusha.org/url/https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019817.html | ||
[news163 pickhardt richter paper]: /zh/newsletters/2021/08/25/#zero-base-fee-ln-discussion | ||
[news142 pps]: /zh/newsletters/2021/03/31/#paper-on-probabilistic-path-selection | ||
[news172 cl4771]: /zh/newsletters/2021/10/27/#c-lightning-4771 | ||
[reviews 748]: https://bitcoincore.reviews/libsecp256k1-748 |
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.
Uh oh!
There was an error while loading. Please reload this page.