Cointime

扫码下载App
iOS & Android

Chainlink:使用 CCIP 构建跨链应用程序的 5 种方法

项目方

作者:Chainlink. 编译:Cointime.com QDD

Chainlink的跨链互操作性协议(CCIP)是一种新的通用跨链通信协议,为智能合约开发者提供了以最小化信任的方式在区块链网络之间传输数据和代币的能力。

目前,部署在多个区块链上的应用程序受到资产、流动性和用户的碎片化问题的困扰。有了CCIP,开发者可以利用代币转移和任意消息传递,实现由部署在多个不同区块链网络上的多个智能合约组成的去中心化应用程序,这些智能合约相互操作,形成单一统一的应用程序。这种Web3设计模式被称为跨链智能合约

以下是使用CCIP构建跨链应用程序的几个示例,涵盖了DeFi、跨链ENS、在多个链上铸造NFT以及跨链游戏等领域。这些用例示例展示了CCIP将传统的单链或多链应用程序转变为强大的全新跨链dApps的潜力。

所有示例都可以在Chainlink Labs的GitHub上找到,并且现在可以部署和与之交互。

DeFi:跨链组合性

DeFi是一个适合通过跨链智能合约进行转变的Web3应用程序类别。在当前的DeFi世界中,许多应用程序要么部署在单个链上,要么部署在多个链上,每个实例都需要其自己的一组用户和流动性。在每个链上,都有DeFi组合性和“货币乐高”的概念,开发者可以无需许可地与部署在特定网络上的各种协议进行连接和集成,以创造新的用例和金融产品。

通过启用跨链智能合约和跨链代币转移,CCIP将DeFi组合性的概念指数级增加。因为现在,组合性不再局限于每个链上,并且不再受限于该链上的DeFi协议,而是所有链上的所有DeFi应用程序现在可以以各种方式组合在一起,创造新的金融产品。应用程序和协议不再局限于它们所在的链上。

这种跨链组合性使DeFi应用程序的生态系统更加完整和互联,所有链上的流动性、用户和金融产品都可以为所有协议所用。用“货币乐高”的类比,CCIP使您能够将所有不同的乐高套装组合在一起,并将它们作为一个单一的、统一的套装来构建金融协议。

一个特定的DeFi金融服务将极大受益于CCIP,那就是借贷。在当前的世界中,大多数DeFi借贷协议要求您在部署您想要使用的协议的链上存入抵押品。但许多DeFi用户在多个不同区块链上使用多个DeFi协议,并且资产分散在所有这些链上。这些用户通常追求最佳回报率,调整其头寸以最大化收益,但在许多情况下,当这些资产在另一个链上有更好的收益机会时,它们被锁定在一个链上的协议中。如果他们想参与更好的收益机会,他们需要在一个链上清算他们的头寸,手动将资产桥接到新的链上,在新的链上的协议上存入这些资产,然后在想要将资产返回原始链时执行相同的过程——这是很多步骤,只是为了将资产转移到新的协议来追求收益机会。

像这样的情况就是CCIP可以帮助实现DeFi协议真正跨链的地方,让用户无缝地在一个链上利用数字资产作为另一个链上DeFi协议的抵押品,所有这些都由CCIP在协议层面处理,而无需用户执行手动操作,或者因使用第三方桥接而添加信任假设。使用CCIP,DeFi协议可以使借款人在一个(源)链上存入资产,或者直接将其转移到目标链上,然后让这些资产在目标链上可供借用。当他们希望停止在目标链上使用他们的资产时,DeFi协议可以使用CCIP撤回他们的头寸,并将资产移回原始链。这就是CCIP赋能的DeFi的威力。

在这个示例中,我们有一个部署在Avalanche Fuji测试网上的DeFi智能合约Sender.sol。这个合约接受以代币形式的用户存款;它可以是包装的ETH、稳定币或任何具有实际价值的代币。Sender.sol有一个sendMessage函数,它使用CCIP执行指定代币的可编程转账以及一个消息发送到目标链。在本例中,我们将指定的代币发送到Ethereum Sepolia测试网,并包含了最终用户的EOA(外部拥有账户)的消息:

