Rollup Bridge 介绍(三):Celer cBridge

CelercBridge是一个跨链资产转移方案,cBridge同时支持了L1与L2、以及L1与L1之间的资产桥接。我们可以从cBridge的WebApp上看见他们已经支持了许多知名的L1与L2项目。

cBridge支持的链种

本篇文章会侧重在cBridge背后的技术实现,包含运作原理、合约实践以及节点运维的介绍。

运作原理

cBridge主要使用了HTLCs技术来实现跨链的资产转移,对于HTLCs不熟的读者,可以先参考这篇文章了解其原理以及应用场景:https://bcoin.io/guides/swaps.html?

运作流程

cBridge在其合约GitHub的文件里描述了cBridge的运作流程,以下为节选部分:

发送方在源链上发起transferOut交易cBridge节点通过使用发送方设定的hashlock,在目的地链上发起transferIn交易发送方在源链上确认交易cBridge节点在目的地链上确认交易为了帮助理解,我将步骤画成如下的流程图:

cBridge运作流程图

以下会针对四个关键步骤依序进行细节说明:

第一步:?发送方发起transferOut交易

整个cBridge跨链的资产转移流程会由源链的发送方发起。发送方会负责产生hashlock,设定转帐的时限,并与转帐的信息一同向部署在源链的cBridge合约发起transferout请求。

Celestia宣布旗下模块化rollup框架产品Rollkit已独立运营:金色财经报道,据Celestia官方博客介绍,Celestia旗下模块化rollup框架产品Rollkit(曾称作Rollmint)已独立运营,成为由社区主导的公共项目。据介绍,Rollkit提供了一个模块化节点,用于在数据可用性层之上运行rollup。同时它公开了一个兼容ABCI的客户端接口,可以用作任何兼容ABCI的区块链应用程序的Tendermint的替代品。

通过使用Rollkit的模块化框架,开发者可以定制rollup并插入任意数据可用性和执行层。目前,在Celestia的Mocha测试网上可使用Rollkit构建。[2023/2/22 12:21:14]

合约接收到请求后会先将要转帐的token数量,从发送方身上移转到合约身上,唯有提供hashlock的解答,或是转帐时限到期后,才能将token取出。

第二步:?cBridge节点发起transferIn交易

在链下的cBridge节点会持续监控各个链上cBridge合约的动作,当它发现源链上有一笔新的transferout请求,它会在链上取得这笔transferout的细节,主动对部署在目的地链上的cBridge合约发起transferin请求。

其中收款方为transferout指定的收款人地址,并使用与transferout相同的hashlock,以及较短的取款时限,并将transferout指定的token数量扣掉cBridge节点转发的成本和手续费后,从cBridge节点身上转移至目的地链上的cBridge合约。

Boba Network公布2022年至2023年工程路线图,包括推出veBoba、OR&ZK混合Rollup架构等:8月30日消息,L2扩容方案Boba Network宣布2022年至2023年工程路线图。在2022年,计划实施veTokenomics,推出veBoba,允许代币的持有者将能够“投票托管”锁定代笔,通过DAO投票实现去中心化管理;推出BobaL2Rollup客户端Anchorage,通过将Bedrock构建到Erigon来促进Rollup客户的多样性,并扩展额外的L1;通过混合计算增强更复杂的数据结构和数据类型。2023年,将通过引入验证证明并增强开发人员和用户体验,对OptimisticRollup架构进行改革;增加用于1层和延迟代码升级的Escape Hatches;实施Rollup Account Abstraction,通过单一账户类型(合约账户)衍生出其他账户类型;开发Optimistic Rollup和ZK Rollup混合Rollup架构;将资源投入到EVM事务??的并行执行。[2022/8/30 12:57:02]

此时cBridge节点并不知道hashlock的答案,要等到发送方在第三步完成源链上transferout的拨款,并揭露hashlock的答案后,cBridge节点才有能力执行目的地链上transferin的拨款。

第三步:发送方确认交易

Layer 2跨rollup桥Orbiter Finance新增支持dYdX:金色财经消息,Layer 2跨rollup桥Orbiter Finance宣布新增支持dYdX,用户可使用Orbiter Finance将以太坊主网以及Arbitrum上的USDC跨链至dYdX。[2022/4/11 14:18:25]

发送方确认cBridge节点有在目的地链上提交相应的transferin请求后,就可以进入源链上transferout的拨款阶段。发送方首先要对源链的cBridge合约提交transferout的hashlock答案,合约验证答案无误后,会将transferout指定的token数量转移给cBridge节点,完成源链上transferout的拨款。

