混合数据可用性: 在BOB上执行BitVM提取

进阶2/10/2025, 12:39:52 PM
BOB正在创建一个混合解决方案,让用户可以通过比特币交易提取资产,而不依赖以太坊。它使用以太坊来实现数据可用性,使用比特币来实现抗审查。用户将提取数据存储在比特币的Taproot输出中,并使用两阶段提交/揭示过程完成交易。

比特币用户应该只需要在比特币上拥有BTC,就能强制将他们的BTC从BOB退回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博文中分享我们正在进行的工作。

简而言之

  • L2应具有与其基于的L1相同的防审查能力
  • 在BOB上,用户可以通过以太坊交易将其资产从BOB强制提取到以太坊
  • 对于其BitVM桥接,BOB正在努力将比特币整合到BOB上,以使用户能够强制在BOB上进行交易
  • 比特币用户将能够从BOB提取他们的BTC,而无需向BOB发送交易

L2的核心属性之一是,即使在序列器离线. L2s通过从可以独立于L2在线更新的数据可用性(DA)层读取和写入其状态来实现这一点。这样,即使序列化程序离线,或者序列化程序不直接接受其事务,用户也可以强制包含其事务。

对于BOB的BitVM桥,这带来了一个有趣的问题。BOB目前使用以太坊EIP-4844块作为其DA层。以太坊上的用户可以通过BitVM桥轻松触发返回比特币的提款。然而,这需要用户在以太坊上拥有ETH。

这对我们来说还不够好:比特币用户只需要在比特币上拥有BTC,就可以强制从BOB取回他们的BTC,回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博客文章中分享我们的进展。

关于DA和派生的背景

过程衍生对于L2来说非常重要:BOB的整个L2状态需要从L1和DA层构建。它使L2能够享受与DA层相同的抗审查能力,在我们的案例中是以太坊。

简化在 Rollups(特别是 OP Stack 链)中,我们在 L1 上有两种类型的数据:

  • 存款交易对“OptimismPortal”合约进行的修改。这些是用户在以太坊上通常用来将其资产存入BOB的交易。这些存款交易也可以用来在BOB上执行其他交易。
  • 从L2交易中由序列器(或更准确地说是op-batcher)提交的批次。这些批次包括用户在BOB上直接进行的所有交易,并最终包含在以太坊blob中。

比特币作为DA层

如果我们想要比特币作为一个分布式账本层,为什么不完全转而使用比特币作为一个完整的分布式账本层呢?答案大多成本. 比特币可用存储空间非常少(大约每10分钟约为4MB),因此,存储成本很高。

然而,在我们的情况下,BOB 仍然可以将以太坊作为其“主要” DA 层,在其中发布其所有交易数据,但如果以太坊 DA 不可用,则添加比特币作为高度审查抗拒的备用层。基本上,以太坊成为乐观的 DA 层,而比特币成为昂贵但容错性强的最后一道防线。

混合衍生管道

基本解决方案是将比特币作为导出管道的一部分添加到BOB中,以便BOB(尤其是“op-node”)按照这个顺序处理输入。

  1. 比特币强制提款交易(专门为BOB新增)
  2. 将以太坊存入BOB的OptimismPortal合约(OP堆栈标准)
  3. 来自op-batcher(OP堆栈标准)的以太坊批次

让我们来探讨一种可能的解决方案,将比特币强制提款交易编码到BOB派生管道中。请注意,这仍在研究阶段,可能会有变化。

比特币强制提款交易

我们需要三个部分来创建强制提现交易:

  1. 在Bitcoin上构建强制提款交易。
  2. 将比特币强制提款交易存储在比特币的大小限制之内。
  3. 处理比特币强制提款交易的燃气成本。

1. 构建强制提现交易

一个OP堆栈存款交易具有以下结构:

  • bytes32 sourceHash:源哈希,唯一标识存款来源。
  • 来自地址:发送方账户的地址。
  • 地址:接收方帐户的地址,或者如果存款交易是合同创建,则为null(零长度)地址。
  • mint uint256:在L2上铸造的ETH价值。
  • uint256 value: 发送给接收方账户的ETH价值。
  • uint64 gas: L2 交易的 gas 限制。
  • isSystemTx 布尔值:如果为true,则该交易不与L2区块的gas池交互。
  • 字节数据: The calldata.

强制提款交易需要在存款交易的数据字段中包含编码的提款交易。这是通过在 BOB 上创建触发从 BOB 到比特币的提款的交易来完成的,其工作方式与从以太坊发送交易完全相同。

我们可以将包含上述所有数据的强制提款交易的(压缩)版本存储在比特币上。

