什么是 swap-in 交易?

互联网 阅读 488 2024-05-06 16:32:54

作者:ACINQ

来源:https://acinq.co/blog/phoenix-swaproot

摘要:在链上向 Phoenix 钱包存入资金现在变得更便宜(*),也更隐私,这都得益于过去几年添加到比特币和闪电网络上的强大新功能的组合。

(*)在 swap 交易只有一个输入时便宜了 16%,有两个输入时便宜了 23%,而在三个输入时便宜了 27%。

去年,我们为 Phoenix 钱包软件发布了一个重大升级(中文译本):用户可以只使用一条通道,通道的容量可以按需扩大和缩小。

在那次升级中,一项关键的特性就是免信任的、即时的 “swap-in”:当资金被发送到你的钱包的链上地址(swap-in 地址)时,这些资金会通过 swap-in 交易 “拼接” 进入你已有的闪电通道。

但那一套 swap-in 协议还不能尽如人意:

  • 显示在 Phoenix 钱包界面中的 swap-in 地址是长期不变的,这会带来隐私问题;

  • 相关的 swap-in 交易有明确的特征,这使它很容易在链上跟踪,这也是一个隐私问题。

使用 Taproot、MuSig2 以及描述符,我们设计并实现了一种新的 swap-in 协议:swap-in 交易现在变得更加便宜,也更难跟踪,而且 Phoenix 钱包会在每次你想要链上收款时为你生成一个新的 swap-in 地址。

什么是 swap-in 交易?

一笔 swap-in 交易就是一笔链上交易,可以用来为一条闪电通道增加资金。Phoenix 使用了一套基于 “swap-in potentiam”(中文译本)的免信任的、即时的 swap-in 协议。

这套协议跟 “零确认”的理念是兼容的,而 “零确认” 是 Phoenix 钱包使用体验的一个关键:在 swap-in 交易还在等待链上确认时,通道依然是可用的;一旦交易获得确认, Phoenix 钱包就会触发零确认的通道拼接(默认拼入通道的资金已经可用)。

之前,我们使用的是一种 pay-to-script 构造,脚本是 用户公钥 + 服务商公钥 OR 用户公钥 + 时延。这里,“用户” 指的是 Phoenix 钱包的一个用户,而 “服务商” 指的是 ACINQ 闪电节点。

有两种办法可以花费这个脚本:

  • 普通使用场景:用户和服务商一致同意,将其中资金 “拼接进入” 一条新的或者已有的闪电通道。

  • 退款使用场景:其中的资金一直没有动用,在一段时间之后,用户可以独自花费它(这也是如果 ACINQ 跑路的话,用户取回资金的办法)。

但这种设计有一些缺点:

  • pay-to-script 构造比较昂贵,而且这个代价不是在创建 资金/脚本 的时候支付的,而是在花费 资金/脚本 的时候支付的,因为花费交易必须把完整的脚本都公布出来。

  • 缺乏隐私性:pay-to-script 构造与常规的 pay-to-public-key 构造不同,特征比较明显,可以在链上跟踪。在我们这个案例中,这种脚本是非常鲜明的,包含了这种脚本的交易有极大概率是 Phoenix swap-in 交易。

  • 难以建立一种通用的钱包复原流程。这就是为什么 Phoenix 要使用静态的 swap-in 地址。这也带来了隐私性问题。

什么是 “Taproot”?为什么能帮上忙?

“Taproot”(详见 BIP 340 和 BIP 341)是比特币的一个重大升级,为比特币协议带来了许多提升,包括:

  • Schnorr 签名,比 ECDSA 更容易组合;

  • 一种用于 pay-to-script 交易的新设计,你不再需要披露完整的脚本(而只需披露一部分);

  • 这种能力,在有些时候,可以让 pay-to-script 交易跟 pay-to-public-key 交易无法区分;

最后一项对我们的新的 swap-in 协议非常关键。Taproot 引入了 key-path spending(使用公钥来花费)和 script-path spending(使用脚本来花费)的概念。

在以往的比特币交易中,你只能在 pay-to-script 和 pay-to-public-key 之间选择一种,但有了 Taproot,你可以两者都要。你可以实现 pay-to-public-key OR pay-to-script 这样的协议,这样,当你在使用 pay-to-public-key 条件时,你的花费交易将跟其它 pay-to-public-key 构造的花费交易没有区别。

所以,回到我们的 swap-in 脚本:用户公钥 + 服务商公钥 OR 用户公钥 + 时延。为了在合作情形中使用 key-path spending,我们需要把 用户公钥 + 服务商公钥 换成一把公钥。这是怎么做到的呢?

