BitVM桥详解:比特币Rollup如何实现双向锚定
文章深入解释了比特币rollup技术及其与BitVM结合的桥设计。首先介绍了rollup的核心组件:排序器、证明器和全节点,以及它们如何协作将交易汇总并在比特币主链上提交状态差异和证明。随后详细描述了BitVM桥的存款和取款流程,强调用户只需一位诚实操作员即可取款,并通过挑战机制防止欺诈。文章还讨论了中心化排序器的风险、操作员取款的依赖性以及未来去中心化的方向。最后,作者认为rollup将增加比特币的区块需求,改善长期安全模型,但离完全去信任的两向锚定还有距离。
bitcoin++ 是一个国际比特币开发者会议系列。"Insider Edition" 是我们的新闻编辑室,报道 bitcoin++ 宇宙及其周边正在发生和贯穿其中的事件。
BitVM 桥
stutxo 像是对比特币最大主义者一样解释 rollup
在很久以前,大约 2014 年,Blockstream 最初的愿景(BSV?)是通过多个侧链来扩展比特币,这些侧链通过一个双向锚定连接,让比特币可以在链之间来回移动。在实践中,构建这样的桥,同时让用户无需信任第三方就能退出侧链,结果比预期的要困难得多。

另一种说法是,像以太坊和 Zcash 这样的替代币仅仅是科学实验,测试那些最终会回归比特币的想法。这个预言很大程度上未能实现。
直到 2023 年,区块链唯一其他用例——在 JPEG 和代币上赌博——以铭文和符文的形式回到了比特币。这些协议在过去几年中构成了比特币交易的大部分,而更传统的货币用途尚未能持续出价高于它们来获得区块空间。
这很重要,因为区块空间需求是比特币的长期安全模型。ETH 最大主义者长期以来担心比特币的安全预算,以及当区块补贴在 114 年后结束时矿工的激励会怎样。尽管他们对自己链未来三个月会发生什么一无所知,但这是一个值得我们认真考虑的批评。
比特币的区块已满,但矿工费却很低。到 2036 年(还有 3 次减半),仅区块补贴将是 0.390625 BTC(按今天的价格计算,每年 17 亿美元似乎有点轻,不足以保障全球经济)。补贴是否足以保障比特币仍是一个悬而未决的问题,尤其是如果它继续被视为仅仅是“数字黄金”,链上活动可能太低,无法支付我们辛勤工作的矿工。
幸运的是,有理由乐观地认为矿工激励不会成为问题:以 rollup 形式出现的新区块空间需求,这是 Blockstream 功能性双向锚定承诺的真正继承者。
Rollups
自 2020 年以来,以太坊项目一直在致力于一个路线图,该路线图将 rollup 作为其链的主要扩展解决方案。与此同时,比特币开发者一直专注于基于通道的扩展(闪电网络)、侧链(Liquid、Rootstock)和中心化托管解决方案(eCash、比特币银行)。最近,共同签名协议(Ark/Statechains)重新兴起,它们允许比通道更集中的流动性,且托管方面的权衡更少。
大多数比特币用户,包括我自己,缺乏对 rollup 的清晰理解,很大程度上是因为长期以来 rollup 被认为在比特币上是不可能的。BitVM 的发明改变了这一现状,是时候开始关注了。
Rollups 与 BitVM 结合是扩展比特币的一种提议,有它们自己的权衡。让我们看看它们是如何工作的,以及这些权衡是什么。在比特币上构建的标准很高。这些 rollup 设计是否符合这些标准?
什么使得某物成为 L2?
非常简单:
即使 L2 是恶意的,无论是通过假死、试图盗窃还是任何其他不当行为,每个用户都可以将自己的资金取回 Layer 1。
目前哪些项目满足这个要求?
一个 BitVM rollup 是否满足这两个要求?
不完全满足……但别绝望!已经很接近了!在 BitVM rollup 中,你至少需要 1 个桥运营商按规则行事,你才能提取资金。(如果排序器允许的话,稍后会详细说明。)
Rollups,在比特币上
Rollup 是一种区块链,它在链下执行交易,并将状态转换的证明提交给底层区块链进行验证。Rollup 将状态差异(或链下上一组交易中所做更改的摘要)提交到 L1。将状态差异发布到 L1 允许任何人通过按顺序从创世块应用每个批次的状态差异来重建 rollup 的状态。
我们逐一介绍创建 rollup 所需的组件,然后继续介绍 BitVM(图灵完备的脚本虚拟机)如何适配。有不同的方法和设计(Citrea、Alpen),但这里我们给出一个总体概述。
Rollup 有几个组件:排序器、证明者、全节点和 DA(数据可用性层)。在我们的案例中,比特币区块链是数据可用性层。
排序器
每个 rollup 的核心是排序器。排序器接收 rollup 交易,并将它们组装成区块,决定顺序和包含。
你可以把它想象成一个拥有私有 mempool 的单个矿工。
排序器设定 rollup 上的区块生成速度。区块的创建速度由 rollup 设计决定,并且是可配置的。在实践中,通常是几秒钟(Citrea 有 2 秒的区块时间)。
比特币生成新区块很慢,且区块空间稀缺,因此排序器不会将每个区块都发布到比特币 L1,而是将区块“汇总”起来一起提交。这个批次还包括状态差异和一小段称为证明的数据,证明该区块遵循了 rollup 的规则。
有些 rollup 在证明准备好之前就将数据发布到链上,以预先承诺结果(Citrea 承诺交易)。其他的则发布一个检查点,既包含对 rollup 区块的承诺,也包含这些区块有效的证明(Citrea 证明交易)。这为 rollup 提供了一组 rollup 区块的 L1 锚点。
Rollup 批次大小是可配置的。它可以在一定数量的区块后触发,或者如果整体状态差异达到一定大小,则可以更早触发。
在这些设计中,rollup 区块由排序器签名,全节点/证明者验证这些签名。只有状态差异/证明进入比特币;rollup 全节点仍然从排序器或其他 rollup 节点对等体获取 rollup 区块。然而,完全可以使用发布在比特币上的状态差异来同步 rollup 全节点。
证明主要用于轻客户端和桥运营商,以验证 rollup 交易是否包含在 rollup 区块中并最终确定到比特币上。
证明者
在比特币网络中,一旦区块被挖掘并发送到全节点,节点会验证该区块是否遵循所有比特币规则。节点执行区块中每笔交易的每个脚本,沿途检查签名和金额。这相对快速且容易。
在 rollup 链上,全节点做同样的工作。然而,为了达成全局一致的状态,使轻客户端和桥运营商能够快速验证交易,证明者需要将区块执行的证明发布到链上。任何人都可以创建证明,但这需要专门的软件和大量的计算,可能需要时间。因此,大多数系统使用专用服务(“证明者”)来生成证明。
为了创建证明,证明者从排序器获取 rollup 承诺以及承诺范围内的区块,重新执行它们,并生成一个可以发布到比特币区块链的证明,通常是通过类似铭文的信封。一旦证明发布到 L1 并被 6 个或更多区块充分确认,rollup 节点就会接受此状态转换为最终状态。比特币交易达到 6 次确认才被视为最终;Rollup 证明被发布到 L1,该批次中的交易才被视为最终。
Citrea 和 Alpen 中使用的证明是 ZK 证明,但我们这里不深入讨论。你只需要将证明视为桥/轻客户端验证 rollup 状态的一种方式,而无需在 rollup 节点上重放所有内容。全节点仍然自己重新执行区块。
全节点
所以,事实证明,精通以太坊实际上是一本关于比特币的书。Alpen 和 Citrea 都使用以太坊虚拟机(EVM)作为其 rollup 的执行环境。

