2018-06-28 IRC 会议摘要

概述


本次周会上讨论的主题包括项目成员希望审查人员在下周重点关注哪些拉取请求,一个类似于 BIP39 的新种子格式规范草案,记录比特币核心如何使用 BIP32 HD 钱包标准,关于实现 BIP151 加密点对点连接的进度更新,以及围绕一种新方法进行的讨论,该方法可以向钱包软件描述它们应该将哪些输出脚本视为用户钱包的一部分。

高优先级审查

背景:在每次会议中,比特币核心开发人员都会讨论会议参与者认为在下周最需要审查哪些拉取请求 (PR)。其中一些 PR 与贡献者特别希望在下一个版本中看到的代码有关;另一些则是阻塞进一步工作或需要进行大量维护 (重新整理) 以保持待处理状态的 PR。鼓励任何有能力的审查人员访问该项目的 当前高优先级 PR 列表

讨论 (日志):唯一专门讨论的 PR 是 #12196,它添加了 scantxoutset RPC,允许应用程序搜索所有当前的未花费交易输出 (UTXO),以查找与特定地址、公钥、私钥或 HD 钱包扩展公钥 (xpub) 相匹配的那些。

Pieter Wuille 建议 PR 的作者 Jonas Schnelli 暂时从 scantxoutset 中移除 xpub 支持,Wuille 稍后将 PR 更新到 scantxoutset 中,添加对这些会议记录后面描述的输出脚本描述符的支持。如果 Wuille 延迟了,Schnelli 可以只在比特币核心 0.17 功能冻结之前将之前编写的 xpub 支持添加回来。Schnelli 同意了。

注意:本次会议中讨论输出脚本描述符的详细内容已移至 单独部分

密码种子

背景:(讨论的一部分。)

讨论 (日志): Jonas Schnelli 提出并介绍了该主题,“我有一个 规范草案,用于一个类似于 BIP39 的新种子格式,它具有一些不错的特性,而且——在发送到邮件列表之前——希望得到反馈。”

结论:Schnelli 说这是“更像是一个公告而不是一个主题”,因此讨论被推迟到人们有机会阅读草案为止。

核心 BIP32 衍生“标准”

背景:HD 钱包规范 BIP32 定义了如何从 128 位到 512 位的随机种子中派生出一组私钥和公钥(以及因此的地址)。

讨论 (日志): Jonas Schnelli 提出并介绍了该主题,“今天在讨论中出现了一个问题,即核心 BIP32 衍生方案没有在 BIP 中指定。有些人认为它是原生的 BIP32,但它不是,而其他 [钱包] 则是原生的 BIP32。”

Wladimir van der Laan 同意“如果能将差异记录在某个地方就好了”。Luke Dashjr 反对将其作为 BIP,Pieter Wuille 同意,Andrew Chow 建议“仅将衍生在 文档库 中记录就足够了”。

注意:本次会议中讨论输出脚本描述符的详细内容已移至 单独部分

背景:BIP151 指定了一种方法,允许比特币节点和客户端通过加密连接发送其数据,以防止窃听者直接监控哪些特定交易和区块正在被传输。这可以增强隐私的某些方面,例如,通过让某人更难确定哪个 IP 地址第一个传输了特定交易(可能表明该 IP 地址上的某人创建了该交易)。在 BIP151 规范中,连接的双方都会为该连接和该会话生成密钥——在连接关闭后销毁密钥;这些密钥被称为“短暂的”。由于短暂密钥不会重复使用,因此无法使用它们来识别在不同网络(例如 Tor)上运行或在节点更改 IP 地址后运行的相同节点。

讨论 (日志):Gregory Maxwell 提出该主题并以一个问题开始了讨论,“最近在实现 P2P 链路短暂加密方面是否有任何进展?我知道我们一直在等待其他一些网络重构。”