注:本文中的所有代码示例仅用于说明,并且按“原样”提供,没有任何明示或暗示的保证。使用这些代码片段受我们在 chain.link/terms 所列出的服务条款的约束。

在Ethereum Sepolia网络上,我们部署了一个名为Protocol.sol的智能合约。该合约接收CCIP可编程代币转移消息,并执行以下操作:

l   铸造和控制可以使用抵押品进行借贷的稳定币。

l   从CCIP消息中读取指定代币合约地址(在目标链上),这些代币是从源链发送的(作为借贷的抵押品)以及存入的金额。

l   从CCIP消息内容中还读取最终用户(存款人/借款人)的钱包地址。稳定币将铸造到此地址,并且此地址也用于跟踪存款和借贷。

l   将这些信息存储在智能合约中。

一旦Protocol.sol成功接收并处理了这个CCIP可编程代币转移消息,用户就可以通过手动执行borrowUSDC函数来借入资金。该函数允许用户将转移的代币用作抵押品,以铸造并借入等额的稳定币(例如USDC)到借款人的EOA。在本示例中,我们假设70%的抵押率,意味着协议将借出的金额不超过抵押品价值的70%:

用户成功在Sepolia上充当抵押品借入UDSC后,他们可以根据需要在Sepolia网络上的任何DeFi协议中使用这些资金。然后,当他们完成时,他们可以还款给Protocol.sol,这将导致稳定币代币被销毁,并且然后将CCIP可编程代币转移消息发送回Fuji网络上的Sender.sol合约,该合约将把锁定的代币返回到Fuji网络上的指定地址。请注意,用户必须首先批准Protocol.sol作为用户借入的稳定币的“spender”,以便协议能够燃烧借入的金额,这就是还款的实现方式:

本示例的完整源代码和说明可在 CCIP-DeFi Lending GitHub 存储库中找到。

DeFi: 跨链清算保护

延续 DeFi 和借贷协议的主题,许多 DeFi 用户在多个不同的 DeFi 协议和多个区块链上持有多个头寸。这使得跟踪投资组合和 DeFi 仓位变得困难。目前有多个第三方平台、追踪器和收益聚合器可用,DeFi 用户可以简单地部署抵押物,让这些第三方平台处理资产的部署和转移,以优化用户的收益。虽然这些工具可以很好地将 DeFi 的某些复杂性抽象化,使用户可以简单地赚取收益,但它们并不是信任最小化的。用户委托协议来赚取收益,并确保头寸保持抵押以避免清算。此外,如果最终用户想要获得某种形式的清算保护,他们需要在所有拥有 DeFi 仓位的区块链上部署原生资产,以确保在各个链上的借贷头寸抵押。

通过 CCIP 和跨链代币转移和消息传递,DeFi 协议、头寸监控应用和收益聚合器可以增强跨链清算保护。这意味着用户可以在多个区块链上有开放头寸的多个 DeFi 协议,然后他们可以在单个链上分配资产,作为额外抵押品,以防某个或多个借贷需要额外资金来确保抵押。以下是它在高层次上的工作原理:

l   一个 DeFi 最终用户在多个链上有债务头寸(例如 Ethereum、Avalanche、Polygon),但他们将流动性安全地保留在一个链上的保险库中(例如 Ethereum 上的 Aave)。

l   对于用户在每个链上的债务头寸,用户的 Chainlink Automation 实现会监控头寸的负债比率。

l   如果 Automation 发现他们的任何借贷接近清算阈值,然后 Automation 将发送一个 CCIP 消息到用户的流动性链(例如 Ethereum),请求发送资金来填充债务头寸。

