本周的 Newsletter 总结了 CoinPool 支付池提案和 WabiSabi 协调的 Coinjoin 协议。还包括我们定期的服务、客户端软件和基础设施软件的值得注意的更改部分。

行动项

本周无行动项。

新闻

  • CoinPool 通用隐私方案,用于可识别的链上协议: Antoine Riard 和 Gleb Naumenko 发布了一个关于支付池的提案,旨在通过允许多个用户无需信任地共享对单个 UTXO 的控制,从而改善针对第三方区块链监控的隐私。与之前的支付池设计(如 joinpool)相比,CoinPool 设计的重点是允许参与者对池内成员之间的交易做出链下承诺。借助 taproot,这允许合作的参与者使用 UTXO 来操作如闪电网络或 vaults 等协议,这些 UTXO 在链上表现得与单密钥 UTXO 无异,从而改善了参与者的隐私并提升了链上可扩展性。从这个意义上来说,该协议作为一种通用的 channel factory,不仅适用于闪电网络,还适用于许多会创建具有独特指纹的链上交易的协议。

    作者概述了 CoinPool 如何利用现有的比特币功能再加上 taproot、SIGHASH_NOINPUT,以及通过 Bitcoin Script 使用仅删除累加器的能力(如默克尔树,或类似于提议的 BIP116 OP_MERKLEBRANCHVERIFY)。他们似乎并未推动一个特定的设计,而是希望展开讨论,研究 CoinPool 或类似机制如何成为钱包默认使用的通用工具,以消除当前和提议的多用户协议的链上痕迹。

  • WabiSabi 协调的具有任意输出值的 Coinjoin:coinjoin 协议中,一组用户协作创建一个交易模板,以便使用他们现有的 UTXO(输入)生成一组新的 UTXO(输出)。创建此交易模板的方式对 Coinjoin 提供的隐私有重要影响,不同的实现方式使用了不同的方法:

    • Joinmarket 有两类用户:支付进行 Coinjoin 的用户(市场需求方)和为 Coinjoin 提供 UTXO 而获得报酬的用户(市场供给方)。为了创建 Coinjoin,需求方联系多个供给方,收集他们的输入和输出信息并创建交易模板。这使得需求方能够了解 Coinjoin 中所有参与者的输入和输出之间的对应关系,但也保证了每个供给方只知道自己输入和输出之间的对应关系。需求方直接获得 Coinjoin 的隐私收益,而供给方则直接获得提供流动性的收入。如果需求方保护了他们自己的隐私,供给方也间接获得了针对第三方区块链监控的增强隐私。希望获得隐私保证的供给方可以在几轮混合中作为需求方操作。

      这种模式为需求方提供了很大的灵活性,可以自由决定交易模板中的输入和输出。例如,需求方可以选择他们希望创建的 Coinjoin 数量,或在 Coinjoin 中将其资金转移给第三方。

    • Wasabi 使用一个集中协调者来组织使用该软件创建的每个 Coinjoin。为了防止该协调者了解输入与输出之间的关系,用户匿名提交他们希望创建的输出,并获得对承诺进行盲签名。随后,每个用户通过另一个匿名身份连接,并提交每个输出及其解盲后的签名。签名由协调者提供,但解盲后的签名无法追溯到接收盲签名的特定用户。这使得在不让协调者知道输入资金来源的情况下,可以构建交易模板。

      由于协调者在创建盲签名时无法查看输出,因此它不能允许用户指定任意金额,否则用户可能会试图在 Coinjoin 中获取比他们贡献的更多的资金。虽然这不是一个安全风险——其他参与者会拒绝签署任何格式错误的交易——但这种失败会导致协议重启。如果允许任意金额,盲化过程将阻止识别出撒谎的用户,从而无法将其禁止在未来的混合轮次中,这将允许对协议进行无限制的拒绝服务攻击。因此,Wasabi 要求所有输出要么属于一组允许的金额(例如 0.1 BTC、0.2 BTC、0.4 BTC 等),要么是一个未盲化的找零输出。这限制了使用 Wasabi 进行用户指定金额的支付或任意金额的支付。

    本周,几位 Wasabi 的贡献者发布了一个新的协议,称为 WabiSabi,该协议在概念上扩展了现有协议,并采用了秘密交易中的技术。这样可以让客户端对任意输出金额创建承诺,并且在不暴露金额的情况下证明每个金额都在一个指定范围内(例如 0.0001 BTC 到 2100 万 BTC),并且它们的总和为一个指定值。协调者使用此指定值验证客户端要创建的输出总和等于客户端提供的输入总和(减去费用)。然后,协调者可以为每个输出提供一个匿名凭证,使客户端能够稍后匿名向协调者提交该输出以纳入交易模板。

    实现该协议的软件将能够创建协调的 Coinjoin,使客户端可以选择他们的输出金额,从而为不等值 Coinjoin(参见 Newsletter #79)和在 Coinjoin 中进行支付(无论是向 Coinjoin 之外的第三方支付,还是向 Coinjoin 内的参与方支付)提供实验机会。

    提议的协议与当前的 Wasabi 协议存在显著差异(例如用键验证匿名凭证替代了盲签名),因此其作者正在寻求对该协议的审查、批评以及关于如何最有效使用该协议的建议。

服务和客户端软件的更改

在这个每月特辑中,我们重点介绍比特币钱包和服务的有趣更新。

  • Caravan 添加了 HD 钱包支持、币控制和硬件钱包测试套件: 除了单地址多签协调外,Caravan 现在还支持 HD 钱包的多签协调和币控制功能。Caravan 的创建者 Unchained Capital 还宣布了一个用于测试硬件钱包在浏览器中交互和 Trezor 多签地址确认的测试套件。

  • Bitpay 的 Copay 和 Bitcore 项目支持原生 segwit: Bitpay 的 Copay 钱包和后端 Bitcore 服务现在均支持接收和花费原生 segwit 输出。

  • Blockstream Green 钱包桌面版本: Blockstream 已发布其 Green 钱包桌面版,支持 macOS、Windows 和 Linux。桌面版支持 2-of-3 和 2-of-2 多签钱包,以及 Tor 和测试网。

  • React native 库 photon-lib 宣布: Tankred Hase 共享了一个新的库 photon-lib,用于使用 React Native 构建比特币钱包功能。该库支持 HD 钱包和轻客户端功能,但仍在开发中,尚未准备好投入生产。

值得注意的代码和文档更改

本周在 Bitcoin CoreC-LightningEclairLNDRust-Lightninglibsecp256k1Bitcoin 改进提案(BIPs)闪电网络规范中的值得注意的更改。

  • BIPs #910BIP85 分配给 Ethan Kosakovsky 的从 BIP32 密钥链生成确定性熵的提案。BIP85 描述了一个超级密钥链,其子密钥可以用于创建传统的 HD 密钥链种子。有关该提案的更多详情,请参见 Newsletter #93