为了找到 Cake Wallet 的最佳解决方案,以便为用户提供用户友好且非托管的闪电网络,我深入研究了 Spark 和 Ark。两者都是比特币第二层网络的全新方案,其核心设计旨在与更广泛的比特币网络互操作,通过闪电网络进行支付。虽然两者都“仅”可用于闪电支付,但在未来数月乃至数年内,这两个网络都将迅速扩展,其用途将远不止于此。
需要记住的一点是,虽然 Spark 和 Ark 从表面上看非常相似,但在实践和实施上它们是截然不同的。
为什么我们需要新的第二层?
比特币本质上是一个令人难以置信的自由工具,但由于区块大小的限制,我们知道世界上大多数人永远无法在链上进行交易。闪电网络的出现,让一笔链上交易能够支持几乎无限的链下交易,从而扩展了比特币底层的实用性,让更多人能够进行交易。
虽然闪电网络为比特币支付的扩展提供了一种颇具前景的方法,但最终人们逐渐意识到,它的最佳角色是作为互操作层,而不是最终用户自行运行的工具。链上需求、流动性管理、活性要求以及其他核心障碍,使得用户友好型、自主托管的闪电网络几乎不可能实现。这一点显而易见,因为大多数闪电网络钱包和用例都出于简化用户体验和降低实施难度的需要,选择使用托管或联合模型。
Spark 和 Ark 为比特币领域带来的最大好处是,为普通开发者提供了一种更简单、更轻松的方式向用户提供闪电网络,同时允许在闪电支付之外大大扩展功能。
方舟,简化版
历史
方舟 (Ark) 的概念由闪电网络的倡导者和开发者布拉克 (Burak) 于 2023 年 5 月提出。其背后的驱动力是,人们意识到现有的闪电网络由于入站流动性需求等诸多因素,无法有效地作为普通用户的入门工具,而且隐私性也常常不足。虽然布拉克发明了该协议本身,但两家公司——方舟实验室 (Ark Labs) 和 Second——已介入,将方舟协议构建为比特币的端到端第二层网络。
虽然两家公司都围绕相同的开源 Ark 协议进行开发,但它们的实现方式和目标却大相径庭。因此,我将尽可能地在下面对两者进行概括。
术语
Ark: Ark 是一种协议,利用用户和 Ark 运营商之间的多重签名和预签名交易,将比特币交易转移到链下。比特币上的所有操作,Ark 都能做到,而且速度更快,费用更低。
Ark 运营商:运行中心化 Ark 服务器基础设施的实体,负责在到期前为用户的 VTXO 提供流动性。
闪电网关:为 Ark 用户提供使用 Ark VTXO 进行无需信任的原子交换来发送或接收闪电支付的实体。此功能可以由与 Ark 运营者相同的实体提供,但通常为了分散交易对手风险而单独提供。
虚拟交易输出:也称为“VTXO”,其本质与链上 UTXO 非常相似,但它们是虚拟的,因为它们在链上不以唯一的 UTXO 形式存在,而是完全存在于链下。用户在 Ark 内发送和接收 VTXO。
轮次:为了获得真正的最终结果和/或刷新 VTXO,Ark 用户需要加入轮次,与其他 Ark 用户和 Ark 运营商合作以获取新的 VTXO 并支付费用。
进行交易
Ark 的功能与链上比特币交易非常相似,并继承了许多相同的特性,同时允许交易近乎即时完成,并最大限度地减少 Ark 参与者之间的信任。发送者与 Ark 运营商合作,将 VTXO 签名给接收者,或者在 Ark Labs 的情况下,为接收者创建一个新的链式 VTXO。这使得用户体验在很多方面都类似于链上支付,但费用更低,交易时间更快。当用户想要发送或接收闪电支付时,他们可以使用闪电网关根据需要自动将 VTXO 转换为闪电支付。目前,Ark 无法离线接收闪电支付,但这个问题很可能会在 Ark 中以类似于 Spark 的信任最小化方式得到解决。
如果用户希望获得最终确定性(例如,他们收到了大额付款),他们可以选择加入一轮交易来最终确定付款,并获得与链上比特币相同的最终确定性假设。此轮交易的频率将根据方舟运营商而有所不同——估计从每10分钟到每小时不等——并且需要所有希望加入此轮交易的用户与方舟运营商之间进行一个相对较长的协调签名过程。轮次频率甚至可以根据需求进行调整,并且不像比特币的区块时间那样必须固定为一个频率。
由于 Ark 直接从链上比特币继承了比特币脚本和 UTXO 模型,Ark 未来可能会扩展以支持 Taproot Assets 等代币协议。
信任权衡
Ark 的目标是以一种信任最小化的方式实现比特币的扩容,在可用性方面,以及在闪电网络和 Spark 之间的权衡取舍方面,找到了一种折衷方案。需要注意的是,Ark 协议正在快速发展,其中一些权衡取舍有望通过使用新颖的链下方法,或在比特币中引入契约机制后得到解决。
缺乏轮次终结性
Spark 缺乏可证明的最终性,而 Ark 则在某种程度上找到了折中方案。对于小额支付,用户可以信赖 Ark 运营者和之前的付款人不会串通一气,从而实现即时转账,无需多轮协作签名。需要注意的是,默认情况下,Ark 中的付款将是“非循环”付款,缺乏真正的最终性,这种权衡使得 Ark 能够提供良好的开箱即用用户体验。
话虽如此,真正需要或想要真正确定性的用户可以通过加入一轮并从 Ark Operator 接收新的 VTXO 来实现。接收者基本上可以控制他们偏好的信任模型。
VTXO 到期
由于运行方舟实例需要流动性,方舟运营者需要一种定期回收流动性的方法。为了实现这种流动性回收,方舟 VTXO 将定期到期(即 30 天后,VTXO 到期时间由每个方舟运营者设置),要求其所有者要么加入一轮以刷新 VTXO,要么冒着将其资金控制权完全交给方舟运营者的风险。虽然方舟运营者有强烈的动机在 VTXO 重新上线时仅向已到期 VTXO 的所有者发放新的 VTXO,但方舟运营者和用户都有权使用资金,直到新的 VTXO 发放给用户。
为避免资金过期,用户需要在该时间段内直接刷新其 VTXO,或将刷新工作委托给委托人。或者,可以通过 Boltz 等机构将即将过期的 VTXO 原子交换为生命周期更长的 VTXO,并收取一定费用,但目前该方案尚未实现。
复杂的圆形用户体验
如果您曾经在比特币上使用过 Coinjoin,您就会知道与其他比特币用户协作签署交易是多么繁琐且不可靠。在 Ark 中,那些寻求 VTXO 真正最终确定性的人需要在整个签名过程中保持在线,直到签名过程完成,这在很大程度上取决于其他参与者是否能够正确完成签名过程。虽然对于在始终在线的服务器上运行的钱包来说,实现这一点相当简单,但在移动平台上可靠地执行却相当复杂,尤其是在 iOS 上,因为任何应用程序都无法保证后台执行(因此无法在正确的时间在线进行签名)。
鉴于这种复杂的用户体验,Ark Labs 设计了一个系统,利用委托的第三方以信任最小化的方式为用户执行刷新,将活跃度要求转移给第三方。虽然第三方无法窃取资金,但如果他们因任何原因离线或拒绝刷新某个 VTXO,用户将被迫在到期前自行加入下一轮。为了降低这种风险,用户可以指定多个委托人,将到期的信任假设改为 1/N 假设,只要任何委托人诚实,他们的 VTXO 就会被正确刷新。
Second 也有一个类似设计的系统,为用户提供无信任、非交互式的轮次,允许任意数量的参与方在一轮期间为用户签名(即钱包提供商和第三方代表),如果其中任何一方正确签名,则用户的 VTXO 将被正确刷新。
请注意,虽然这两种解决方案可以刷新即将到期的 VTXO,但如果用户不主动参与,它们就无法为用户提供真正的最终性。
最后,值得一提的是,如果在比特币升级过程中部署一个简单的契约,那么整个过程的绝大多数复杂性都可以完全减轻,这将为 Ark 带来极大改善的用户体验。
隐私权衡
从本质上讲,Ark 继承了比特币糟糕的隐私性,并且作为协议本身并没有提供任何显著的隐私改进。话虽如此,Ark 能够将执行任务转移到链下,并扩展比特币的功能,这使得未来可以在其基础上构建现有和新型的隐私协议,并通过契约完全解锁 Ark 内部的隐私轮次等功能。
短期内,Ark Labs 计划使用类似 WabiSabi 的盲凭证来提高用户参与回合时操作员的隐私。
交易可见性
虽然 Ark 中的所有交易无需在链上发布,从而提供了一定的短暂性,但所有交易细节对 Ark 运营者而言都是可见的,因此不应被视为真正意义上的隐私。相反,将 Ark 提供的短暂隐私视为类似于 VPN 模型(将交易的可见性从比特币区块链转移到可信的第三方)是一种有用的思维模型。
目前尚不清楚 Ark Labs 和 Second 是否会将交易数据保密或公开发布,但与 VPN 一样,用户不应完全依赖不记录隐私的承诺。
了解更多
- 官方文档(Ark Labs):https://docs.arkadeos.com/
- 官方文档(第二版):https://docs.second.tech/
- 来自 Second 的精彩 Ark 解释视频:https://www.youtube.com/watch?v=WvwmLv0SgAc
- “方舟和火车的类比”:https://pakovm.substack.com/p/ark-and-the-train-analogy-a-guide
Spark,简化
历史
Spark 网络由 Lightspark 的团队于今年早些时候推出,Lightspark 是一家与比特币相关的公司,有着一段有趣的历史。从UMA (一个为银行合作伙伴提供原生集成合规功能的用户名系统)到与失败的 Libra 货币的联系,他们在构建工具方面有着一段奇怪的经历,这些工具与比特币更具密码朋克风格的根基并不相符。但是,当我抛开他们奇怪的经历,纯粹关注 Spark 协议本身时,我发现它总体上是一个相当实用、实用且强大的工具。
Spark 的核心吸收了状态链的许多有用特性,状态链是 Ruben Somsen 于 2018 年创建的一种新颖的比特币第二层方法。Spark 特别用“叶子”的概念扩展了状态链,允许用户在交易中发送任意金额,而不是只能使用整个 UTXO 进行交易,这是状态链迄今为止最大的问题之一。
术语
Spark 实体:运行给定 Spark 实例(例如 Lightspark)的实体,由一组 Spark 运算符组成。由于 Spark 是一个开源协议,任何人都可以启动自己的 Spark 实体,但每个 Spark 实体都控制着哪些 Spark 运算符可以加入。
Spark 运营商:每个 Spark 实体由一个或多个 Spark 运营商组成,每个运营商负责验证和签署 Spark 实例内用户的操作,包括资金和代币的转移、新代币的发行ETC。这些运营商可以与 Spark 实体是同一个实体,也可以(希望)在关系和管辖权上与 Spark 实体不同。目前,Spark 的两个运营商是 Lightspark 本身和 Flashnet,但预计不久的将来会添加更多运营商。
Spark 服务提供商:向 Spark 用户提供各种服务的实体,包括使用原子交换代表用户无信任地发送和接收闪电支付。
Spark 叶子节点: Spark 通过引入叶子节点解决了状态链中全币转移的需求问题。叶子节点可以理解为类似于比特币中的 UTXO,因为它们可以自由地拆分成任何大小。
进行交易
Spark 的核心功能是允许用户通过 Spark 运营商以信任最小化的方式将单个叶子的所有权转移给他人,从而轻松地在 Spark 网络中近乎即时地转移比特币。无需区块链、确认或发送方和接收方之间的活跃性,支付过程简单快捷。当用户想要在闪电网络上付款时,他们只需原子地将钱包中的一片或多片叶子与 Spark 服务提供商交换,然后由后者以无需信任的方式代表用户支付,并收取一定费用。
要转移 Spark 叶子节点,发送者需要共同签署该叶子节点的所有权,将其从自己 + Spark 运营者转移到新的所有者 + Spark 运营者。这样做的目的是,如果任何 Spark 运营者或之前的所有者诚实地删除了他们在共同签署操作中使用的密钥共享,那么该叶子节点将完全归接收者所有,从而避免双重支付。由于此操作仅需要 Spark 运营者和发送者之间的协作,而无需其他 Spark 用户参与,因此这些签名轮次非常快速,并且能够抵御 DoS 攻击。
Spark 还包含类似的 1-of-N 信任模型,用于离线接收闪电网络支付,这比标准闪电网络钱包的使用体验有了显著提升。这一点在移动钱包上使用 Spark 时尤为重要,因为移动平台无法保证后台执行或全天候完美网络访问。
除了常规支付之外,Spark 还扩展了其理念,加入了原生代币支持,核心重点在于支持USDT和USDC等稳定币在 Spark 网络内无缝发行和转移。代币转移本身与 Spark 上的标准交易共享类似的信任模型,并保留了单方面链上退出的能力。
最后,Spark 用户可以随时通过在链上发布预先签名的退出交易,单方面退出链上。虽然退出成本会因叶节点深度和链上费率等变量而差异很大,导致退出金额较小,但退出交易是确保在发生恶意攻击或 Spark 实体不可用时资金能够被取回的关键工具。
信任权衡
Spark 做出了一系列务实的权衡,弥补了闪电网络和比特币目前使用中存在的问题。话虽如此,Spark 与链上比特币或闪电网络的使用相比,还是存在一些重大差异。在谈论 Spark(以及大多数其他二层网络)时,我更倾向于使用“信任最小化”一词,因为只有比特币在链上的自主托管才能真正被视为“无需信任”。
缺乏真正的终结性
Spark 中自我主权的核心风险在于缺乏真正的最终性,用户永远无法确定他们的资金是否会因为 Spark 运营者与之前的支出者合谋而被双花。在 Spark 中,最终性(即知道你的资金只能通过你的密钥转移)存在——但无法证明——前提是任何单个 Spark 运营者在签署 Spark 交易后删除其密钥共享。另一方面,如果所有 Spark 运营者都心怀恶意,拒绝删除其密钥共享,并与你拥有的某个叶子节点的先前发送者合谋,他们就可以对该叶子节点进行双花,从而有效地窃取资金。
虽然在实践中我认为这种 1-of-N 信任假设是合理的,但它显然与常规的链上比特币信任假设相差甚远,因为后者默认具有真正的最终确定性。同样值得注意的是,由于 Spark 交易的匿名性,之前的发送者可能与 Spark 实体是同一个实体。
潜在的中心化代币控制
虽然代币转移本身与常规 Spark 支付一样,遵循 1-of-N 信任假设,但如果发行方决定启用此功能,代币本身可能会随时被冻结。虽然这与许多中心化控制的稳定币(例如USDT ,它们经常出于法律原因冻结和没收Tether )类似,但需要特别指出的是,许多受监管的稳定币(例如USDC和USDT)很可能也会启用此功能。
1-of-N 离线闪电网络接收安全性
虽然离线闪电网络接收不像标准闪电网络支付那样信任最小化,但资金盗窃需要所有 Spark 运营商合谋窃取一笔闪电网络支付,由于闪电网络支付规模较小,并且一旦被发现从用户那里窃取资金将带来巨大的声誉风险,因此这种做法并不积极,但由于闪电网络本身具有支付证明功能,因此很容易检测到这种情况。
隐私权衡
Spark 本身不应被视为隐私工具,因为它继承了比特币底层的核心隐私问题,并且在隐私方面最初的设计选择也很糟糕。话虽如此,Spark 的核心技术可以扩展,通过引入所有交易的盲签名、代币转移的保密金额以及其他在比特币生态系统中通常无法实现的隐私技术,实现极佳的隐私保护。
交易可见性
虽然 Spark 内部的交易不会像链上交易那样一直发布到区块链上,但所有 Spark 运营商都能完全查看交易。理论上,如果 Spark 运营商采用非日志记录策略,这可以提供短暂性,但实际上,所有交易数据目前都由 Spark 运营商之一 Flashnet 发布到浏览器。这意味着外部观察者可以轻松查找 Spark 地址,查看所有交易详情、代币余额,甚至可以通过时间和金额分析将闪电网络支付与地址关联起来。
请注意,Spark 正在努力为钱包开发人员增加选择退出此数据发布的功能,方法是将交易标记为私有,然后回退到与之前为 Ark 描述的相同的 VPN 式信任模型。如果钱包开发人员选择启用此功能(我希望他们都会这样做!),Spark 运营商将承诺不公开发布此交易数据,但当然,如果他们愿意,仍然可以将这些数据存储在本地。
缺乏地址轮换
目前,Spark 不支持在单笔交易中使用来自多个不同 Spark 地址的资金。虽然这个问题即将得到修复,并且已被公认为 Spark 的一个关键缺陷,但目前,这意味着大多数 Spark 实现将依赖一个单一的静态地址来处理所有交易,这使得 Spark 的隐私性目前甚至比链上比特币还要差。地址重用加上所有金额均可见,意味着攻击者可以轻而易举地对付款执行时间 + 金额启发式算法,以确定哪些闪电网络付款属于哪些 Spark 地址。
Spark地址泄露
Spark 当前隐私问题的三重奏在于,Spark 提供的核心 SDK(以及最常见的 Spark 实现——Satoshi 钱包)默认在 BOLT 11 闪电网络发票中包含用户的 Spark 地址,而这并非必要。这意味着,由于使用了静态地址,并且所有详细信息都已发布到浏览器(如上所述),任何人都可以轻松解码提供的 BOLT 11 发票,并在 Spark 中了解该用户的每笔交易。
请注意,这不是绝对必要的,钱包开发人员可以轻松禁用它,并且已经在使用 Spark 的 Breez Nodeless SDK 中删除,并且正在迅速获得采用,但仍然需要注意。
了解更多
- 官方文档:https://docs.spark.money/home/welcome
- 比特币第 2 层:状态链:https://bitcoinmagazine.com/technical/bitcoin-layer-2-statechains
结论
Spark 和 Ark 都为比特币的可用性和可扩展性带来了激动人心的新纪元,但正如所有事物一样,它们也各自存在着各自的优缺点。虽然两者都不是完美的解决方案,但令人兴奋的是,钱包开发者终于有了两个相互竞争且有趣的方案,可以解决闪电网络、原生代币以及其他功能在其钱包和软件中的实现问题,而无需像传统闪电网络那样复杂。Spark 和 Ark 都为比特币的扩展带来了务实的结果,代表了一条艰难但合理的道路,在信任最小化、用户体验和扩展性之间取得了平衡。
由于两者都是快速发展的协议,我们希望这两种解决方案所带来的权衡将在未来几个月和几年内得到迅速改进和最小化,从而提供更好的选择,让非托管比特币落到更多人手中,同时扩展我们可以在比特币之上构建的东西。
特别感谢 Spark、Ark Labs、Second、Breez、Spiral 和 Bitcoin QnA 的各位成员抽出时间为本文提供反馈!这些新系统的所有信任假设和权衡利弊需要团队共同努力才能解决,我非常感谢各位成员抽出宝贵的时间来提供帮助。
这是 Seth For Privacy 的客座文章,表达的观点完全是他们自己的,并不一定反映BTC Inc 或 Bitcoin Magazine 的观点。
这篇文章《Spark 和 Ark:看看我们最新的比特币第二层》最初出现在比特币杂志上,由 Seth For Privacy 撰写。