l   当流动性链上的合约接收到 CCIP 消息后,它会从 Aave 中提取流动性,并将带有资金的新的 CCIP 消息发送回请求链。该消息包含足够的信息和代币来资助头寸,并避免清算情况。

其结果是用户可以在多个链上有债务头寸,同时仍然在单个链上保持流动性。整个过程是信任最小化的,用户仍然100%控制他们的债务头寸,他们不需要手动提取和转移资金到不同的链上。以下是它的工作原理:

Chainlink Automation 监控用户有债务头寸的所有链,并确定是否需要发送资金的消息。如果需要,performUpkeep 函数将向拥有流动性的链上的保险库发送一个 CCIP 消息,请求发送资金。

拥有流动性的链上的保险库然后接收资金请求,并检查是否有足够的资金返回到请求链,或者是否应该从 DeFi 协议(例如 Aave)中提取一些流动性,以确保有足够的资金发送。然后,它启动一个 CCIP 可编程代币转移,包含所请求的资金以及最初接收到的消息的消息 ID(以便在请求资金的区块链上的目标合约知道资金请求是关于哪个请求的):

最后,请求资金以补充债务头寸的区块链上的智能合约接收 CCIP 可编程代币转移,将请求 ID 与其原始请求匹配,并将资金取出并存入债务头寸中,以增加贷款的抵押,避免清算:

这个例子演示了如何在 DeFi 协议和 DeFi 头寸监控应用中使用 CCIP,为用户提供在多个区块链上对其债务头寸的信任最小化的清算保护,同时让他们保持他们的资金和流动性在单个区块链上。

完整的源代码和说明可以在 CCIP Liquidation Protector GitHub 存储库中找到。

跨链域名服务(Cross-Chain Domain Name Service)

去中心化域名服务(如 ENS)在 Web3 上非常流行,因为它们有助于将易读的名称转换为钱包地址。在理想的情况下,域名服务不应该限定于一个链,而是每个注册的域名应该在所有 Ethereum 链、侧链、第二层和应用链上传播和共存。这将允许用户在整个 Ethereum 生态系统中拥有一个统一的身份,而不是必须在多个命名服务上注册域名或使用不信任最小化的互操作性解决方案。

然而,要实现这一点,域名服务需要与其他区块链进行通信。每个链上的命名服务实例在注册新域名时需要得到通知,并且需要一种方法来执行对全局名称注册表的“查找”,涵盖所有链。

这个例子展示了如何构建一个简化的跨链域名服务应用程序,用户可以在其中在一个链上注册域名,然后在多个其他链上传播该注册信息,并在任何链上解析名称到地址。

第一步是在 Ethereum Sepolia 网络上部署 CrossChainNameServiceRegister 和 CrossChainNameServiceLookup 合约。这个网络将充当“主”网络,所有注册将在此网络上进行,并传播到其他链上。

当您注册一个新的 .ccns 句柄时,CrossChainNameServiceRegister 合约将使用 CCIP 发送一条消息到其他受支持的区块链,包含有关注册的 .ccns 句柄的信息:

在所有受支持的接收链上,部署 CrossChainNameServiceReceiver 合约。这个合约将从 CrossChainNameServiceRegister 合约接收注册的 .ccns 域名,并将它们存储在部署在该链上的 CrossChainNameServiceLookup 合约中:

最后,在所有区块链上部署 CrossChainNameServiceLookup 合约,包括注册链(在本例中为 Sepolia),以及所有目标链。该合约用于存储所有注册的 .ccns 句柄,并充当执行查找的接口,以将名称转换为地址:

使用这种简单的设计模式,可以创建一个简单的跨链域名服务,用户可以在其中注册一次域名,然后在多个区块链上拥有并使用它。

完整的源代码和说明可以在 Cross-Chain Name Service GitHub 存储库中找到。

跨链 NFT(Cross-Chain NFTs)

NFT 是 Web3 最受欢迎的用例之一。每个 NFT 项目通常在单个区块链上,或者该项目本身在多个链上部署,如果用户想要在多个链上拥有 NFT,他们必须多次铸造它。

