DahLIAS:既非 ECDSA,也非 Schnorr

作者:Kiara Bickers

来源:https://bitcoinmagazine.com/technical/not-ecdsa-not-schnorr-meet-dahlias

“聚合签名” 并不是什么新想法,从 2000 年代初就有了。但开发出能在比特币的安全模式、比特币的椭圆曲线下实际使用的方案,则从未完全实现。开发者们猜测这是有可能做到。他们分享手绘的草稿,然后说,“兴许它的工作原理会跟 ‘MuSig2’ 差不多,只是可以跨越交易的输入”。这个想法作为 开发者的传说 萦绕了多年,但从未得到确切的证实。

但最近,事情有了改变:Jonas Nick 和 Tim Ruffing(来自 Blockstream Research),还有 Yannick Seurin(来自 Ledger),发表了一篇论文,将这个密码学幽灵的故事转化成了一个具体的、可证明的结果。“DahLIAS”是可以在比特币的原生曲线上工作的恒定体积的(跨输入)完全聚合签名方案的第一种正式、安全的构造!

这里面有好多定语,我们要逐个解释:

  • 完全聚合:分散在不同输入中的多个签名可以合并成一个 —— 结果就是一个 64 字节的签名;签名体积总是保持恒定,不论有多少个签名人、多少个输入。
  • 跨输入:每个签名人都可以授权不同的输入,所有的签名最后都会合并成为一个签名。

除了比特币已经依赖的假设,DahLIAS 并没有增加多少假设。也就是说,使用比特币已经依赖的数学,DahLIAS 形成了一个新的密码学原语,解锁了全新的签名类型。

先聊聊曲线和签名

数字签名是在比特币世界中证明一个用户授权了一笔交易的手段。当你要花费比特币的时候,你的钱包软件会使用一个私钥来签名一条消息,然后整个网络(中的全节点)都会使用对应的公钥来验证这个签名。

比特币使用型号为 “secp256k1” 的椭圆曲线(用户据以生成公钥和签名)。它是快速、高效的,也久经考验。它支持像 “ECDSA” 和 “Schnorr” 这样的签名方案;前者是比特币最初使用的签名算法;后者则是在 2021 年的 “Taproot” 升级中加入的,可在 P2TR 输出中使用;这两者也是目前仅有的受到比特币的共识规则认可的签名方案。

传统上,完全的签名聚合所依赖的数学操作,在比特币的曲线(secp256k1)上是不支持的,因此似乎遥不可及。这些特性一般来说依赖于其它类型的椭圆曲线。比如说,“BLS(Boneh–Lynn–Shacham)” 签名使用一类特殊的曲线,叫做 “适于配对的曲线”,以启用高级的操作,比如合并多个签名(甚至是对不同消息的签名)为一个签名。

问题在于,BLS 签名在 secp256k1 上无法工作。虽然从 ECDSA 走向 Schnorr 是一项自然的升级,因为两种依赖于相同类型的椭圆曲线,但加入 BLS 签名就会是一个大得多的跳跃,意味着从比特币现有的安全模型出走。虽然说技术上可以做得到,但它会引入新的密码学假设,以及给协议增加显著的复杂性。支持一条适于配对的曲线,比如 “BLS12-381”,对比特币来说将是 一次巨大的变更

这就是完全聚合签名在 secp256k1 上从未实现的部分原因。

直到现在。

签名聚合的原理

绝大部分的比特币用户都熟悉多签名了。在多签名钱包中,多人一起授权花费一个 UTXO(或者说一个 “钱币”)。每个人都签名相同的输入数据。这种装置是有用的,对于(比如说)共享式托管钱包来说。

聚合签名的工作原理有所不同。它不是多个人签名相同的输入(或者说钱币),而是每个人都授权一笔交易中的不同输入(UTXO)。然后,这些单独的签名会被压缩成一个紧凑的证据。使用 DahLIAS,就意味着,验证一个在比特币的 secp256k1 曲线上的长为 64 字节的签名,就足以验证所有的输入。

