(与Wormhole致力于此)

它是无领导者的——所有监护人在观察到链上事件后都执行相同的计算,并签署所谓的验证者行动批准(VAA)。如果所有监护节点中有2/3 +的多数已使用其各自的密钥观察到并签署了同一事件,则所有链上的所有Wormhole合同都将其自动视为有效并触发铸造/烧毁。

所有监护者的权重均相同——没有Wormhole质押令牌。 PoS经济学很难正确把握,而且很容易陷入歧途。随着Wormhole漏洞与Solana紧密耦合,我们认为,从单独的主链“借用”身份和信任的PoA网络比单独的PoS链更不可能被巧妙地破坏或具有错位的激励机制。

我们已经成功避免了使用边缘加密技术——相反,我们使用了使用secp256k1签名的普通M / N multisig方案。这真的很无聊,而在密码学中,无聊正是人们想要的!

使用gossip网络异步建立共识。一旦足够数量的节点对VAA进行了签名,它将被发布到Solana链中以获取数据可用性。然后要么立即执行,要么让VAA在以太坊上执行,然后由触发交易并提交给以太坊(以及所支付的费用)的用户自己检索(这在使用Wormhole钱包时透明地发生)。 Solana交易的费用由请求者支付,方法是在请求令牌锁定或刻录时在创建的帐户上支付稍高的租金。

VAA始终是响应链上事件而生成的。唯一的例外是监护人集更改-节点可以通过提交指定新监护人集的特殊VAA来商定新的监护人集,该VAA已由链下治理机制建立。

m / n multisig方案的替代方案


快速有效的链外签名聚合是一个非常活跃的研究领域,在采用m / n multisig进行解决之前,我们研究了许多替代方案,以查看它们是否更有效率:

  • Gennaro和Goldfeder于2020年提出的具有可中止特征的单阈值ECDSA(非正式地称为“ GG20论文”)。它改进了同一作者先前的阈值ECDSA方案。这是一种非常激动人心的最新方案,它使用同态加密,零知识证明和可验证的秘密共享,使用跨越多个不同密钥持有者的私钥共同生成一个ECDSA签名(“阈值签名”)。 GG20和/或其先驱者被THORchain,Binance Chain等使用。当桥接到仅支持ECDSA签名的“哑”链(如比特币)时,它非常有价值。对于我们的此类约束较少的用例来说,它不必要地复杂,非常慢,并且计算复杂性随签名者数量的增加而非线性增加。

  • Schnorr阈值签名由Stinson和Strobl于2001年首次引入。Schnorr签名很便宜,可以在以太坊上进行验证,并且对Schnorr阈值签名进行了充分的研究,并具有多种高质量的参考实现(Chainlink很好的介绍)。但是,对于初始节点密钥生成以及生成每个联合签名的单个随机数,都需要一种分布式密钥生成方案,在这种情况下,情况看起来非常惨淡。最常用的联合-费尔德曼DKG方案需要三轮,对于并发轮次并不能证明是安全的,并且可能会产生偏差。更新,改进的模式可以解决偏差,但要付出更多的努力。这种偏见并不一定会破坏交易,但是实现复杂性和交互式随机数生成的延迟使我们也放弃了这一点。

  • FROST:Komlo于2020年提出的灵活的轮优化Schnorr阈值签名。FROST是ZCash发明的,通过优化产生单个签名所需的轮数来改进现有的Schnorr阈值签名方案。这是早期研究,目前尚无实施或审核的方法,但我们会密切注意。

  • BN256曲线上的BLS阈值签名。使用BLS生成和验证阈值签名和聚合签名非常便宜,并且签名过程是非交互式的。但是,阈值BLS签名仍然需要交互式的分布式密钥生成步骤来初始生成节点密钥,而每次监护集更改时都需要发生此操作。这受到上面讨论的限制-JF-DKG可能会有偏差,New-DKG甚至更加复杂,我们必须处理中止情况和其他激励问题。另外,对于最近对BN256的攻击将其安全性降低到100bit,我们感到不安。

BN256上的BLS聚合签名要容易得多-您不必生成联合密钥,相反,您可以从字面上仅对所有单个签名进行汇总。但是,由于所有节点的公钥,签名在ETH上验证非常昂贵必须在合同中加载。 除了m / n签名外,最有前途的选择是BLS阈值签名。 BLS阈值签名的主要问题可以通过实现New-DKG来解决,这对于Wormhole的未来迭代将是可行的。 对于拥有15个以上成员的监护人集合,BLS阈值签名比m / n签名便宜。

Wormhole的主要设计约束确实是以太坊的费用——如今,100-200 Gwei范围内的天然气价格被认为是便宜的,价格有时会飙升至500 Gwei以上!