Rollup 上的费用使用已桥接到 rollup 链的比特币支付。它类似于 WBTC(包装比特币)。由于 rollup 使用以太坊虚拟机,费用以“gas”支付,但使用的是桥接的包装比特币,而非以太币。
用户和钱包通常通过全节点的 RPC 接口向排序器发送交易。全节点从排序器轮询新区块,像以太坊节点一样验证它们,并更新本地状态。区块时间由排序器决定。
由于所有状态差异都与证明一起提交到比特币,全节点也可以完全从比特币 L1 同步:它们遍历 L1 区块数据,找到所有 rollup 发布的状态差异,并按顺序从 rollup 创世块开始逐一应用。最终结果应与当前 rollup 状态匹配。无需依赖排序器。
在证明发布并确认到 L1 之前,区块仅由排序器软确认。它们在本地被接受,但在证明获得大约 6 个区块之前,状态不被视为最终状态。
许多运行在 rollup 上的应用程序可以直接使用排序器的区块数据。例如,如果你的合约是一个游戏,那么你可能可以单独信任排序器,这使得应用程序非常快速。然而,如果你在去中心化交易所合约上进行大额交易,那么你可能希望等到该区块被包含在比特币区块链上的证明中。

风险因素
中心化排序器的普遍存在是 rollup 用户最大的安全风险之一。在以太坊世界中,数十亿美元信任类似的中心化设置;我为他们感到高兴。但比特币用户要同意类似的风险模型,会让人震惊。所以我认为他们不会同意。
也许我有偏见。毕竟,我正在开发 char.network,它本质上是一个基于比特币的 rollup 的去中心化排序器。而且,大多数 rollup 明确表示,过渡到去中心化排序器是其路线图的一部分。
一些项目,例如 Starknet,已经在使用去中心化排序器架构。对于 Starknet 来说,这意味着 3 个节点由 3 个运营商运行,他们的名字似乎都以 Stark 开头,以 Net 结尾。
这也会影响桥的操作(我们接下来会讨论)。排序器总是可以拒绝包含启动你的桥提款的交易。如果该交易从未进入 rollup 区块,就没有办法将你的比特币取回主链。
以太坊 rollup 试图通过“ 强制交易”(一种绕过排序器但仍被包含的方法)来缓解这个问题。强制交易仍是一个开放的研究问题,比特币 rollup 项目正在努力解决。
另一点是,任何有特权运行中心化排序器的人,都会从交易费和 MEV 中赚取大量金钱。你可以说他们有动机诚实行事,但他们仍然可以轻易审查交易和桥接的比特币提款请求。
用户在这种 rollup 架构下承担的最后一个风险是将状态差异和证明数据提交到 L1 的费用。谁知道几年后区块空间费用市场会是什么样子?将这些证明提交到比特币链可能会极其昂贵。Rollups 支付高费用对比特币本身是好事,但如果 rollup 没有被广泛使用,那么支付高费用来提交数据就没有经济意义,用户将面临高昂的费用才能取出资金。
排序器、证明者、rollup 全节点和 EVM 解释了 rollup 是如何架构的,但到 L1 的“双向”锚定是如何工作的?我们如何在两个系统之间来回移动比特币?
桥
目前大多数比特币桥(Liquid、WBTC 等)都依赖于联盟多签,你需要达到一定数量的签名者才能提取你的比特币。我们称之为单向锚定,因为你可以将比特币发送到合约中,但需要足够多的多签签名者帮助才能将资金取出。
BitVM 风格的桥也是单向锚定,但所需参与者数量不同:你只需要一个活跃的运营商遵守规则就能提取你的比特币。理论上可以有 100 个运营商,所以你看,这变得有趣了——只要这些运营商中有一个按规则行事并且保持在线,你就能将比特币取回主链。也许我们可以称之为 1.5 向锚定。
你还依赖一个挑战者,如果运营商试图作弊,他可以介入并证明欺诈。
在 BitVM 桥中,有运营商、签名者和挑战者*。
-
签名者负责在设置期间“锁定”桥规则。签名者通过预签名唯一有效的花费路径,然后删除其密钥,来创建一个模拟的限制性条款。只要至少有一个签名者诚实并删除了密钥,就没有人可以在以后创建替代的提款路径并将资金发送到任何地方。
-
运营商在 rollup 操作期间执行日常工作:他们监视 rollup,预先垫付提款,然后从桥中申请偿付。
-
挑战者通过监视发布到 L1 的证明并挑战虚假声明来保证运营商诚实。
*Citrea 使用了瞭望塔的概念,这是一组有权限的挑战者。我们这里不深入讨论。
为简单起见,我将假设桥签名者和运营商是同一组实体,尽管从概念上讲它们是不同的角色。如果比特币有某种限制性条款操作码(顺便提一下,CTV),签名者角色就可以完全移除。Citrea 的桥确实采用了略有不同的安全模型,允许升级签名者。
运营商创建和管理 BitVM 实例。他们在链下运行一个 SNARK 证明者,并使用预先签名的比特币交易(加上一个挑战窗口)来强制执行围绕证明者输出的欺诈证明游戏。
存入,或锚定进入
对于每笔新存款,都会创建一个新的 BitVM 实例。一笔存款预计在 0.5 到 100 BTC 之间。普通用户最可能通过原子交换/流动性提供者进入/退出(类似于今天使用 Liquid/闪电网络的方式),而高级用户会从桥中存入和提取大量比特币。
首先,用户将比特币存入一个暂存地址。该地址允许桥运营商将比特币扫入桥中。如果用户不发起桥存款,则可以在时间锁结束后提取资金。
桥运营商通过创建一笔 L1 交易将比特币存入桥中,该交易将其存款资金锁定到 L1 比特币链上的一个 BitVM 桥合约或 UTXO 中。该 UTXO 的关键特性是,在设置期间被预先锁定到一个特定的交易流程中,前提是至少有一个签名者诚实地履行了其角色(如前所述)。换句话说,除非 100% 的签名者作弊,否则 BTC 只能沿着预定义的桥规则移动,如果运营商被怀疑违反规则,交易可以被挑战。
一旦存款交易在比特币上确认,用户或运营商即可调用一个模拟比特币轻客户端的 rollup 智能合约,验证存款是否包含在比特币区块中,并向用户的 rollup 地址铸造包装 BTC。
提款,或锚定退出
只要有一个运营商在活跃,并且至少有一方愿意在必要时挑战欺诈,提款就很简单。
以下是用户从 rollup 将比特币提取回比特币 L1 的步骤。
-
在 rollup 上销毁 - 用户在 rollup 上销毁其包装 BTC(使其在 rollup 上不可花费)。
-
运营商预先垫付比特币提款 - 用户使用 ANYONECANPAY 风格的 sighash 创建一个不完整的比特币提款交易,以便运营商可以附加自己的 BTC 输入。运营商竞相垫付 BTC 并发布完整的提款交易(他们这样做是为了赚取费用)。一个运营商获胜,用户在比特币上收到他们的 BTC。
-
运营商向桥申请偿付 - 这是 BitVM 游戏开始的地方。
一旦运营商垫付了提款,它会广播一个索赔交易,从桥存款中向自己支付同等金额。这开启了一个挑战期。
- 运营商创建 BTC 债券作为抵押品 - 根据实现方式,这可以在索赔过程中完成,或者在 BitVM 实例创建时完成。该债券可以被罚没。
-
任何人(包括其他运营商、用户或任何在观察的第三方)都可以验证运营商是否正确处理了提款,是否发生了 rollup 销毁,以及相应的比特币提款是否真实。
-
如果在窗口期(1-2周)内无人挑战,提款最终确认,运营商获得偿付。
-
如果提款金额小于最初桥接的金额,则剩余的比特币会回到桥中。(运营商需要为该金额创建一个新的 BitVM 实例。)
-
如果有人挑战且运营商被证明有误,则其债券会被罚没:一部分发送到不可花费的输出(通过 op_return 有效地销毁),剩余部分作为赏金支付给发布/完成反驳交易的人(通常是挑战者)。
BitVM 游戏
与 EVM rollup 链不同,比特币区块链无法直接验证证明。这就是 BitVM 发挥作用的地方。
运营商运行一个证明程序(类似于比特币轻客户端),他们向其中传递以下输入:
-
一个已知的比特币区块哈希
-
提款交易广播后的一个比特币区块哈希
-
用于预先垫付支出的 L1 提款交易
-
已经提交到比特币的 rollup 证明,证明包装的比特币已在 rollup 上被销毁
程序的输出是一个证明,可用于验证运营商的提款是否包含在指定的区块哈希之间,并在比特币 L1 上支付给用户。
然后,运营商在比特币上发布一个索赔声明及此证明。
-
如果在窗口期内无人挑战,运营商最终确认并获得偿付
-
如果受到挑战,运营商必须承诺更多细节(断言交易),挑战者可以强制协议在链上检查部分验证逻辑(反驳交易);如果验证失败,则运营商说谎,其债券被罚没(损失其抵押的比特币)。
使用 BitVM2,发布到链上的交易非常大。断言交易为 2 MB,反驳交易为 4 MB(接近一个完整区块)。然而,最近的发现使用了混淆电路和秘密条件性披露(参见 Delbrag、Garbled Locks、BitVM3、BABE 和 Argo),应该将这些交易减少到总共仅 80 KB 的数据。