2. 在比特币上存储强制提款交易

由于强制提取交易的数据超过了通常存储在OP_RETURN输出中的数据量,我们可能会使用一个Taproot输出以存储数据。

在以太坊上很容易识别存款交易(可能包括取款),因为它被发送到BOB的OptimismPortal合约,但在比特币上很难识别强制取款交易。

数据序列化:强制提款事务使用“信封”结构中的Taproot脚本进行序列化。这些在比特币网络上是无操作的,也用于序数等。我们根据我们的需求调整结构。

未设置
OP_FALSE OP_IF
OP_PUSH“bob”
OP_1
OP_PUSH“transaction”
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
两阶段提交/揭示方案:
与序数一样,用户将需要向比特币提交两笔交易:

  • 提交交易:创建一个Taproot输出,承诺包含铭文内容的脚本。此交易尚未揭示数据,我们需要第二笔交易,以便BOB全节点和序列器包括提取交易。
  • 揭示交易:从提交交易中支出输出,揭示链上的铭文,即揭示用户的取款交易以纳入BOB。

3. 处理强制提现交易的燃气费用

这是迄今为止最开放的问题,目前有两个选项正在考虑中:

  • 在Bitcoin上将gas设置为0以强制提取交易,并从用户的BOB ETH余额中扣除gas费用。这样,只有在BOB上拥有ETH的用户才能强制提取。然而,这不是一个好的选择,因为它要求用户在BOB上拥有ETH才能强制提取,即在Bitcoin上拥有BTC的用户无法强制提取。
  • 在比特币上,用户需要用BTC支付燃气费。BOB网络需要在比特币上拥有一个可以接收BTC的地址,并有效地将用户收到的BTC在BOB上兑换成ETH,以支付燃气费的L1部分和执行成本。这个选项可能是通过使用BOB 网关并将BOB DAO的EVM地址设置为BTC接收方。

我们还在尝试更多的想法,敬请期待更多的更新!

将所有东西放在一起

任何人只需检查比特币和以太坊上的数据,就可以确定BOB的状态:

  1. 从比特币中读取所有提款交易。 这些被编码为每笔提款的两笔交易,即一笔提交交易和一笔揭示交易。 这是我们对OP Stack的增加和我们增强派生管道的地方。
  2. 在以太坊上阅读所有发送到BOB的OptimismPortal合约的交易。这已经是标准的OP Stack推导流程的一部分。
  3. 直接在BOB上进行的所有交易都作为以太坊批次的一部分进行集成。重要的是,完整节点不直接从定序器读取已确认交易,而是从以太坊块中读取。这已经成为标准的OP堆栈推导管道的一部分。

技术挑战

数据一致性:确保以太坊和比特币区块链之间的数据一致性很重要,但仅仅在两个链上都存在交易数据并不能保证其有效性。交易必须符合 Rollup 的状态转换函数,才能被认为是合法的有效状态转换。该解决方案需要在 op-node(或其他共识层实现)内实施验证逻辑,首先验证交易是否导致有效的状态变更,然后再接受该交易。

欺诈证明和有效性:对于BitVM和以太坊的欺诈证明系统需要加强,以处理来自两个链的数据,这可能使争议解决更加复杂。为了解决这个问题,我们需要准确地记录比特币和以太坊的可能交易作为BitVM桥和BOB在以太坊上的结算的一部分。

存储增加:此外,网络中的BOB节点面临着增加的存储和带宽需求,因为它们需要处理和存储来自比特币和以太坊的数据。然而,我们可以通过要求在比特币上进行的BOB交易需要包含在带有对最新比特币区块的引用的以太坊blob中来缓解这个问题。这样一来,节点只需要同步最近的比特币区块即可。

下一步

我们很高兴能够推动混合卷叠的前沿,将比特币的安全性与以太坊的创新相结合。在这个具体问题中,我们感兴趣的是将比特币对交易的抗审查性与BOB的汇总堆栈相结合。随着我们的进展,我们将更新这篇博文,提供更多信息。

免责声明:

  1. 这篇文章是从[鲍勃]. 所有版权归原作者所有[Dominik Harz].如果对本次转载有异议,请联系Gate 学习团队会及时处理。
  2. 责任免责声明:本文所表达的观点和意见仅代表作者本人,不构成投资建议。
  3. Gate Learn团队将文章翻译成其他语言。未经允许,禁止复制、分发或剽窃翻译后的文章。
* 投资有风险,入市须谨慎。本文不作为 Gate.io 提供的投资理财建议或其他任何类型的建议。
* 在未提及 Gate.io 的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io 有权追究其法律责任。