通过 CCIP 任意消息,NFT 项目可以允许他们的资产仅在单个链上铸造一次,由铸造者一次付费,然后在其他区块链上传播。这意味着用户可以拥有和共享他们的 NFT,而不管他们使用的是哪个网络。CCIP 还可以用于在不同链上“销毁和铸造” NFT,允许用户将其 NFT 从一条链转移到另一条链。这是第一个场景的示例:

以下是简单 NFT 智能合约的说明:

SourceMinter 合约在源链上部署,并在其 mint 函数中包含逻辑,用于向目标区块链发送带有 ABI 编码的 mint 函数签名的 CCIP 跨链消息,该签名来自 MyNFT.sol 智能合约:

DestinationMinter 合约将接收带有 ABI 编码的 mint 函数签名的 CCIP 跨链消息作为有效载荷,并使用该签名调用 MyNFT 智能合约的 mint 函数。然后,MyNFT 智能合约将通过 SourceMinter 智能合约的 mint() 函数将新的 NFT 铸造到 msg.sender 账户,即在源链上铸造 NFT 时使用的相同账户地址:

最终结果是,铸造 NFT 的用户现在在多个链上拥有该 NFT,并且他们只需要铸造一次并支付一次。如果 NFT 项目希望在所有区块链上保持严格的不可替代性,该解决方案也可以轻松修改,以在目标区块链上铸造 NFT,并在源链上销毁它,确保在所有区块链上只有一个版本。

完整的源代码和说明可以在 Cross-Chain NFT GitHub 存储库中找到。

游戏:跨链井字游戏

在过去的几年中,Web3 游戏变得非常受欢迎。然而,与 DeFi 一样,游戏也非常分散,游戏及其资产通常只适用于特定的链。但与传统游戏一样,最终目标或最佳体验是拥有可以一起玩游戏的游戏玩家,而不考虑他们正在玩游戏的硬件或软件。就像 PC 游戏玩家可以与 Xbox 主机所有者一起玩游戏一样,没有理由为什么在 Polygon 上玩游戏的人不能与在 Avalanche 上玩游戏的人一起玩。这就是所谓的跨平台游戏

这对于回合制 Web3 游戏和其他不需要快速实时交互的游戏非常适用。Web3 游戏遭受用户碎片化,游戏玩家更喜欢在他们选择的链上玩游戏并使用他们喜欢的数字资产。CCIP 可以使 Web3 游戏真正跨链,促进资产在链上的转移,并在多个区块链上实现共享游戏状态,使玩家可以在不考虑他们选择的链的情况下相互对战或合作。如果您想要吸引尽可能多的游戏玩家,那么最好在多个链上部署您的游戏,并设计它以便所有玩家可以相互对战或合作。

这个跨链游戏设计模式的简单演示可以用回合制策略游戏(例如井字游戏)来展示。在这个例子中,我们有一个游戏智能合约在多个区块链上部署。用户可以在他们选择的链上开始一场游戏,然后将游戏会话 ID 分享给他们的朋友。如果愿意,他们的朋友可以从另一个链上加入游戏。在创建游戏时,CCIP 将把游戏的详细信息和初始状态与所有其他链共享:

一旦第一个玩家在开始游戏后采取了一步,另一个区块链上的第二个玩家将在成功处理 CCIP 消息后,在他们的游戏智能合约上看到更新后的游戏状态。玩家2将然后采取他们的步骤,这将生成一个 CCIP 消息发送回玩家1,并在他们的链上更新游戏状态:

然后,玩家1将看到更新后的游戏状态,并再次采取他们的步骤。随着玩家采取行动,跨链的 CCIP 消息在链之间来回传递,直到游戏达到结论并宣布获胜者。重要的是要注意,两个链上的游戏智能合约都维护游戏状态,并且使用 CCIP 发送和接收消息,以确保游戏状态在两个区块链上保持一致:

