区块链技术博客
www.b2bchain.cn

一文读懂Celer交互全新模式:跨链消息框架

第27697篇文章一文读懂Celer交互全新模式:跨链消息框架,说明解释了一文读懂Celer交互全新模式:跨链消息框架,是很好的区块链入门技术文章网站,提供了相应的代码的进行解释,并且把原理说的很清晰

来源:Celer Network 

Celer 跨链消息框架(Celer Inter-chain Message,以下简称 Celer IM)现已正式推出并上线测试网。

Celer IM 从根本上改变了多链 dApp 的开发和使用范式。开发人员现在可以通过 Celer IM 开发能够在多个链之间共享流动性和程序状态的 dApp。用户无需手动跨越和切换多个区块链进行复杂交互,就可以通过 Celer IM 一键享受多个区块链生态系统上的流动性和应用。 

Celer IM 让跨链可组合性成为可能,从而推出一系列的全新模式「原生跨链 dApp」。举例如下: 

· DEX 将能允许用户在一次交易中跨多条链交换资产

· 收益聚合器将能允许用户从一条链管理多链资产

· 借贷协议可以允许用户在一条链上提供抵押,在完全不同的链上借出资产

· DAO 治理协议允许统一的多链治理机制,而无需在不同链之间移动资产

· NFT 市场中,来自一条链的用户可以对在完全不同的链上的 NFT 拍卖进行出价

· 元宇宙游戏 ,用户可以在游戏中与各种链的虚拟物品进行无缝交互

· 新型跨链资产桥,实际上 cBridge 可以看作是建立在 Celer IM 上的资产桥梁

几乎每个部署在多链上的 dApp 都可以从使用 Celer IM 框架中受益。 

Celer IM 框架非常易于使用,允许 「即插即用」升级,不需要修改已部署的代码。例如,Uniswap 和 Sushiswap 只需一个简单的插件合约就可以转变为原生跨链 DEX。 

在此演示中,Sushiswap 的用户可以只需一个操作就把 Arbitrum 上的 ETH,兑换为 BSC 的 BNB。在整个 Celer IM 的系统中,自动并且去中心化地完成了下列步骤:

· 把 Arbitrum 上的 ETH 在 Sushiswap 中换成了 USDT 

· 将 USDT 从 Arbitrum 桥接到 BSC

· 在 BSC 上将桥接过去的 USDT 换成 BNB  

「多链原生 dApp」的全新模式   

目前普遍的开发多链 dApp 的做法是通过简单地完成复制多个链上相同的代码,这些 dApp 在不同链上的流动性、应用逻辑和状态是完全隔离的。事实上,除了 UI 和资产,这些 dApp 之间没有任何共享。 

这种方法通常存在流动性效率低、状态割裂和用户体验降级的问题。Celer IM 通过实现跨链合约调用和消息传递,能够让用户通过「一键操作」享受更高流动性效率和统一的应用逻辑,从而让这些基于 Celer IM 的 dApp 挖掘多链区块链世界的真正潜力。 

举一些例子。 

DEX

如今,多链 DEX 必须为部署在其上的每条链上的相同关键资产对建立流动性池。因此,DEX 必须为这些资产对在所有这些不同的链上建立流动性激励。尽管所有链上的总流动性可能相当高,但每条链上每个池的流动性深度实际上很分散。不幸的是,这会造成高滑点,从而影响整体交易体验。另外,如果用户想要交易一种在不同链上存在深度流动性的资产,他必须在原始链上对其进行手动兑换,使用单独的资金桥应用,然后切换到另一条链进行最后的交换。 

使用 Celer IM 构建的 DEX 只需一次交易即可自动将交易传递到深度流动性池,从而显着改善交易体验。通过这项创新,DEX项目能够将某一对 token 的流动性激励聚集在同一个池子里,从而以低滑点创造更深的流动性。 

借贷协议

今天,如果用户在一条链上的借贷协议中提供抵押品,他们只能借用同一条链上的资产。为了从不同的链中借出资产,他们必须提取流动性,手动将其移动到不同的链,然后在新链的抵押池中提供流动性。 

Celer IM 实现了一种新型的链间借贷,用户可以在一次交易中将他们的抵押品从一条链上的流动性池无缝转移到另一条链上的池中。然后,他们可以直接借入新链上的资产。有了这个功能,用户将拥有一个简单而干净的用户体验,让他们无需离开贷款应用程序就可以完成他们需要做的事情。

NFT 市场