混合数据可用性: 在BOB上执行BitVM提取

进阶2/10/2025, 12:39:52 PM
BOB正在创建一个混合解决方案,让用户可以通过比特币交易提取资产,而不依赖以太坊。它使用以太坊来实现数据可用性,使用比特币来实现抗审查。用户将提取数据存储在比特币的Taproot输出中,并使用两阶段提交/揭示过程完成交易。

比特币用户应该只需要在比特币上拥有BTC,就能强制将他们的BTC从BOB退回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博文中分享我们正在进行的工作。

简而言之

  • L2应具有与其基于的L1相同的防审查能力
  • 在BOB上,用户可以通过以太坊交易将其资产从BOB强制提取到以太坊
  • 对于其BitVM桥接,BOB正在努力将比特币整合到BOB上,以使用户能够强制在BOB上进行交易
  • 比特币用户将能够从BOB提取他们的BTC,而无需向BOB发送交易

L2的核心属性之一是,即使在序列器离线. L2s通过从可以独立于L2在线更新的数据可用性(DA)层读取和写入其状态来实现这一点。这样,即使序列化程序离线,或者序列化程序不直接接受其事务,用户也可以强制包含其事务。

对于BOB的BitVM桥,这带来了一个有趣的问题。BOB目前使用以太坊EIP-4844块作为其DA层。以太坊上的用户可以通过BitVM桥轻松触发返回比特币的提款。然而,这需要用户在以太坊上拥有ETH。

这对我们来说还不够好:比特币用户只需要在比特币上拥有BTC,就可以强制从BOB取回他们的BTC,回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博客文章中分享我们的进展。

关于DA和派生的背景

过程衍生对于L2来说非常重要:BOB的整个L2状态需要从L1和DA层构建。它使L2能够享受与DA层相同的抗审查能力,在我们的案例中是以太坊。

简化在 Rollups(特别是 OP Stack 链)中,我们在 L1 上有两种类型的数据:

  • 存款交易对“OptimismPortal”合约进行的修改。这些是用户在以太坊上通常用来将其资产存入BOB的交易。这些存款交易也可以用来在BOB上执行其他交易。
  • 从L2交易中由序列器(或更准确地说是op-batcher)提交的批次。这些批次包括用户在BOB上直接进行的所有交易,并最终包含在以太坊blob中。

比特币作为DA层

如果我们想要比特币作为一个分布式账本层,为什么不完全转而使用比特币作为一个完整的分布式账本层呢?答案大多成本. 比特币可用存储空间非常少(大约每10分钟约为4MB),因此,存储成本很高。

然而,在我们的情况下,BOB 仍然可以将以太坊作为其“主要” DA 层,在其中发布其所有交易数据,但如果以太坊 DA 不可用,则添加比特币作为高度审查抗拒的备用层。基本上,以太坊成为乐观的 DA 层,而比特币成为昂贵但容错性强的最后一道防线。

混合衍生管道

基本解决方案是将比特币作为导出管道的一部分添加到BOB中,以便BOB(尤其是“op-node”)按照这个顺序处理输入。

  1. 比特币强制提款交易(专门为BOB新增)
  2. 将以太坊存入BOB的OptimismPortal合约(OP堆栈标准)
  3. 来自op-batcher(OP堆栈标准)的以太坊批次

让我们来探讨一种可能的解决方案,将比特币强制提款交易编码到BOB派生管道中。请注意,这仍在研究阶段,可能会有变化。

比特币强制提款交易

我们需要三个部分来创建强制提现交易:

  1. 在Bitcoin上构建强制提款交易。
  2. 将比特币强制提款交易存储在比特币的大小限制之内。
  3. 处理比特币强制提款交易的燃气成本。

1. 构建强制提现交易

一个OP堆栈存款交易具有以下结构:

  • bytes32 sourceHash:源哈希,唯一标识存款来源。
  • 来自地址:发送方账户的地址。
  • 地址:接收方帐户的地址,或者如果存款交易是合同创建,则为null(零长度)地址。
  • mint uint256:在L2上铸造的ETH价值。
  • uint256 value: 发送给接收方账户的ETH价值。
  • uint64 gas: L2 交易的 gas 限制。
  • isSystemTx 布尔值:如果为true,则该交易不与L2区块的gas池交互。
  • 字节数据: The calldata.

强制提款交易需要在存款交易的数据字段中包含编码的提款交易。这是通过在 BOB 上创建触发从 BOB 到比特币的提款的交易来完成的,其工作方式与从以太坊发送交易完全相同。

我们可以将包含上述所有数据的强制提款交易的(压缩)版本存储在比特币上。