Jonas Schnelli 说,“Armory 已实现它,并计划将其 PR 到核心(不确定何时以及以何种质量)。"

Cory Fields 说,“我现在不得不将网络 [重构] 工作放在次要位置,因此当然不要等待。我很乐意帮助实现 [BIP151]。我以为我们一直在等待身份验证内容。”

Schnelli、Maxwell 和 Pieter Wuille 都同意,BIP151 的实现不应等待身份验证的建议。

进一步的讨论集中在加密的设置协议(初始握手)是否应该更难检测,因此也更难阻塞。然而,Maxwell 说,“我认为我们认为 [所考虑的方法] 的好处太可疑了,特别是由于流量模式会非常清楚地识别比特币点对点链路。[...] 所以我认为我们应该很好地实现它,并且唯一可能提出的更改将是作为实现和基准测试的副作用而出现的更改。”

结论:Schnelli 说,“如果没有人愿意继续实现,那么我会继续我的 BIP151 实现。”

输出脚本描述符

注意:这不是一个标记的主题,但它在会议期间的两个其他主题中进行了讨论。为了便于阅读,这些单独的讨论已从发生的地方提取并在此处统一成一个主题。

背景:Pieter Wuille 一直在努力 重新设计 比特币核心钱包如何识别哪些交易属于特定用户的钱包。

讨论 (日志部分 1日志部分 2):作为其钱包重新设计的一部分,Pieter Wuille 说他一直在努力 设计 对脚本 PubKeys 集的易于理解的描述,这些描述提供“一种通用语言,用于对如何使用相关地址/脚本/私钥/ ... 等等花费一整套密钥进行编码,包括对多重签名的支持...”。

这支持提议的钱包重新设计,因为它允许“导入/导出 [以] 在这些描述符的级别上运行,而不是单个密钥/脚本/公钥/HD [钱包密钥] 链。 [The] importmulti [RPC] 在很大程度上已经与该设计兼容。整个想法当然不适用于 [下一个主要比特币核心版本],0.17,但这并不意味着它不能在相对较小的范围内的事情(例如)scantxoutset 中使用。”

这导致 Wuille 建议 PR #12196 暂时删除其扩展公钥支持,以便 Wuille 允许新的 scantxoutset RPC 使用输出脚本描述符。

Jonas Schnelli 问道,“[输出脚本描述符] 如何与密钥池、灵活的密钥路径和扩展公钥交互?”密钥池是属于用户钱包的一组密钥;比特币核心会查找影响这些密钥的交易并将它们添加到用户的钱包中。灵活的密钥路径是指 BIP32 HD 钱包的密钥派生路径。

Wuille 说,“密钥池消失了 [...] 实际上,[描述符] 包含扩展公钥。对于灵活的密钥路径,描述符只包含路径;您可以将其更改为您想要的任何内容(但默认钱包当然会选择一些标准方案)。”

结论:Wuille 将继续研究输出脚本描述符,包括一个计划,即打开一个 PR 将它们添加到 scantxoutset RPC 中。

参与者

IRC 昵称 姓名/化名
jonasschnelli Jonas Schnelli
sipa Pieter Wuille
wumpus Wladimir van der Laan
gmaxwell Gregory Maxwell
cfields Cory Fields
promag Joao Barbosa
luke-jr Luke Dashjr
achow101 Andrew Chow
meshcollider Samuel Dobson
instagibbs Gregory Sanders
kanzure Bryan Bishop
jnewbery John Newbery

免责声明

本摘要是在没有征求讨论参与者意见的情况下编写的,因此任何错误都是摘要作者的责任,而不是讨论参与者的责任。特别是,从讨论中引用的内容已对其大小写、标点符号和拼写进行了修改,以生成一致的句子。括号中的词语和片段,以及背景叙述和解说,都是由本摘要的作者添加的,可能会意外地改变某些句子的意思。如果您认为任何引文断章取义,请 创建一个问题,我们将更正错误。