(译者注:为免于误解,在比特币世界中,“把多个公钥对相同消息的签名聚合成一个签名”,也算是聚合签名,比如大家常说的 MuSig、MuSig2,都是基于 Schnorr 的聚合签名;作者在这里说的这种情形(将来自多个公钥对不同消息的签名聚合成一个签名),通常被归类为 “CISA(跨输入的签名聚合)”。)

那就是说,原本,如果一笔交易有来自 5 个不同人的 5 个不同输入,那么这笔交易将包含 5 个不同签名。使用聚合签名,所有这些签名可以绑定为 1 个。即使每个签名人都在花费不同的输入、签名的是这笔交易的不同部分,也不影响:结果只是一个签名,证明这笔交易得到了合适的授权。

这就像将许多份许可压缩到一个文件中。这个签名是紧凑的,但依然是可以验证的,证明了每个签名人都授权了自己那个的 UTXO 。

这可以帮助重新协调对隐私性的激励。通过将签名开销减少到一个 64 字节的证据,DahLIAS 降低了在 CoinJoin 交易中合并输入的开销,从而选择隐私交易比不选择它在财务上都是更加明智的。

为什么 “减半聚合” 方案结束了?

在 Schnorr 签名进入比特币的不久之后,开发者们探索过 “减半聚合” 方案,作为一种压缩多个签名的方案,但得到的结果并不是固定大小的。每多一个输入,最终证据的大小就要多一些,所以,交易的体积依然会随参与者数量的增加而增加。DahLIAS 通过在输入和签名人之间实现完全聚合而修复了这一点。不管有多少人参与了、他们签名了什么,所有签名都会被压缩成一个固定大小(64 字节)的证据。

DahLIAS 真正的用处

使用 DahLIAS 的主要好处是,它能减少复杂交易的体积。

DahLIAS 使用一套两回合的交互式签名流程。这跟 MuSig2 在交互层面上相似,但是,它不是一个多重签名协议,因为它并不要求所有参与者联合签名相同的消息。相反,它的作用是聚合对不同消息的签名。

DahLIAS 验证起来也比单独验证每一个签名更快,最快能达到两倍。更低的验证成本,将使更多人能运行全节点,帮助保护比特币的去中心化。

重要的是,DahLIAS 拥有强大的密码学保证。这个方案包含了形式化安全证明。而更早的 “开发者神话” 方法们则没有这个,甚至一些在后来被证明是不安全的。所以没有过早地采用它们,也是一种幸运。

值得重复一遍:DahLIAS 并不是一种多签名协议。不能从功能角度将它与 MuSig2 或者 FROST 作比较,即便它们的密码学基础是相似的。它的用途在别的地方。它提供了一种新的办法,将多个独立的许可编码为一个清楚、可验证的包裹。

未来的方向

你可能会想:如果 DahLIAS 是这么强大,为什么它没有一个 BIP?为什么不提议把它加入比特币?

DahLIAS 签名与 Schnorr 签名和 ECDSA 签名都不同。它的验证算法不一样,不是取一个公钥、一条消息和一个签名来验证,而是取一组公钥和对应的一组消息,加上一个 64 字节的证据。

这让 DahLIAS 跟比特币当前的共识规则不兼容。在基础层支持它,将需要一次共识变更。DahLIAS 的论文不是要提议这样的变更,但做的事情是同样重要的。

这篇论文证明了,在比特币原生的椭圆曲线上设计一种完全聚合签名方案是有可能

就这,也是很大的进步。

要想让 DahLIAS 进入比特币,需要有人来撰写一份 BIP,甚至可能要用到 secp256k1lab 。这意味着,要指定方案的细节、考虑它对共识和实现的影响,并建立社区支持。论文只是为这样的转化建立密码学基础。

DahLIAS 论文的真正价值是它证明的东西。在 secp256k1 上实现完全签名聚合已经不止停留在想象层面。它成真了,高效且安全。数年依赖,这个想法一直只是开发者的传说。现在,它被写下来、分析了、证明了。剩下的只是,如果我们想要的话,把它带到比特币。

(完)

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论