第四步:cBridge节点确认交易

在链下的cBridge节点监控到发送方已经在源链上完成transferout拨款后,随即拿著发送方拨款时揭露的hashlock答案,到目的地链上的cBridge合约提交hashlock答案,完成transferin的拨款,此时目的地链的收款人就会收到来自源链发送方的款项,完成跨链的资产转移。

细节步骤虽然看起来有点繁琐,但对于cBridgeApp的用户来说只要进行两次签名操作,并等待一些时间,过程中完全不需要切换钱包的网络,使用起来的体验是非常简单顺畅的。

V神发文:使用calldata扩展和分片扩展Rollups的分步路线图:11月26日消息,V神发布了关于“使用calldata扩展和分片扩展Rollups的分步路线图”。在此文中,V神表示L1上的交易费用一直非常高,因此采取任何必要措施来帮助促进整个生态系统向Rollups的转变变得更加紧迫。Rollup已经显着降低了许多以太坊用户的费用:l2fees.info显示Optimism和Arbitrum提供的费用比以太坊基础层本身低约3-8倍,然而,即使是这些费用对许多用户来说也太贵了。V神提出了4步,第一步:txcalldata扩展,第二步:一些分片,第三步:N个分片并且受委员会保护,第四步:数据可用性抽样。但是这留下了一个问题:如果以太坊核心协议不存储这些数据,谁来存储?V神提出了几个可能:个人和机构;区块浏览器;RollupDAO,客户端;门户网络;像TheGraph一样的协议。其中一些解决方案(个人和机构志愿者、区块浏览器)已经可用。[2021/11/26 7:11:58]

退款机制

不管是transferout或是transferin都会设定一个有效时限,当有任何一方没有履行义务时,在设定的时限之后,双方都有能力可以直接要求cBridge合约退回事先放进去用来转帐的token,不需要提供hashlock的答案。退款机制能够保护双方的资产,不会因为对手方不作为而导致资产被永久锁在cBridge合约上。

V神:使用zk rollups可以最有效的减少gas费用:V神在推特表示,在ETH和ERC20 代币转帐中使用zk rollups可以最有效的减少gas费用。[2020/8/4]

另外值得注意的是,目的地链的transferin会比源链的transferout更早过期,有可能cBridge节点已经对transferin进行退款,使用者才对transferout进行确认拨款,此时也会对使用者造成损失。

目前cBridgeWebApp设定的transferout过期时限为12小时,其对应的transferin约为12*2/3=8小时,时间相对充足,一般正常的转帐只需要数分钟,如果过程中有出现非预期的状况,还可以有足够的反应时间处理。

简单的操作体验背后的成本

眼尖的读者可能已经发现,cBridge运作步骤中的第三与第四步,与典型的HTLCs不同。典型的HTLCs是发送方先到目的地链揭露hashlock的解答,确认收款人能够收到拨款,cBridge节点才能到源链取回它在目的地链预先垫付给收款人的款项。

Celer官方说明这是为了提升使用者体验,如果走典型的HTLCs流程,使用者在确认transferout拨款的步骤中,必须要切换钱包的网络至目的地链,还需要事先在目的地链上的钱包里准备足够的gastoken来支付拨款所需的交易手续费,对使用者来说非常不方便。

因此cBridge调整了最后两个步骤的顺序,让使用者只需要在源链进行操作,来大幅提升使用者的体验。但这样的调整并非没有成本,它会为使用者带来额外的风险。

试想一个情境:当使用者在源链上完成transferout拨款,cBridge节点收到使用者的款项后,却没有在目的地链上将transferin拨款给收款人,等到目的地链上的transferin过期,cBridge节点甚至有能力对transferin进行退款的操作,cBridge节点有机会可以无偿得到使用者转帐的token。

这部分必须仰赖使用者自己采取行动去降低风险,当使用者发现在transferin有效区间内等了足够久的时间,收款人都还没有收到款项,使用者必须要自己主动到目的地链提供hashlock答案,完成transferin拨款的动作,以防止资产被恶意取走。

安全分析

总结以上,我们针对发送方和cBridge节点在cBridge四个操作步骤中可能产生的安全问题,进行分析与整理:

