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。

评论

所有评论

推荐阅读

  • 香港正计划让证券及期货事务监察委员会与香港海关共同监管虚拟资产OTC交易

    9月12日消息,香港目前正在探索是否让证券及期货事务监察委员会(SFC)与香港海关(C&ED)一起参与监管虚拟资产场外交易(OTC)服务。据知情人士透露,香港证券交易委员会已就可能为加密货币场外交易服务实施新的许可制度征求业内人士的意见,这将使证券监管机构与C&ED合作监督这些公司,因为讨论是私下的。 根据2月份公开的一项提案,计划中的OTC法规和许可以前是C&ED的唯一领域。场外交易服务促进了双方之间的直接和私人大批量加密货币交易。 知情人士表示,近几个月来,香港证监会还就为加密货币托管服务引入新的许可制度咨询了公司。他们说,关于这两种许可证的讨论仍处于早期阶段,可能会发生变化。

  • 美国现货比特币ETF昨日净流出4397万美元

    据Trader T监测,美国现货比特币ETF昨日净流出4397万美元。

  • Flow Traders标记地址约17小时前向富达以太坊ETF转移3000枚ETH

    9月12日消息,据Arkham监测,Flow Traders标记地址于大约17小时前向富达以太坊交易所交易基金FETH地址转移3000枚ETH,价值约合700万美元,随后这笔资金被转移至富达托管冷钱包地址(Fidelity Custody:Cold Wallet)。

  • 新加密风险基金Reforge计划筹集8000万美元

    据彭博社报道,Alexander Lin和CarlHua创立新风险基金Reforge,计划筹集8000万美元,目前已筹得2500万。通过Reforge,Lin希望寻找能让创始人和开发者更容易接受区块链的技术。其表示:“我们认为,目前第一层区块链的格局无法满足最优秀的消费者创始人的需求。” 此外,Reforge风投基金联合创始人Alexander Lin认为,资本分配者推动快速推出代币以获取回报是主要原因。其还批评了加密与人工智能跨界初创企业中的投资过热现象,并质疑去中心化计算网络满足AI工具电力需求的可行性。 据悉,Lin和CarlHua都曾在Shima Capital担任高级职务,直到今年1月才离开,成立Reforge。

  • 美国国会首次就DeFi举行听证会,各党议员意见不一

    9月11日消息,美国国会首次就去中心化金融(DeFi)举行听证会,共和党和民主党议员在此问题上表现出明显分歧。该听证会由众议院金融服务委员会主办,主题为“解码 DeFi:解析去中心化金融的未来”,旨在探讨代币化等新兴话题以及区块链在金融领域的应用。 民主党议员 Brad Sherman 持强烈批评态度,称 DeFi 主要用于犯罪、逃避制裁和逃税。民主党代表 Maxine Waters 提到了 Laura 和 Tiffany Trump 的 X 账户被黑客入侵,用于推广与特朗普家族 DeFi 项目“World Liberty Financial”相关的诈骗代币的事件。她质疑 SEC 和 CFTC 等监管机构是否有能力应对 DeFi 平台和“声称去中心化以逃避监管的实体的大规模不合规行为”。相比之下,DeFi Education Fund 首席法务官 Amanda Tuminelli 强调了 DeFi 的开放性和包容性。 此次长达两个半小时的听证会凸显了美国立法者在 DeFi 技术问题上的严重分歧,也反映了监管机构面临的挑战。加密律师 Jake Chervinsky 在社交媒体上评论道:“几年前,DeFi 只有十个项目,没人认为会有什么成就。现在它在华盛顿的权力殿堂上得到充分展示。”(Cointelegraph)

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

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

  • 北京警方破获一起利用虚拟币转移资金的地下钱庄案件,涉案金额8亿余元

    据法制日报报道,近日,北京警方在侦办一起职务侵占案件过程中,发现涉案人员在短期内将大量侵占资金集中转入某外籍华人境内账户。针对该线索,北京市公安局经侦总队与东城分局协同作战,辗转全国多个省市,打掉一个通过虚拟币交易实施洗钱犯罪的地下钱庄团伙。目前,涉案4名主要犯罪嫌疑人因涉嫌非法经营罪被检察机关批准逮捕。经查证,团伙主要成员吕某多年前取得外国国籍,国外生活期间,发现通过虚拟币交易可将境内人民币转移至境外并兑换为外币。后吕某会同陈某等人,利用虚拟币交易平台,协助有转移资金意向的境内人员大肆购买虚拟币,从而将资金转移至境外,涉案金额约8亿余元。同时,警方查明该团伙曾为多起电信诈骗案件、职务侵占案等提供资金通道、转移涉案赃款。

  • 澳大利亚法院裁定 Kraken 法币保证金受《公司法》约束,加密保证金扩展不受限制

    9月10日消息,澳大利亚联邦法院裁定,Kraken的法币保证金扩展受《公司法》设计与分销义务(DDO)约束,而加密货币保证金扩展不受限制。 Kraken对此表示认可,并已调整保证金产品,限制散户投资者进行法币保证金交易,但加密货币保证金交易保持不变。 Kraken同时呼吁澳大利亚为加密行业制定更加清晰的法规,称当前法律环境不利于行业创新和发展。

  • 美国投资者去年因加密骗局损失56亿美元,同比增长45%

    9月10日消息,据美国联邦调查局(FBI)周一发布的报告称,美国投资者在2023年因加密相关金融犯罪而损失了创纪录的56亿美元,比2022年增长了45%。 报告指出,去年收到的69,000多起与加密相关犯罪的报告中,近一半是投资欺诈的报告。尽管加密犯罪仅占FBI收到的投诉的10%,但56亿美元的数字大约是投诉人总损失的一半。

  • Orange Cap Games 完成 200 万美元天使轮融资,将推出卡牌游戏 Vibes

    9月10日消息,链游开发工作室 Orange Cap Games 宣布完成 200 万美元的 Pre-Seed 天使轮融资,LayerZero 首席执行官 Bryan Pellegrino、YGG 创始人 Gabriel Dizon、Dapper Labs 高管 Amber 等参投。新资金使用于其即将推出的集换式卡牌游戏 Vibes,Vibes 的特色是有 Pudgy Penguins 的知识产权。