跨链原子交换的适配器签名及其应用

释放双眼,带上耳机,听听看~!
本文介绍了适配器签名与跨链原子交换的应用,探讨了比特币与Layer2技术之间的互操作性,以及不同跨链交易技术的对比。同时详细分析了随机数重用问题及解决方案RFC 6979。

原文标题:《Adaptor Signatures and Its Application to Cross-Chain Atomic Swaps》原文作者:mutourend, lynndell

引言

随着比特币 Layer2 扩容方案的快速发展,比特币与其 Layer2 对应网络之间的跨链资产转移频率显著增加。这一趋势受到 Layer2 技术(如 Bitlayer)所提供的更高可扩展性、更低的交易费和高吞吐量的推动。这些进步促进了更高效、更经济的交易,从而促进比特币在各种应用中的更广泛采用和集成。因此,比特币与 Layer2 网络之间的互操作性正成为加密货币生态系统的关键组成部分,推动创新,并为用户提供更多多样化和强大的金融工具。

如表 1 所示,比特币与 Layer2 之间的跨链交易有三个典型方案,分别为中心化跨链交易、BitVM 跨链桥和跨链原子交换。这三个技术在信任假设、安全性、便捷性、交易额度等方面各不相同,能满足不同的应用需求。

表 1. 跨链交易技术对比

跨链原子交换的适配器签名及其应用
跨链原子交换的适配器签名及其应用
跨链原子交换的适配器签名及其应用
ŝ = r + cx

计算出私钥x。

同理,在 ECDSA 协议中,如果随机数r泄漏,则能够根据等式

ŝ = r^{-1}(hash(m)+R_x x)

计算私钥出x。

最后,在零知识证明协议中,如果随机数v泄漏,则能够根据等式

z := v + cr

计算出随机数r,从而进一步根据随机数r计算出私钥x。因此,随机数使用完后需立刻删除。

3.1.2 随机数重用问题

对任意两个跨链交易,如果适配器签名协议使用相同的随机数,则会导致私钥泄漏。具体而言,在 Schnorr 协议中,如果使用了相同的随机数r,则以下方程组中仅r和x是未知的

ŝ_1 =r + c_1 x,

ŝ_2 = r + c_2 x.

因此,可以求解方程组,获得私钥x。

同理,在 ECDSA 适配器签名协议中,如果使用相同的随机数r,则以下方程组中仅r和x是未知的

ŝ_1 = r^{-1}(hash(m_1)+R_x x)

ŝ_2 = r^{-1}(hash(m_2)+R_x x)

因此,可以求解方程组,获得私钥x。

最后,在零知识证明协议中,如果使用相同的随机数v,则以下方程组中仅v和r是未知的

z_1 = v+c_1 r,

z_2 = v+c_2 r.

因此,可以求解方程组,获得随机数r,从而进一步解方程组获得私钥x。

以此类推,不同用户使用相同的随机数,也会泄漏私钥。换言之,使用相同随机数的两个用户,能够求解方程组,获得对方的私钥。因此,应使用 RFC 6979 解决随机数重用问题。

3.1.3 解决方案:RFC 6979

RFC 6979 指定了一种使用 DSA 和 ECDSA 生成确定性数字签名的方法,解决了与生成随机值 k 相关的安全问题。传统的 DSA 和 ECDSA 签名依赖于每次签名操作随机生成的随机数 k。如果此随机数被重用或生成不当,会危及私钥的安全性。RFC 6979 通过从私钥和待签名消息中确定性地导出k,消除了生成随机数的需求。这确保了使用相同私钥签署相同消息时,签名总是相同的,从而增强了可重现性和可预测性。具体而言,确定性的k是由 HMAC 生成的。该过程涉及哈希函数(例如 SHA256)对私钥、消息和计数器计算哈希值,

k = SHA256(sk, msg, counter)