接下来是什么?
Rollups 与 BitVM 结合使我们能够创建非常接近 Blockstream 多年前设想的双向锚定的东西。仍然存在一些权衡之处(中心化排序器、运营商协助的提款),使它们并非比特币扩展的完美解决方案,但新的发现和突破不断涌现。
Citrea 本周推出了他们的 BitVM2 rollup。Alpen 正在开发 BitVM3 实现,其他几个团队正在构建 BitVM 桥。
即使只有少数几个这样的 rollup 存在并流行起来,它们对区块空间的需求也将极大地增强比特币在可预见的未来的安全模型。
针对我们之前提到的风险,正在开发缓解方案。包括 Char Network 在内的几个团队明确专注于消除对排序器的信任假设,这可能是将“有趣的实验”与真正的比特币 L2 区分开的最后一步。
我们越接近无需信任的双向锚定,就越接近拥有隐私且可扩展的数字现金。这是朝着这一目标迈出的令人兴奋的一步。EVM rollup 只是一个例子。一旦我们有了无需信任的桥,可能性将无穷无尽。例如,ZKcoins 是一个非常具有前景的私密客户端侧扩展解决方案,它需要一个像 BitVM 那样的桥。
无论如何,我希望这有助于解释这些 rollup 是什么以及 BitVM 如何融入其中。
最后,让我们激活 drivechains。
下个月在弗洛里亚诺波利斯举行的比特币++ Exploits 版本活动中,亲自见到 stu,他将谈论“构建通往朝鲜的桥梁”或者链桥在历史上是如何被利用的。使用代码 INSIDER 购票可享 10% 折扣!
感谢 Niftynei、SuperTestnet、Otaliptus、Ponzini、ecurrencyhodler、Liran、Janusz 和 Jeremy Rubin 阅读本文草稿,以及 Paul Sportz 提供结尾句。
- 原文链接: insider.btcpp.dev/p/the-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~