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。

评论

所有评论

推荐阅读

  • BTC突破109000美元

    行情显示,BTC突破109000美元,现报109000美元,24小时涨幅达到3.34%,行情波动较大,请做好风险控制。

  • 特朗普将于北京时间1月21日凌晨1点宣誓就职

    特朗普将于美东时间20日中午12点(北京时间21日凌晨1点)在美国首席大法官罗伯茨的主持下宣誓就职,特朗普随后将发表就职演说。美国三大富豪马斯克、贝佐斯、扎克伯格同框出席。两位消息人士称,特朗普正在准备上任第一天就发布大量行政命令和指令,总数可能超过100项,内容涉及移民、能源生产等。 官方活动的费用来自特朗普的就职典礼委员会。除了在国会大厦举行宣誓就职仪式的费用由纳税人承担外,其他一切费用都将由该委员会负责。贝佐斯、扎克伯格、库克和奥特曼等承诺向委员会各捐赠100万美元。据媒体报道,特朗普委员会这次筹资超过1.7亿美元 。

  • 基于区块链的动漫平台Oshi完成1250万美元融资,Polychain Capital等领投

    1月20日消息,基于区块链的动漫平台Oshi宣布完成1250万美元融资,Polychain Capital和Superscrypt领投,Folius Ventures、Sfermion、The Spartan Group、Nomad Capital、CMT Digital等参投。 据介绍,Oshi是一个基于区块链的开放式动漫平台,通过Oshi,粉丝可以直接支持他们热爱的动漫项目并获得独家优惠,该平台的IP许可基础设施使IP所有者能够保持对其作品的控制,同时与专门的全球合作伙伴建立联系。

  • 开源经济基础设施 Merit Systems 完成 1000 万美元种子轮融资,a16z crypto 等领投

    开源经济基础设施 Merit Systems 完成 1000 万美元种子轮融资,a16z crypto 及 Blockchain Capital 领投,Solana 联合创始人 Toly、Not Boring Capital 创始人 Packy McCormick、Farcaster 联合创始人 Dan Romero 及 Framework Ventures 联合创始人 Vance Spencer 等参投。所筹资金将用于加速开源经济发展。

  • BTC突破101000美元

    行情显示,BTC突破101000美元,现报101033美元,24小时涨幅达到0.92%,行情波动较大,请做好风险控制。

  • 数字广告平台EarnOS完成500万美元种子轮融资,Escape Velocity领投

    1 月 17 日消息,数字广告平台 EarnOS 宣布完成 500 万美元种子轮融资,Escape Velocity(EV3) 领投,Animoca Brands、GD1、Laser Digital、XION、Mysten Labs、Opacity Network 等参投。 EarnOS 平台测试版由 XION 推出,Uber、Baskin Robbins、Sunglass Hut 和 The North Face 等知名品牌在 EarnOS 测试版发布期间入驻。

  • 数字资产钱包Phantom完成C轮融资,估值达30亿美元

    数字资产钱包Phantom宣布完成C轮融资,由风险投资公司Sequoia Capital和Paradigm领投,融资额为1.5亿美元,估值达到30亿美元。此次融资还有Andreessen Horowitz和Variant参与。Phantom的CEO Brandon Millman在1月16日的公告中表示:“我们的使命一直是让加密货币更加易于访问、直观和安全。这轮融资让我们能够进一步投资创新,最终现代化消费金融。”Phantom将使用这1.5亿美元推出即将发布的社交发现功能,并为用户简化点对点支付。

  • Torram完成710,000美元的种子轮融资,为比特币上的机构级DeFi铺平道路

    加拿大多伦多,2025年1月16日,Web2.5基础设施公司ChainwireTorram宣布于2024年12月初成功完成了710,000美元的种子轮融资。该公司专注于在比特币上开发机构级去中心化金融(DeFi)基础设施,定位为金融生态系统中创新的关键推动者。融资轮包括Draper Associates、Blockchain Founders Fund、Boost VC、Side Door Ventures、Deep Ventures、MH Ventures、Silvermine Capital和Trive Digital等知名投资者的参与。Torram的比特币原生工具包将包括去中心化的Oracle网络、去中心化的索引器网络和去中心化的API等。

  • 今日恐慌与贪婪指数升至75,等级仍为贪婪

    今日恐慌与贪婪指数升至75,等级仍为贪婪。注:恐慌指数阈值为0-100,包含指标:波动性(25%)+市场交易量(25%)+社交媒体热度(15%)+市场调查(15%)+比特币在整个市场中的比例(10%)+谷歌热词分析(10%)。

  • 1Money 完成 2000 万美元的种子轮融资,Galaxy Ventures 等参投

    1Money 完成 2000 万美元的种子轮融资,F-Prime Capital、Galaxy Ventures、Hack VC、Kraken Ventures、MoonPay Ventures 和 Bankless Ventures 参投。 资金将用于推出 1Money Network,这是一个下一代支付网络,专门用于稳定币支付。