上述等式中,为表达简洁,仅对私钥 sk,消息 msg 和计数器 counter 计算哈希值,实际 RFC 6979 中计算过程涉及更多的哈希计算。该等式确保 k 对每条消息都是唯一的,同时对于相同的输入具有可重现性,并且减少了与弱或受损的随机数生成器相关的私钥暴露风险。因此,RFC 6979 为使用 DSA 和 ECDSA 的确定性数字签名提供了一个强大的框架,解决了与随机数生成相关的重大安全问题,并增强了数字签名的可靠性和可预测性。这使其成为需要高安全性和符合严格操作要求的应用程序的宝贵标准。Schnorr/ECDSA 签名存在随机数缺陷,需要使用 RFC 6979 进行防范。因此,基于 Schnorr/ECDSA 的适配器签名也存在这些问题,也需要使用 RFC 6979 规范以解决这些问题。

3.2 跨链场景问题与解决方案

3.2.1 UTXO 与账户模型系统异构问题与解决方案

如图 1 所示,比特币采用 UTXO 模型,基于 Secp256k1 曲线实现原生的 ECDSA 签名。Bitlayer 为 EVM 兼容 Bitcoin L2 链,采用 Secp256k1 曲线,支持原生的 ECDSA 签名。适配器签名实现了 BTC 交换所需的逻辑,而 Bitlayer 交换对应方则由以太坊智能合约的强大功能支撑。

基于适配器签名的跨链原子交换,或至少是设计用于 ECDSA 曲线的 semi-scriptless 适配器签名方案,与以太坊不兼容。原因在于以太坊是账户模型的,而不是 UTXO 模型。具体而言,基于适配器签名的原子交换中要求退款交易必须预先签名。但是,在以太坊系统中,如果不知道 nonce,则无法预先签名交易。因此,一方可以在预先签名完成和交易执行之间发送交易——这将使预先签名的交易无效(因为 nonce 已被使用,不能重复使用)。

此外,从隐私角度来看,这意味着 Bitlayer swap 的匿名性比 HTLC 更优(swap 的双方都可找到合约)。但是,由于需要一方有公开合约,使得 Bitlayer swap 的匿名性低于适配器签名的匿名性。在没有合约的一方,swap 交易看起来与任何其他交易都一样。但是,在有 EVM 合约的一方,交易明显是为了资产 swap。虽然一方有公开合约,但是即使使用复杂的链分析工具,也不可能将其追溯到另一条链。

跨链原子交换的适配器签名及其应用
图 1. UTXO 与账户模型异构系统跨链原子交换

Bitlayer 目前支持原生 ECDSA 签名,也可通过智能合约实现 Schnorr 签名验证。如果使用原生的 Bitlayer 交易,则无法预签原子交换中的退款交易;需要使用 Bitlayer 智能合约交易,才能够实现原子交换。但是,该过程会牺牲隐私性,即 Bitlayer 系统中参与原子交换的交易是可追溯的,但无法追溯到 BTC 系统中的交易。在 Bitlayer 端可设计类似 Tornado Cash 之类的 Dapp 应用,为 BTC 与 Bitlayer 原子交换中 Bitlayer 端的交易提供隐私服务。

3.2.2 相同曲线,不同算法,适配器签名安全

如图 2 所示,假设 Bitcoin 和 Bitlayer 均使用 Secp256k1 曲线,但是 Bitcoin 使用 Schnorr 签名,而 Bitlayer 使用 ECDSA。该情况下,基于 Schnorr 和 ECDSA 的适配器签名,是可证明安全的。假设给定 ECDSA 和 Schnorr 签名预言机,能够构造模拟器 S 攻破 ECDSA,则仅给定 ECDSA 签名预言机,能够构造模拟器 S 攻破 ECDSA。但是,ECDSA 是安全的。同理,假设给定 ECDSA 和 Schnorr 签名预言机,能够构造模拟器 S 攻破 Schnorr 签名,则仅给定 ECDSA 签名预言机,能够构造模拟器 S 攻破 Schnorr 签名。但是,Schnorr 签名是安全的。因此,在跨链场景下,适配器签名使用了相同曲线,但是签名算法不同,则是安全的。换言之,适配器签名允许一端使用 ECDSA,而另一端使用 Schnorr 签名。

跨链原子交换的适配器签名及其应用
图 2. 相同曲线,不同算法,适配器签名