如今,如果用户想要参与 NFT 拍卖,在 NFT 所在区块链上他们必须得有资金。但往往存在想要参与拍卖但在该特定链上没有资金的人。以 OpenSea 为例,因为它当前是一个仅部署在以太坊上的 NFT 市场,复杂的桥接操作和高昂的 gas 成本让很多其他链上的用户被排除在外,不能参与 OpenSea 上的 NFT 交易。

Celer IM 可以帮助扩展 NFT 市场以覆盖更广泛的受众。除了最初铸造 NFT 的链,拍卖将能够跨链进行。最重要的是,在拍卖结果最终确定之前,无需进行任何单独的跨链资金转移。这显著降低了参与 NFT 拍卖的成本,降低了复杂的操作门槛并扩大了整个市场的交易池。 

Celer IM 架构及设计模式  

那么,如何实现这些原生跨链 dApp,开发人员又需要构建什么呢? 

在这个模块,我们会逐步拆解常见的应用设计模式,介绍 Celer IM 的架构。 

伴随资金转移的跨链逻辑

对于许多原生跨链应用,核心流程通常涉及将资金发送到一个或多个链,并使用这些跨链资金在目标链上「完成其他任务」。上面给出的 DEX 演示其实就使用了这种设计模式。在接下去的介绍中,我们也会提供 DEX 演示的具体代码链接。  

一文读懂Celer交互全新模式:跨链消息框架

上面的流程图看起来虽然有些复杂,但其实大部分的流程是由 Celer IM 完成的,dApp 开发人员只需要搭建 IM 架构应用模板中的两个简单函数。   

第 1 步:用户向 dApp 发起交易

在 Celer IM 中,用户不再直接与 dApp 现有的智能合约交互,而是与一个新的 dApp Plug-in 合约交互(标记 A),表达他们想要执行的跨链逻辑。这个 dApp Plug-in 成为整个 dApp 业务逻辑的一部分,可以与源链上 dApp 现有的智能合约进行交互。与 dApp Plug-in 合约的交互通常是用户为与这个跨链 dApp 交互所发出的唯一交易。 

在展示的 DEX 示例中,transferWithSwap函数就是整个流程的起点,它允许用户表达跨链逻辑请求,比如「先在 X 链上将 Token A 交换成 Token B,再在 Y 链上用换好的 Token B 交换成 Token C」。

当然,通常情况下用户不会手动说明这些请求,使用 Celer IM 框架的 dApp 应该为调用此类函数构建更抽象的用户目标。 

第 2 步:dApp Plug-in 将消息和相关的资金跨链请求发出

在完成源链上的必要操作后,dApp Plug-in 会将转换好的资金和相关消息发送到目标链(标记 B 和 C)。该消息说明了需要在目标链上执行的操作。在 这个 DEX 的例子中,这个消息就是「将跨链的 Token B 换成 Token C,然后将 Token C 发送给用户」。只需调用 sendMessageWithTransfer,消息和资金转账就会自动关联在一起。消息随后会被发送到 Message Bus 合约,资金则通过一个资产跨链桥(比如 cBridge)完成转移。 

注意:在这种应用模式中,Celer IM 是可以兼容其他资产桥的,以 cBridge 为例是因为 cBridge 是 IM 支持的第一个资产桥。   

第 3 步:状态守卫者网络 (SGN) 传递消息和资金跨链请求 

为帮助大家理解这一步,我们首先要介绍 Celer IM 中的一个核心组件:状态守卫者网络 (SGN)。SGN 自身是建立在 Tendermint 上的一个权益证明 (PoS) 区块链,在 IM 架构下,它是不同区块链之间的消息路由器。节点提供者必须质押 CELR 才能成为验证者,加入 SGN 的共识过程。SGN 使用的安全机制与 Cosmos 和 Polygon PoS 链等 L1 区块链相同。SGN 的 CELR 质押和罚没机制都是在以太坊 L1 智能合约上实现的。 

SGN 质押节点会持续监控接入的所有链上发生的交易。当一笔交易在 Message Bus 合约中触发了一个含有预定 header-payload 格式的跨链消息事件时(标记 D),验证节点将首先对「消息是否存在」达成共识,并同时生成一个加权多签证明。然后,这个证明就存储在 SGN 链上,等待订阅该消息的 Executor 中继到目标链上(标记 H)。 

对于资产跨链,我们可以把 cBridge 合约看作一个自带资产跨链优化的 Message Bus。SGN 会进行与消息跨链类似的共识和证明过程(标记 E)。但是资产跨链时,SGN 验证者不会将内置的资产跨链证明中继到一个链下的 Executor 上,而是直接把链上交易发送给目标链上的 cBridge 合约(标记 F),并触发资金转账,发给目标链上的 dApp Plug-in 合约(标记 G)。再次想向大家强调的是,Celer IM 是可以接入任何资产跨链桥的,但是首先默认支持了 Celer 的 cBridge。