什么是 “MuSig2”,它又能帮上什么忙?

有了 Schnorr 签名,加总公钥和签名就变得非常简单。事实上,如果你用 N 个私钥对同一条消息生成了 N 条签名,你可以把这 N 条签名全部加起来(成为 “聚合签名”),然后把对应的 N 个公钥全部加起来(成为 “聚合公钥”),这个聚合签名就是这个聚合公钥的有效签名。

非常非常简单 …… 而且根本不安全!

事实证明,因为加总非常简单,所以在你使用公钥 P 的时候,攻击者可以使用 -P,把你的公钥 “取消掉”。

因此,我们需要 “MuSig2”,这是一种用来聚合签名和公钥的算法,可以证明是安全的,而且已经在生产环境中就绪了。

所以,有了 MuSig2,我们可以真的把用户公钥和服务商公钥聚合成一个公钥,然后用在 key-path 花费中,然后我们的脚本就变成了:用户-服务商 聚合公钥 OR 用户公钥 + 时延

swapin-script-description

在合作情形中,使用 swap-in 资金的通道拼入交易会变得更加便宜,而且跟其它的 pay-to-taproot-address 交易没什么区别。很棒!

但 swap-in 地址能不能换呢?如何既能轮换地址,又能提供一种通用的资金复原流程、保证可以扫描所有可能的 swap-in 地址?

“描述符” 是什么,也能帮上忙是吧?

“描述符” 是一种简单的语言,可以用来描述标准钱包的范式,包括 BIP32 密钥生成的模式。

描述符可以使用 “miniscript” 来描述大部分标准的脚本范式。Miniscript 支持 Taproot,但(还)不支持 MuSig2:它可以显式地说明 key-spend 公钥以及 script-path 脚本(包括地址的生成)。

为了让我们的 swap-in 协议与 miniscript 描述符兼容,我们只需要为合作情形使用一个固定的用户公钥(*),而在退款分支中可以使用不同的退款公钥(可以使用 BIP32 方案),从而:

  • 为每一个新的退款密钥生成一个不同的 swap-in 地址

  • 用在通道拼接交易中的 swap-in 输出跟普通的 P2TR 交易依然是不可分辨的

  • 我们可以使用一条紧凑的、说明了密钥轮换的描述符,来描述复原钱包

这就是 swap-in 复原描述符的样子:

tr(  // 使用固定的 key-path 花费密钥
  1fc559d9c96c5953895d3150e64ebf3dd696a0b0...48ff6251d7e60d1,  // 下面则是 secipt-path 花费脚本
  and_v(    // the xprv with the derivation path
    v:pk(xprvA1EfxcCy5HJnYBfPmwi9iXAyCktUSN...tvYsWqFTu29/...),    // CLTC timeout
    older(2590)
  )// checksum)#sv8ug44m

(*)每一个 Phoenix 钱包都有一个唯一的用户公钥以及一个唯一的服务商公钥(两个都是从你的 12 词种子词中推导出来的)

结论

我们的 swap-in 协议站在了巨人的肩膀上:

  • 已经合并进入闪电网络规范的 “双向注资” 协议以及交互式交易构造协议;

  • Taproot 升级,让比特币脚本更加强大,也更加隐私;

  • MuSig2,启用了公钥聚合以及签名聚合;

  • 描述符和 miniscript 上的工作,以及添加到 Bitcoin Core 26 版本的大量支持。

所有这些特性和协议乍看起来都暗淡无光,可能也很难看出它们对终端用户有什么好处。但现在,清楚起来了:它们是开发更好、更便宜、更隐私也更易用的协议的工具。这正是 Phoenix 的使命!

(完)


免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:返回栏目 下一篇:什么是 “部分签名的比特币交易(PSBT)”?

相关资讯

  • Farcaster/FT/UXLINK/Cyber,如何寻找Socialfi的北极星指标
    Farcaster/FT/UXLINK/Cyber,如何寻找Socialfi的北极星指标

    社交产品旨在帮助用户建立社交关系、传递信息和拓展社交网络。Web3的社交产品具有金融化特点,如何基于社交网络发行资产是其核心。本文分析了几款发展良好的SocialFi产品,如Farcaster、FriendTech、UXLINK和CyberConnect,探讨了它们的增长路径。其中,UXLINK是最火爆的区块链社交基础设施,活跃钱包数量高达729.5k。未来,可以关注基于熟人社交网络的资产发行。.....

    每日资讯 2024-05-19 11:01 188
  • 一览检查代币是否为诈骗的8种方法
    一览检查代币是否为诈骗的8种方法

    本文介绍了八种方法来识别区块链项目中的诈骗,包括验证代币合法性、检查代码、查看评论、比对黑名单、检查流动性和使用第三方工具。使用DEX时,要检查交易量、交易笔数和用户数量。使用第三方工具可以帮助评估代币的真实价值。遵循这些建议可以避免被骗取资金。.....

    每日资讯 2024-05-19 11:01 566
  • Farcaster:SocialFi板块领导者
    Farcaster:SocialFi板块领导者

    Farcaster是一个去中心化的社交网络协议,通过智能合约和混合存储技术实现用户之间的社交连接、内容分享和数据所有权。它的团队具有强大的行业背景,项目运行速度快,用户体验好。与其他SocialFi项目相比,Farcaster具有更多的能力和优势,使得用户更容易接受和使用。Farcaster的生态系统包括70%的代币分发给社区,15%分配给流动性池,剩余的15%将分配给团队、投资者和生态系统。Farcaster通过独特的框架和Frames插件,改变了传统SocialFi项目的数据存储方式,成为Social

    每日资讯 2024-05-19 11:01 955
  • Glassnode链上周报:跨多个时间框架识别卖方疲劳
    Glassnode链上周报:跨多个时间框架识别卖方疲劳

    长期投资者在牛市中获利,损失主要来自短期持有者。我们使用年龄分解指标来描述日交易者和每周-每月投资者群体中的卖方疲劳情况,并利用链上指标评估目标投资者群体的未实现和实现亏损。市场转折点从内向外展开,利用卖方疲劳框架识别修正和整合期间的转折点。通过评估MVRV比率、SOPR和实现亏损,我们可以识别卖方疲劳的时期。新发布的细分指标帮助我们隔离出个别投资者子集,并通过三个链上指标来识别微型投降点。该框架帮助我们思考在识别卖方疲劳点时应该看到的激励和行为。.....

    每日资讯 2024-05-19 11:01 217
  • 解码dYdXChain:去中心化衍生品交易的未来方向?
    解码dYdXChain:去中心化衍生品交易的未来方向?

    dYdX Chain是一家老牌去中心化衍生品交易平台,经历多次迭代后于2023年推出完全去中心化的区块链。其订单簿由60个活跃验证者管理,实现高吞吐量和可定制性。DYDX代币激励用户提供流动性和参与治理,已向质押者分配超过2000万美元的USDC。dYdX的成功案例展现了独立链的前景,但难以复制,稳妥的方案是在不断堆栈中优化。.....

    每日资讯 2024-05-19 11:01 97
  • BanktoBlock:解读区块链时代的「银行杀手」RWA
    BanktoBlock:解读区块链时代的「银行杀手」RWA

    区块链技术崛起改变了传统金融行业,打开了真实世界资产的数字化市场。RWA代表着一个32万亿美元的机遇,将加速DeFi的发展并弥合传统金融和加密资产之间的鸿沟。RWA的好处包括增加透明度、降低成本、提高流动性和市场效率。机构投资者对Token化产品的兴趣日益增加,预计未来会有更多大型参与者进入市场。RWA领域可以分为抵押借代和非抵押借代,预计抵押借代将是未来的主要增长来源。虽然面临挑战,但RWA作为数万亿美元的机遇,有望成为加密领域的下一个前沿。.....

    每日资讯 2024-05-19 11:01 1006
  • 一文速览2024年顶级加密AI项目
    一文速览2024年顶级加密AI项目

    Token Metrics Moon Awards是备受赞誉的加密货币行业奖项,旨在表彰对该领域做出重大贡献的平台、项目和创举。最新新增类别是《2024年顶级加密货币人工智能项目》,预计主导加密货币领域的最佳人工智能项目包括Token Metrics、Bittensor和Fetch.ai。这些项目通过创新的解决方案推动加密货币行业发展,但也存在投资风险。Token Metrics和Bittensor是领先的人工智能加密货币项目,提供全面的分析平台和数据API,并将于2024年采用Web3,支持去中心化并为

    每日资讯 2024-05-19 11:01 517
  • 潜在的Solana游戏龙头NyanHeroes
    潜在的Solana游戏龙头NyanHeroes

    Nyan Heroes是一款第三人称FPS射击游戏,使用虚幻5引擎,由Mechanism Capital领投。游戏代币$NYAN将用于奖励活跃玩家、交易稀有物品和皮肤,团队也可以从玩家身上赚钱。游戏团队来自知名游戏制作团队,Nyan将是游戏生态的核心。玩家可以通过市场交易获得收入,团队也可以从活跃玩家身上赚钱。Nyan有机会吸引更多的Web2玩家进来,估值可能在300M-500M之间。.....

    每日资讯 2024-05-19 11:00 517