2016-05-20 非IRC会议总结

概述


主要议题

  • 隔离见证代码审查
  • 未来地址类型的纠错码
  • 对等网络协议的加密
  • 紧凑区块中继协议
  • Schnorr 签名和聚合
  • 新的网络库

笔记/简短议题

  • 此次会议在瑞士苏黎世现场举行,而非通常的IRC频道。详情请访问 http://coredev.tech/
  • 一些参与者借此机会验证了PGP指纹并签署了彼此的密钥,以扩大围绕比特币的PGP信任网,增强安全性。
  • 比特币核心正在使用的特殊travis缓存功能现在应该对所有GitHub用户可用,因此CI测试应该在任意存储库上运行,而不仅仅是比特币核心存储库。
  • Greg Maxwell指出,一些开发者似乎收到了大量PDF恶意软件。

隔离见证代码审查

背景

隔离见证是对规范交易ID省略签名的更改,以消除意外的可塑性。它还作为副作用利用机会提高可扩展性和增加最大区块大小。

会议评论

Jonas Nick将segnet(一个专门用于隔离见证测试的自定义测试网)向后移植到0.9,并检查了segwit向后兼容性和激活后升级到启用segwit的版本。Suhas收集了剩余测试的列表。进行了大量代码审查,导致了一些小错误修复。讨论了关于fund-raw-transaction异常需求的不确定性。

会议结论

  • Fund-raw-transaction不应该需要更改共识segwit代码。
  • sdaftuar列出了应该编写的额外测试。
  • 挖矿:确定GBT将如何工作(不了解segwit的软件不应该能够发出segwit的版本位);请参阅#7935了解我们可能如何实现的一些背景信息
  • segwit的种子节点 - 由jonasschnelli开发
  • 在发行说明中添加文档。
  • 审查我们如何处理行为不端的对等节点。

未来地址类型的纠错码

背景

在比特币的大部分历史中,自定义的base-58编码一直用于比特币地址。迁移到支付协议的努力并未成功,因此未来可能需要新的地址类型。Base-58通常被认为是一种糟糕的编码,因此有些人希望为未来的地址类型提出一种新的编码来改进它。

会议评论

Pieter更新了他在未来地址类型定义的高性能base-32 BCH代码方面的工作。Pieter在寻找易于实现且性能良好的代码方面取得了良好的进展(例如,30个纠错位可以确定地检测最多4个转置错误或4个替换错误)。

会议结论

使用纠错逻辑进行可靠的错误检测是一个好主意,但出于安全原因,应明确地不要尝试纠正用户错误。

对等网络协议的加密

背景

比特币网络目前不加密对等节点之间的通信。这会导致安全问题(例如:其他人操纵流量)并允许对比特币用户进行大规模监控/分析。由于比特币信任模型的性质,这在大多数情况下是可以忽略的,但是对于SPV节点,这可能会对隐私产生重大影响,并可能降低对等节点的审查阻力。

加密对等流量将使分析和特定用户的目标比现在更加困难。今天,网络提供商或任何其他中间人可以轻松识别比特币用户及其控制的地址/密钥(并将其与用户的Google个人资料等相关联)。刚刚创建和广播的交易将向网络提供商显示金额和收款人。

用于比特币节点之间通信的协议一直未加密,因为通信被认为是公开的。但是,对于运行精简客户端钱包但希望出于安全原因使用自己的私有节点的用户,希望可以选择安全选项。

会议评论

Jonas Schnelli更新了 BIP151,现在看起来它已准备好进行试运行。除了提高隐私之外,此更改还应该使p2p协议具有更低的CPU开销。

会议结论

草案 BIP151现已发布在BIP存储库中,Jonas将着手进行实现。

紧凑区块中继协议

背景

带宽是通过对等网络中继区块的主要瓶颈。除非可以减少此瓶颈,否则更大的区块大小会对比特币的去中心化特性造成非常大的损害。

从历史上看,比特币P2P协议在区块中继方面效率不高。中继时包含区块中的每个交易,即使在中继区块之前,节点已经可以访问给定区块中的大量交易。这会导致节点在接收区块时出现适度的入站带宽峰值,但会导致一些节点出现非常明显的出站带宽峰值,这些节点在他们的对等节点之前接收区块。当出现此类峰值时,缓冲区膨胀会使消费级互联网连接暂时无法使用,并可能延迟将区块中继到远程对等节点,这些对等节点可能会选择等待,而不是冗余地从其他不太拥塞的对等节点请求相同的区块。

因此,减少区块中继期间使用的带宽对许多运行节点的个人非常有用。

虽然这项工作的目标明确不是减少区块传输延迟,但它确实作为副作用以一些相当显著的方式减少了区块传输延迟。此外,这项工作为未来明确针对低延迟区块传输的工作奠定了基础。

会议评论

更多人被要求审查内存池交互(尤其是使用引用计数而不是复制)。

会议结论

继续审查 BIP152草案和核心实现 #8068

Schnorr 签名和聚合

背景

目前,比特币要求为交易中消耗的每个输出以及多重签名币的每个参与方提供一个签名。Schnorr签名允许将这些签名组合成一个签名,然后可以检查整个交易,从而显着减少验证时间和数据大小。

会议评论

Pieter回顾了关于Schnorr签名和签名聚合构造的想法。

会议结论

普遍预期在未来12个月内将制定与Schnorr签名相关的BIP。

新的网络库

背景

比特币核心的网络代码非常简单,并且不太灵活,也不易于改进。Cory一直在努力重写它。

会议评论

Cory Fields概述了他最近在新的网络库方面的工作。

会议结论

这最终可以用来消除源代码对boost的依赖。

默克尔抽象语法树

背景

BIP114,默克尔抽象语法树(MAST),是对比特币脚本语言的增强,它利用了segwit脚本版本控制。它提高了条件交易的效率和隐私。此 BIP114还安全地启用了在比特币早期版本中禁用的许多操作码。MAST脚本提高了隐私,因为需要公开的数据更少,并且还可以使交易更小,从而节省空间。

会议评论

MAST提案非常简单。它与当前的P2WSH方案非常相似。当您花费硬币时,您需要提供脚本和默克尔分支以及位置。您使用ECDSA验证来计算根,并与scriptpubkey进行比较。它构建了一棵树,其中叶子是脚本。然后你说,这是我正在执行的脚本,这是一个证明它已提交的默克尔分支。

讨论了MAST的许多优点以及实现细节。

会议结论

MAST取决于segwit的激活。

子支付父

子支付父是一种通过进行依赖于第一个交易的另一个交易来向交易添加费用的一种方式。

会议评论

拉取请求已完成并已准备好进行审查。

会议结论

审查以下拉取请求 #7600#7598

参与者

IRC昵称 姓名/匿名
adam3us Adam Back
kanzure Bryan Bishop
jcorgan Johnathan Corgan
sdaftuar Suhas Daftuar
luke-jr Luke Dashjr
Adiabat Tadge Dryja
MarcoFalke Marco Falke
cfields Cory Fields
maaku Mark Friedenbach
wumpus Wladimir van der Laan
jl2012 Johnson Lau
CodeShark Eric Lombrozo
gmaxwell Gregory Maxwell
nickler Jonas Nick
instagibbs Gregory Sanders
jonasschnelli Jonas Schnelli
jtimon Jorge Timón
petertodd Peter Todd
sipa Pieter Wuille

免责声明

此总结是在未征求讨论中部分参与者意见的情况下编写的,因此错误可能是总结的错误,而非讨论参与者的错误。