3.2.3 不同曲线,适配器签名不安全

假设 Bitcoin 使用 Secp256k1 曲线和 ECDSA 签名,而 Bitlayer 使用 ed25519 曲线和 Schnorr 签名。该情况下,不能使用适配器签名。由于曲线不同,导致椭圆曲线群的阶不同,即模系数不同。Bob 在 Bitcoin 系统中将y适配到 ECDSA 签名中时,即计算s:= ŝ+y。此时,y的取值空间为 Secp256k1 椭圆曲线群的标量空间。随后,Alice 需要使用y在 ed25519 椭圆曲线群上进行 Schnorr 签名。但是,ed25519 曲线余因子为 8,且模系数不等于 Secp256k1 椭圆曲线群的模系数。因此,使用y在 ed25519 曲线上进行 Schnorr 签名是不安全的。

数字资产托管应用

数字资产托管有三个参与方,分别为:买方 Alice、卖方 Bob 和托管方。使用适配器签名能够实现非交互式门限数字资产托管,且在无需交互的情况下实例化门限支出策略的子集。该子集由 2 种参与者组成:参与初始化的参与者、不参与初始化的参与者,后者称为托管方。托管方不能签署任意交易,而只向支持的其中一方发送秘密。

一方面,托管人只能在几个固定的结算交易中进行选择,而无法与其他参与方之一签署新的交易。因此,这种秘密释放机制使得非交互式门限托管的灵活性不如门限 Schnorr 签名。另一方面,可以使用门限 Schnorr 签名设置 2-of-3 花费策略。但是,门限 Schnorr 签名协议需要三方运行进行去中心化密钥生成协议。因此,基于适配器签名的资产托管协议具有非交互优势。

4.1 基于适配器签名的非交互式资产托管

跨链原子交换的适配器签名及其应用
图 3. 基于适配器签名的非交互式资产托管

如图 3 所示,Alice 和 Bob 想要创建一个具有隐形策略的 2-of-3 交易输出,其中包含一个托管方。取决于条件 c,Alice 或 Bob 可花费该交易输出。如果 Alice 和 Bob 之间存在争议,则托管方(公钥为 E,私钥为 e)决定由 Alice 或 Bob 获得该资产。

1. 创建一个未签名 funding 交易,将 BTC 发送给 Alice 和 Bob 之间的某 2-of-2 MuSig output。

2. Alice 选择一个随机值 t_A,将某交易的 adapator 为 t_A ᐧ G 的 Schnorr 预签名 (hat{R}_A,hat{s}_A) 发送给 Bob,该交易为将 funding output 发送给 Bob。Alice 同时给 Bob 发送一个密文,该密文包含对秘密 t_A 并将托管公钥 E 调整为 E_c = E + hash(E, c)G 的textbf{可验证加密}C = Enc(E_c, t_A)。该过程中,Bob 收到 Alice 的预签名后,加上自己的签名,不满足 2-of-2 MuSig,从而无法花费 funding output。仅当 Bob 知道 t_A(由托管方可提供),或 Alice 另外签署完整签名发送给 Bob,才能花费 funding output。

3. 与之相对应,Bob 基于其 adaptor secret t_B,重复步骤(2)。此时 Bob 所签的交易为将 funding output 发送给 Alice。

4. Alice 和 Bob 均验证接收密文的有效性,确认密文是对 E_c 对秘密的加密,从而对 funding 交易签署并广播。可验证加密使得在 setup 阶段无需托管方参与,且不需要公开合约 c。

5. 当有争议时,Alice 和 Bob 可将密文以及条件 c 发送给托管方,则托管方可实际情况判决,从而使用调整私钥 e+hash(E, c) 进行解密发送 t_A/t_B 给 Bob/Alice。

如果无争议,则 Alice 和 Bob 可按其所想来花费 2-of-2 MuSig output。如果存在争议,则任何一方均可联系托管方,并请求其 adaptor secret t_A 或 t_B。因此,其中一方在托管方的帮助下,可完成该适配器签名,并广播该结算交易。

4.2 可验证加密

