首页>>资讯>>产业

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

2025-02-11 13:50:30 11

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

1.png

简而言之


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”)按照这个顺序处理输入。


比特币强制提款交易(专门为BOB新增)

将以太坊存入BOB的OptimismPortal合约(OP堆栈标准)

来自op-batcher(OP堆栈标准)的以太坊批次


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


比特币强制提款交易


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


在Bitcoin上构建强制提款交易。

将比特币强制提款交易存储在比特币的大小限制之内。

处理比特币强制提款交易的燃气成本。


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的状态:


从比特币中读取所有提款交易。 这些被编码为每笔提款的两笔交易,即一笔提交交易和一笔揭示交易。 这是我们对OP Stack的增加和我们增强派生管道的地方。

在以太坊上阅读所有发送到BOB的OptimismPortal合约的交易。这已经是标准的OP Stack推导流程的一部分。

直接在BOB上进行的所有交易都作为以太坊批次的一部分进行集成。重要的是,完整节点不直接从定序器读取已确认交易,而是从以太坊块中读取。这已经成为标准的OP堆栈推导管道的一部分。

1.png

技术挑战


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


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


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


下一步


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

声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!