这个例子的完整源代码和说明可以在 CCIP 井字游戏 GitHub 存储库中找到。

结论

从跨链 DeFi 和 NFT 到在多个区块链上运行的游戏,CCIP 使得跨链智能合约的实现成为可能,实现了跨所有区块链的真正 DeFi 组合性,并实现了更加统一的 Web3。

评论

所有评论

推荐阅读

  • Polymarket将于下周一公布重大消息,或为发币或融资相关消息

    Cointime 报道,3月21日消息,Polymarket 官方团队成员 Mustafa 于 X 平台发文表示,下周一即将公布重大消息。因推文内容包含硬币符号,社区猜测或为融资或代币发射相关重大消息。 此前消息,预测市场平台 Kalshi 与 Polymarket 据悉正与潜在投资者洽谈新一轮融资,目标估值均约为 200 亿美元。日前,Kalshi 已完成新一轮超 10 亿美元融资,估值达 220 亿美元,较去年 12 月上一轮融资时的 110 亿美元估值翻倍。知情人士透露,本轮融资由 Coatue Management 领投,Kalshi 目前的年化收入为 15 亿美元。

  • 美众议院金融服务委员会将于3月25日举行代币化听证会,聚焦资本市场未来

    3 月 21 日,美国众议院金融服务委员会将于美东时间 3 月 25 日 10:00 举行听证会,主题为「代币化与资本市场的未来」,预计将重点讨论区块链技术在金融体系中的应用与监管方向。

  • 黄金创43年来最大周跌幅:一周暴跌11%,避险属性遭质疑

    3 月 21 日,受中东局势升级及利率预期影响,黄金价格大幅下挫,创下自 1983 年以来最大单周跌幅。现货黄金周五跌至约 4488 美元/盎司,单周累计下跌约 11%,自 2 月底以来累计跌幅已超 15%。市场分析认为,美联储年内或维持利率不变、鲍威尔关于通胀上行的表态削弱了黄金吸引力。同时,在伊朗冲突背景下,比特币表现相对更强,期间反弹超 11%,对黄金形成对比。

  • 分析:加密市场山寨币交易量大幅下滑,市场兴趣持续降温

    3 月 21 日,Cryptoquant 分析师 Darkfost 发文称,加密市场山寨币交易量持续走低,投资者兴趣明显减弱。在熊市背景及地缘政治不确定性影响下,山寨币表现持续跑输比特币,风险偏好显著收缩。当前,Binance 山寨币日交易量约为 77 亿美元,其它主要交易所合计约 188 亿美元,远低于 2025 年 10 月与 2 月高峰期(Binance 曾达 400 亿至 500 亿美元,其它平台达 630 亿至 910 亿美元)。目前 Binance 占据约 40% 的市场份额。分析指出,历史上交易量高峰往往对应市场阶段性顶部与 FOMO 情绪释放,而当前低迷成交环境也意味着潜在机会通常出现在市场关注度最低阶段。

  • 消息人士:特朗普政府正制定方案以夺取伊朗核材料储备

    3 月 21 日,据美国哥伦比亚广播公司(CBS)报道,多位知情人士透露,特朗普政府一直在谋划获取或转移伊朗核材料的方法和选项。此时,由美国和以色列领导的针对伊朗的军事行动正进入一个更加不确定的阶段。关于特朗普是否会下令实施此类行动,目前时机尚不明确。一位消息人士表示,他尚未做出任何决定。但两位消息人士表示,相关规划的核心是可能部署来自联合特种作战司令部的部队,该部队是精英军事单位,常负责最敏感的防扩散任务。

  • 中东冲突与加息预期共振:全球资产大震荡,美股四连跌、债市「血洗」、黄金创43年最大周跌幅

    3 月 21 日,中东局势持续升级叠加 Federal Reserve 加息预期骤然升温,全球市场遭遇系统性冲击。美股连续第四周下跌创一年最长跌势,纳指单日跌超 2%,科技股全线承压;全球债市收益率大幅飙升,美债、英债、德债均创多年新高,资金大规模去杠杆。大宗商品剧烈分化,黄金跌破 4500 美元关口,单周暴跌超 10%,创 1983 年以来最大跌幅,避险属性遭质疑;原油则因中东供应风险暴涨,布油重返 110 美元上方,迪拜原油期货单日飙升超 16%。与此同时,比特币在 7 万美元附近获得支撑,连续三周跑赢黄金。市场分析认为,地缘冲突推升能源价格并加剧通胀预期,迫使货币政策路径重定价,全球金融条件快速收紧,风险资产仍处于下行与再定价过程中。

  • 美团开源560B参数定理证明模型:72次推理通过率97.1%,刷新开源模型SOTA

    据 1M AI News 监测,美团 LongCat 团队开源 LongCat-Flash-Prover,一个 5600 亿参数的 MoE 模型,专攻形式化定理证明语言 Lean4 的数学推理任务。模型权重以 MIT 协议发布,已上线 GitHub、Hugging Face 和 ModelScope。模型将形式化推理拆解为三项独立能力:自动形式化(将自然语言数学问题转化为 Lean4 形式语句)、草图生成(产出引理风格的证明框架)和完整证明生成。三项能力均通过 Agent 工具集成推理(TIR)与 Lean4 编译器实时交互验证。训练方面,团队提出 Hybrid-Experts Iteration Framework 生成冷启动数据,并在强化学习阶段引入 HisPO 算法稳定 MoE 模型的长程任务训练,同时加入定理一致性和合法性检测机制防止 reward hacking。基准测试显示,LongCat-Flash-Prover 在开源权重模型中刷新了自动形式化和定理证明两项 SOTA。MiniF2F-Test 上仅用 72 次推理即达 97.1% 通过率,ProverBench 和 PutnamBench 分别达到 70.8% 和 41.5%,每题推理次数不超过 220 次。

  • Erik Voorhees再次增持1.44万枚ETH,总持仓量突破11.7万枚

    3 月 21 日,据 AI 姨监测,ShapeShift 创始人、比特币早期支持者 Erik Voorhees 关联地址,过去 11 小时买入 14,424.53 ETH,总持仓突破 11.7 万枚,持仓均价 2,160.24 美元,当前浮亏 114.5 万美元。

  • 消息人士:特朗普政府正制定方案以夺取伊朗核材料储备

    Cointime 报道,3月21日消息,据美国哥伦比亚广播公司(CBS)报道,多位知情人士透露,特朗普政府一直在谋划获取或转移伊朗核材料的方法和选项。此时,由美国和以色列领导的针对伊朗的军事行动正进入一个更加不确定的阶段。 关于特朗普是否会下令实施此类行动,目前时机尚不明确。一位消息人士表示,他尚未做出任何决定。但两位消息人士表示,相关规划的核心是可能部署来自联合特种作战司令部的部队,该部队是精英军事单位,常负责最敏感的防扩散任务。(金十)

  • GameFi板块市值暂报45.15亿美元,FLOKI排名第一

    3 月 21 日,据 Coingecko 数据,GameFi 板块市值暂报 45.15 亿美元,FLOKI 以 2.86 亿美元市值排名第一,排在第二第三位的分别为:The Sandbox(2.18 亿美元)、Undeads Games(2.11 亿美元)。此前 Solana 基金会主席 Lily Liu 表示,区块链游戏「不会再回归」。她认为,尽管行业曾寄望通过链上资产与开放世界推动 Web3 与元宇宙发展,但实际表现远未达预期。市场观点称链游长期依赖「Play-to-Earn」等代币激励模式,却缺乏真正吸引核心玩家的游戏性与内容构建能力,导致用户留存与生态可持续性不足。包括 Andreessen Horowitz(a16z)、Framework Ventures、Animoca Brands 在内的机构曾向该领域投入数十亿美元,但回报表现不佳。