基于离散对数的经典可验证加密方案(Practical Verifiable Encryption and Decryption of Discrete Logarithms)不能用于 Secp256k1 adaptors,因其仅支持验证特殊结构化的 groups。

目前,有 2 种有前景的方式来基于 Secp256k1 离散对数做可验证加密,分别为PurifyJuggling

Purify最初是为了创建具有确定性 nonce(DN)的 MuSig 协议而提出的,要求每个签名者使用零知识证明其 nonce 是将伪随机函数(PRF)正确应用于公钥和消息的结果。Purify PRF 可在 Bulletproofs 零知识协议的算术电路中高效实现,用于在 Secp256k1 上的离散对数创建可验证加密方案。换言之,使用 zkSnark 实现可验证加密。

Juggling加密包括四个步骤:(1)将离散对数 x 切分为多个长为 l 的片段 x_k,使得 x = sum _k 2^{(k-1)l} x_k;(2)使用公钥 Y 对片段 x_k ᐧ G 进行 ElGamal 加密{ D_k, E_k} = { x_k ᐧ G + r_k ᐧ Y, r_k ᐧ G };(3)对每个 x_k ᐧ G 创建范围证明,证明 D_k 为一个 Pedersen 承诺 x_k ᐧ G + r_k ᐧ Y,且其值小于 2^l;(4)使用 sigma 协议,证明{sum D_k, sum E_k} 是对 x_k ᐧ G 的正确加密。

在解密过程中,对{D_k, E_k} 解密出每个 x_k ᐧ G,然后穷举搜索出 x_k(取值范围为 [0, 2^l))。

Purify 需在 Bulletproofs 内执行一个 PRF,相对复杂,而 Juggling 理论上更简单。此外,二者在 proof size、证明时长和验证时长的差距很小。

总结

本文对 Schnorr/ECDSA 适配器签名与跨链原子交换的原理进行了详细描述。深入分析了适配器签名存在随机数泄漏问题、重复问题,并提出使用 RFC 6979 以解决这些问题。此外,详细分析了跨链应用场景下,不但应考虑区块链的 UTXO 模型与账户模型之间的区别,还应考虑适配器签名是否支持不同算法、不同曲线等问题。最后,对适配器签名进行扩展应用,实现非交互式数字资产托管,并简单介绍了涉及的密码学原语–可验证加密。

参考文献

1. Gugger J. Bitcoin-monero cross-chain atomic swap[J]. Cryptology ePrint Archive, 2020.

2. Fournier L. One-time verifiably encrypted signatures aka adaptor signatures[J]. 2019, 2019.

3. https://crypto-in-action.github.io/ecdsa-blockchain-dangers/190816-secp256k1-ecdsa-dangers.pdf

4. Pornin T. Deterministic usage of the digital signature algorithm (DSA) and elliptic curve digital signature algorithm (ECDSA)[R]. 2013.

5. Komlo C, Goldberg I. FROST: flexible round-optimized Schnorr threshold signatures[C]//Selected Areas in Cryptography: 27th International Conference, Halifax, NS, Canada (Virtual Event), October 21-23, 2020, Revised Selected Papers 27. Springer International Publishing, 2021: 34-65.

6. https://github.com/BlockstreamResearch/scriptless-scripts/blob/master/md/NITE.md

7. https://particl.news/the-dex-revolution-basicswap-and-private-ethereum-swaps/

8. Camenisch J, Shoup V. Practical verifiable encryption and decryption of discrete logarithms[C]//Annual International Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2003: 126-144.

9. Nick J, Ruffing T, Seurin Y, et al. MuSig-DN: Schnorr multi-signatures with verifiably deterministic nonces[C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020: 1717-1731.

10. Shlomovits O, Leiba O. Jugglingswap: scriptless atomic cross-chain swaps[J]. arXiv preprint arXiv:2007.14423, 2020.

原文链接

资讯

巴菲特波克夏现金飙升超越以太坊,盘点20年逃顶纪录

2024-8-5 18:28:00

资讯

美国经济衰退风险:Cliff Dive导致宏观资产震荡

2024-8-5 21:16:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索