比特币用户应该只需要在比特币上拥有BTC,就能强制将他们的BTC从BOB退回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博文中分享我们正在进行的工作。
简而言之
L2的核心属性之一是,即使在序列器离线. L2s通过从可以独立于L2在线更新的数据可用性(DA)层读取和写入其状态来实现这一点。这样,即使序列化程序离线,或者序列化程序不直接接受其事务,用户也可以强制包含其事务。
对于BOB的BitVM桥,这带来了一个有趣的问题。BOB目前使用以太坊EIP-4844块作为其DA层。以太坊上的用户可以通过BitVM桥轻松触发返回比特币的提款。然而,这需要用户在以太坊上拥有ETH。
这对我们来说还不够好:比特币用户只需要在比特币上拥有BTC,就可以强制从BOB取回他们的BTC,回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博客文章中分享我们的进展。
过程衍生对于L2来说非常重要:BOB的整个L2状态需要从L1和DA层构建。它使L2能够享受与DA层相同的抗审查能力,在我们的案例中是以太坊。
简化在 Rollups(特别是 OP Stack 链)中,我们在 L1 上有两种类型的数据:
如果我们想要比特币作为一个分布式账本层,为什么不完全转而使用比特币作为一个完整的分布式账本层呢?答案大多成本. 比特币可用存储空间非常少(大约每10分钟约为4MB),因此,存储成本很高。
然而,在我们的情况下,BOB 仍然可以将以太坊作为其“主要” DA 层,在其中发布其所有交易数据,但如果以太坊 DA 不可用,则添加比特币作为高度审查抗拒的备用层。基本上,以太坊成为乐观的 DA 层,而比特币成为昂贵但容错性强的最后一道防线。
基本解决方案是将比特币作为导出管道的一部分添加到BOB中,以便BOB(尤其是“op-node”)按照这个顺序处理输入。
让我们来探讨一种可能的解决方案,将比特币强制提款交易编码到BOB派生管道中。请注意,这仍在研究阶段,可能会有变化。
我们需要三个部分来创建强制提现交易:
一个OP堆栈存款交易具有以下结构:
强制提款交易需要在存款交易的数据字段中包含编码的提款交易。这是通过在 BOB 上创建触发从 BOB 到比特币的提款的交易来完成的,其工作方式与从以太坊发送交易完全相同。
我们可以将包含上述所有数据的强制提款交易的(压缩)版本存储在比特币上。
由于强制提取交易的数据超过了通常存储在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
两阶段提交/揭示方案:
与序数一样,用户将需要向比特币提交两笔交易:
这是迄今为止最开放的问题,目前有两个选项正在考虑中:
我们还在尝试更多的想法,敬请期待更多的更新!
任何人只需检查比特币和以太坊上的数据,就可以确定BOB的状态:
数据一致性:确保以太坊和比特币区块链之间的数据一致性很重要,但仅仅在两个链上都存在交易数据并不能保证其有效性。交易必须符合 Rollup 的状态转换函数,才能被认为是合法的有效状态转换。该解决方案需要在 op-node(或其他共识层实现)内实施验证逻辑,首先验证交易是否导致有效的状态变更,然后再接受该交易。
欺诈证明和有效性:对于BitVM和以太坊的欺诈证明系统需要加强,以处理来自两个链的数据,这可能使争议解决更加复杂。为了解决这个问题,我们需要准确地记录比特币和以太坊的可能交易作为BitVM桥和BOB在以太坊上的结算的一部分。
存储增加:此外,网络中的BOB节点面临着增加的存储和带宽需求,因为它们需要处理和存储来自比特币和以太坊的数据。然而,我们可以通过要求在比特币上进行的BOB交易需要包含在带有对最新比特币区块的引用的以太坊blob中来缓解这个问题。这样一来,节点只需要同步最近的比特币区块即可。
我们很高兴能够推动混合卷叠的前沿,将比特币的安全性与以太坊的创新相结合。在这个具体问题中,我们感兴趣的是将比特币对交易的抗审查性与BOB的汇总堆栈相结合。随着我们的进展,我们将更新这篇博文,提供更多信息。
比特币用户应该只需要在比特币上拥有BTC,就能强制将他们的BTC从BOB退回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博文中分享我们正在进行的工作。
简而言之
L2的核心属性之一是,即使在序列器离线. L2s通过从可以独立于L2在线更新的数据可用性(DA)层读取和写入其状态来实现这一点。这样,即使序列化程序离线,或者序列化程序不直接接受其事务,用户也可以强制包含其事务。
对于BOB的BitVM桥,这带来了一个有趣的问题。BOB目前使用以太坊EIP-4844块作为其DA层。以太坊上的用户可以通过BitVM桥轻松触发返回比特币的提款。然而,这需要用户在以太坊上拥有ETH。
这对我们来说还不够好:比特币用户只需要在比特币上拥有BTC,就可以强制从BOB取回他们的BTC,回到比特币。我们正在研究一种混合解决方案:默认使用以太坊作为DA,同时允许用户通过比特币上的特殊交易强制包含BOB上的交易。我们很高兴在这篇博客文章中分享我们的进展。
过程衍生对于L2来说非常重要:BOB的整个L2状态需要从L1和DA层构建。它使L2能够享受与DA层相同的抗审查能力,在我们的案例中是以太坊。
简化在 Rollups(特别是 OP Stack 链)中,我们在 L1 上有两种类型的数据:
如果我们想要比特币作为一个分布式账本层,为什么不完全转而使用比特币作为一个完整的分布式账本层呢?答案大多成本. 比特币可用存储空间非常少(大约每10分钟约为4MB),因此,存储成本很高。
然而,在我们的情况下,BOB 仍然可以将以太坊作为其“主要” DA 层,在其中发布其所有交易数据,但如果以太坊 DA 不可用,则添加比特币作为高度审查抗拒的备用层。基本上,以太坊成为乐观的 DA 层,而比特币成为昂贵但容错性强的最后一道防线。
基本解决方案是将比特币作为导出管道的一部分添加到BOB中,以便BOB(尤其是“op-node”)按照这个顺序处理输入。
让我们来探讨一种可能的解决方案,将比特币强制提款交易编码到BOB派生管道中。请注意,这仍在研究阶段,可能会有变化。
我们需要三个部分来创建强制提现交易:
一个OP堆栈存款交易具有以下结构:
强制提款交易需要在存款交易的数据字段中包含编码的提款交易。这是通过在 BOB 上创建触发从 BOB 到比特币的提款的交易来完成的,其工作方式与从以太坊发送交易完全相同。
我们可以将包含上述所有数据的强制提款交易的(压缩)版本存储在比特币上。
由于强制提取交易的数据超过了通常存储在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
两阶段提交/揭示方案:
与序数一样,用户将需要向比特币提交两笔交易:
这是迄今为止最开放的问题,目前有两个选项正在考虑中:
我们还在尝试更多的想法,敬请期待更多的更新!
任何人只需检查比特币和以太坊上的数据,就可以确定BOB的状态:
数据一致性:确保以太坊和比特币区块链之间的数据一致性很重要,但仅仅在两个链上都存在交易数据并不能保证其有效性。交易必须符合 Rollup 的状态转换函数,才能被认为是合法的有效状态转换。该解决方案需要在 op-node(或其他共识层实现)内实施验证逻辑,首先验证交易是否导致有效的状态变更,然后再接受该交易。
欺诈证明和有效性:对于BitVM和以太坊的欺诈证明系统需要加强,以处理来自两个链的数据,这可能使争议解决更加复杂。为了解决这个问题,我们需要准确地记录比特币和以太坊的可能交易作为BitVM桥和BOB在以太坊上的结算的一部分。
存储增加:此外,网络中的BOB节点面临着增加的存储和带宽需求,因为它们需要处理和存储来自比特币和以太坊的数据。然而,我们可以通过要求在比特币上进行的BOB交易需要包含在带有对最新比特币区块的引用的以太坊blob中来缓解这个问题。这样一来,节点只需要同步最近的比特币区块即可。
我们很高兴能够推动混合卷叠的前沿,将比特币的安全性与以太坊的创新相结合。在这个具体问题中,我们感兴趣的是将比特币对交易的抗审查性与BOB的汇总堆栈相结合。随着我们的进展,我们将更新这篇博文,提供更多信息。