如果发送方执行了第一步但cBridge节点没有往下执行,此时发送方的资产会单方面地被扣押在源链的cBridge合约中,必须要等待12小时之后,才能进行退款。如果cBridge节点执行了第二步但发送方没有往下执行,此时发送方和cBridge节点的资产分别会被扣押在源链和目的地链的cBridge合约中,必须等到转帐过期后,才能各自进行退款。值得注意的是,cBridge节点在目的地链上的transferin有更短的过期时间,能够比发送方更早完成退款。如果发送方执行了第三步但cBridge节点没有往下执行,此时发送方已将资产转给cBridge节点,但目的地链上的收款人还没有收到对应的款项。如果这个状态一直持续到目的地链上的transferin过期后,cBridge节点甚至有能力进行退款取回transferin的资金,而造成发送方单方面的损失。这个状况会给发送方带来安全疑虑,发送方需要在transferin过期前,自行到目的地链上完成transferin的拨款。正常cBridge的转帐流程能在十分钟以内完成,如果发送方拨款给cBridge节点后,收款人却迟迟没有收到款项,这时候就需要提高警觉了。如果cBridge节点执行完第四步但交易一直没有成功,此时发送方仍然有资金损失的风险。因此建议发送方在完成拨款之后,要随时留意转帐的状态与经过的时间,以保护自己的资金安全。合约实践

cBridge合约实践很简单,提供了transferOut、transferIn、确认以及退款的功能,不多不少,都是cBridge运作流程中的核心动作,而且这些方法都是公开可以让任何人去使用的。因此当节点在转帐过程中出现问题时,使用者能够直接对合约进行操作,保护自己的资产。

cBridge合约方法界面

特别要注意的是合约方法transferOut的第一个参数address_bridge。这个参数要填入能够服务这次跨链转帐需求的cBridge节点地址,换句话说,使用者在进行跨链转帐之前,必须先决定好要找哪个cBridge节点来服务。

Celer官方提供了一个网关服务,负责cBridge节点的路由,使用者只要将转帐的信息丢给该服务,它会选出符合使用者转帐需求,且当下状态最好的cBridge节点,使用者就能在进行transferOut时填入Celer网关推荐的cBridge节点。

由于Celer官方并未提供网关的相关信息,有技术背景的读者可以试着去操作cBridgeWebApp,了解其背后的实践细节。

此外,合约里也有一些大家可以去关注的重要事件:

LogNewTransferOut事件:transferOut完成时会发出的事件,会纪录这笔transferout的transferId。LogNewTransferIn事件:transferIn完成时会发出的事件,会纪录这笔transferin的transferId以及其对应的transferout的transferId。在cBridge合约上不管是要进行确认或是退款,都需要提供transferId,因此transferId在cBridge的应用中是至关重要的信息。除此之外,透过这两个事件的观察,能够帮助我们将跨链的transferout与transferin关联起来,有利于持续追踪转帐的状态,并在意外发生时有应对的能力。

cBridge合约事件界面

节点运维

Celer官方开源了cBridge节点的实践,任何人虽然都可以跑起自己的节点,但cBridge现阶段有白名单机制,想担任cBridge节点来服务使用者必须要先跟官方接洽。

担任节点的好处在于可以从每一笔跨链转帐中赚取一定比例的手续费,但也要考量到运维节点的成本,Celer官方很贴心地在cBridge节点GitHub文件里详细列出了运维节点需要注意的事项,包含机器建议配备,支持的币种和最少需要提供的流动性,各条链的建议配置,运维节点的最佳操作等等,节点甚至还有内建统计数据的API,让运维者能够随时监控节点的交易状况。

从GitHub文件的详细程度以及考量了运维节点的各个面向,可以感受到Celer官方对社群的用心。对于运维cBridge节点有兴趣的读者,建议一定要好好将GitHub文件过一遍。

结语

以上是对于cBridge背后技术实现的介绍,如果有任何想法想要分享,或是想要了解更多,都可以在留言区一起讨论??

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

BNB关于上线XELS及其交易的公告

尊敬的EXX用户:? ????您好!根据市场的情况及用户的建议,EXX现已开放XELS的充提业务,并预计于香港时间2021年2月26日15:30开放XELS/USDT交易市场,用户可提前充值准备.

币安下载XT关于即将上线EWC的公告

尊敬的XT用户: XT即将上线EWC(ErugoWorldCoin),并在创新区(元宇宙)开放EWC/USDT,EWC/BTC交易对。具体开通时间,请关注后续公告。“ErugoWorldCoin旨在连接现实世界和Metabus.

MEXC关于中秋寻锦鲤微博抽奖活动公告

尊敬的用户: 喜迎一年一度的中秋佳节到来,PandeFe熊猫特推出“中秋寻锦鲤微博抽奖活动”,用户只需关注PandaFe熊猫官方微博@PandaFe社区,并转发微博即可参与抽奖.

[0:0ms0-2:142ms