比特币Optech时事通讯为读者提供了比特币最重要技术新闻的顶级摘要,以及帮助他们了解更多信息的资源。为了帮助读者了解比特币的最新情况,我们将在下面重新发布最新一期的时事通讯。请记住订阅,以便直接将此内容接收到收件箱。
本周的时事通讯描述了一项提议,允许LN节点接收付款,而不必一直保持其私钥在线。还包括我们的定期部分,总结了比特币核心公关审查俱乐部会议,宣布新的软件版本和发行候选人,并描述了受欢迎的比特币基础设施软件的显著变化。
新闻
使用离线私钥接收LN支付:2019年,开发者ZmnSCPxj提出了一种封装未决LN支付(HTLCs)的替代方法,这将减少接受支付所需的网络带宽和延迟。最近,Lloyd Fournier建议,这个想法也可以用来允许一个节点接受多个传入的LN支付,而不必保持其私钥在线。这种想法确实有一些缺点:
如果需要的话,节点仍然需要它的私钥来发送惩罚事务。
节点在不使用其私钥的情况下收到的付款越多,如果单方面关闭通道,则需要支付的onchain费用就越多。
接收节点将失去隐私,其直接对等方将能够确定它是支付的最终接收方,而不仅仅是路由跳。但是,对于一些不路由支付的最终用户节点来说,这可能已经很明显了。
在这些限制下,这个想法似乎可行,本周邮件列表上讨论了它的变体,ZmnSCPxj准备了一个清晰的演示。福尼尔后来提出了对这个想法的改进。
实现这一想法需要对LN协议进行几次重大更改,因此用户在短期或中期内都不太可能访问到这一点。然而,任何希望最小化LN接收节点保持其密钥在线的需要的人都被鼓励研究这个想法。
比特币核心公关评论俱乐部
在这个月的部分,我们总结了最近比特币核心公关审查俱乐部会议,强调了一些重要的问题和答案。单击下面的问题以查看会议答案的摘要。
Prune gŠchainman usage in auxiliary modules是Carl Dong的一个重构PR(Š21767),它是一个将gŠchainman去全球化的项目的一部分,作为实现一致性引擎模块化的第一步。这将使组件解耦并支持更集中的测试。一个更长期的目标是将一致性引擎与非一致性代码完全分离。
在深入探讨代码更改之前,review club的讨论从以下一般性问题开始:
这个PR是一个重构,不应该改变任何功能行为。我们有什么方法可以证实这一点?
仔细检查代码、运行测试、添加测试覆盖率、插入断言或自定义日志、使用–enable debug构建、使用更改运行bitconid,以及使用GDB或LLDB之类的调试器逐步完成代码。
这个公关是一个更大的项目的一部分,该项目旨在模块化和分离比特币核心共识引擎。这样做有什么好处?
这可以使对代码进行推理、维护、配置和测试变得更容易。它可以为安全性和可维护性公开一个最小的API,并提供传递非全局数据的配置选项。我们可以构造具有可变参数的组件,为测试具有不同配置的对象提供更多的控制。
经理负责什么?
ChainstateManager类提供了一个用于创建一个或两个链状态并与之交互的接口:初始块下载(IBD)和可选快照。
CChainState做什么?
CChainState类存储当前的最佳链,并提供一个API来更新其状态的本地知识。
什么是CChain类?
CChain类是内存中的块索引链。它包含块索引指针的向量。
BlockManager负责什么?
BlockManager类维护一个存储在m\u block\u索引中的块树,该索引被用来查找最大的工作链提示。
什么是主要的?
cs\u main是一个互斥锁,用于保护特定于验证的数据(目前还有许多其他内容)。这个名称意味着critical section main,因为它保护main.cpp中的数据,而现在位于validation.cpp和net\u processing.cpp中的代码过去位于一个名为main.cpp的文件中。
从概念上讲,当我们提到代码库的“验证”部分时,它包括什么?
验证存储并维护块链和相关UTXO集的最佳视图。它还包括一个向mempool提交未确认事务的接口。
释放和释放候选人
热门比特币基础设施项目的新版本和候选版本。请考虑升级到新版本或帮助测试候选版本。
LND 0.13.0-beta.rc5是一个候选版本,它增加了对使用修剪过的比特币完整节点的支持,允许使用原子多路径(AMP)接收和发送支付,并增加了PSBT功能,以及其他改进和错误修复。
显著的代码和文档更改
本周,比特币核心、C-Lightning、Eclair、LND、Rust Lightning、libsecp256k1、硬件钱包接口(HWI)、Rust Bitcoin、BTCPay服务器、比特币改进方案(BIPs)和闪电出现了显著变化。
Bitcoin Core#22051增加了对将主根输出描述符导入Bitcoin Core钱包的支持。此PR允许钱包用户接收资金到主根输出,并且是开放PR的先决条件,开放PR实现对用户接收到主根输出和从主根输出支出的完全支持。
Bitcoin Core#22050放弃对第2版Tor onion服务(隐藏服务)的支持。版本2服务已经被弃用,Tor项目已经宣布它们将在9月份变得不可访问。比特币核心已经支持第3版洋葱服务(见时事通讯#132)。
Bitcoin Core#22095增加了一个测试来检查Bitcoin Core如何派生BIP32私钥。尽管比特币核心一直正确地派生出这些密钥,但最近发现一些其他钱包由于未能填充长度小于32字节的扩展私钥(xpriv)而错误地派生出128个密钥中略多于1个密钥。这不会直接导致资金损失或安全性降低,但对于在一个钱包中创建高清钱包种子并将其导入另一个钱包或创建多签名钱包的用户来说,这确实会带来问题。在这个PR中实现的测试向量也被添加到BIP32中,以帮助未来的钱包作者避免这个问题。
C-Lightning#4532增加了对升级通道的实验性支持,以重建最新的承诺事务,从而使其能够包含新功能或结构更改,例如转换为使用主根。该协议从一个静态请求开始,即在静态期结束之前,任何一方都不会发送任何新的状态更新的协议。在此期间,节点协商要进行的更改并实现这些更改。最后,通道恢复完全运行。C-Lightning目前在通道已处于强制不活动期间的连接重建期间执行此操作。时事通讯#108中讨论了各种渠道升级建议,本PR的作者希望该功能部分用于时事通讯#109中描述的“简化HTLC协商”。本PR允许升级旧渠道以支持选项#静态#remotekey,C-Lightning在2019年首次添加了对该选项的支持,见时事通讯#64。
LND#5336增加了用户通过指定新的支付机密以非交互方式重用AMP发票的功能。LND创建的AMP发票的默认发票到期日也被推迟到30天,以便于上述重用机制。
BTCPay服务器#2474增加了测试webhook的功能,它通过发送假事件来测试webhook,假事件包含所有正常字段,但不包含伪数据。这反映了在集中托管的比特币支付处理器(如Stripe和Coinbase Commerce)上可用的测试功能。
在这里找到原来的帖子。
请直接订阅比特币Optech时事通讯,每月将此内容直接发送到您的收件箱。