第 4 步:Executor 执行跨链应用逻辑 

Executor 的任务是从 SGN 区块链读取加权多签证明,并简单将其中继到目标链上的 Message Bus(标记 I)。任何人都可以为任何应用运行 Executor,因为其功能只是中继消息。当然,dApp 应该考虑给予 Executor 激励,因为负责发送交易并在目标链上支付 gas 费用的是 Executor。

目标链上 Message Bus 的作用是检查证明消息的有效性,并确认 dApp Plug-in 确实收到了相关的付款(标记 J)。之后,Message Bus 会将消息(逻辑执行指令)传递给承载 dApp 在目标链上跨链业务逻辑的 dApp Plug-in 合约上(标记 K)。 

目标链上的 dApp Plug-in 只需要实现 executeMessageWithTransfer接口。在我们给出的 DEX 示例中, 这个函数将在目标链上执行「将 Token B 换成 Token C」的逻辑。

不含资金转移的跨链逻辑

当然,发送跨链消息或逻辑执行指令并不一定伴随资金转移。例如,在 NFT 市场中,如果用户参与在其他链上的拍卖,不需要将资金实际转移到目标链,只需要在源链锁定资金,就可出价参与竞拍。只有在赢得拍卖后,用户才需要进行资金的跨链转移。 

一文读懂Celer交互全新模式:跨链消息框架

这种流程只是第一个模式的简化版本。dApp Plug-in 只需要在源链上实现逻辑调用 sendMessage,然后在目标链上的 dApp Plug-in 合约中实现 executeMessage。  

故障处理

由于上述跨链消息模式的异步特性,应用逻辑应包含故障处理的考量。在这些应用模式中,故障可能发生在以下三个步骤中,应分别进行相应处理:

1. 源链 dApp 逻辑执行失败。这与 Celer IM 无关,应由 dApp 业务逻辑本身处理。故障举例:DEX Token 交换超过限定时间。 

2. 跨链桥资产跨链失败。源链 dApp 将通过一个通用接口得到通知,并应通过重试资产跨链或将资产发回给用户来处理退还的资产。 

3. 目标链 dApp 逻辑执行失败。当用户资金到达目标链时,目标链上的 dApp 逻辑执行仍有可能发生故障。dApp 开发人员应有所准备,为应对此类故障实现一些回退函数。处理此类故障常见的方法有:停止执行逻辑,并将资金发送给目标链上的用户;或者将资金转回源链。但实现怎样的回退函数逻辑完全取决于 dApp 开发人员。 

本文旨在抽象概括 IM 架构的设计和拆解,我们不会详细介绍故障处理的流程,但是会在开发文档中提供详细的设计模式参考。 

链上价值累积和费用  

从上面两种模型中,可以明显看到:Celer IM 如果要顺利运行,SGN 中的 CELR 质押者和验证者必不可少。 

SGN 在 IM 架构中发挥着达成源链消息共识、存储源链消息证明、实现资金跨链的作用。为了让 SGN 能够持续提供服务,与其他任何 PoS 区块链验证者的收费模式类似,使用 Celer IM 的用户也需要向 SGN 支付费用。费用本身会根据生成区块的 SGN 节点分配给 CELR 质押者。 

使用 Celer IM 搭建原生跨链 dApp 非常简单  

在 Celer IM 架构中,不管是扩大现有 dApp 的市场规模,还是搭建一个全新的 dApp,实现起来都很简单,只需要进行以下 3 个步骤:

首先,需要编写 dApp Plug-in 智能合约代码。在源链的智能合约接口中实现的逻辑只要能够表达跨链执行目的,并能在源链上调用 sendMessage 或 sendMessageWithTransfer 即可;并且,也需要在目标链的 dApp Plug-in 合约中实现 executeMessage 或 executeMessageWithTransfer 函数。

第二步是运行 Executor。这一步骤不需要编写代码。dApp 开发或社区成员都可以运行一个 Executor, 并订阅 SGN 上生成的相关消息证明。  

最后一步是进行 UI/UX 调整。由于应用现在具有的跨链逻辑可能会涉及多个交易,让用户了解一个跨链行为的不同状态自然非常重要。UI 的具体展示当然取决于应用本身,但 Celer IM 提供了一个易于查询的网关服务,可以让 dApp 获取消息和资金跨链的状态,让 dApp 开发人员能够搭建一笔跨链交易的完整生命周期。

一文读懂Celer交互全新模式:跨链消息框架 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/?p=27697

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 一文读懂Celer交互全新模式:跨链消息框架
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们