2. 在比特币上存储强制提款交易

由于强制提取交易的数据超过了通常存储在OP_RETURN输出中的数据量,我们可能会使用一个Taproot输出以存储数据。

在以太坊上很容易识别存款交易(可能包括取款),因为它被发送到BOB的OptimismPortal合约,但在比特币上很难识别强制取款交易。

数据序列化:强制提款事务使用“信封”结构中的Taproot脚本进行序列化。这些在比特币网络上是无操作的,也用于序数等。我们根据我们的需求调整结构。

未设置
OP_FALSE OP_IF
OP_PUSH“bob”
OP_1
OP_PUSH“transaction”
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
两阶段提交/揭示方案:
与序数一样,用户将需要向比特币提交两笔交易:

  • 提交交易:创建一个Taproot输出,承诺包含铭文内容的脚本。此交易尚未揭示数据,我们需要第二笔交易,以便BOB全节点和序列器包括提取交易。
  • 揭示交易:从提交交易中支出输出,揭示链上的铭文,即揭示用户的取款交易以纳入BOB。

3. 处理强制提现交易的燃气费用

这是迄今为止最开放的问题,目前有两个选项正在考虑中:

  • 在Bitcoin上将gas设置为0以强制提取交易,并从用户的BOB ETH余额中扣除gas费用。这样,只有在BOB上拥有ETH的用户才能强制提取。然而,这不是一个好的选择,因为它要求用户在BOB上拥有ETH才能强制提取,即在Bitcoin上拥有BTC的用户无法强制提取。
  • 在比特币上,用户需要用BTC支付燃气费。BOB网络需要在比特币上拥有一个可以接收BTC的地址,并有效地将用户收到的BTC在BOB上兑换成ETH,以支付燃气费的L1部分和执行成本。这个选项可能是通过使用BOB 网关并将BOB DAO的EVM地址设置为BTC接收方。

我们还在尝试更多的想法,敬请期待更多的更新!

将所有东西放在一起

任何人只需检查比特币和以太坊上的数据,就可以确定BOB的状态:

  1. 从比特币中读取所有提款交易。 这些被编码为每笔提款的两笔交易,即一笔提交交易和一笔揭示交易。 这是我们对OP Stack的增加和我们增强派生管道的地方。
  2. 在以太坊上阅读所有发送到BOB的OptimismPortal合约的交易。这已经是标准的OP Stack推导流程的一部分。
  3. 直接在BOB上进行的所有交易都作为以太坊批次的一部分进行集成。重要的是,完整节点不直接从定序器读取已确认交易,而是从以太坊块中读取。这已经成为标准的OP堆栈推导管道的一部分。

技术挑战

数据一致性:确保以太坊和比特币区块链之间的数据一致性很重要,但仅仅在两个链上都存在交易数据并不能保证其有效性。交易必须符合 Rollup 的状态转换函数,才能被认为是合法的有效状态转换。该解决方案需要在 op-node(或其他共识层实现)内实施验证逻辑,首先验证交易是否导致有效的状态变更,然后再接受该交易。

欺诈证明和有效性:对于BitVM和以太坊的欺诈证明系统需要加强,以处理来自两个链的数据,这可能使争议解决更加复杂。为了解决这个问题,我们需要准确地记录比特币和以太坊的可能交易作为BitVM桥和BOB在以太坊上的结算的一部分。

存储增加:此外,网络中的BOB节点面临着增加的存储和带宽需求,因为它们需要处理和存储来自比特币和以太坊的数据。然而,我们可以通过要求在比特币上进行的BOB交易需要包含在带有对最新比特币区块的引用的以太坊blob中来缓解这个问题。这样一来,节点只需要同步最近的比特币区块即可。

下一步

我们很高兴能够推动混合卷叠的前沿,将比特币的安全性与以太坊的创新相结合。在这个具体问题中,我们感兴趣的是将比特币对交易的抗审查性与BOB的汇总堆栈相结合。随着我们的进展,我们将更新这篇博文,提供更多信息。

免责声明:

  1. 这篇文章是从[鲍勃]. 所有版权归原作者所有[Dominik Harz].如果对本次转载有异议,请联系Gate 学习团队会及时处理。
  2. 责任免责声明:本文所表达的观点和意见仅代表作者本人,不构成投资建议。
  3. Gate Learn团队将文章翻译成其他语言。未经允许,禁止复制、分发或剽窃翻译后的文章。
* 投资有风险,入市须谨慎。本文不作为 Gate.io 提供的投资理财建议或其他任何类型的建议。
* 在未提及 Gate.io 的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io 有权追究其法律责任。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!