本文介绍了ROAST(RObust Asynchronous Schnorr Threshold signatures)方案,它是一种Schnorr阈值签名的包装器,可以保证在存在恶意签名者和高延迟网络连接的情况下,诚实签名者 Quorum 也能获得有效的签名。ROAST是Blockstream在多重签名技术上的最新研究成果,旨在提高比特币和 Liquid 网络的隐私性和效率。
作者:Tim Ruffing、Elliott Jin 和 Jonas Nick
让比特币和 Liquid 更具隐私性和效率是我们 Blockstream Research 研究工作的一个基本目标. 实现这一目标的一个特殊方法是使不同类型的交易在区块链上看起来尽可能相似:如果无法区分来自多重签名钱包、闪电网络和其他 Layer 2 应用程序的交易与常规支付,那么分析区块链数据和跟踪用户支付要困难得多。
我们过去为此目标做出的贡献包括 MuSig、MuSig-DN 和 MuSig2,它们允许用单个 BIP340 (Schnorr 签名) 公钥来表示“ n-of-n”多重签名钱包(2-of-2、3-of-3 等),看起来就像该钱包仅由进行常规链上支付的单个用户组成。为了为“ t-of-n”多重签名钱包(1-of-2、2-of-3、3-of-5 等)实现类似的效率和隐私优势,Chelsea Komlo (滑铁卢大学和 Zcash 基金会) 和 Ian Goldberg (滑铁卢大学) 提出了 FROST 阈值签名方案。
“t-of-n”多重签名钱包是 Blockstream Liquid Network 的核心,它是由一个分布式职能人员联盟运行的 侧链。特别是,职能人员负责联合钱包的运营,该钱包目前使用“11-of-15”多重签名,并持有已Hook的比特币,即已转移到侧链的比特币。每当 Liquid 用户想要退出,即想将 Liquid 比特币 (L-BTC) 转回比特币主链时,联盟会创建一个交易,将比特币从联合钱包发送到用户的地址。比特币内置的对 11-of-15 的支持要求广播所有 15 个公钥和所有 11 个签名,这会导致高额费用。使用 FROST 协议可以解决这个问题。但是,为了使用 FROST 签署交易,11 名职能人员的法定人数必须协调并交换多条消息。如果协调失败,例如,因为网络状况不佳、签名者离线或主动破坏,则协议将失败并且必须重新启动。这对于联合钱包中使用的自动签名软件来说不是最佳选择,因为它即使在至少有 11 个签名者愿意签名的情况下,也无法可靠地生成签名。
ROAST (RObust Asynchronous Schnorr Threshold signatures) 是我们解决此问题的方案。ROAST 是 FROST 等阈值签名方案的一个简单包装器。它保证法定数量的诚实签名者(例如,Liquid 职能人员)即使在存在破坏性签名者且网络连接具有任意高延迟的情况下,也始终可以获得有效的签名。我们的 经验性能评估 表明,ROAST 可以很好地扩展到大型签名者组,例如,在不同大陆的协调者和签名者的 67-of-100 设置。即使有 33 个恶意签名者试图阻止签名尝试(例如,通过发送无效的响应或根本不响应),67 个诚实的签名者也可以在几秒钟内成功生成签名。有关该协议的更深入的介绍和描述,请阅读 完整论文。
ROAST 是 Tim Ruffing (Blockstream)、Viktoria Ronge (Friedrich-Alexander-Universität Erlangen-Nürnberg)、Elliott Jin (Blockstream)、Jonas Schneider-Bensch (CISPA Helmholtz Center for Information Security) 和 Dominique Schröder (Friedrich-Alexander-Universität Erlangen-Nürnberg) 之间研究合作的成果。
最后,我们摘录了论文中的一篇关于 Frostland 的故事,该故事说明了 FROST 所需的通信步骤以及 ROAST 背后的直觉。
在遥远的 Frostland 国度,一个民主委员会负责立法。宪法规定,为了使一项新法案获得通过,需要 n = 13 名委员会成员中的多数 t = 7 名成员签署。不熟悉 Frostland 文化的人可能会认为,民主进程中的主要困难是找到委员会中的多数派,而签署法案只是一种形式。
然而,在 Frostland,签署是一项复杂的任务。Frostland 人民对他们的审美遗产感到非常自豪。13 名委员会成员中的每一个人都拥有一个独特而美丽的水印,并且只有当书写该法案的纸张带有所有签名者的水印(而不包含任何其他水印)时,该法案才有效。
因此,签名过程如下:找到一个多数派委员会成员联盟,制造足够数量的带有这些委员会成员(但不包含其他委员会成员的水印)的纸张,将法案的内容写在带有水印的纸张上,最后,从这些成员那里收集法案上的签名。但是,如果在最后一步中,联盟中的一名成员未能提供签名,例如,因为她无限期地离开了办公室,则该过程将停滞。特别是,无法要求另一名成员签名,因为该纸张带有破坏性成员的水印(而不是新成员的水印)。继续前进的唯一方法是从头开始一个全新的签名过程,这涉及寻找一个新的委员会成员多数派,并经历制造具有新水印的纸张的繁琐过程。
这种特殊性使得签名非常复杂,并且委员会成员聘请一名秘书来协助该过程。对秘书来说不幸的是,事先不清楚哪些委员会成员支持一项拟议的法案。成员们不时试图破坏签名过程,以阻止其他成员通过该法案,并且即使他们已经表示支持该法案,也拒绝签名。在最坏的情况下,甚至可能发生所有 13 名委员会成员都声称支持该法案,但实际上只有 7 名或更少的成员支持该法案。
可怜的秘书有多种选择:首先,秘书可以选择 7 名声称支持该法案的委员会成员,制造带有其水印的纸张,在该纸张上准备一份法案的副本,并要求选定的团体签署该副本。如果选定小组中的任何委员会成员主动拒绝正确签名(例如,给出错误的签名)并因此迫使签名中止,则秘书可以识别出破坏性成员,对委员会中的不诚实感到苦恼,用其他成员替换破坏性成员,并准备一份新的法案副本(这涉及制造具有不同水印的新纸张)。但是,Frostland 宪法中非常官僚的规则规定,在签署或拒绝法案之前,必须给予每位委员会成员不确定的时间来检查法案,因此,整个签名过程可能需要很长时间。一些特别烦人的委员会成员坐在法案前几个小时,假装检查副本的准备是否正确,而秘书无法判断给定的成员最终会签名还是只是坐在那里永远。因此,此过程可能需要很长时间甚至陷入僵局。
或者,秘书可以为每 7 名成员的小组准备一份单独的法案副本,并要求所有支持的委员会成员在带有其水印的每个副本上签名。虽然不能保证此过程不会陷入僵局,但精通组合数学的秘书知道该过程在实践中不适用,因为它要求他总共准备“ n choose t” = “13 choose 7” = 1716 份副本。
作为解决此问题的方法,秘书使用以下过程:首先,要求所有表示支持该法案的委员会成员聚集在委员会大楼中。秘书维护所有这些成员的列表,并且只要列表上至少有 7 名成员(在过程开始时也是如此),他就召集一组 7 名成员到他的办公室,并在列表上划掉它们的名字。然后,他获得带有这 7 名成员水印的纸张,在该纸张上书写法案的副本,并要求该小组中的委员会成员签名。每当委员会成员完成副本签名时,他们就会离开办公室并等待新的电话,同时秘书将其姓名添加回他的清单中。
秘书很容易看到此过程将成功并且不需要太多法案副本:如果至少 7 名委员会成员实际上支持该法案并且行为诚实,那么在任何时候,他都知道这 7 名成员最终会签署他们当前分配的副本并重新添加到秘书的列表中。因此,秘书始终可以确保将来某个时候他的列表中将再次有 7 名成员,因此签名过程不会陷入僵局。此外,由于仅在正确签署先前分配的副本后才向成员分配新的副本,因此每个成员一次最多可以搁置一个副本的签名。因此,即使最多 n − t = 13 − 7 = 6 名破坏性委员会成员,最多也只能搁置 6 份副本的签名。最迟,该法案的第 7 份副本将仅分配给诚实的委员会成员,他们将完成签名并生成正确签名的法案。
- 原文链接: medium.com/blockstream/r...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!